看板java
标 题Re: [问题] java与C#何者较难?
发信站无名小站 (Tue May 23 11:29:33 2006)
转信站ptt!ctu-reader!Spring!news.nctu!news.ntu!news.ee.ttu!netnews.csie.nctu
我两年前也在finance line待过,好巧不巧也是用C# .Net
做internet banking。
没错,银行是只允许我们带一张diskette进机房。
不过我们通常的做法是先尝试在test environment debug,找不到才去机房
靠diskette存transaction/audit log回来trace,
修好了才带进机房patch耶.
就算是Server挂掉,我们都没人敢当场改source code。
尤其是business logic或transaction logic,没test run 过就放进去,
顾客取10万变成存10万,到时候谁来负责?
就算是cosmetic change,我们也是在local写好了才存进diskette的。
所以我还蛮好奇您的主管为何允许您这样搞的。
还是您本身就是主管,或您的老板对您充满120%的信心保证您一定不会出错?
※ 引述《[email protected] (上B只为剿小白出气!)》之铭言:
> 我仍要重申, 你所有的言论都跟语言无关. 接手维护前人遗留的专案, 是所有Programmer的痛.
> 前人文件没交接好, 是管理上的问题, 你竟然怪罪到JAVA太难!?
> 这好比你这种不入流的程式员赚不到钱, 一辈子穷光蛋, 不反省自己不长进不学好, 怪父母遗产太少?
> 难道用.NET不会遇到前人写好的Library dll不知如何使用? 难道.NET没有遇到missing library等问题?
> MS的东西真的有单纯到这种地步, 就不会好几年来陷在Dll hell的泥沼爬不出来.
> 这种管理缺失或是交接不良的问题, 是产业通病, 与语言毫无关联.
> 再看到你连MONO都提出来了, 可见你连什麽是开发工具, 什麽是Runtime环境都不会区分, 真是令我耻笑.
> Mono跟我用什麽工具开发何干? 而且Mono是Linux上的, 我在Windows平台上做事情, 简直祖宗八代都不相干,
> 你根本只是随便把你萎缩的大脑内寥寥几个听说过的名词拿出来招摇一下, 私底下根本什麽是什麽都一点sense.
> 用Notepad或是UltraEdite改C#的程式, 你以为不会遇到吗? 若你的认知如此, 要不就你根本没出社会工作,
> 再不就是出社会半年多, 都是在做些鸟不拉鸡的小CASE.
> 如果你是去做Banking的案子, 一但已经上线7*24的系统出问题, 机房管制你什麽都不能带, 只能带一张他们
> 提供的磁片. 然後Production机器上根本不可能让你装任何IDE, 你怎麽Debug? 你怎麽临时改程式上Patch?
> 管理员不让你安装任何软体, 你能做的就是复制Source Code在那张容量小到不行的磁片中, 纯文字档的Source
> code才被安管允许.
> 这样的情形下, 靠写入EventLog内的CodeStack追原因, 用Notepad或UltraEdit(若管理人员有装的话)临时修改,
> 反正机器在执行.NET, 里面多半管理人员会安装SDK, 然後当场在Command line底下完成Complie并上Patch.
> 你以为走到哪都有IDE可用吗? 你以为所有开发和除错都在你的机器上进行吗?
> 不依靠IDE, 直接用SDK工具和简易的系统内建文字处理程式, 是所有Advanced Engineer都该具备的技能.
> 不懂还乱放枪, 你还继续抱着你的IDE碎碎念JAVA好难, 然後安分当个月入两万五的低阶程式员.
> -------------------------
> JAVA的困境在於, 当初JAVA刚推出的目标就是一个"简单易用, 广泛用於网际网路不同平台的语言"(Easy & simple),
> 和MS推出.NET预设的立场"强而有力"(Powerful)完全是不同的出发点. MS一开始制定.NET一系列的语言, 就不是为了
> 简易为出发点. 而是为了全功能性(Full functionality). JAVA是红起来之後, Sun才决定将它运用在
> Enterprise Business上, 因此不对追加新features去强化其语言特性.
> 然而为了过去相容性的考量, 错误的根基已经造就, 学JAVA的人就往往很容易写出效能不佳的程式.
> 但是要用Java来写一个勘用, 可以做事情的程式, 是比用C#容易的.
> 比如说, C#强迫程式员去厘清static和non-static的method的差异, JAVA就很随合, 反正乱写也让你动.
> 以下的程式码, JAVA编译会过, 但是C#编译会Fail.
> class emptyClass {
> public string getValue(){
> return "";
> }
> public static getStaticValue(){
> return "";
> }
> }
> static void main(string[] args)
> {
> emptyClass o = new emptyClass();
> o.getValue();
> o.getStaticValue();
> }
> Why? 因为C#.NET不允许 instance 呼叫static的method.
> 除了你以外, 全天下的人都知道new 一个instance, 很伤performance. 必须allocate memory, 还让
> GC的工作负担加重. 但是这个instance的用途竟然是为了呼叫static的methos, 这就好比脱裤子放屁.
> 但是多少像你一样的笨蛋会这样想: 反正只要产生物件, 不管static or non-static我全部都能叫用,
> 何必厘清这麽多? new 就对了!
> Java的程式会又慢又吃记忆体不是没道理的, 因为养坏太多Programmer. 不信? 让VM不再支援这种叫
> 用语法, 看是不是八成以上现行的JAVA程式全部都动不了?
> 但C#硬是不让你犯这种错(除非是你自己写的class, 该static宣告的没宣告).
> 较复杂, 定义较严明的语言, 真的是比松散易用的语言写出更佳的程式码.
> ※ 引述《[email protected] (城市天际线)》之铭言:
> : 天阿...Contactman,你这种人果然人如其名
> : 通常把别人当小白的人,自己就是最大的小白
> : 你用ultraedit练习写c#2.0的东西?
> : 我想你大概只写了helloworld吧
> : Mono现在也还没有办法支援.Net 2.0的语法
> : 所以我才很好奇你是用啥方法来写C#的...
> : 没想到你大言不惭阿...
> : 我有听说过java的高手写程式是用vi写的
> : 原来Contactman也是同等级的角色耶!!真是令我大开眼界
> : Net Framework 2.0 不过22MB,只要安装一次,大部分的程式就可以开始放心写了
> : 你用java的话,看你用了那些额外的东西,还有一堆的jar档要引用吧,
> : 东加西盖(jar档的版本不同),就算写的时候没问题,deploy的时候也可能出现问题
> : 而且通常每个加进来的jar档都是可以出一本书来解释的API
> : 当你接手一个别人写的Java专案
> : 这个专案引用了一堆framework
> : 没有文件可以告诉你,这些framework是如何使用的
> : 我想以Contactman的强度,一定是很快乐地把ultraedit打开,开始trace程式
> : 我真是服了你啦
> : 以後我再理你,我就真的是小白!!
--
夫兵者不祥之器物或恶之故有道者不处君子居则贵左用兵则贵右兵者不祥之器非君子
之器不得已而用之恬淡为上胜而不美而美之者是乐杀人夫乐杀人者则不可得志於天下
矣吉事尚左凶事尚右偏将军居左上将军居右言以丧礼处之杀人之众以哀悲泣之战胜以
丧礼处之道常无名朴虽小天下莫能臣侯王若能守之万物将自宾天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦将知止知止可以不殆譬道之在天下202.75.4.140海