点滴积累,融会贯通

-----喜欢一切有兴趣的东西

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  269 随笔 :: 0 文章 :: 418 评论 :: 17 引用
 

一、我的语言历史

很早就接触编程语言了,高中时用QBasic,由于刚刚接触编程语言觉得挺难学的,但学会一点以后就好了.上了大学学的计算机专业,大一一上来就学习了C语言,觉得C的功能满强大的,但是就是编程太费时间了.后来又学习了Visual Basic 6 觉得好多了,做程序容易多了,但程序效率又下来了,于是有开始学VC ,再后来学校开设了Java 汇编语言,又学习了这两门语言.再后来要毕业了,为了工作有自己学习了VB.NetC#.Net,现在工作用C#.Ne.

二、我对语言的认识

以前觉得每种语言都是不同的,即每种语言既有优点也有缺点,总是拿这种语言的优点去比较另外语言的缺点,结果学了这个又学那个,觉得学习语言太累了.

最近突然仔细想了想,觉得其实所有语言都是一样的,基本上都是由3部分组成:算法;思想;语法.

三、组成部分之一:算法

每种语言要想作成程序,执行一定的功能都要把语语句按一定的顺序排列,在我认为即使算法的体现.语言没有好坏,决定程序效率的只有算法,因此算法在很大程度上决定程序的好坏,而对与语言来说,它只是语言的很多组织形式.

四、组成部分之二:思想

思想即我们通常所说的语言是面向什么的,有面向机器的,面向过程的,面向对象的,面向方面的……等等,然而无论面向什么的语言,总要人来用吧,所以我个人认为对于语言来说面向什么只是说创建这种语言时人们赋予它什么思想而已,对于使用者来说只要我们明白思想以后对于同一思想的语言基本没什么区别,例如面向对象的JavaC#我个人认为只要精通其一,另外一个就很好学,他们的区别就是我要说的第三部分---语法.

五、组成部分之三: 语法

语法可能是我们认为各种语言不同的根本原因,因为各个语言的语法确实存在很大的不同,这也是学习新语言我们最先,也最重视的.其实不然,只要我们精通前两方面,在学习新语言时就很容易了,对于学习新语言来说,语法只是个熟悉,熟练的过程,只要经常使用就可以了.

六、总结

这是现阶段我对于语言的认识,希望大家也来谈谈看法,同意不同意大家讨论一下.

 

另外,dudu原谅我把文章放在首页,只是希望大家来讨论一下.

posted on 2006-02-17 09:56 小寒 阅读(2050) 评论(18)  编辑 收藏 网摘 所属分类: 软件工程专栏

评论

#1楼  2006-02-17 10:01 HD      
过程语言:basic可以不学,pascal可以不学,但C不可以不学。
对像语言:java可以不学,C#可以不学,但C++不可以不学。


别的不多说了。
  回复  引用  查看    

#2楼 [楼主] 2006-02-17 10:06 小寒      
照楼上这位仁兄的看法,我还不算失败,虽然你说可以不学的我都学了
但你说学的我也学了,虽然c++太难了,我只学了个开头
  回复  引用  查看    

#3楼  2006-02-17 10:11 装配脑袋      
我认为用编程语言来干活和研究编程语言是两码事。HD倾向于按前者理解。不然Pascal/Basic/C/Java/C#/C++只覆盖了编程语言中很窄的几个种类。
  回复  引用  查看    

#4楼  2006-02-17 10:22 Cavingdeep      
纯粹对于语言来说,我觉得选择在于语法,但是人们在选择一门语言的时候不但但只看语法,也要看与这门语言紧密相关的类库、运行机制与环境等等。

比如虽然我很喜欢Python的语法,但是在做大型的企业级程序时我不得不选择C#或者Java,因为它们的运行机制、环境与语法类型(静态语言、动态语言)都是不同的,所以它们所擅长的也是不同的。Python作为script语言真的很强,很少一段代码就可以搞定比较复杂的一段逻辑,但是这样的快速开发只适用于小的script,因为可维护性不佳。反过来,Java、C#、C++等语言做script工作就很烦,效率太低,用C语言去做Perl的工作更是能累死人(得不偿失)。再比如,FP类型的语言做数学就很合适,要想用OO语言去做这类工作就很傻!

类似的例子还很多,XML做数据+结构,Tex做文字格式化,等等等等。甚至连3D行业中的Ray-Tracing技术还有专门的描述语言呢(见POV-RAY)。

结论,学习多种语言还是有必要的,不同的语言有不同的焦点,用来处理不同的工作。
  回复  引用  查看    

#5楼  2006-02-17 10:29 ff [未注册用户]
语言就是工具,用来叫计算机作什么的。这是最基本的。
要让计算机作什么,必须要把你的语言进行编译,所以一个语言的功能强大与否,除了你的设计思想外,还要有好的编译器,把你的语言表达给计算机执行。如果你的语言的表达不充分或编译器不聪明,就会影响计算机的执行。。
语言是表达,编译器是翻译,计算机是听众。
  回复  引用    

#6楼 [楼主] 2006-02-17 10:33 小寒      
对于不同的情况,使用不同的语言处理确实可以省很多事
学习多种语言也是很必要的,我认同这个观点
但我们在学习语言的时候,是不是一味的学习
我还是认为语言间有很多共性
只要掌握了这些共性学习起来才会事半功倍
这样,程序员才不会在学习新语言间耗费太多时间
  回复  引用  查看    

#7楼  2006-02-17 10:42 Runner      
楼主对编程语言总结的不错!但我觉得除了算法语法思想外,还应加上一点——类库。学习语法其实是很快的,学编程更多时候是在学习类库。如果你选择C++,就要学MFC;学java,就要了解J2SE;学C#,就肯定得懂得Framework。
不太同意HD的看法,我不否认C和C++的确是函数编程和对象编程的典范,但还不至于盖住其它语言的优点。每一种语言都有其独特的风格和长处,只有深入学习才能了解到,不然现在就不会有这么多种编程语言存在了。
而且,无论是C++也罢,C#也好,还是java,目前来说都是静态的函数式程序语言。个人觉得这些之中根据需要认真学好一个就可以了,其它的大致了解。如果要学习更多的语言,应该去尝试一些其它风格的语言。比如动态语言或人工智能语言等等。

  回复  引用  查看    

#8楼  2006-02-17 11:08 OOP      
从工程学上来讲,哪个能更快更好的解决实际问题,就学哪个
  回复  引用  查看    

#9楼 [楼主] 2006-02-17 11:22 小寒      
问题在于,我们不可能永远做一个工程
或做一种工作
语言是会被不断更新的
我们将如何面对日益更新的语言呢
  回复  引用  查看    

#10楼  2006-02-17 11:51 李飞侠 [未注册用户]
语言是死的
人是活的

所以还是要看自己的 coding + 领悟 + 总结
  回复  引用    

#11楼  2006-02-17 12:13 Duiker      
编程和语言关系不大,而是一个适合和态度的问题。
  回复  引用  查看    

#12楼 [楼主] 2006-02-17 14:44 小寒      
学习语言要丛简单的入手
学通一种以后,不断总结
在学习,在总结
最后可以写出自己的语言
当然,这只是理想而已
为理想而奋斗
  回复  引用  查看    

#13楼  2006-02-17 18:41 smalldust      
算法不属于语言。不同语言可以写出同样的算法。

算法就好比,叙述演讲的方式。无论你用中文还是英文,虽然它们语法完全不同,但是你可以描述出相同的事情来。这个就是“算法”。
  回复  引用  查看    

@Runner
如果你选择C++,就要学MFC??

那要看你是学ISO C++还是Microsoft Extension C++了
  回复  引用  查看    

#15楼  2006-02-17 20:37 xmthor [未注册用户]
@Runner
学C++不一定在windows上做开发。
  回复  引用    

#16楼  2006-02-18 12:49 航天奇侠      

楼主说,算法,思想,和语法。

算法是处理数据的,而数据是有结构的(大部分是简单结构),所以也应该学习数据结构。

思想,既有面向对象等基本思想,更有具体的,构建体系和类结构的设计模式等。

语法,有4种流程,调用,循环,顺序,判断。
有构建模块的语法,有实现执行的语句流。

语句的类型有,判断,跳转,算术运算,逻辑运算,位运算。
  回复  引用  查看    

#17楼  2006-02-20 11:44 A.Z      
我觉得编程最主要的是理解和应用环境(硬件和框架)语法和算法是其次的。因为真正的高级别数学算法不是我们实现的,最多的工作是组合和复合简单逻辑。不同的编程环境有不同的原子复杂度。本质上还是一样的。
  回复  引用  查看    

#18楼  2006-02-22 00:59 ctor [未注册用户]
Have a look at Scheme :-)
  回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-06-30 09:23 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: