kkgo2 wrote:
以我為例:我是會寫一些程式,但由BASIC到Visual Basic我也只會這一樣,恰恰好這一樣,是無法移直到Linux上的.....
...(恕刪)
froce wrote:
寫這種大型程式都呼叫一堆API來做...
windows上有的api...linux上不一定有...
就算有了也不一定會有商業公司會用...會有授權的考量......(恕刪)
Basic 語言無法跨平台,因為:它的編譯器是 windows only 的
凡微軟出品的東西皆是如此
Basic、.NET(仿 JAVA 的東西)、DirectX、ActiveX..... 等等
都是 Windows Only 的
但這個不是絕對,微軟既然有辦法做出「編譯器」,視窗 API、SDK ....等等。代表它的員工有那種能力,撰寫低階組合語言的能力。
微軟之所以不在 Linux 上面也放出編譯器、API、SDK,純粹是「商業考量」,而並非它沒有「能力」。
Windows 上面有的 API,Linux 上沒有。
但是:那個 API 的製作者、擁有者,恰恰正是微軟。
只要它高興,做一個 Linux 上面的 API,那現有的 windows 軟體,也許連原始碼都不必改,直接就可以在 Linux 下編譯成可運作的二進位執行碼。
MS Office 如果要推出 Linux 版的,對微軟來說絕對做的到。
微軟本來就是作業系統起家的,沒人比它更了解作業系統了,把一個 windows 軟體移植到 Linux 下,對它來說根本小菜一碟,只看它願不願意而已。
Linux 向來是 windows 死對頭,微軟私底下去研究 Linux 作業系統的構造,搞不好比自由社群的人研究的還透徹。
微軟曾經告過 Novell 侵犯軟體專利。因為 Novell 買下 SuSe 這家 Linux Distro,接著 MS 就上門找碴了。告自由社群的人沒錢賺,告這類大公司才有錢賺。
那微軟告 Novell 侵犯軟體專利的證據或理由是如何來的?當然是去分析了對方的原始碼,SuSe Linux 的原始碼。不然還能哪來的。
以 MS 底下員工對 Linux 的了解程度,其實出一個 API 或 SDK 什麼的,並沒有難度。
*****************************************
不過即便微軟做出這麼一個在 Linux 下的 API,相信也不會公開給別家軟體公司使用。
別家軟體公司,若想要把軟體移植到 Linux,圖型介面部分的程式碼,必須要重新撰寫。這一點是沒錯。
但 Linux 的 X-window 圖型介面 ,也有函式庫 API 的。
X 的視窗和裡面的元件,也是呼叫 API 的,並非程式設計師自己去手工畫的。
Linux 下GUI 圖形介面的 API 庫,比如:GTK 庫、QT 庫...等等。
現代的程式語言,通常都是:物件導向、模組化
功能的部份,歸功能
圖形 GUI 的部份,歸 GUI
GUI 說穿只是一個:外殼、皮膚、門面而已
軟體真正的精隨,複雜的部份,是在功能上。佔整個軟體原始碼 98% 以上。
GUI 外殼,不過就是呼叫一些 GUI API 庫 ,去產生視窗 fram 框架和裡面的元件如按鈕選單之類的。頂多也就佔整個軟體原始碼 2% 以下。
軟體就像人,外在的衣服穿著、打扮,容易更改。
猶如軟體的圖形 GUI 換一下,不是難事。
人可以換套衣服,換個髮型,畫個妝,煥然一新。但內在想法、舉止談吐,不經過數十年,是難以改變的。
軟體也是,困難是裡面的內涵、功能、演算法,那個才是軟體真正複雜的部份。
外在 GUI 介面,不過就是件衣服,脫下來換一件,也就移植了。




























































































