看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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)
StubbornLin:Python讚~ 值得學 XD 12/08 21:23
StubbornLin:我賭python未來會越來越紅 12/08 21:23
derekhsu:我也喜歡Python,而且也有很多漂亮的Framework 12/08 21:25
derekhsu:無奈,在公司上班不能想用就用 12/08 21:26
leicheong:嗯. 目前用.NET比較多的大公司就只有HP吧 12/08 21:32
fashionguy:我個人是覺得yahoo跟無名 google用不用.net這點如果 12/08 21:33
fashionguy:是說明.net就不好或是要被淘汰之的好像不太恰當 12/08 21:34
fashionguy:因為目標不太相同 12/08 21:34
derekhsu:這...我有說.net會被淘汰嗎?我也沒說.net不好..... 12/08 21:35
derekhsu:不...友達用的是.net 12/08 21:39
poqwer:會被淘汰的,只有人而已............ 12/08 22:33
andymai:5F~還有另一家外商喔~事實上有許多企業(電信業、銀行等)都 12/09 00:05
andymai:有用.net~只是好像都是公司內部使用而已... 12/09 00:06
liunate:原po的意思應該是,.NET很流行沒錯,但是其他語言一樣普遍 12/09 00:29
roger70349:學程式是否要跟著市場走,又是一個問題了 12/09 00:45
andymai:樓上~學程式要跟著老闆和客戶走就不會錯了(誤) 12/09 00:48
derekhsu:還有,中華電信也用.net,另外群創、力晶也都用.net 12/09 00:50
derekhsu:至於Web方面,其實比數量.net遠遠不是PHP的對手... 12/09 00:51
derekhsu:主因是.net的顯性成本非常高,PHP的顯性成本幾乎是0 12/09 00:52
derekhsu:我的意思是,語言不是問題,其實概念都相通(ASM另外講) 12/09 00:53
derekhsu:重要的是「方法」,而不是只會用工具或是只是寫Code 12/09 00:53
derekhsu:換句話說,就是從Coding走向Design 12/09 00:54
fashionguy:概念最重要這點很同意,我的意思是每種工具有他的 12/09 09:07
fashionguy:擅長之處,如果今天要開發的是網站網頁應用程式 12/09 09:08
fashionguy:那麼我就會選擇php,甚至是一些現有的論壇套件之類的 12/09 09:09
fashionguy:但如果是要做商用軟體, javaEE跟.net才會進入我的考量 12/09 09:11
fashionguy:如果我要開發簡單的win AP 我就會用delphi之類的IDE 12/09 09:12
Bencrie:Xwindow沒有s ~ (逃 12/09 09:14
fashionguy:所以我才會覺得用yahoo沒用.net這句話怪怪的 12/09 09:15
fashionguy:但是如果你的意思是世界上除了.net以外還有好多東西 12/09 09:16
fashionguy:那我很同意,對資深工程師來說只要能方便 12/09 09:17
fashionguy:節省時間增加效率,工具間的切換應該是不算甚麼 12/09 09:19
fashionguy:重要的是最基礎的觀念 12/09 09:21
wisehuang:.NET..就MS用最多啊 XD 全都是.NET 噗 12/10 01:14
coronach:有一次MS的活動網頁外包 用的竟然是.jsp不是.asp.... 12/11 23:35