精品项目

  • Home
  • GUI程序界面设计用纯C语言怎么做?(go是静态语言还是动态语言?)

GUI程序界面设计用纯C语言怎么做?(go是静态语言还是动态语言?)

1.如何用纯C语言设计GUI程序界面?

我们谈的是理想,不是现实。

GUI的特点是多变复杂,需要大量的人力来完成。所以适合GUI的语言一定是能节省人力的特性。从编程语言的角度来说,能越快给程序员反馈,语言编写越接近最终产品的用户界面越好。

0.写作很简单。语法简单,噪音少,不用写样板。支持功能封闭是基础。Kotlin中的UI DSL和大括号其实并不是特别干净,不如像CoffeeScript那样用缩进来表达。

跟踪垃圾收集.这一点写起来也简单。比如C/C++/Rust就不适合写GUI。GUI编程中要搞清楚一个视图的生命周期或者所有权太难了,就算明天界面变了也是错的。就连objC的refcount都觉得有点麻烦。

万向平台

类型系统是灵活的。GUI编程例程太复杂,并且整天都在变化。最好是结构型的,像GoLang或者TypeScript。最好是临时定义一个类型或者类似JSON的对象来传播。

能够反映视图的DSL。能够通过查看代码的视觉形状来想象GUI表单是增加效率的重要手段,用过程化的方式创建UI过于繁琐和直观。事实上,不仅可视化组件可以对应DSL,组件上的事件处理(如点击处理程序)和样式也可以直接写在DSL上。除了直观的好处,还可以用逻辑代码动态创建视图,写模板(XML/HTML)稍微麻烦一点。

能够快速响应代码变更。参考webpack的热模块重装和flutter的热重装。上面说了UI需要大量的人力,调整细节就是其中之一。热重装是加速GUI语言开发,减少人力的最大武器。

语言伴随着异步编程而来。UI编程中有很多场景需要等待用户输入/资源请求。语言层面的异步编程非常重要。比如async/await的语法就是一种支持,或者Rx作为标准库也是一种支持。Golang的CSP异步模型不适合UI编程,或者说过于啰嗦和直观。如何支持异步编程还没有想透,但是用GUI语言进行异步编程肯定是必须的。

简而言之,就是如何写得又快又好。如果结合以上几点,最好的GUI语言是

CoffeeScript的语法+TypeScript类型系统Kotlin的语法Sugar DSL+Dartlang的热加载+c#的async/await/Rx

2.go是静态语言还是动态语言?

Go是一种静态语言。

Go(又名Golang)是Google开发的一种编程语言,是静态的、强类型的、编译同步的,具有垃圾收集的功能。

GUI程序界面设计用纯C语言怎么做?(go是静态语言还是动态语言?)

Go的语法和C语言接近,但是变量的声明不同。围棋的并行模型是基于Tony Hall的通信顺序过程(CSP)的。其他采用类似模型的语言还有Occam和Limbo,但它也有圆周率运算的特点。

与C++相比,Go不包含枚举、异常处理、继承、泛型、断言、虚函数等功能。,但它增加了对切片、并发、管道、垃圾收集和接口等功能的语言级支持。

发表评论