分类:编程 标签:, Python, Ruby
陆陆续续学了10几种编程语言,也该停下来思考下了。
先列出学过的语言名单:
低级语言:80x86汇编语言
中高级语言:BASIC、C、C++、Java、C#、ABAP
脚本语言:JavaScript、PHP、Python、Ruby
查询语言:SQL、GQL
标记语言:HTML/XHTML,XML
其他语言:CSS,YAML,JSON
最开始接触编程语言是小学5、6年级,一台“山寨”学习机上玩BASIC语言。
那是实实在在的玩,照书抄了个超级玛丽的小程序,然后就和弟弟妹妹一起玩了。
而且没法存储,每次玩还得敲2、3个小时代码…
之后一直很懒,到了高三快毕业时,闲得无聊又玩起文曲星来。在那上面写了不少原创的BASIC游戏,总算对编程入门了。
不过写起长程序来就感觉到BASIC的不足了:麻烦的行号限制了可扩展性,到处都要GOTO,还有那该死的end标记,以及文曲星上无语的堆栈溢出错误。
优点也很明显:简单易学,支持多平台(不知道还有哪门语言可以在学习机和文曲星上使用)。
大一接触了C,花了1周把教材啃完了,发现我在教材上标记了近百处错误,于是谭浩强的书便再也不看了。
然后转向了国外的书籍,终于把C的大部分语法啃下来了。那段时间最主要就钻指针、struct,以及语法的细枝末节,结果除了考试,很多东西基本上不会用到。
刚接触C时,给我的感觉是很简洁,很轻巧。不用写烦人的行号,用括号代替了该死的end,好像天堂般的感觉。
用久了又渐渐觉得别扭了,标准库里可重用的东西太少了,一个很简单的应用都要自己发明轮子。而且就算能重用,用起来也不是那么舒服。
例如操作文件是件非常恶心的事,要做好多我得对照书才能写出来的步骤。
还有那该死的字符串,标准库提供的函数都不安全,到头来只能重写。
我想很都曾在这2个问题上栽过:用户输入了错误的数据,然后输入缓冲区就没常读取了;printf("%f", 10 / 3);为什么输出的是0.0?
而且C还有个很严重的问题:名字太短了,于是搜索时很难找到相关内容。之前学校的教育网是屏蔽Google的,百度的结果我就不说了,单就学校图书馆里搜索C,会出来一堆乱七八糟的东西这点,就让我很无语了。
之后半年,我又开始学习C++了。不幸的事再次发生,花了一周读完那本250页左右的教材,我大约标记出300处错误…于是基本不再看中国人编写的书了。ruby语言学习
然后翻了几本很厚重的书,才把C++的语法啃了下来,觉得它实在太好了:书写简洁,标准库比C丰富很多,性能优秀,使用面也很广。
我感觉C++已经很符合我的口味了,至少字符串是对象了,至少引用比指针漂亮多了,至少cin和cout比scanf和printf方便多了。而且我很喜欢它的操作符重载,确实是个好东西。
只是随着我的深入,C++越来越让我感到困惑了:阅读《C++ Templates》这本书,用掉我2周时间。我不得不惊讶其模板系统的强大和方便,直到今天仍觉得这是区别于其他任何语言最重要的东西。可是那晦涩的语法规则,以及写错后莫名其妙的语法错误提示,让我觉得真是灾难。
在查询方面,C++比C表现得更差,因为+号在查询时被当成“与”操作了…
可纵使C++让人头晕,我却一直没有停止对这门我觉得最复杂的语言的热爱,直到最近…
然后学习了汇编语言,不得不说这门语言对于理解C/C++是非常有帮助的。
通过将C++的语句在脑海里翻译成汇编语言,我了解了很多C++语法的实现,也就明白了怎样做效率更高,以及为什么C++会采用这种语法。
然而在我看来,虽然对于C/C++程序员来说,汇编语言是门不可不学的语言,而且语法也并不复杂,但写起来实在太费劲了。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-31450-1.html
不配做人
巴菲特那叫投资
要面对复杂多层次挑战