作者derekhsu (华丽的天下无双)
看板Soft_Job
标题Re: [闲聊] 对写程式的一些看法
时间Mon Dec 8 21:08:45 2008
※ 引述《roger70349 (roger70349)》之铭言:
: 小弟进资讯业己经快满三个月了,这一阵子接了几个小案子,有用php跟asp写的,在写程
: 式的过程中,老板给我一个观念就是,在写一只程式时,要先了解它的运作流程,然後再
: 动手写,程式语言大同小异,只要流程懂的话就不难,想请问各位大大,大家在学程式时
: ,会不会只局限於一种语言,因为我有一位学长说,写asp跟php没什麽市场,要我赶快学
: C#,他说C#的市场比较大,应该学C#钱比较多,但我觉得,不管在学那种程式语言,第一
: 个就是要弄清楚整个开发流程,用什麽言语去写反而是次要,不知道大家的意见如何,谢
: 谢。
你老板的说法是对的。
你的学长就某部份来说,也是对的。
我的经验告诉我,一些很爱用MS IDE的Programmer,实际上对於ASP.NET背後运作的
东西完全搞不清楚,问他知不知道什麽叫做MVC,他可以回答,啊,这个ASP.NET的页面
不就是MVC了吗?有资料库的M,前面的ASPX是V,C就是Codebehind....
就某种程度上来说,也许你可以这样说,但是跟真正我们所谓MVC2的东西比较起来,
这真的差别大得不得了,而事实上,.NET从2002-2005一直都是这样走过来的。就算是
後来MS有补一个Enterprise Library出来,相当的有威力,但相较於真正的Pattern来说
,还是有很多缺憾的地方。
於是其实有一些来自於不同语言的Pattern被引入到ASP.NET里面,像是SqlMap,
Hibernate这些在Java上面行之有年的Pattern,甚至也有人实做了Active Record等
ORM的Framework,当然也有人用ASP.NET真正的做出来了MVC,甚至还可以长得很像ROR
。
而PHP也是一个相当有疑问的程式语言,跟其他程式语言最大的不同,就是他可以
Script也可以OO,而且PHP5开始他OO的方式越来越奇怪,可以用一些弱型别的特性
做出一些弱型别很快就可以搞出来的Pattern但是别的语言搞不出来。当然维护上
就会有问题,因为你根本不知道那麽变数在那个时候应该会是什麽东西,更重要的
是他写起来没有什麽规范,可以Script也可以OO,於是会搞出一些很难Maintain的Code
。
不过,有监於他的弹性,PHP想要怎麽搞Framework就可以怎麽搞Framework,中国人
作出了一个叫做PRADO的怪物,可以在PHP上面实做Event-Driven跟Code Behind跟.Net
一样的Pattern,也有人把Struts移植到PHP上面,PHP後来也自己发展出了类似ROR的
Pattern,甚至连ORM也有自己独特的东西。
如果你有注意到我说得,你会发现,其实,很多的Pattern根本不限制程式语言的,就
算是弱型别跟强型别有所不同,从C++开始发展的Design Pattern到後来2003年提出来
的更庞大的Enterprise Design Pattern,不管在哪个语言上面都有办法Implement
每个语言有每个语言的特性,IDE,限制等等,在实做某些Pattern或是应用领域的时候
会产生差异,但他们的Pattern是共用的,可以互通的,在ASP.NET上吾人能搞出一些
Java-Like的Framework,在Java上面搞出Event-Driven也不是不可能,PHP上都被弄出
不只一套,只是因为缺乏好的IDE并不是很实用而已。
当然我谈的只是Web Ap的领域的部份,写过PHP,ASP.NET,ROR,Java应用过一堆的
Framework,事实上很多概念语言都是相通的,只是作法不同。
至於OS AP的部份我比较不熟,但是一些Pattern的部份依然适用,只是随着OS不同,
会跟OS需要有更深的结合。PHP能够拿来写XWindows的东西,但我宁愿选择tcl/Tk或
是Java这些更方便的语言。
C#的优势在於,他是一个可以应用在不同应用领域的语言,像是Java一样,可以在
Mobile Device上面、OS上面,Web上面更方面的被使用,但是开发的Pattern却是
可以一直跟着你带着走的。
但是,这麽说吧,Yahoo靠得是PHP。台湾最大(无名)、第二大部落格平台都是PHP
做的,Google用Python、Java、PHP、C,就是没用.Net,IBM有很多Java Solution,
,差别只是事在人为而已。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.108.245
※ 编辑: derekhsu 来自: 118.168.108.245 (12/08 21:09)
1F:推 StubbornLin:Python赞~ 值得学 XD 12/08 21:23
2F:→ StubbornLin:我赌python未来会越来越红 12/08 21:23
3F:→ derekhsu:我也喜欢Python,而且也有很多漂亮的Framework 12/08 21:25
4F:→ derekhsu:无奈,在公司上班不能想用就用 12/08 21:26
5F:推 leicheong:嗯. 目前用.NET比较多的大公司就只有HP吧 12/08 21:32
6F:推 fashionguy:我个人是觉得yahoo跟无名 google用不用.net这点如果 12/08 21:33
7F:→ fashionguy:是说明.net就不好或是要被淘汰之的好像不太恰当 12/08 21:34
8F:→ fashionguy:因为目标不太相同 12/08 21:34
9F:→ derekhsu:这...我有说.net会被淘汰吗?我也没说.net不好..... 12/08 21:35
10F:→ derekhsu:不...友达用的是.net 12/08 21:39
11F:推 poqwer:会被淘汰的,只有人而已............ 12/08 22:33
12F:推 andymai:5F~还有另一家外商喔~事实上有许多企业(电信业、银行等)都 12/09 00:05
13F:→ andymai:有用.net~只是好像都是公司内部使用而已... 12/09 00:06
14F:推 liunate:原po的意思应该是,.NET很流行没错,但是其他语言一样普遍 12/09 00:29
15F:推 roger70349:学程式是否要跟着市场走,又是一个问题了 12/09 00:45
16F:推 andymai:楼上~学程式要跟着老板和客户走就不会错了(误) 12/09 00:48
17F:→ derekhsu:还有,中华电信也用.net,另外群创、力晶也都用.net 12/09 00:50
18F:→ derekhsu:至於Web方面,其实比数量.net远远不是PHP的对手... 12/09 00:51
19F:→ derekhsu:主因是.net的显性成本非常高,PHP的显性成本几乎是0 12/09 00:52
20F:→ derekhsu:我的意思是,语言不是问题,其实概念都相通(ASM另外讲) 12/09 00:53
21F:→ derekhsu:重要的是「方法」,而不是只会用工具或是只是写Code 12/09 00:53
22F:→ derekhsu:换句话说,就是从Coding走向Design 12/09 00:54
23F:推 fashionguy:概念最重要这点很同意,我的意思是每种工具有他的 12/09 09:07
24F:→ fashionguy:擅长之处,如果今天要开发的是网站网页应用程式 12/09 09:08
25F:→ fashionguy:那麽我就会选择php,甚至是一些现有的论坛套件之类的 12/09 09:09
26F:→ fashionguy:但如果是要做商用软体, javaEE跟.net才会进入我的考量 12/09 09:11
27F:→ fashionguy:如果我要开发简单的win AP 我就会用delphi之类的IDE 12/09 09:12
28F:推 Bencrie:Xwindow没有s ~ (逃 12/09 09:14
29F:→ fashionguy:所以我才会觉得用yahoo没用.net这句话怪怪的 12/09 09:15
30F:→ fashionguy:但是如果你的意思是世界上除了.net以外还有好多东西 12/09 09:16
31F:→ fashionguy:那我很同意,对资深工程师来说只要能方便 12/09 09:17
32F:→ fashionguy:节省时间增加效率,工具间的切换应该是不算甚麽 12/09 09:19
33F:→ fashionguy:重要的是最基础的观念 12/09 09:21
34F:推 wisehuang:.NET..就MS用最多啊 XD 全都是.NET 噗 12/10 01:14
35F:推 coronach:有一次MS的活动网页外包 用的竟然是.jsp不是.asp.... 12/11 23:35