走出程序员的悲哀

  首先我想说的是,如何选择编程语言,在做出选择前,我们要先了解各种语言的优缺点:

  编译型的语言:
  ASM: 汇编语言,几乎接近机器语言,优点执行效率高,是助记符的语言,难学也难理解, 缺点可移植性差, 开发效率低。

  C: 相对汇编要高级的多的语言,结构化的语言,面向过程的,容易学,可移植性强,难点是它的指针(相对初学者);

  PASCAL: 高级语言,和C同时出来的一种语言,也是结构化,面向过程,后来扩展的有Object PASCAL语言和原始PASCAL一样,增加了面向对像的特性。难度是面向对像和它的指针,但相对C语言要好得多,PASCAL的语法优美是任何语言不能比的,数据类型丰富,又支持指针。缺点,被定位为教学语言(我想这是被Brian Kernighan的误导所致),其实PASCAL也
能做很重要的系统。
pascal语言还有人用吗
  ADA: 源于美国军方的一个计划,旨在整合美军系统中运行着上百种不同的程序设计语言编写的程序,命名是为了纪念爱达·勒芙蕾丝而使用Ada, 不做细述。

  COBOL: 面向商业的通用语言,又称为企业管理语言、数据处理语言等,Common Business Oriented Langauge)是最早的高级编程语言之一,是世界上第一个商用语言。在国内不是很流行。

MATLAB: 是一种数学软件,是一种数值计算环境和编程语言,主要包括MATLAB和Simulink两大部分。MATLAB基于矩阵(英语:Matrix)运算,其全称MATrix LABoratory即得名于此。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。在国内不流行。


  C++ : C语言的扩展,兼容C的所有特性(但很别扭),主要优点面向对象,缺点,抽象难学,规则太多,其扩展到无所不能,无所不包了。

  省略若干不实用的语言介绍
  .....
  解释型的语言
BASIC: (Beginner's All-purpose Symbolic Instruction Code,又译培基),意思就是“初学者的全方位符式指令代码”,是一种设计给初学者使用的程序设计语言。BASIC是一种解译式的编程语言,在完成编写后不须经由编译及链接等手续即可运行,但如果需要单独运行时仍然需要将其建立成运行档。

  JAVA: SUN公司的基于C/C++的扩展,风格似C/面向对象的像C++,做了很多优化的工作,并在虚拟机上运行,可以说是其优点也是其缺点,具有跨平台的能力。

  C#: 也叫C Sharp,是ms发明的超级语言(何为超级,就是傻瓜都会用的编程语言),是结合JAVA的模式创造的,也可以说是为了对抗JAVA,ms特此发明 C#,语法也和JAVA差不多,但只运行在Windows平台上的 环境下,linuxSUSE上支持平台所以也可运行在linuxSUSE平台上。其缺点不能通用的跨平台,不能像JAVA那样,但比JAVA的运行速度快。


  脚本语言这里就略了,不讲了......


 如果要选择的话:
  按操作系统平台来学习的话,建议:如果只在windows平台直接学习C#它傻瓜式的,快速开发爽啊;若在unix/linux平台上的话,学习C /C++;

  如果游走在Windows/Unix/linux等多平台上,学习C/C++/java;


  如果只想学习编程乐趣,学习PASCAL,BASIC两种非常合适。


  下面说说关于专业的程序员,该如何选择以及未来的行业发展趋势,我们该如何把握主动权(方向)不能跟着技术潮流,被“淹死”。

  我知道有很多专业程序员,做了多年程序开发,感觉自己技术还像个刚出生的婴儿,没有更很好的技术积累,新技术来临不知道如何选择取向,然后只有慢慢等着被新技的潮水淹死;然而,新的程序员又如洪水般的涌进来,然后又这样的后浪赶前浪的牺生在沙滩上。不是说中国的程序员是吃青春饭的,30岁以后要么做管理,要么转行。其实,我们广大程序员都是在一个恶性循环中转悠;先说个慨念,中国人多程序员也多,当然需求的也多,需求的技术类型也多,所以我们的广大程序员队伍中什么样技术类型的人都有,但学习的编程类型却很单一几乎全是windows平台开发,当然linux也有不少,多的是Web上的开发。为什么会这样,一来是十多年来盗版太猖狂(ms纵容的),windows垄断了中国的操作系统平台,几乎影响了一
代人,可以说是学电脑就是学windows了,那么就可以100%说,学编程就是学Windows API(windows上编程就是调用Win32SDK API了); 去年,ms开始收网了,打击盗版,对我们广大程序员也是非常振撼的,也很郁闷的,用了多年的盗版突然不能用,还出具体措施打击个人盗版,程序员的我们会不会有这样的想法,枉我追随ms这么多年,我们学到的东西也还给他了,要知道我们学他的东西就是间接的给他挣银子。现在还要受打击,早不打晚不打,全民都用上了windows就开始打,这不是居心叵测嘛。但也不能怪他什么,10年前盖茨都说让你们盗版,最终还是要还的。别人先警告在前吗。话说回来,盖茨还是有功的,如果没有windows很多人是不会用电脑的,也不会有现在这么发达的IT科技的。记得2004年的一个老项目经理对我这样说,如果95年没有出来win95他是不会加入IT行业的。可见windows带给人们的变化是多么大的,可以说对ms我们都有这样一种既爱又恨的心情,但他是商业性的公司不是慈善机构,我们不能永远免费的用别人家的东西,这就像你自己家的东西,借给别人用一天两天没事,时间长了你心里是怎想的呢?
  上面扯远了,在windows上编程,我们有个误区,只知道ms和borland的开发工具,又快又容易的,完成一个不大不小的项目,三下五去二,搞定,完成后,那成就感不用说,大家心里应该有数的。于是,一个接一个的项目就这样就摆平了,慢慢的成就感也消失殆尽,但还
是一个接一个的项目,并重复写同样的代码,做同样的事情。几年下来,大家都觉越学越难,越学越不精,越学越没有信心。更可怕的是ms的技术平均两年更新一次,从win9x到NT, 其他的COM、ACTIVEX, 到现在的, 等等,学都学不完,每次更新的技术又只用能管两年,又得更新。ms的开发语言也是损人的主,当初的VB就如同现在的C#,是他们的主打产品,现在怎样么呢?可怜的VB程序员,还有VFP,用VFP的程序员也不在少数,后来的VJ++都是忽悠人的东西,跟错了方向的直接倒下了,没有跟错的,也九死一生。也难怪,商业性的公司,不更新是没有利润进来的,这次打盗版也是利润的驱动下才有所作为的,不然ms可能不会打的。那么我们之前在9x下的学到的东西,到 nt下我们还有多少可以用呢?不言自明,再到现在的 我们之前学的东西,又月多少可以用呢?这就是我们广大程序员的恶性循环,不断的跟在ms的屁股后面跑,跑一次就会损一代的程序员,他们倒下(30转行,或其他),后面呢,还很多新的程序员补上,然后又这样倒下。现在windows vsta还没有用,就来了windows 7, 技术又有了新东西,当然新的东西那绝对是吸引人的,但最重要的是让ms 能营利,他营利是小我们广大程序员惨了,不知又要多学多少西,不知又要多写多少无用的代码。所有说,商业就是商业,不营利,他是活不下去的,那么他只有牺牲众人的利益(大家的时间)来成就自己。记住,在商业公司面前,客户(程序员也是客户)只有被宰的份,要牺牲
也只是客户的利益,它不会牺牲自己的利益的。
    
  再说说开发语言及开发工具之争吧,曾经的开发工具之争,那战争的销烟,可了不得。在开发工具之争中,ms既是运动员也是裁判,为什么这样呢?我们来了解一下,在windows平台上,系统是ms的,主要的技术方向(主动权)发展趋势,掌握在自己手里,它自己又开发IED开发工具。在2002年以前,比较有名的IDE工具开发商,borland的IDE、编译器算是主流的,delphi便是其中最响当当的杰作之一,delphi出来后几乎是borland的天下,后来ms的VB与之抗衡但根本不是一个量级上的东西;到了2002年以后,ms新技术出现,其中诸多原因,borland就开始走下坡了,天平倒向了ms,值到现在,ms一直统治着windows上的开发IDE。在ms的垄断下,他带领着广大程序员朝左,程序员们就不敢朝右,一且就是按照ms设计的路线走,掉队的就被淘汰出去。在这样的环境下,程序员们没有选择,没有他路可走,除非不在windows上做开发。因此我们只站在windows平台上这个圈圈里,看到的天空,也只有window这么大一块,和坐井观天没有任何区别,那么该如何跳出这个恶性的环境呢?当然,操作系统平台,其他语言的开发的选择还是多的是,要不要出来,看自己了,或许你会说,UNIX/linux平台难啊,没有比windows更简单的了,在这我要说的是,unix /linux是操作
系统入门难,入门后, 是比windows还要容易,那有windows那么复杂的东西,其实windows是最复杂的系统。用过其他操作系统的人都知道,不光是编程还是操作系统的使用上,只是unix/linux没有习惯,windows已经习惯多年了。
  说说unix/linux编程吧,在unix/linux平台下编程,用的最多是C语言,C++做GUI库界面的多。IDE集成开发环境就少,有名的有 KDeveloer ,但都是没有windows上的方便易用,在unix/linux下用VI(代码编辑器)的人也不在少数,GCC编译,GDB调试;也有自动化工具来简化工作,但比较麻烦抽像,和windows下编程有质的不同。在windows下可不用写一句代就可以运行一个很好的程序框架来,linux下现在也有可行的,QT就行。那么有了unix/linux编程的选择,自己可以不倒在ms的技术浪潮下了,因为我们在unix/linux上会有更多的选择,并且不会出现像去年那样的盗版尴尬局面。只在windows上跟着ms做开发,它束缚了我们视野,阻碍了我们的发展,无论我们怎么学习它(windows)自己只能算是一个小小的蚂蚁,给ms积累粮食(给它赚银子),因为学会windows编程就是间接的为ms挣利润了,而更坏的却是,我们永远有学不完的新技术,永远积累不到经验,永远像个新人一样的在学习它(windows)。
    

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。