在水群上吐槽一些编程语言推销问题,顺便分享一下。我从小到大,每过几年出一门新语言,就会周期性出一波这些外行程序员来蹭热度。(大国的转行程序员太多了,不懂行没办法,也可能是割韭菜的内行培训班的营销号)现在网上又有一些编程语言推销真的烦,不断在鼓吹它的语言怎么怎么好,但是都吹不到点子上,浪费人的时间。
常见的外行言行:
- 仅仅把一门语言的语法糖当做优点,说它简洁美丽优雅,吹它代码简洁,跟吹神医的没区别。
- 把包管理、语法检测器、编程范式、或者某种机制等等当成是某一门语言的独家武功,殊不知稍微认真学多一门编程语言就不会做井底之蛙了
对于第一点,我们正解应该从工程应用角度去讨论才有意义。以提问的方式举几个讨论例子:
- 为什么 JavaScript 要推出异步关键词、箭头函数,而多线程并发编程迟迟未出(或者说不完善)?
- 你是否认为 Python 的解构赋值、表达式生成器、C++扩展开发等机制很方便那些从事数据挖掘的人员使用呢?
- 为什么语法简单受吐槽的 Golang 却能把其他开发人员吸引过来?思考下它并发编程的优点
其实这些编程语言很多功能都是大家用这门编程语言产生的一些迫切需求,在当时社区内进行激烈讨论,最后定下来一些标准。这就是 PEP JEP EcmaScript 草案的由来。
还有一点:关于编程语言竞争力,其实很多人以为在语法和某些先进的技术特性,这完全搞错了。
一门语言最强的竞争力是它的生态库、工具链和应用解决方案的前途。
你要的特性、语法糖要加随时可以加,跟业界委员会提一提即可!但实用吗?
举个例子:只针对 qt 的移动领域,qt 模仿 Android UI、React、Flutter 之类弄出一套 qml 做界面的技术,然而时机已过,没什么人会用 qml 来搞移动端 gui. 当然 qt for desktop 或嵌入式设备还是具有极大优势的。
还有强扭的瓜不甜:
之前看到有些编程小白写习惯了Java,去写 Python 非要搞个关键词替换让 void=None true=True false=False,然后给 if 加个括号……结果就搞得很别扭