【vfp开源代码栏目提醒】:网学会员,鉴于大家对vfp开源代码十分关注,论文会员在此为大家搜集整理了“程序员 程序员星期 - 软件工程”一文,供大家参考学习!
程序员:星期 6不谈技术-gt gt 走出程序员的悲哀疯狂
代码 http://CrazyCoder.cn/ :http:/CrazyCoder.cn/BlogDigest/Article75307.html 走出程序员的悲哀 首先我想说的是,如何选择编程语言,在做出选择前,我们要先了解各种语言的优缺点: 编译型的语言: ASM: 汇编语言,几乎接近机器语言优点执行效率高,是助记符的语言,难学也难理解 缺点可移植性差 开发效率低。
C: 相对汇编要高级的多的语言,结构化的语言,面向过程的,容易学可移植性强,难点是它的指针相对初学者 PASCAL: 高级语言,和C同时出来的一种语言,也是结构化,面向过程,后来扩展的有ObjectPASCAL语言和原始PASCAL一样,增加了面向对像的特性。
难度是面向对像和它的指针,但相对C语言要好得多,PASCAL的语法优美是任何语言不 能比的,数据类型丰富,又支持指针。
缺点,被定位为教学语言我想这是被Brian Kernighan的误导所致,其实PASCAL也能做很重要的系统。
ADA: 源于美国军方的一个计划,旨在整合美军系统中运行着上百种不同的程序设计语言编写的程序,命名是为了纪念爱达勒芙蕾丝而使用Ada 不做细述。
COBOL: 面向商业的通用语言,又称为企业管理语言、数据处理语言等,Common BusinessOriented Langauge)是最早的高级编程语言之一,是世界上第一个商用语言。
在国内不是很流行。
MATLAB: 是一种数学软件,是一种数值计算环境和编程语言,主要包括MATLAB和Simulink两大部分。
MATLAB基于矩阵(英语:Matrix)运算,其 全称MATrix LABoratory即得名于此。
它在数学类科技应用
软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户 界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
在国内不流行。
C : C语言的扩展,兼容C的所有特性但很别扭,主要优点面向对象,缺点,抽象难学,规则太多,其扩展到无所不能,无所不包了。
省略若干不实用的语言介绍 ..... 解释型的语言BASIC: (Beginners All-purpose Symbolic Instruction Code,又译培基),意思就是“初学者的全方位符式指令
代码”,是一种
设计给初学者使用的程序设计语言。
BASIC是一种解译式的编程语言,在完成编写 后不须经由编译及链接等手续即可运行,但如果需要单独运行时仍然需要将其建立成运行档。
JAVA: SUN公司的基于C/C的扩展,风格似C/面向对象的像C做了很多优化的工作,并在虚拟机上运行,可以说是其优点也是其缺点,具有跨平台的能力。
C: 也叫C Share是ms发明的超级语言何为超级,就是傻瓜都会用的编程语言,是结合JAVA的模式创造的,也可以说是为了对抗JAVA,ms特此发明 C,语法也和JAVA差不多,但只运行在Windows平台上的.net 环境下,linuxSUSE上支持.net平台所以也可运行在linuxSUSE平台上。
其缺点不能通用的跨平台,不能像JAVA那样,但比JAVA的运 行速度快。
脚本语言这里就略了,不讲了...... 如果要选择的话: 按操作系统平台来学习的话,建议:如果只在windows平台直接学习C它傻瓜式的,快速开发爽啊;若在unix/linux平台上的话,学习C/C; 如果游走在Windows/Unix/linux等多平台上,学习C/C/java; 如果只想
学习编程找乐趣,学习PASCALBASIC两种非常合适。
下面说说关于专业的程序员,该如何选择以及未来的行业发展趋势,我们该如何把握主动权方向不能跟着技术潮流,被“淹死”。
我知道有很多专业程序员,做了多年程序开发,感觉自己技术还像个刚出生的婴儿,没有更很好的技术积累,新技术来临不知道如何选择取向,然后只有慢慢等着被 新技的潮水淹死然而,新的程序员又如洪水般的涌进来,然后又这样的后浪赶前浪的牺生在沙滩上。
不是说中国的程序员是吃青春饭的,30岁以后要么做管理, 要么转行。
其实,我们广大程序员都是在一个恶性循环中转悠;先说个慨念,中国人多程序员也多,当然需求的也多,需求的技术类型也多,所以我们的广大程序员 队伍中什么样技术类型的人都有,但学习的编程类型却很单一几乎全是windows平台开发当然linux也有不少,多的是Web上的开发。
为什么会这 样,一来是十多年来盗版太猖狂ms纵容的windows垄断了中国的操作系统平台,几乎影响了一代人,可以说是学电脑就是学windows了,那么 就可以100说,学编程就是学Windows API(windows上编程就是调用Win32SDKAPI了) 去年,ms开始收网了,打击盗版,对我们广大程序员也是非常振撼的,也很郁闷的,用了多年的盗版突然不能用,还出具体措施打击个人盗版,程序员的我们会不 会有这样的想法,枉我追随ms这么多年,我们学到的东西也还给他了,要知道我们学他的东西就是间接的给他挣银子。
现在还要受打击,早不打晚不打,全民都用 上了windows就开始打,这不是居心叵测嘛。
但也不能怪他什么,10年前盖茨都说让你们盗版,最终还是要还的。
别人先警告在前吗。
话说回来,盖茨还是 有功的,如果没有windows很多人是不会用电脑的,也不会有现在这么发达的IT科技的。
记得2004年的一个老项目经理对我这样说,如果95年没有出 来win95他是不会加入IT行业的。
可见windows带给人们的变化是多么大的,可以说对ms我们都有这样一种既爱又恨的心情,但他是商业性的公司不 是慈善机构,我们不能永远
免费的用别人家的东西,这就像你自己家的东西,借给别人用一天两天没事,时间长了你心里是怎想的呢? 上面扯远了,在windows上编程,我们有个误区,只知道ms和borland的开发工具,又快又容易的,完成一个不大不小的项目,三下五去二,搞定, 完成后,那成就感不用说,大家心里应该有数的。
于是,一个接一个的项目就这样就摆平了,慢慢的成就感也消失殆尽,但还是一个接一个的项目,并重复写同样的
代码,做同样的事情。
几年下来,大家都觉越学越难,越学越不精,越学越没有信心。
更可怕的是ms的技术平均两年更新一次,从win9x到NT 其他的COM、ACTIVEX 到现在的.net 等等,学都学不完,每次更新的技术又只用能管两年,又得更新。
ms的开发语言也是损人的主,当初的VB就如同现在的C是他们的主打产品,现在怎样么呢?可怜的VB程序员,还有
VFP,用
VFP的程序员也不在少数,后来的VJ都是忽悠人的东西,跟错了方向的直接倒下了,没有跟错的,也九死一生。
也 难怪,商业性的公司,不更新是没有利润进来的,这次打盗版也是利润的驱动下才有所作为的不然ms可能不会打的。
那么我们之前在9x下的学到的东西,到 nt下我们还有多少可以用呢?不言自明,再到现在的.net 我们之前学的东西,又月多少可以用呢?这就是我们广大程序员的恶性循环,不断的跟在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。
我们反观unix/linux平台上的编程只有c/c几十年不变,技术更新也是
开源的,只要掌握了就不会像ms那样永远在它指定的路线上听话的 走,但在unix/linux上我们的选择更多,linux大致内核一样,变化不太大,容易积累经验,且编程也就是c/c其他的就少了,只要精通c语 言,可以说在unix/linux平台下便是天下无敌了。
不管是在windows/unix/linux下面,c语言几乎通吃,win32内核,SDK接 口都是c语言实现的,这才是“真正的程序员是C程序员”的真正意义。
在windows上编程的当然也有很多选择,这里需要说的就是,如果要快速的开 发,borland的delphi是最好的选择,指delphi7版本以前的,delphi7以后的版本,就跟ms是一个鼻空出气的,就是ms忽悠过 来,borland就忽悠过去,在windows上的程序员转来转去的大有人在,不相信会有很多程序员是从borland转ms,后来又转向 borland上去了的。
他们两家开发商也是打的你死我活的,最终borland倒下,当然这也伤不少borland fans的心,又转向ms的开发平台。
想想这部分转来游去的程序员是多么的悲哀,是谁害的? 说来也怪,国内的delphi陈营曾经风华正茂时,不知有多风光,但没有几个人用FreePascal在国外freepascal发展的很不错,有名的 Lazarus基于freePascal跨平台集成ide开发工具并和delphi极像,而且是
开源的,国内没有人使用,感觉现在的 freepascal 比delphi还更有潜力,lazarus是跨平台的,支持linux。
我想其中最重的原因,是因盗版delphi太多击失败了
开源的软件,毕竟 lazarus没有delphi智能易用。
话又说回来,dephi7版本以前的真的很不错在2002年以前,大家可能还记得“聪明的程序员用 delphi”这个美好的雅号,也就是这个时代的borland赚到钱了,如果后来的程序员还拿这个雅号来激励自己学习delphi那将是最大的误区和悲 哀,因为此时的delphi不在是当年borland的delphi了。
ms,也没有什么东西好到那儿去,vc到现在的vs的VC一直沿着MFC,说它和delphi的VCL比,它简直是个垃圾,但有人还拿它当个宝, 晚上枕着,白天抱着 到现在的VS里面来MFC又扩展了不少东西,应该说是又加了更多的“变态的东西”进去,还不如直接使用SDK来得容易方便。
C是个例外,但按照片ms的 营利游戏规则C的寿命能有多长,我们只有拭目以待,我相信不太长,太长不符合ms的规则,VB可能就是他的前身,
VB的今天就是C的明天。
想想当初的 VB那时的风光及程序员们的狂热和现在的C有过而无不及也,现在VB怎样,没落了,又有几个旧人用,新人去学呢?当然
VFP,VJ是同样的命运。
那 些曾经用VBVFP的程序员们是不是现在已经转向了C或java呢?还是其他呢? 再来看看,JAVA吧,辉煌的时刻,只要是编程培训点的
课程,全部只有JAVA了,现在的JAVA培训也不在少数,可能只会引诱那些不懂编程的初学者。
java又是怎样的一翻风景呢?相信在传出甲骨文收购SUN消息的时候,我们广大的java程序员们有没有郁闷或是信心受到打击呢?就连我这个不是 java的拥趸都感觉震惊和痛惜,sun会被收购。
sun竟会沦落到被人收购,只能说,他会慢慢的像borland一样被这个时代没落掉。
java本身定 位是“一次编写、到处执行”的目标初衷 但给人的感觉是“一次编写,到处调试”,现在怎样呢?没有多大的改观,那么失败是必然的,java是跨平台的运行在虚拟机环境上的,与其说他与平台无关,其实java本身就是一个平台,是基于操作系统的平台。
为什么java程序会慢,就是因为是基于操作系统平台的,解释一次,执一次,要比编译性的程序慢一 倍,是绝对的。
就个人体会,如果广大java程序员想写跨平台的程序,倒不如选择一个比较好的跨平GUI库,如GTK QT wxWidget 它们可以“一次编写,到处编译”要好的多。
另外它们做嵌入式的开发也行。
C程序员不要太高兴了,还没有说到这儿来呢? C我想指出的是,目前大多数系统,包括windows,没有使用C写的,顶多就是上层/应用层的如GUI库,界面,用的C多,可是看到市面 上,却把C神话了,面向对象是C的强项,也是唯一的优点,但又是其缺点,相信我们大多数C程序员有这样的感受,用了几年的C居然还有很多 功能自己没有用到,或是不会用,其中的规则太多,乃致学都学不完,简直是又臭又长的条条框框。
就如一段匿名但又非常著名的评论描述,C就像“狗被钉上 了软肢,而变成的章鱼”,章鱼是什么,不仅让人联想到,很多舞牙扒爪的东西,到处延伸的感觉,但就做GUI比较成功的如QT GUI库非常不错,应用方面,其他领域,C是更好的选择,更方便易用。
总结,只在ms平台上的程序员,几乎没有什么好的出路,几年下来不是转行就是做管理,很少能长期坚持做下来的。
这就是大部分人说程序员是吃青春饭的原因所 在。
在开发语言上没有什么可争论的,算法数据结构几乎每种语言都能实现,学什么语言都一样,不一样的就是你所在的开发环境与开发平台。
另外就是
开源平台与 非
开源平台,有着很大的关系,
开源的话,枝术你能基本全掌握,不
开源,你就只有跟着别人走,按别人的路线为别人创收,自己只得那么一丁点儿而已。
好长时间没有写东西,动起笔来真TNND累。
Tag标签: 星期六不谈技术走出程序员的悲哀javascript:WebForm_DoPostBackWithOptionsn20quotquot20true20false20true2009-9-26 19:43:00 疯狂
代码 http://CrazyCoder.cn/