学编程是用来做事的,不是装逼的。主流那几种C++, Java, Javascript, Python,特点是各有各的缺陷(有的还很严重,比如JS那渣设计让人吐槽不能),但是做擅长领域的事情都很高效。虽然在学术上不完美,但工程上过得去就行了。软件开发说到底是一个工程问题。
还是拿Javascript这门渣做例子,虽然丑,有些设计不着边际,但架不住用的人多(浏览器打下的底子,有哪个语言的解释器普及到像浏览器那样每台机子都有吗?),所以有问题有社区帮你解决,从低层比如babel到高层(各种库)全方面支持,踩到坑Stackoverflow分分钟有答案。越是支持充分,用的人越多,人越多支持越充分,这是个良性循环。至于语言本身的问题,上网发帖骂两句发泄下就好了(甚至都不用亲自骂,槽点早就有大牛写好了,你去点个赞就行),骂完还是真香。
你要是换一门学术上完美但是冷门的语言呢?比如Lisp... 做个项目都组不到团,招聘一下,来的人大致都是只写过玩具代码的。踩到坑上google一搜,屁都没有,只好自己解决。搜开源库要不没有只能自己造轮子,要不就是个0.1版几年前的库,原作者生死不明,Github上开个ticket没人理。再完美有什么用呢?
所以说到底,写程序是为了做事,赚钱,不是出来装逼的。就比如现在找个工作都得英语六级,你去读个毛利语博士学位然后嚎叫你多小众多珍贵,你看有没有人理你啊
编程语言是用来写软件的,只是写软件的工具而已。等你掌握编译原理之后也能随便自己设计点不同的编程语言来,只是通常都会存在设计问题,也没有针对性优化而已。
假如你现在用一个自己设计的语言来编程序,我们先假设你设计的非常好,但是一般总归有bug的,你还负责一直给编译器改bug吗?(其他小众语言同理)就算有些语言始终有支持,但是语言冷门导致的就是学习的人少,做大工程的时候你怎么招人?难道招了人之后再额外投入资源培训?还有就是冷门语言基本上是没有生态圈的,意味着没有现成的东西可以用。好比你现在想用分布式计算模型比如说Spark的RDD,难道你要自己实现一遍?
编程不等于软件开发,普遍还是不理解......