第一次接触编程是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最方便的语言(其实更重要的是库)。
语言这么多也无需都精通,能完成自己的目标就好。当然,程序员面对的也不都是语言,大多数时候是在学习领域知识、算法、类库、容器、框架平台等等,语言的学习只是必要条件。
领取专属 10元无门槛券
私享最新 技术干货