顯示具有 嘴砲 標籤的文章。 顯示所有文章
顯示具有 嘴砲 標籤的文章。 顯示所有文章

1/16/2007

商業性語言?

剛剛又回去看這篇文章,發現作者的回應實在好歡樂呀。
還有 PHP 在 WIKIPEDIA 上被歸類為工業程式語言,並不屬於 script language。
原來如此,程式語言還可以這樣分工業程式語言跟 Scripting Language XD ,作者居然還振振有詞的這樣強調。而且 PHP 居然是工業編程語言而非 Scripting Language,真是大出我的意料之外,我居然沒聽過這樣的分類。


我得先翻翻看工業編程語言的定義,直接看原作者怎麼講的
Java 屬於工業編程語言

程式設計語言,通常簡稱為編程語言,是一組用來定義電腦程式的語法規則。它是一種被標準化的交流技巧,用來向電腦發出指令。一種電腦語言讓程式設計師能夠準確地定義電腦所需要使用的數據,並精確地定義在不同情況下所應當採取的行動。

程式設計語言原本是被設計成專門使用在電腦上的,但它們也可以用來定義演算法或者資料結構。正是因為如此,程式設計師才會試圖使程式代碼更容易閱讀。

原文出處 - Wikipedia - Programming Language


原來如此,原來這就是工業編程語言,我懂了。為了輸人不輸陣,我決定

公告:以後 Ruby 正式成為商業編程語言

商業編程語言,通常簡稱為騙錢語言,是一組用來定義如何快速而有效率瞎掰的語法規則。它是一種被標準化的詐騙技巧,用來向老闆發出虎爛。一種騙錢語言讓程式設計師能夠準確地定義搞定這個案子所需要使用的時間,並精確地定義要謊報多少金錢才能獲得這個專案。

商業編程語言原本是被設計成專門使用在快速開發上面的,但它們也可以用來應用在如何有效率的偷懶或者不被老闆發現的摸魚。正是因為如此,某些素性不良的程式設計師才會試圖使商業性語言更發揚光大,甚至寫一些嘴泡的極點的 Blog來推廣商業性語言。

原文出處 - thgiivepedia - Programming Language


我想說的是

最後作者終於在回應時,出來解釋他這句話
我還是要強調,Java 這類工業程式語言,並不是 script language 可以比較的。因為,拿香蕉跟芭樂比!?你要怎麼比!
我看過組合語言一樣可以做出小畫家,我學生時代也曾經用 Perl 寫一個很簡單的 C Compiler 。只要機器是跑在 tuning machine 的架構下,任何一種程式語言都可以做到其他語言做得到的事情,所以語言當然可以互相比較,有什麼不行?

程式語言就跟真實世界的語言一樣。你用啥語言寫 code 跟你用哪國語言講話一樣,都只是一個選擇而已。我選擇用 Ruby 寫程式,跟我選擇用中文講話一樣,都只是我這樣選擇而已。

「Java 背後的專業性,應用範圍,絕對不是 JavaScript 那種 SCRIPT 語言可以比較的」,這句話就跟法國人一直強調的「講法語就是比講英語來的優雅」一樣可笑,充滿著不可思議的傲慢跟無知。我實在不懂用 Java 的人就比較有專業性?用 Scripting Language 就比較沒有專業性?專不專業這跟用什麼語言任何有關係嗎?一個教授的學術地位高低跟他用哪個國家的語言有關係嗎?

程式語言本身並沒有高下之分,程式設計師才有高下之分。

下面是網友的反應。

[2007/01/17]

  • 引述 :『Scripting language 的家族實在龐大,特性也各不相同。本文僅就 Python、Ruby 等語言的特性和 Java 做比較。其實,鄙視的行為人人都會,不單是阿西犘一人。我也常鄙視 MS 陣營的某 V 或某 B 語言,但是,這種事還是放在心裡就好,或私底下說。公開陳述,只會引發這種效果。』
  • 引述 :『這篇文章的用意, 只是想說一下, 每個程式語言都有他的應用的地方, 並不是說 Javascript 不嚴謹、應用範圍不廣, 就是 Java 被巴到連渣都不剩! 當初的 Java applet 紅透半邊天, 但是現在卻是 AJAX 當道。現在的 Java 應用是真的很廣, 如: 手機遊戲、電冰箱…等等,還有很多,但是現在人家真的要製作網頁上的動畫, 人家當然用 Flash + Actionscript, 而不是用 awt 在那邊苦的要命, 在 Linux 下作 routine task 用 shell 或 perl, 在 Mac 下也可以用 Apple script, 寫 kernel 用 C/C++,大部分的情況當然都可以用 Java 來取代,但是,還是不要沒事找自己麻煩的好。』
  • 引述 :『我覺得等到實做許多程式語言後,會慢慢跳向另一個角度,也就是設計。然而講設計,也不過像是在大家再爭論語言或技術一樣,可能會吵得更凶,不過比起直接討論語言的實做問題,又是再抽象化一層。我的組長可能角度更高階(接近使用者),總是在看需求,創意。我總是認為,真正有價值的工程師應該不會去限定自己解決問題的方法與理解範圍,而能夠瞭解每一個環節,原理,並善用其他技術取補足你正在使用的技術的不足。』
  • 引述 :『寫該篇沒有要打嘴砲,只是希望大家可以對javascript可以多一點認識,多一點了解。』
  • 引述 :『把 Python 分類到 dynamic language,看起來就比 scripting language 專業!』


1/15/2007

Scripting Lanuage 就比較不專業?

今天看到這篇文章,裡面提到
懂了嗎!? 不要再把 JavaScript 當成 Java 來看了。說真的,每次看到人家犯這種誤解,真的讓阿西摩感覺到我的專業被人家當成垃圾看待。因為 Java 背後的專業性,應用範圍,絕對不是 JavaScript 那種 SCRIPT 語言可以比較的!
我是不知道這位作者有多專業啦,不過寫出這樣的話,看來也專業不到哪裡去。

光是「絕對不是 JavaScript 那種 SCRIPT 語言可以比較的!」這句話,就會被 PHP / Perl / Python 社群罵死,根本不用 Ruby 來補這一刀。Javascript 雖然瀏覽器支援度亂了點,Debug 能力差了點,但是其他的功能也不差。現在最紅的 AJAX ,裡面的 Javascript 程式恐怕沒一定程度連看也看不懂,更別說寫了。

我常常對我朋友說一句話
如果這個世界所有語言都要毀滅,只有一個語言留下來,那一定是 Javascript
為什麼?在所有軟體開發漸漸走向 web framework 的同時,所有的語言都漸漸走向「可以被取代」,因為他們都是躲在 backend ,只要回傳的結果正確,誰管你用 C 還是 Ruby on Rails 。

但是 Web 是 Client Server 架構,很多功能需要前端的 Browser 也能夠可程式化。這時候,除了 Flash 以外,就是 Javascript 了。Flash 有很多因素讓他無法成為瀏覽器端最成功的前端語言,也就是說,現在 Javascript 呈現不可思議的獨大,並且無可取代。因為你要取代 Javascript ,你得說服 IE 、Firefox、Safari 都支援你的 Language,這簡直是不可能的任務。

也就是說,如果你不想學 Ruby on Rails ,也請你學學 Javascript 。你會了 Javascript,你可以在使用任何一種語言的網路公司任職,並且當你的公司系統更換架構( 類似 Java -> Ruby on Rails 之類)時,你也不用重新學習。

最重要的是,只要你的 Javascript 真的很厲害,二十年後應該還是不怕找不到工作。

12/08/2006

不過只是 Tools ?

最近在找國防役,談了好幾家,但是我發現到一件重要的事情,似乎大家都對我的 Ruby on Rails 經驗抱持著聽聽就好的感覺。似乎真正的商業公司對於『 Ruby on Rails 』這個詞只是代表好用的工具而已。而他們所真正注重的,卻是我以前做過一些比較偏研究的東西。不管是論文,還是以前研究的作品,我這些東西的確可以寫 Paper ,但是他的價值大概跟一般研究生的 Paper 類似,沒啥好也沒啥不好。
為什麼外面的公司會在乎那些我不重視的東西,卻不去重視我覺得真正有價值的東西?
的確,對於公司來說,採用 JAVA 或是採用 .NET,只不過是 solution 的不同,只是 Tools 的不同,一個企業的核心價值還是在於他擁有的 research group的能力,他所擁有的人才的能力。換個 tools ,只要核心價值還在,這家公司依舊可以發揮相類似的能力。舉個例子,今天 Google 作業系統全部換成 FreeBSD ,他擁有的人才跟技術實力依舊可以成為一個網路強權。

但是如果這個 Tools 能力遠超過現在常見的 Tools 呢?

Ruby on Rails 生產力有多強,這我就不詳述了。假設他生產力可以達到一般 tools 的兩倍(其實我覺得兩倍是低估 Ruby on Rails 的能力),那就代表我可以在半天的時間做到你一天可以做到的事情,所以我的產品可以比你少一半的時間就上線,這在搶時機點,搶市佔率是多麼大的優勢。

如果你要用人力去彌補生產力的差別,那代表你最少需要兩個人,才能跟上我的進度。何況真正當過 PM 或是修過軟工的人都知道, 人數越多,生產力不會等比例上升,因為人需要溝通才能合作,溝通的成本意味著開會時間,同事交換資訊時間,版本控制工具,管理成本。人越多,溝通的成本越高,兩個人帶來的生產力,真正帶來的可能只有 1.3 ~ 1.5 倍的生產力(我從書上看來的) 。而你真正要達到兩倍生產力,你可能需要 3 ~ 4 個人才能達到類似的生產力。

從成本來看,一個生產力極高的程式設計師就算薪資 Double , 他的薪資也絕對比相類似生產力的 3 ~ 4 人薪資來的便宜,而且人越多溝通成本會等比例上升,這在成本上,Ruby on Rails 反而是絕對的優勢。

能讓生產力小幅度上升的東西叫做 Tools ,但是能讓生產力成倍數上昇的東西叫做什麼呢?

人類的歷史一開始,叫做石器時代,青銅器時代,鐵器時代。這些時代不是以重要人物為名,不是以國家為名,而是以 Tools 為名,因為這些 Tools 徹底改變了原始人類的生活方式。愛迪生發明電燈,電燈這個 tools 讓人們活動時間從 6am ~ 6pm 延長到 6am ~ 24 pm 。電話的出現,改變了人與人溝通的方式,讓溝通距離大幅度延伸。網路的出現,更讓許多人,許多企業經營方式有大幅度的改變。這些 Tools 的出現都大幅度改變人類的生活,他們也只是 Tools 而已,但是這些 Tools 為人類生活帶來革命。

話轉回來,Ruby on Rails 當然沒那麼偉大可以跟電燈電話,網路相比。但是他為網路公司的經營方式,網頁程式設計師帶來巨大的改變。網路公司可以大幅度提高工作效率,大幅度減少開發所需人力,卻又可以降低溝通的成本。Ruby on Rails 讓 37 Signal 7 個人就可以開發出一般上百人的大公司不一定做的到的產品。

Ruby on Rails 不過只是 Tools ? 還是他根本就是一場網頁開發的革命?