PersonalCorpus 版 (精华区)
发信人: chivalry (L.G), 信区: Npsos
标 题: Re: 学.net该先学习什么呢?
发信站: 哈工大紫丁香 (Fri Mar 21 17:26:25 2003) , 转信
是的
张老师说得对
有文献报道过
如下
C#的前途如何?
摘自哈工大紫丁香微软.NET版
作者 PowerStation
这世界上没有什么比编程工具更加牵动程序员的心。VC、VB、DELPHI、JAVA……这
些耀眼的名字不仅占据了程序员的生活,而且似乎已经成为了某种信仰。可是,伴
随着新世纪的脚步,这些信仰又一次遭遇了重大的挑战。微软,这头被法官和黑客
们折腾得既疲惫又恼怒的狮子,发誓要保住它头上的王冠,拼尽全力,拿出了看家
的本事——.NET战略。作为 .NET的核心开发语言,C# 顺理成章地浮出了水面。程
序员们也就不得不做出一个痛苦的选择,跟在谁的后面?要找出答案就不得不作一
番比较和预测。笔者作为一个资深的程序员,斗胆在此狂言,权作抛砖引玉。
如果抛开一切非技术方面的因素,C# 无疑是这个星球上有史以来最好的编程语言
,它几乎集中了所有关于软件开发和软件工程研究的最新成果。面向对象、类型安
全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理……你
不可能在另外的一种语言中找到所有这些特性。尽管像很多人注意到的一样,当我
罗列上述特性时,总是让人想到JAVA,然而C# 确实走得更远。但现实的情况是,
非技术的因素往往更能决定一个产品的未来,尤其在计算机软件的历史上,技术卓
越的产品,如OS/2、Mac OS、UNIX等,都败在了Windows那漂亮的脸蛋儿下。而这
一次,微软的角色好像从一个赤手空拳的革命者变成了仗势欺人的老地主,如果真
是要变天,那C# 这孩子岂不是投错了胎?可能情形并非如此糟糕,毕竟瘦死的骆
驼比马大,而且C# 已经提交给了一个标准化组织,一旦成了国际标准,说不准真
有哪个手痒的大侠(也有可能是微软自己)给移植到Linux 和别的平台上。那样的
话,JAVA可就惨了。因为JAVA的用户主要是网络服务的开发者和嵌入式设备软件的
开发者,嵌入式设备软件不是C# 的用武之地,而在网络服务方面,C# 的即时编译
和本地代码Cache方案比JAVA虚拟机具有绝对的性能优势。何况C# 一旦成为一个像
C++ 一样的公共的标准,软件开发商既可以省去JAVA的许可证费用,也不必担心成
为微软的奴隶,那些反微软的人士和主张厂商独立的人士可能也不会有什么意见。
这可能正是微软所期待的。
如果把C# 和 JAVA 在网络服务领域的争夺比作未来制空权的争夺的话,那么C# 和
传统通用快速开发工具——VB、DELPHI等的较量将是地地道道的白刃战。可能最惨
的程序员就是VB程序员,在微软,VB就像离任的克林顿,不但失去了所有的光辉,
而且乱事缠身。想想吧,VB6写的项目必须用转换工具转换成基于.NET的代码才能
在VB7中调入,几乎面目全非。由于VB7遵循为迎合.NET而建立的通用语言规范(
CLS),几乎把所有原来只在C++、JAVA等语言中可以运用的特性统统加了进来,只
是语法和原来兼容。如果你是第一次在VB7中看到自己的旧VB6项目转换之后的代码
,一定要当心你的心脏!所以,努力吧,别告诉我你将就此退休。DELPHI的状况也
好不到哪里去,原来的看家本领是做起应用来又快又好,可现在看看最新的VS.NET
Beta 1, 你会感到如此熟悉,众多的属性列表、组件……谁让你穷呢,连总设计
师都养不住。
其实在编程语言中真正的霸主多年来一直是C++,所有的操作系统和绝大多数的商
品软件都是用C++作为主要开发语言的。JAVA的程序员绝大多数也是C++的爱好者,
PHP的成功里面也有类似C++的语法的功劳。在操作系统、设备驱动程序、视频游戏
等领域,C++在很长的时间内仍将占据主要地位,而在数量最大的应用软件的开发
上,C# 很可能取代C++的位置。首先,C# 和JAVA一样,简直就是照搬了C++的部分
语法,因此,对于数量众多的C++程序员学习起来很容易上手,另外,对于新手来
说,比C++要简单一些。其次,Windows是目前占垄断地位的平台,而开发Windows
应用,当然微软的声音是不能忽略的。最重要的是,相对于C++,用C# 开发应用软
件可以大大缩短开发周期,同时可以利用原来除用户界面代码之外的C++代码。
但是,C# 也有弱点。首先,在大量的现有Windows平台上,C# 的程序还不能运行
,因为C# 程序需要 .NET运行库作为基础,而 .NET运行库将作为新一代的
Windows(Whistler)的一部分发行, 或以Service Pack的形式提交给Windows Me
和 Windows 2000用户。所以在近期,C# 会主要在服务器上得到应用。其次,
C# 能够使用的组件或库还只有 .NET 运行库等很少的选择,没有丰富的第三方软
件库可用,这需要有一个过程,同时各软件开发商的支持也很重要。第三,JAVA的
成功因素里有一些是反微软阵营的吹捧,虽然“只写一次,到处运行”只是一句口
号,但毕竟已经是一种成熟的技术。而C# 的鼓吹者目前只有名声不佳的微软,且
只能运行在Windows上。实际上这两种语言都不是不可替代的,理智的说,对软件
开发商而言,什么用的最熟什么就是最好的工具。尤其对C++的使用者,C# 没有带
来任何新东西,因为.NET运行库在C++中也可以使用,没有要换的绝对的理由。
综上所述,我个人认为,近几年,C# 将不可避免地崛起,在Windows平台上成为主
角,而JAVA将在UNIX、Linux等平台上成为霸主,C++ 将继续在系统软件领域大展
拳脚。非常有意思的是,这些语言的语法极其接近,因为JAVA和C# 都是由C++发展
而来的。其他的开发工具当然还会在相当长的时间里继续他们的旅程,不过在市场
份额上,将不可避免地受到冲击。
【 在 ClearSky (redrose) 的大作中提到: 】
: 学习JAVA也不错!移植性强!今后几年应该是.NET 和 JAVA平分秋色的时代。我们?..
: 掌握。
:
: 【 在 chivalry (L.G) 的大作中提到: 】
: :
: : 好久没在这里看到有关技术性的讨论了,竟是一些...^_^
: : 我想抛砖引玉一下.
: : 我在这里公布蓝线工作室内部论坛.NET技术讨论区的一篇系列讨论,
: : 想就软件专业的学生如何规划自己学习计划这一问题引起大家更广泛的讨论.
: : 希望同学们能够参与进来.而且更加希望各位高手和老师也参与进来,
: : 为软件学院的同学出出注意,分析一下形势.尤其地,乞求老Sun老师参与,提提想法 ..
: ..
: : 最好帮忙找更多的高手,我在这里谢谢你了(大师,给你跪下也行呀,求求你了).
: : 希望大家在仔细阅读这篇文章后表达自己的观点,谢决灌水.
: : (请bency斑竹支持一下)
: :
: : 全文如下(整理过):
: : --------
: :
: : Question (by Baggio)
: : 引用:The .Net earthquake hits it 一文中"
: : 理解.Net要求理解Web Service.也至少要求基本掌握任何列在上边的技术。"
: : 学.net该先学习什么呢?
: :
: : --------
: :
: : Answer (by L.G)
: : 我的建议
: : 学习.NET,我建议先学习一门用于.net开发的编程语言,在这个过程中,逐渐的熟 ..
:
: : .NET开发环境。在语言的选择上,.NET为我们提供了C#,VB.net,VC.net,JScript?..
: : 议是选择C#,理由嘛,可以参看这个网址
: : (http://bbs.hit.edu.cn/cgi-bin/bbs/bbsanc?/groups/GROUP_3/DotNET_Tech/ ..
:
: : AA/M.1028401856.A)
: : 这里说的比较详细。
: : 在学习程序语言时,当然先从最基本的语法学起(从'hello,world'开始),这当 ..
:
: : 动手编写程序,逐步锻炼自己的算法实现和编程能力(包括对面向对象程序设计?..
: : 应用)。等自己对语言的驾驭能力有一定提高后,再开始接触.NET环境的编程。?..
: : 再谈。在学习语言时,我有几句忠告,千万不要几种语言混着学,觉得哪个都好?..
: : 时间这门,又学一段时间那门。这样会容易造成哪个都会点,哪个也没学通。有?..
: : 会很多门语言,但一般他们都是一样一样的来,学通一门再学另一门。其实就目?..
: : 编程语言(如JAVA,C#等)来讲,每一门语言都有优缺点,不要在哪门语言好这点 ..
:
: : 间,我觉得只要自己喜欢,扎扎实实的学下去,哪门语言你学好了学通了,你都?..
: : 手(Money大大的有,^_^).还有一点建议就是多看一些综述性和技术性的文章, ..
:
: : 要紧,起码造个脸熟,提高是潜移默化的。
: : 好了,就先写这么多,让我们踏踏实实从现在做起,结伴步入.NET的殿堂吧。
: :
: : ----------
: :
: : Question (by Baggio)
: : 我们四年的学习中没有c#,大二有vc++,下学期sql,大三java,
: : 这么说,学了C#是最合适的,嘿嘿!
: : 那我大约需要喑な奔淇梢愿愣╟#?
: :
: : ----------
: :
: : Answer (by L.G)
: : 好像我们也没有c#,即便有,可能也是选修课,因为c#比Java还要新,我想学院?..
: : 来得及把它加进教学计划。我想以后学院可能会考虑加进去的。至于课堂开的课?..
: : 一位高手(起码我认为是高手)这样说过,没有一个优秀的程序员是从课堂上教?..
: : 不要误解这句话呀--------当然了,课堂和老师的作用,我们不能否定,通过上?..
: : 习了知识,可以很快的了解一门学问(包括一门编程语言)。而且学习好还可以?..
: : 。可是自己对知识的掌握在实际应用中能发挥到什么程度,关键还是要看自己下?..
: : ,不是有句老话吗“师傅领进门,修行在个人”。我想说的是,不要仅仅指着上?..
: : 自己的编程及软件开发的水平,搞软件开发,实际工作能力和动手能力很关键的?..
: ..
: : 至于怎么规划学习的进度,我有个建议,你可以参考一下。可以先结合学院的教?..
: : c++(不是指vc++),主要是了解学习一下面向对象编程的思想,而且值得一提的 ..
:
: : c#都是从c++演化过来的,有良好的c++基础,不论是学Java或者c#都不会吃力的?..
: : 间,再看看形势,多了解一下各方向的动态,见风使舵:),没准又出来比c#还?..
: : 呢,总之,我觉得在学完c++后下决定也不会太迟。你刚上大一,有的是时间,关 ..
:
: : 不要浪费。
: : 至于要搞定c#,看你想搞到什么程度,只是想了解,还是想干这行
: : 。要是了解,会很快,C#语法有一个月快则两星期就能看完;要是
: : 打算干这行,真正地掌握其精髓,就得踏踏实实地看了,我想没有1年恐怕不行。 ..
: : sql是数据库语言,哪个方向都得学,不过不是很难。
: : 不想说太多了,因为有些事情需要你自己决定的,我只能给你介绍一下形势,选?..
: : 怎么做还得自己拿主意。
: :
: : ----------
: :
: : (by L.G)
: :
: : 大家要是还有什么问题,可以提出来,咱们共同讨论。
: :
: : ----------
: :
: : (by buyaolangfei)
: : 如果想学得扎实 先学好c++
: : 在学好MFC 嘿嘿
: : 到时候我保证 你能两个星期会用c#
: : java 也没问题
: : 基础最重要啊
: :
: : ----------
: :
: : (by L.G)
: : 大师说得对,基础最重要。
: : 我就是基础没打好,所以在实际开发过程中遇到了很多难缠的问题,现在正在恶?..
: : buyaolangfei--------我对你的崇敬之情,犹如松花江水连绵不绝
: :
: : ----------
: :
: : (by L.G)
: : 注:buyaolangfei,是我们蓝线工作室技术部的主管,
: : elife说他是高手,我叫他大师。以后要是有技术方面的难题,大家可以直接问他 ..
:
: : buyaolangfei大师多关心新成员的成长,多关注这里的问题。
: :
: : ----------
: :
: :
: : ------------------------------
: : 我不是一只仅知道罐水的蓝线老猪
: : ------------------------------
: :
: :
: :
: :
: :
: :
: :
: :
: :
:
--
※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 210.46.72.251]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:634.596毫秒