我剛剛發現了一個Google的Chrome廣告,最後他們提到它可以在Linux,Mac和PC上運行。所以我開始想知道他們如何能夠開發一個可以在多種平臺上運行的程序?我有Java和.Net的經驗,但只能在Windows機器上使用。 Java在設計上是可移植的,但我不認爲Google正在使用Java來處理像Chrome那樣的性能問題。爲多平臺開發應用程序時使用什麼語言?
我知道每個版本都會有一些特定於平臺的代碼,比如用於UI的代碼。但是也必須有一些中央代碼在每個平臺上重複使用。這是寫在什麼語言?
我剛剛發現了一個Google的Chrome廣告,最後他們提到它可以在Linux,Mac和PC上運行。所以我開始想知道他們如何能夠開發一個可以在多種平臺上運行的程序?我有Java和.Net的經驗,但只能在Windows機器上使用。 Java在設計上是可移植的,但我不認爲Google正在使用Java來處理像Chrome那樣的性能問題。爲多平臺開發應用程序時使用什麼語言?
我知道每個版本都會有一些特定於平臺的代碼,比如用於UI的代碼。但是也必須有一些中央代碼在每個平臺上重複使用。這是寫在什麼語言?
任何合理的規範和通俗的語言會做,因爲我們的目標是編譯它在所有平臺上,而不是建立一個二進制文件,將在Windows,MacOSX上,Linux和z/OS的工作。 C和C++是流行的選擇,因爲它們幾乎可以與任何東西一起工作。 Java是一個很好的選擇,因爲它幾乎可以運行所有東西。對於性能要求較低的應用程序,Perl和Python很好。
重要的一點是要區分什麼是平臺依賴,哪些不是,因爲(除了Java或腳本語言的情況),可能需要爲每個平臺重寫特定於平臺的內容,並且不一定使用相同的語言。 MacOSX最好在Objective-C中編程,對於其他流行的平臺來說也是如此。
Chrome是用C++編寫的,因此它們將爲每個操作系統提供大量的平臺特定代碼。他們很可能爲每個操作系統維護一個單獨的分支。
最有可能他們都在同一個分支,只是用不同的編譯標誌爲每個平臺。或者至少,這是它在大多數C++項目上的工作方式。保持獨立的分支可能是一個巨大的痛苦。 – 2009-12-31 17:12:43
Here是關於Chrome的發展一整篇文章。它主要是用C++編寫的。
這些程序應該是可移植的源代碼級別,而不是二進制級別。所以你只需要將它編譯爲不同的平臺,而不是製作一個通用二進制文件所必需的。實際上,大多數語言都支持包括UNIX/Windows/Mac在內的所有現代平臺,因此您可以從幾乎所有現代的藍球中進行選擇,C/C++被許多人所喜歡。順便說一句,C++是Chrome的語言。
像Python/Perl這樣的腳本語言也是不錯的選擇。還有一件事,Java可以比你想象的更快 - 參見Eclipse。即使沒有JNI技術,對於大多數應用程序(如JDownloader),Java仍然足夠好。
如果你認爲Eclipse很快,那麼你的預期會很低。 – 2009-12-31 16:51:04
它可能不如完全優化的本地程序,但它比JBuilder或Beans等傳統的Java GUI更好更快。 事實上,我認爲這對於常見的使用來說已經夠用了。 – Francis 2010-01-02 03:53:09
谷歌必須建立不同的分佈爲每個操作系統(即編譯爲每個平臺弗朗西斯的回答解釋了) - 事實上,Mac OS版本最近才面世 - Windows版本已經有更長的時間。
谷歌應用程序是'瘦應用程序' - 咕嚕工作是在他們的服務器上完成的。
的應用程序是在這個意義上,前端放在一起使用HTML,CSS和Javascript便攜 - 這是標準的(至少在理論上)在所有瀏覽器。
谷歌投入了大量的精力投入到建設的Chrome的JavaScript引擎是高性能 - 確保快速運行任何客戶端邏輯。
Chrome的沒寫上,但Qt的符合這些標準http://qt.nokia.com/products – 2009-12-31 17:31:40