朕的感情史-编程语言篇!

 

对于每一个有理想有追求的程序猿而言,他们可以没有对象,但是不能没有自己的喜欢的语言。

古言道:兄弟诚可贵,老婆价更高。若为编程故(指死亡之die~),躲也躲不掉。

好吧,接下来我要正式介绍一下朕的后宫!

第一任C++

大一学习编程语言最开始上手的就是C++,不过学了半天也没学出个所以然来,经常挣扎于混杂的概念之中,却又缺少电脑无法有效开展实战编程。后来随着考试结束,我和她的感情也就慢慢的越来越淡了。

好吧,不过呢,作为系统编程和游戏开发的无可替代的语言,她的高性能与开发效率综合而言目前怕是所有所有的都比不上。

大部分企业面试笔试好像都会问到C++,感觉不会点C++真的不配说自己是程序员,但是我觉得人生苦短,何必找死呢。感觉C++是我等屁民不可轻易染指的高冷女神。

第二任C

为了更好的学习C++,曾经又跑去学了C,因为我觉得她是C++的姐姐吧。不过还是由于驱动力不足之类的原因吧,最终也没能学出个卵子,不过也在某种程度上理解了C++相对于C而言做的改进,例如多态、名称空间、类等对于结构化的编程还是挺有用的吧。

C语言也可以做的很吊,但是由于语言的设计里本身并没有许多高级概念,所以用起来不是很直接方便,搞系统编程或者其他对效率要求极高的才会用吧。看上去没有C++的高冷,但是也不好追,并且语言特性相对低级,自己本身不太喜欢。

第三任Java

Java这门语言其实真的是相当不错的。如所有的类都有一个共同的基类,只能继承自一个父类,其他的通过接口来实现,相对于C++的名称空间来说要好不少。

Java的语言世界里,程序总是在一个个实例化的类或类本身中的属性和方法中穿梭,某种程度上来说其实挺好的。相比C++而言,普通的人很容易上手并能培养起初步良好的编程习惯。

我在Java实验课程中手撸一个什么系统,在此过程中,初步培养起了软件编程的极初始的经验体会。后来学习Android过程中,由于也要用到Java,所以功底还算可以。

但是在定义和使用的过程中,还是会感觉到比较冗杂,当然规矩多了某种程度上也算好事。那些之后在JVM之上出现的其他语言,也是同样在JVM上运行程序,但是相对而言可能更简洁、更少束缚、更强表现力,如Scala、Kotlin等等。

曾经问我家邻居学软件怎么入手,他说你就学Java吧。Java语言在企业级应用系统开发中的主导地位怕是很难被动摇的。

无论什么时候,Java都是一个值得选择拥抱的小姐姐。

第四任C#

C#开发最初的目的可能是微软用于应对Java吧。

C#这门语言在面向对象的语言家族中还是很不错的,某些设计理念比Java还要先进。然而正如以前的VBScript等更多的是被捆绑在Windows操作系统中,不开源,在某种程度上也算束缚了它的发展进步。虽说现在开源了,但是由于Java已经占领了大部分市场,C#的份额还是挺小的了。

因课结缘,课完缘尽。
定位和Java类似,但是对Java更有好感。

第五任Lua

不得不说,Lua真的是个好语言,只是之前没怎么好好学,并且它上手极为简单容易。现在的话,很少接触,因为基本上用不到。对于它的C源码还是有必要看一下的。感觉很有好感的小妹妹。

第六任Python

Python的设计哲学现在看来真的是极好,这些年的发展壮大足以说明一切,在大部分编程应用领域里几乎都有了它的身影。极强的代码阅读性,上手很容易。于我而言,她现在是一个贤妻良母型的。

第七任Ruby

Python和Ruby各领风骚,许多爱好者各爱各的好。Ruby我以前也学过一下下,Ruby好像是基于对象的,里面啥都是对象。相对而言,用法超级灵活,而且比较简洁炫酷,但是可能因为用的少,我看着Ruby代码好像阅读起来不是很爽,比Python而言差远了。开发效率极高,Ruby on Rails嘛,但是好像项目做大之后就会受限于它的运行效率。现在也早就分了。感觉Ruby和我三观不符,私人感觉Ruby是一个比较追求时尚新颖的女生,比较开放外向。

第八任Scala

我曾经学习过很短时间的Scala,网上的说法是学习起来很复杂,我当时感觉还不错,后来因为用不到也没在学了,可能还是不太感兴趣吧。也是一个不错的小姐姐,但是如果太专情于此,怕是不好吃饭。。。

第九任aardio

最爱,没有之一。虽然它生于Windows,长于Windows,最终也将死于Windows,但是这还是无法阻挠我对它的喜爱,况且正是由于仅限于Windows平台,她的美才更加表现出来。她的不开源我也理解,是我我也不开源,正是一鹤校长非常爱她,才不允许其他误解开源精神的染指搞事情。

动态语言,快速开发,名称空间、类,句法灵活,调用简单,几行代码就可以实现复杂的功能,并且很方便的就可以开发出控制台、桌面、网络、后台程序,可以方便与其他语言实现互相调用。

自从无意间了解到这门语言之后,感觉一下子就被吸引到了,因为她当时完全符合我对编程语言的所有需求,他妈的当时把老纸激动坏了,差点一宿没睡着。当时学了编程两年多,都写不出个什么桌面程序来,用Java写的太丑,用C#开发的还得运行在.Net框架上。一点成就感都没有,我对可视化的界面还是很执着的。

后来花钱报了班,看视频学习,有时会在群里探讨问题,有时会直接向校长询问,感觉真的很值。后来我数据库实验、编译原理实验、操作系统实验等等全都是用的aardio语言,因为用起来实在是太爽了。

于我而言,aardio是我的初恋,是我第一门喜欢上的语言,虽然现在由于没有需求已经暂停和她失去了联系,但是我会永远喜欢她!

第十任Processing

Processing这门语言用来做艺术设计以及自然模拟都是很不错的,并且跨平台,可以生成可执行程序,本身使用Java语言写的,同时也有JavaScript版和Python版,也是用不到所以没在用了。在我看来,像是一个很可爱的萝莉。

第十一任JavaScript

个人感觉,JavaScript最屌了。它的语言哲学相对来说和我的三观最为符合,原型继承,闭包等等概念都很不错。随着es6的出现,它的语法规范感觉十分高级,个人十分喜欢,在某种程度上,部分设计已经超越了aardio(感觉aardio是集许多好的语言的特性于一身)。事件驱动、非阻塞I/O、回调的NodeJs感觉也很棒。是一个我非常想深入学习的语言,对我来说是一个极具诱惑力的女神。

第十二任Racket

Racket是Scheme的一种方言,而Scheme则是Lisp的一种方言,语言中处处都是函数式编程,感觉非常新颖且高大上,但是程序复杂起来了之后阅读体验极差,远远比不上Python。接下来打算有时间接触一下下,多吸取里面的先进思想。

第十三任Julia

2018/3/5刚接触Julia语言,感觉真的挺厉害的,元编程,并行计算,超高性能,语法像Python、用法像Lisp、速度像C,渍渍,真是厉害了~

第十四任

第十五任

第十六任

第十七任

……

接下来的语言还没出现或者还没接触到,可能今后才会冒出来,或者是我自己设计定义实现的吧……