用过的那些编程语言

第一次接触编程是1995年,之所以开始学习编程,可能是当时比较无聊总要找点事做。时间过得如此之快,一晃就二十多年了。突然想回忆一下自己接触过得那些语言。

1、C/C++

和很多人一样选择它作为入门语言。选择C入门,很有偶然性。当时大学里还是以Pascal为主,但我实在不喜欢它规规矩矩的样子;后来在图书馆借阅各种语言的图书,最后还是被C的灵活性吸引了。从此开始了两年多的学习生涯,也没有什么工程实践,就自娱自乐做点小玩意。

毕业后,直到2000年底才有了一个视频项目的工程实践机会。总的来说C/C++就像手动挡汽车,啥都要你自己来处理;可能你喜欢这种操控性,这也意味着你需要更多的练习才能成为一个合格的程序员。

个人还是比较喜欢它的,它的缺点其实就是它的优点,看你从哪个角度去看。如果你不需要它的这些优点时,应该考虑使用其他语言。

2、Go

很晚才接触,2016年一个偶然的机会看到它。很快被它吸引了:

简单

没有继承,更模糊的面向对象;这点像极了现实世界,现实是模糊的,是归纳性的;就像你为身边的朋友贴标签一样,A住着千万豪宅,A是“有钱人”。

有针对性

为并发提供了专门的解决方案,goroutine提供了并发处理的解决方案,比nodejs的解决方案更彻底也更符合人的思维逻辑。

部署简洁,即拷即用

这点很符合人类的思维逻辑:“编译结果就是完整的”,不需要容器,不需要依赖动态库,一个文件即可。

缺点也是很多:首先生态还不成熟;其次感觉工程管理工具方面还需要加强;语言也是可以再加强点,比如对反射的加强,至于泛型是否全面支持要慎重。

这些都无法阻挡我喜欢它,可惜目前还没用于工程实践的机会。努力去创造机会吧。

3、Powerbuilder

工作后工程实践的第一个工具平台,对于C/S项目可以认为是最简单、开发速度最快的平台,现在都忘得差不多了。

4、CSharp

C#正式版发布后就开始使用了,毕竟以前用VC,同一个开发工具切换也比较自然。.NET平台的虚拟机和语言设计感觉比Java强,但微软的保守势力让它困守于Windows平台,导致其丧失了击败Java的机会。直到Azure出现才收复一些失地。可是国内这种颓势已无可挽回。

自己职业生涯Web应用是从.NET始,最后却不得不切换到Java;没办法,客户的AIX上真不敢用它的开源社区版。

5、Java

Java是事实上企业级应用的标准语言和平台。从2004年才开始接触,以前一直在微软平台打转。

Java的优点一大堆,就不讲了。说说本人不喜欢的地方,越来越复杂,配置越来越多,管理成本越来越高;连以前以简单著称的Spring都有点收不住脚了。

现在,很多语言都开始撬Java的墙角;但是Java依然是大项目的首选。

6、Javascript

2005年,第一次使用Javascript写的一个模块;那时没有特别的印象,也就是现学现用;后来接触到V8、electron、nodejs,突然感觉JavaScript应用领域增多了。

个人认为JS还是更适合前台,可以是Web、也可以是像VSCode这样以WEB为基础的桌面应用。但用于后端开发(nodejs),总有点别扭;或者换个角度看nodejs本身是一门新语言/平台,它有自己运行容器、开发习惯和逻辑,有自己的库体系,有自己的生态圈。它仅仅借用了js的一个壳。

个人建议启动以nodejs为核心的项目要谨慎。

7、Swift

又一门大而全的语言,除了反射稍弱其他堪称强大。从函数式编程到可选链,还有只出现在C++中的反初始化,呵呵你想要的一切都有。可惜在后台开发目前还看不到前途,但作为IOS和OSX开发还是非常不错。

期望能更快的消灭一些OC的影子,让它更像一门干净的语言;4.0中已经看到了可喜的进步。

8、Python

一门运维工程师常用的语言在AI领域大行其道,其实也是有道理的。作为工具语言,用的人多了库也就多了,再加上很适合非专业人员使用,就形成了良性循环。

自己也就是会一点而已。

9、VB、Delphi、LotusScript

这都是曾经用过的,现在都仍到爪哇国了。

小结

林林总总十几门语言,现在还有能力用来编程的也没几门了。

最理想的情况,需要会哪些呢?C/C++、Java和JavaScript。毕竟存量项目使用这三门语言的最多,历史惯性也能保证其生命周期会维持相当长时间。“会”未必要精通,能看懂、能慢慢写就好。

在此基础上,好好掌握Go和Python是必要的;Go是为云计算准备的语言,Python是AI最方便的语言(其实更重要的是库)。

语言这么多也无需都精通,能完成自己的目标就好。当然,程序员面对的也不都是语言,大多数时候是在学习领域知识、算法、类库、容器、框架平台等等,语言的学习只是必要条件。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180906G1321I00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券