作者zanyking (遥远的旅人)
看板java
标题Re: [问题] java与C#何者较难?
时间Mon May 22 13:39:05 2006
一个程式语言可以分成三部分来看:
语言本身。关键字、语法、逻辑结构...
函式库。提供出来可以用的标准函式库。
编译器。支援的指令集、编译检查、指令优化...
到了最近十年又多了一个:虚拟机器。
今天的问题既然是"哪一个语言比较好学?" 那就要能先回答几个问题:
1.学了作啥用?
不同语言提供的不同函式库API对某领域的支援能力是有极大差别的。
开发函式库的人必须对该语言有相当的掌握,且熟悉最适合该语言环
境的API设计架构,才能设计出"易用"的API。注意,易用!=好学。且
随着语言不同、开发者目的不同,对於"易用"的定义也会不一样。
今天你是初学,那你需要的函式库就很简单:
0.Language
1.Collections
2.Input/Output
3.string
4.Time
5.Threading
6.(选)DataBase Connection
7.(选)UI
上头1~5是任何领域都几乎得用到的,至於Web Framwork、Middle Tier Service
Web Service。都不是一个"语言"的元素,而是"系统架构"。
2.你之前有什麽样的基础?
对我来说,VM + C-like的语言都很好学,对写Lisp出身的人来说Perl、Ruby简单的要命
对只会VB + IDE拖拉的人来说,什麽都难学。对都不会的人来说,好不好学是看怎麽学,
好的老师带你XXX、不好的老师XXXXX,书也是。
3.有啥资源可以参考?
除了书以外,现在不管学啥语言唯一的参考资源管道大概都是网路,去拜Google大神吧
以C#来说,MSDN是你必看的。里面提供了所有.NET Framwork API、Sample Code与系统
架构,有相当多都是中文的。
以JAVA来说,SUN的网站可以找到所有的 JavaSE API,不过,其实没有必要,JRE本身就
是标准文件了。Sample Code的话,JAVA是最狠的,你把src解开来就有了,连API到底如
何实做都知道。由於JAVA社群大力拥抱OpenSource,Sample Code在量上头肯定没问题。
所以,拉哩拉杂说了一堆,到底那个好学呢?
个人认为单纯就程式语言三元素第一项来看:JAVA。
原因如下:
1.C#提供了比JAVA更加严格的强制性物件存取控制,override virtual intern一堆在
JAVA中可以默认的东西他强制要求你"一定"要明确说清楚。
2.C#的reference传递比JAVA复杂,JAVA只有一种,C#透过ref out关键字还可以有两种。
有看过这种宣告吗?
public bool FindByPrimaryKey(out Result result,string pk)
Result result = null;
if(xxx.FindByPrimaryKey(out result,"12345"))
{
Console.WriteLine("查询结果为:"+result.ToString());
}
//一个指向null的reference丢到一个Function里头出来竟然就有值了!!
3.unsafe。你怀念指标吗?unsafe block一开,你就可以开始unsafe了。private
修饰的内部参数照样外部改给你看。string pool里的东西想开个恶劣玩笑也可以。
事实上,我自己觉得C#在语言上头是比较接近C++的,跟JAVA相像的是在物件继承逻辑
结构与垃圾收集上头。
从二三点来看,他骨子里一堆东西都是C++来的,难怪叫C#,四个+嘛~~~
其他还有一堆像是Delegate event等宣告可以达成函式指标的功能。
到了C# 2.0,类似C++里头的Functor应该也会出现。
--
JAVA 是一个静态型别reference指定、强物件型别判定的语言。
属於类C/C++族。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.27.110
※ 编辑: zanyking 来自: 60.248.27.110 (05/22 13:40)