当前进度
个人感觉
随处可见Swift和Dart的影子,毕竟都是现代语言,大差不差。
Dart中使用声明的方式写纯代码界面的例子还没有见到。感觉上是通过DSL实现的语法糖。不过这个如果让开发者自己来实现,基本上为空。基本上普通开发者都是业务逻辑翻译员,用DSL开发工具的程序员,有几个?
这份教材本身写的很好,一遍抄写来,感觉比Swift和Dart的官方教材都要通俗易懂,更加亲民,推荐指数5颗星。
工具链的支持还是太多,华为自己的开发工具,还要装插件才能用仓颉,这有点说不过去啊。
关于开发方式的选择
选择1:直接JS
这是学习成本最小的方式
这是最受前端开发者欢迎的方式
这也应该是选择人数最多的方式
这是本人最不推荐的方式:起步可能简单,但是到了一定阶段,安全性就是不可承受之重,迟早得换。
选择2:ArkTs
这是折中的方案
这是貌似当前阶段,华为开发者者官网主推的方案
具有JS简单易用的特点,也解决了JS的安全痛点,貌似既要……又要……,相当完美。
如果当前阶段要出实际的应用,这个方案确实比“直接JS”要好一点。
但是啊,基于TypeJS,加上一些自己的料,包装一下,就是一个新的东西,给人的感觉总是怪怪的。
ArkTs直觉上就给人一种华为是微软徒弟的一种感觉,就算是“青出于蓝”又如何?逃不出“拾人牙慧”的怪圈。
作为过渡阶段顶顶还是可以胜任的,长久方案,还是“差点东西”……
选择3:仓颉
感觉上像抄袭Swift和Dart,实际上并不是。这只不过是Swift和Dart的先发错觉。语言特征本来就是公开的东西,就像手机,都有打电话,发短信,拍照照片的功能一样,变量,函数,闭包,异步,异常处理……这些基本上都差不多。静态语言编译之后就是二进制码,这个跟硬件都会相关,就算是抄了也用不了。
Swift和Dart已经经过一段时间的市场检验,一些好的地方,直接抄袭,反而是最优做法。好的直接拿来用,并且还加了点自己的东西,用起来更方便,这是很好的一种做法。
一些不好的地方,比如swift为了解决闭包引用循环二导入的无主引用,还要区分什么强引用,弱引用等等。这些似是而非的概念除了带来使用难度和增加出错的概率,一点好处也没有。类似这种垃圾,千万别抄。
异步的处理方式,总体上感觉还是不错的,感觉比await/async要更优雅一点。
所以,如果不是那么着急,可以再等等,等华为完善了仓颉的配套,直接上仓颉是最方便的。