声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4536|回复: 5

[其他相关] 计算机语言浅谈浅浅谈

[复制链接]
发表于 2010-12-6 08:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 wqsong 于 2010-12-6 19:46 编辑

接着Rainboy的语言话题,再扯几句关于语言选择的问题。
关于选择计算机语言的个人看法,语言不应该成为包袱,语言就是工具,该用什么时候用什么,当然应该有几门拿手的。
经常听到的几种说法:

1、我C都没学明白还学其他的语言。(说实话,C、C++是很难的两门语言,没个三五年时间别指望能学多明白,三五年其实也很皮毛。)

2、我们老师要求用XX语言写。(快毕业了,很多人忙着做毕业设计,最常听到的一句话,很无语。。。除非是程序扩展,也就是接着别人的写;再或者是商业要求;再或者你是职业的,否则挑语言就是扯淡。做课题或项目,得到结果为目的。就像吃饭喝水的关系,吃饭需要筷子就用筷子,喝水需要吸管就用吸管。非要吃饭用吸管,喝水用筷子也可以,谁拿你也没辙。)

3、XX语言太难,内容太多,学不会。(Brainfuck语法很简单,就8个运算符,你可以尝试一下。复杂的语法以及数据结构就是为了简化编写,增强语言功能。另外,语言学的是想法,不是语法。不是在那些类库、函数库上面做文章。对语言的掌握情况绝对不是以你知道几个函数,会用几个类来衡量的。)
……

最后再调侃一下常见几种语言的特点:
1、汇编。汇编的强大是不用说的,可以说任何语言都是一次间隔或者更多次间隔基于汇编的。
优点:无所不能;速度快;直接接触硬件。
缺点:指令复杂;数据结构难以实现;开发周期长而且难度大;维护难度也大;移植性差。
调侃:汇编就像达摩祖师,不是每个人都可以做到的。

2、C/C++。C/C++语言功能也非常强大,可以看作是汇编的升级版本,尤其C。
优点:几乎无所不能;简洁(指的是C);运行速度快;偏离硬件近(也可以说是缺点)。
缺点:类库不丰富(指的是C);内存手动管理(也可以说是优点);调试难度大;移植性差;开发成本高。
调侃:少林七十二绝技,每一次进阶都需要庞大的佛法化解。

4、java。半解释半编译语言,sun(现被Oracle收购)大作。
优点:偏离硬件远(也可以说是缺点);比较易学;移植性好。
缺点:看Oracle/Sun脸色。
调侃:犹如武学大家,武学渊源深厚,但是更多是来源于他们的背景。

5、C#。也可以看作是半解释半编译语言,Microsoft大作,把它看作是微软的策略更为合适。
优点:偏离硬件远(也可以说是缺点);比较易学;移植性好。
缺点:得看Microsoft脸色。还有就是linux下不用说了。
调侃:在地方霸主的前提下的武学世家,能力强大,更多是来源于他们的背景。

6、Perl。解释性语言。
优点:几乎是无所不能;库支持好;开发成本低。
缺点:速度稍慢;语法凌乱;格式散漫;难学;维护难度大。
调侃:就像《葵花宝典》,得到必须付出代价。绝无贬低Perl之意。仅仅是说速成、强大以及代价的关系。

7、Python。解释性语言。
优点:功能强大;库丰富;简单易学;开发成本低;容易维护。
缺点:速度稍慢;格式限制严格(也可以说是优点)。
调侃:《玉女剑法》,姿势优美,飘逸出尘。

附:2010年11月份Tiobe给出语言排行榜
QQ截图未命名.png
走势图:
tpci_trends.png

可以看到尽管java C C++稳居前三,但总趋势一直下降。而相反,一些新兴语言如C#,Python,Ruby稳步提升,Perl开始的时候可能火过头了,现在逐渐收敛。至于Object-C,估计是苹果效应吧。。。

点评

赞成: 4.0
赞成: 4
  发表于 2014-3-26 16:51

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2010-12-6 14:30 | 显示全部楼层
总感觉学语言的基础是一回事,使用这个语言写出良好的设计是另一回事,然后用这个语言的既有程序框架(公司出的或者是别人写的)又是另一回事。
呵呵,你评论了那么多语言和方法,如果将程序设计比作武功的话,请问你心目中的《天下武学总纲》是什么(书,思想,语言,what ever)?
 楼主| 发表于 2010-12-6 19:11 | 显示全部楼层
回复 2 # Rainyboy 的帖子

或许是Bruce Eckel一直强调的thinking吧。同样一本TIC++,每个人从中得到的信息肯定是不一样的。
也拿武侠小说说事。正统武学中修炼,有人从内到外,有人从外到内,也有人内外兼修。其实怎么都可以,看个人取向了。另外一些所谓的邪门武功,威力大,对自己伤害也大,我觉得Perl够邪乎的,有时候读Perl程序感觉就是在读随机字符串,功能强大这个就不用说了,据说有人拿Perl写驱动。听一个同学说华为现在语言培训就开设Perl和Ruby,用在哪些方面就不知道了。

嗯,基础是一回事,设计又一回事。基础是工具使用熟练程度,设计是看对要做的事的了解程度以及抽象能力。框架,其实一直不喜欢用VC系列,写一个程序都不知道怎么出来就出来了,但是MFC框架设计以及那写调试组件的确让人无话可说。

我自己的感觉就是原来太依赖C/C++了,什么事总想用C/C++搞定,近两年才开始用一些其他语言。很早以前用C++写过一个基于UDP的简单聊天程序,写了400多行,用Python改写了一下才60多行。慢慢地发现,走出去看看,外面的世界很精彩。但反过来说,有得有失,让我从新来学的话,可能还是会选这条路。。。
发表于 2010-12-6 19:25 | 显示全部楼层
回复 3 # wqsong 的帖子

我也用C#写过UDF聊天……但是只能用在局域网……
有些时候库类设计得太完善让使用的人产生一种很抵触去深入学习的情绪……
 楼主| 发表于 2010-12-6 19:43 | 显示全部楼层
回复 4 # Rainyboy 的帖子

是啊。呵呵。。。用脚本语言到不想这些框架,总觉得是应该的。。。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-5 14:47 , Processed in 0.084642 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表