當前位置:首頁 » 編程軟體 » 編譯器開發有前景嗎

編譯器開發有前景嗎

發布時間: 2022-07-14 19:26:14

1. 編譯器開發 與 嵌入式開發 哪個未來的前景比較好

嵌入式開發吧,編譯器開發目前入門難,提高更難,而且又偏門。嵌入式運用廣而且需求大,未來潛力大!

2. 易語言這門編程語言有人學嗎,前景怎樣

易語言是一門以中文作為程序代碼編程語言。以「易」著稱。創始人為吳濤。早期版本的名字為E語言。易語言最早的版本的發布可追溯至2000年9月11日。創造易語言的初衷是進行用中文來編寫程序的實踐。從2000年至今,易語言已經發展到一定的規模,功能上、用戶數量上都十分可觀。
語言特點
全漢語編程。

基本特點
易語言是一個自主開發,適合國情,不同層次不同專業的人員易學易用的漢語編程語言。易語言降低了廣大電腦用戶編程的門檻,尤其是根本不懂英文或者英文了解很少的用戶,可以通過使用本語言極其快速地進入Windows程序編寫的大門。易語言漢語編程環境是一個支持基於漢語字、詞編程的、全可視化的、跨主流操作系統平台的編程工具環境;擁有簡、繁漢語以及英語、日語等多語種版本;能與常用的編程語言互相調用;具有充分利用API,COM、DLL、OCX組件,各種主流資料庫,各種實用程序等多種資源的介面和支撐工具。易語言有自主開發的高質量編譯器,中文源代碼被直接編譯為CPU指令,運行效率高,安全可信性高;擁有自己的資料庫系統,且支持訪問現有所有資料庫;內置專用輸入法,支持中文語句快速錄入,完全解決了中文輸入慢的問題;易語言除了支持界面設計的可視化,還支持程序流程的即時可視化;除了語句的中文化之外,易語言中還專門提供了適合中國國情的命令,如中文格式日期和時間處理、漢字發音處理、全半形字元處理、人民幣金額的處理等;易語言綜合採用了結構化、面向對象、組件、構架、集成化等多種先進技術,並在運行效率、性能價格比、全可視化支持、適應本地化需要、面向對象以及提供Windows,Linux上的運行平台等具有特色;現有各種支持庫多達40多個,用戶可以使用她來滿足幾乎所有的Windows編程需求,多媒體功能支持強大,完善的網路、埠通訊和互聯網功能支持,網上與論壇上的學習資源眾多。在易語言及其編譯器的設計與實現、可視化漢語編程的構建、提供多種語言版本等方面具有創新。目前易語言已取得國家級鑒定,鑒定會專家一致認為:易語言在技術上居於國內領先地位,達到了當前同類產品的國際先進水平。

優缺點
語言優點
易語言功能強大實用,現已具有數十個各種應用范圍支持庫、上百個數據類型和界面組件、近萬條支持命令,支持現今所有資料庫,功能絲毫不比其它同類產品差。模塊化開發支持大型軟體項目的分工協作,易語言中的模塊稱為易模塊。通過使用易模塊,用戶可以將常用的代碼封裝起來重復使用到其它程序,或提供給第三方使用,或用作開發大型軟體項目中的某個部分,然後在軟體項目的封裝階段將所有這些模塊組織編譯成為一個完整程序。
易語言系統全部自行設計開發。自有編譯器。所編譯目的程序運行速度快,且沒有安全隱患。自帶小型資料庫,減少開發項目投入成本,且容易學習。跨操作系統平台編程。同時支持Windows和Linux程序開發。中文本地化支持。支持中文格式日期和時間處理、漢字發音處理、全半形字元處理、人民幣金額處理、農歷日期轉換等。
易語言自帶的即時幫助系統,在易語言使用者有問題時,輕輕一點,立刻可以得到與當前主題相關的詳細幫助。易語言的幫助文檔眾多,內有大量知識庫及開發資料。易語言的常式眾多,可以在資源網、大賽展區、論壇上搜索到。易語言愛好者交流論壇,上面已有數萬名注冊用戶。易語言使用者可以將自己在使用過程中所遇到的問題提出,專家會以最快的速度答復。通過論壇搜索功能,也可得到需要的答案。通過易語言的圖書,教學片,多媒體教學光碟等。易語言自帶的即時幫助系統,在易語言使用者有問題時,輕松一點,立刻可以得到與當前主題相關的詳細幫助。
語法格式自動檢查。自動檢查並提示所輸入語句的語法格式是否正確,且可自動添加各類名稱。全程提示與幫助。滑鼠停留立即顯示相關項目提示。編程時提示語法格式,調試時提示變數當前內容,隨時按下F1鍵可得到與當前主題相關詳細幫助等。名稱自動管理。用戶修改任一名稱定義,其它所有包含該名稱的程序代碼均自動修正。集成化開發環境。集界面設計、代碼編寫、調試分析、編譯打包等於一體。
語言缺點
易語言是收費軟體。雖然有一些編程的軟體需要注冊後使用,但是其收費方式與其它編譯軟體不同,易語言必須注冊後才可編譯出程序,否則只可在編譯中調試。
收費後編譯
官方注冊版就達到了618元(企業加密版)。
雖然如此,但是易語言5.0正式版已經支持了靜態編譯,被誤報的可能性減小,而且編譯的文件大小也大大縮小!
另外,由於易語言程序的運行方式存在特殊性,單個空白程序就達到400~500KB,當前易語言拓展插件:斬月,黑月的一些模塊可以把易語言編譯的程序縮小,縮小後的空白程序僅為10Kb左右。易語言編寫的程序被許多殺毒軟體的高級啟發式技術誤報為病毒,甚至一個不包含任何代碼的空白程序都會被一些殺毒軟體識別為木馬。至今,有關各方都在積極解決這個問題,但是截止目前(2016年7月),誤報問題仍然存在。
關於易語言誤報問題,實踐證明:並非易語言生成出來的程序容易誤報,VB單獨生成的空窗口也報毒,C++也同樣出現誤報現象。
當然,也有一些不正當利用易語言編寫的程序例如:盜號,木馬,鍵盤監控的程序,然後尋求解除誤報的方法,這樣是沒用的,程序本身就存在危害,報毒也屬於正常現象。

就業前景
易語言漢字化編程雖然成為國內一項突破,但是就開發就業前景而言,企業招聘易語言程序員相對較少,如果為了找份工作學習易語言請慎重考慮,如果是個人學習研究可以花時間好好研究一番,中國人用上自己的編程語言這條路可能還很長。
主要途徑有如下:
1、自主創業
2、參加企業或者組織的招聘
3、在項目網站承接項目

3. 現在軟體工程前景怎麼樣

單純的問軟體工程是否有前景,個人認為是有的。但是並不建議你以這件事情作為你職業選擇的考量。你看08年左右的時候機械石油何其風光,現在呢?這不過短短八九年的光景。你讀個研究生就已經七年了。我剛上大學那會兒軟體學院因為地方比較偏,學費又貴,一班有一半兒多的學生都是調劑來的。很多人大一努力讀書的目標就是拿到好成績然後轉專業。等到我研究生畢業的時候,學校里幾乎是最強專業的學生也有人不顧位置與費用的劣勢轉專業到軟院。但是,再過八九年呢?17年的軟體會不會是07年的石油?這誰也說不好。如果前景這個東西這么容易被壓中,我上大一的時候軟院就應該人滿為患了。
軟體有前景嗎?有。畢竟未來幾乎所有的東西一定都會需要相對應的軟體來驅動,絕大多數的行業都會引入自動化與網路。目前軟體互聯網與傳統行業的結合遠未到恰當的程度。老百姓的消費品有他淘寶,工業原材料就能弄個找鋼網。發展的空間一定是有的。但是如果你所說的前景指的是工資,那就不一定了。現在互聯網行業的工資雖然高,但是這背後除了互聯網自身的技術紅利以外還有資本與供需關系作為支撐。隨著這一行的人越來越多,技術發展帶來的開發門檻的降低。高工資還能持續多久並不好說。至少低端開發應該不會持續多久。
此外呢,軟體和軟體還是不一樣的。至少簡單的來劃分互聯網、傳統軟體、游戲就很不一樣。傳統軟體的薪資與互聯網之間差距還是比較大的。游戲行業么,應該算開寶箱?但大家都在寫代碼。這中間區別還是蠻大的,就像羽毛球、網球和乒乓球大家都是小球,但是並不一樣。
至於你所擔心的,所謂「競爭很激烈」、「知識更新快」,估計還有什麼「青春飯」、「四十退休」、「沒對象」、「工作強度大」之類的。咱一條條後續慢慢說吧,雖然我們也是做這一塊的,但是我現在身為老師了,我還是需要把應該讓你們知道的情況和你回答清除,不能去蒙蔽學生的雙眼,只說什麼軟體工程好好,你快來學之類吹捧的話,那是不負責任的。

4. 男生學軟體開發會不會有前景

就軟體開發而言,現在是信息技術時代,軟體人才的需求成比例增長,但是合格的軟體開發人才卻存在著大的缺口,因此軟體開發行業成為了名副其實的高薪行業,通常擁有1-2年開發經驗的工程師年薪在10萬以上的不在少數。目前中國的IT隊伍存在嚴重的結構失衡,既缺乏高級IT人才,也缺乏技能型、應用型信息技術人才,以及一大批能從事基礎性工作的技術人員。中國軟體人才的「金字塔」型合理結構並未實現,軟體產業健康、快速發展所需要三類人才:既懂技術又懂管理的軟體高級人才、系統分析及設計人員(軟體工程師)、熟練的程序員(軟體藍領)這三類由高到低的人才結構並未呈金字塔型。
軟體技術的就業前景樂觀的原因還包括中國軟體人才短缺,而產業的發展又十分迅速。中國在軟體總體設計,軟體研發等方面缺乏高層次人才。缺口較大、結構失衡、需求旺盛。軟體研發人才的匱乏已成為我國基礎軟體業發展緩慢的一大瓶頸。涉及到個人時,軟體技術的就業前景就與自身的能力有很大的關系了。以java為例,Java軟體開發技術作為應用最廣泛的技術之一,在軟體方面的前景不言而喻,大至電子商務系統、銀行管理系統,小至手機游戲、網頁技術,Java軟體開發技術可謂無所不在。只要自身的能力水平達到了要求,學習軟體技術的就業前景是光明的。

5. 現在學計算機未來發展前景怎麼樣

計算機專業前景很好。隨著信息產業的迅猛發展,計算機專業人才需求量也在逐年擴大。其中「軟體開發」、「網路工程」、「電腦美術」等人才的缺口尤為突出。生活中無不存在和使用著互聯網信息技術。事實說明,互聯網已經深入到人們生活的方方面面,IT技術服務市場需求也在增長。

計算機專業前景很好。隨著信息產業的迅猛發展,計算機專業人才需求量也在逐年擴大。其中「軟體開發」、「網路工程」、「電腦美術」等人才的缺口尤為突出。生活中無不存在和使用著互聯網信息技術。事實說明,互聯網已經深入到人們生活的方方面面,IT技術服務市場需求也在增長。計算機專業就業方向:

1、WEB應用程序設計專業

畢業後能夠從事網站應用程序開發、網站維護、網頁製作、軟體生產企業編碼、軟體測試、系統支持、軟體銷售、資料庫管理與應用、非IT企事業單位信息化。

2、可視化程序設計專業

畢業後能夠從事軟體企業桌面應用開發、軟體生產企業編碼、軟體測試、系統支持、軟體銷售、資料庫管理與應用開發、非IT企事業單位信息化等工作。

3、資料庫管理專業

畢業後能夠從事企、事業單位資料庫管理、軟體開發、專業資料庫應用設計與開發、數

據庫的應用與開發、信息管理系統開發、企、事業單位網路管理、軟體銷售等工作。

4、多媒體應用專業

畢業後能夠從事計算機美工、動畫製作、影視製作

5、移動應用開發專業

畢業後能夠從事移動設備應用開發、嵌入式應用開發、移動網站開發、軟體生產企業編碼、軟體測試、系統支持、非IT企事業單位信息化、軟體銷售、企、事業單位信息管理、辦公自動化集成等工作。

6. 用C++語言做COBOL編譯器有前途嗎

COBOL的重要性

經過40多年的不斷修改、豐富完善和標准化,COBOL已發展為多種版本的龐大語言,在財會工作、統計報表、計劃編制、情報檢索、人事管理等數據管理及商業數據處理領域,都有著廣泛的應用。
COBOL的重要性可以用這句話來描述:世界上70%的數據都是用COBOL語言處理的,並且90%的ATM事務處理用的都是COBOL語言。每天在線處理的COBOL事務有300億次。500強中有492家(包括全部的100強)使用了COBOL語言,目前在COBOL方面的投資已經超過3萬億美元,,據稱用COBOL書寫的程序超過了1000億行,並且以每年大約50億行代碼的速度在增長。
由於COBOL在商業領域的雄厚基礎,而且COBOL主要是應用於銀行、金融和會計行業等非常重要的商業數據處理領域。所以,即使對於具有相當經驗的IT公司來說,重新編寫COBOL語言的可靠的應用軟體也是不實際或是從商業角度上並不可行的,而且還要花上很長的時間,只要大型機存在,COBOL就不會消失,即使是對電腦界產生巨大影響的「千年蟲」(Y2K)也沒有改變COBOL的命運。

貌似這說明老了點,但是貌似這語言也很牛啊

7. C/C++ 編譯器的開發有發展前景嗎

C就是一個面向過程的開發語言.有它擅長的,也有它不擅長的,但是沒有別的語言能幹,它卻幹不了的.但是,只要你學好了,那是絕對不用為吃飯發愁的. 如果你打算當純C的程序員,那你就等於走上了一條專向底層和高深技術發展的路,會很辛苦倒是真的

8. 在國內從事C/C++編譯器的開發有發展前景嗎

我給你講講我的經歷。 我大概十年工作經驗,大概五年c++編譯器前端經驗(在兩家500強做靜態分析),四五年項目管理和品質過程改善經驗。其他主流語言都會用,實現的大概方式也明白。 前一段時間找工作,投了二十幾個c++職位一個電話都沒有。唯一的面試是朋友內推的阿里的項目管理專家。跑去面試,悲催,直接換崗成p5-p6的測試來面試,問了幾個測試問題直接讓我回家了(順便吐槽一下,他們對於測試過程感覺還沒問到點上) 最後的結局就是,沒人要,轉行去製造加工業了。我總結一下為什麼找不到工作(可能只是我偏頗的認識:一是這行需求太少,二是hr根本不知道你是幹嘛的,三是做這行的根本不好意思寫精通c++。

9. 編譯器工程師 ,前途 咋樣,工資是多少啊。應屆生要不要。。。

很有前途,但是你要基礎知識很扎實。否則的話,別人不要。會應用的人很多。

10. 現在有關計算機的幾種專業方向里例如網頁製作,編程等的發展前景怎麼樣

Bjarne Stroustrup: C++語言的設計者
Tim Lindholm: Sun公司著名工程師

把寶押在Java上?或是堅持C++不動搖?還是考慮考慮C#?你是否猶豫不決?那麼不妨先聽聽下面這些專家的說法,對於面向對象程序設計語言的現狀和未來作一番了解。
關鍵詞:C++,Java,C#,OOP

科技進展一日千里,產品生產周期則越來越短,不少程序員已經完全沒有時間掌握第二種語言。不論一個程序員的技術能力是否被考慮,對於他來說,將來能夠參與什麼類型的項目,加盟什麼樣的公司,在很大程度上,將取決於今天選擇哪種程序設計語言。為了幫助大家清晰地了解C++和Java這兩個最流行的OOP語言現在和將來的有關情況,我們采訪了C++語言的設計者Bjarne Stroustrup,以及Sun公司著名工程師Tim Lindholm。下面是他們的觀點,內容涉及程序設計的未來、語言之間的比較、OOP語言的發展與革新之取捨以及程序
設計標准。

未來
在未來三年,程序員編寫代碼的方式會發生那些變化?
Stroustrup: 在C++中,假如沒有合適的庫在背後支撐,完成任何重要的工作都可能是很復雜的。而一旦有了合適的庫,任何東西都可以被我們操控於股掌之間。因此,構造和使用程序庫的重要性與日俱增。這也暗示我們,泛型程序設計(generic programming)將會越來越多地被運用。只有通過GP,我們才能確保庫的通用性和高效率。我還預期在分布式計算和「組件(components)」應用領域會出現喜人的增長。就大部分程序員而言,通過使用方便適用的程序庫,這些開發工作會變得簡單明了。現在有一個趨勢,編譯器廠商試圖把其特有的「對象模型」和圖形界面(GUI)細節推銷給用戶。比如微軟的COM和Inprise的類屬性「properties」。對於用戶來說,這既不必要,也不情願。我所希望看到的程序庫,應該是用標准C++打造,界面靈活,值得信賴的程序庫。通常,這些界面應該是平台無關的。C++的表達能力極強,即使不使用大量的宏,也應該足以達成這一要求。就算有些地方無法百分之百的遵守這一原則,也應該將對於平台和廠家的依賴性限制起來。這個目標的完成情況,可以反映軟體工具產業對於應用程序開發行業的關注程度。我懷疑目前對於那些獨立的、跨平台廠商來說,並不存在相應的市場。如果能夠建立這樣的市場,也許能夠促進廠商們為客戶做出「真正有用的」產品。
Lindholm: 對於編寫代碼的開發者來說,主要的驅動力量仍將是兩個:網路和分布式——也就是設計和開發非單機軟體的需求。大部分的應用程序將不會是孤零零地運行在單一設備上,而是運用了類似EJB和JSP之類技術的,平台無關的分布式程序。程序員們將不得不面對分布式計算的重重險阻。這將對許多程序員所依賴的設計模式、技術和直覺構成嚴峻的挑戰。這是選擇編程語言之前必須認識到的,盡管不同語言的設計特性可能促進或者阻礙這一轉化。在網路應用的增長中,一個很重要的部分是小型移動設備和特殊Internet設備的爆炸性增長。這些設備各有各的操作系統,或者只在某種特定的設備領域內有共同的操作系統。我們現在還可以一一列舉出這些設備——家庭接入設備、蜂窩電話、電子報紙、PDA、自動網路設備等等。但是這些設備領域的數量和深入程度將會很快變得難以估量。我們都知道這個市場大得驚人,PC的興起與之相比不過小菜一碟。因此在這些設備的應用程序市場上,競爭將會相當殘酷。獲勝的重要手段之一,就是盡快進入市場。開發人員需要優秀的工具,迅速高效地撰寫和調試他們的軟體。平台無關性也是制勝秘訣之一,它使得程序員能夠開發出支持多種設備平台的軟體。我預期的另一個變化是,我們對於代碼(Java)和數據(XML)協同型應用程序的開發能力將會不斷提高。這種協同是開發強大應用程序的核心目標之一。我們從XML的迅速流行和ebXML規范的進展中,已經看到了這個趨勢。ebXML是一個針對電子商務和國際貿易的,基於XML的開放式基礎構架,由聯合國貿易促進和電子商務中心(UN/CEFACT)與結構性信息標准推進組織(OASIS)共同開發。

我們能否期望出現一個真正的面向組件(component-oriented)的語言?它的創造者會是誰呢?
Stroustrup: 我懷疑,這個領域中之所以缺乏成果,正是因為人們——主要是那些非程序員們——對「組件」這個意義含糊的字眼寄予了太多的期望。這些人士夢想,有朝一日,組件會以某種方式把程序員趕出歷史舞台。以後那些稱職的「設計員」只需利用預先調整好的組件,把滑鼠拖一拖放一放,就把系統組合出來。對於軟體工具廠商來說,這種想法還有另一層意義,他們認為,到時候只有他們才保留有必要的技術,有能力編寫這樣的組
件。 這種想法有一個最基本的謬誤:這種組件很難獲得廣泛歡迎。一個單獨的組件或框架(framework),如果能夠滿足一個應用程序或者一個產業領域對所提出的大部分要求的話,對於其製造者來說就是劃算的產品,而且技術上也不是很困難。可是該產業內的幾個競爭者很快就會發現,如果所有人都採用這些組件,那麼彼此之間的產品就會變得天下大同,沒什麼區別,他們將淪為簡單的辦事員,主要利潤都將鑽進那些組件/框架供應商的腰包里!

小「組件」很有用,不過產生不了預期的杠桿效應。中型的、更通用的組件非常有用,但是構造時需要非同尋常的彈性。在C++中,我們綜合運用不同共享形式的類體系(class hierarchies),以及使用templates精心打造的介面,在這方面取得了一定的進展。我期待在這個領域取得一些有趣和有用的成果,不過我認為這種成果很可能是一種新的C++程序設計風格,而不是一種新的語言。

Lindholm: 編寫面向組件的應用程序,好像更多的是個投資、設計和程序員管理方面的問題,而不是一個編程語言問題。當然某些語言在這方面具有先天優勢,不過如果說有什麼魔術般的新語言能夠大大簡化組件的編寫難度,那純粹是一種誤導。

微軟已經將全部賭注押在C#上,其他語言何去何從?
Stroustrup: C++在下一個十年裡仍然將是一種主流語言。面對新的挑戰,它會奮起應對。一個創造了那麼多出色系統的語言,絕不會「坐視落花流水春去也」。
我希望微軟認識到,它在C++(我指的是ISO標准C++)上有著巨大的利益,C++是它與IT世界內其他人之間的一座橋梁,是構造大型系統和嵌入式系統的有效工具,也是滿足高性能需求的利器。其他語言,似乎更注重那些四平八穩的商用程序。

競爭
C#會不會獲得廣泛的接受,並且擠掉其他的語言?
Lindholm: 通常,一種語言既不會從別的語言那裡獲利,也不會被擠掉。那些堅定的Fortran程序員不還用著Fortran嗎?對於個人來說,語言的選擇當然因時而異,但就整體而言,語言的種類只會遞增,也就是說,它們之間的關系是「有你有我」而不是「有你沒我」。 對於一個新語言的接受程度,往往取決於其能力所及。Java技術被迅速接受,原因是多方面的,Internet和World Wide Web介面,在其他技術面前的挫折感,對於Java技術發展方向的全面影響能力,都是原因。另一個重要的原因是Java獨立於廠商,這意味著在兼容產品面前可以從容選擇。
C#是否會獲得廣泛接受?視情況而定。總的來說,那些對於平台無關性和廠商無關性漠不關心的程序員,可能會喜歡C#。那些跟微軟平台捆在一起人當然可能想要尋找VB 和VC的一個出色的替代品。但是對於程序跨平台執行能力特別關注的程序員,將會堅守Java之類的語言。這種能力對於多重訪問設備(multiple access devices)和分布式計算模型至關重要,而Java語言提供了一個標準的、獨立於廠商運行時環境。

Stroustrup: C#的流行程度幾乎完全取決於微軟投入的資金多少。看上去C#的興起肯定會犧牲掉其他一些語言的利益,但是事實上未必如此。Java的蓬勃發展並沒有給C++帶來衰敗。C++的應用仍然在穩定增長(當然,已經不是爆炸性的增長了)。也許其他的語言也還能獲得自己的一席之地。 不過,我實在看不出有什麼必要再發明一種新的專有語言。特別是微軟,既生VB,何需C#

不同OOP語言各有什麼優勢和劣勢?
Stroustrup: C++的優點自始至終都是這么幾條:靈活、高效,而且並非專有語言。現在ISO C++標準的出現,鞏固了最後一點。我認為C++的高效是它最基本的優點。這種高效來自於其特有的數據和計算模型,較之Java和C#,這種模型更加貼近機器。不過,哪些程序才真正地渴望這么高的效率?這是個問題。我認為這類程序非常多。人們對於計算機的期望,永遠都超越硬體科技的發展速度。很顯然,Java和C#的設計者的想法不同,他們認為,在很多地方效率問題無關緊要。 C++主要的缺點,歸罪於糟糕的教育(是那些始終認為C++是個純粹面向對象語言的人,和那些把C++當成C語言變體的人導致了這種情況),歸罪於不同平台上的不一致性,歸罪於不完整、不標準的編譯器實現,歸罪於平台無關的系統級程序庫的缺少。 這些問題歸於一點,就是缺乏一個卓越的廠商,能夠滿足整個C++社區的需求,勇於投入大量的資金開發必要的程序庫。

Lindholm: Java技術的成功,是因為它在合適的時間,出現在合適的地點,而且合理地選擇了語言和計算平台的支持目標。Java並不是在所有場合都優於其他OOP語言,但是對於出現的新問題能夠解決得很出色。它面向Internet計算環境,避免了C++中晦澀的結構,成功翻越了繼承機制的惱人問題。垃圾收集機制顯著地提高了生產率,降低了復雜度。在網路背景下使用虛擬機,以及有關安全性和動態載入的一系列設計選擇,迎合了正在出現的需求和願望。這些特性使Java不僅成為現有程序員的新武器,而且也為新的程序員創造了繁榮的市場空間。
此外,Java擁有一個標准化的、二進制形式的類庫,提供了必要的(當然並非充分的)平台與廠商無關性。平台與廠商無關性要求一項技術必須有清晰的規范,摒棄那些阻礙二進制標准實施的特性。C++雖然有一個ISO標准,但其實甚至對於相同系統與相同指令體系的各個平台,也提不出一個實用的、各版本兼容的二進制標准。 歷史上很多使用虛擬機的語言飽受責難,是因為其不夠出色的性能問題,而這要歸過於緩慢的解釋器和糟糕的垃圾收集器。Java的早期實現也因為同樣的問題受到嚴厲的批評。但是自那時起,業界向新的虛擬機實現技術投入了大量資金,取得了顯著的效果,如今在大部分場合,Java的性能跟常規的靜態編譯語言相比毫不遜色。這使得程序員在獲得平台和
廠商無關性的同時,也不必付出性能上的代價。 C++並沒有強制使用面向對象方法,因此為了編寫出色的面向對象代碼,就要求程序員們有相當強的紀律性。很多公司就是因為這個原因放棄了C++。作為語言,Java的一個突出的優點就是強制面向對象方法,不允許非面向對象的結構。 C#介於C++和Java之間,腳踏兩只船,因此既不夠安全,又失之復雜。對於公司來說,採用新的語言要付出巨大代價。雇不到好的程序員(沒人熟悉這種新語言),培訓費用高得驚人,學習過程中生產率和產品質量下降,多年的經驗隨風消逝,等等。

一種語言如何克服這些障礙?
Lindholm: 說得很對,採用新東西確實常常開銷巨大。不過問題是:這個新東西是否能夠節省更多的開支,或者提供巨大的改進,獲取合理的回報?很多公司發現,轉向Java技術不論在開發的後端(盡快進入市場、快速迭代開發、維護簡單性)還是前端(跨平台發布,適用范圍從低端設備到高端伺服器的技術,安全性),都能節省大筆的開銷。 對於新事物的接納,常常是在痛楚的壓力之下。很大程度上,這正是Java所經歷的。Java的產生,是對當時很多系統的缺陷所做出的反應。Java技術通過下面的手段減輕了開發者的痛楚:1) 顧及了網路計算方面的需求,是應運而生。2) 在技術能力的抉擇上,保持良好的品位,顧及了大眾的心理。3) 採用適度強制性策略推行設計決定。此外,Java技術已經成為大學教學中的主流,這同樣保證了Java開發者隊伍的不斷壯大。 但是最重要的一點是,再沒有另一種程序設計技術,能夠像Java那樣允許程序員開發基於Internet的不同平台之上的應用程序。Java平台在這方面的傑出表現,已經被大量的實例證明。Java已經成為Internet上的預設應用程序平台,Java APIs也成為Internet應用程序開發的天然平台。

Stroustrup: 微軟和Sun把大筆的金錢扔在Java、VB和C#中,並不是因為他良心發現,也不是因為他們真的相信這些語言能夠帶給程序員更美好的生活,而是利益使然。
有一個說法,認為軟體工具廠商如果能夠把應用程序開發者的專業技術任務負擔起來,將獲取巨大的經濟利益。我對其背後的經濟分析頗為懷疑,我認為這很難成為現實,特別是當應用程序開發者使用開放的、標准化的工具時,他們可以有多種選擇,從而使上面的想法更加不可能。

多年以前,C++就已經具有泛型能力(也就是templates和STL),有運算符重載,有枚舉類型?我們會不會在Java的未來版本中看到這些特性?Java是不是應該納入這些特性呢? Strousturp:從1988-89年起,C++就已經有了templates。但是我們花了不少時間來了解如何最好地運用這個工具,早期各廠家對於template的支持在品質上也有很大的差異。有些編譯器廠商動作遲緩,至少有一個主要的編譯器廠商(好像是指微軟,微軟在Visual C++4.0才開始支持template,在此之前一直聲稱template是過於復雜而又沒什麼用的技術,時至今日,Visual C++對於template的支持在主流編譯器中都屬於最差的一檔——譯者注)暗中鼓勵聲名狼藉的反template宣傳,直到他們自己終於學會了這項技術為止。直到今天,對於template的支持在品質上仍然有待改進。
你上面提到的那些特性,我認為Java(還有C#)應該,也肯定會逐漸引入。那些對於程序員來說最有用的語言特性和概念,將會逐漸集中,成為各家主流語言的必然之選。也就是說,我認為類似析構函數和模板特殊化之類的機制,遠遠比枚舉等機制重要得多。

Lindholm:Java技術成功的原因之一,就是很清楚哪些不該做。我們得多問幾個為什麼:這項特性是不是必不可少?增加它會帶來哪些開銷?運算符重載是C++中一項極其強大的特性,但是它也大大增加了C++語言的復雜度,很多人都難以招架。Java在各種可能的權衡之中,做出了明智的抉擇,找到了能力與需求之間的完美平衡點。當然,Java也會發展,而且最重要的是,現在是開發者們在推動發展。Java增加泛型能力這件事,很好地展示了Java是如何通過整個開發者社群的參與,在權衡中決定正確的平衡點。關於增加泛型類型(generic types)的「Java規格申請」(Java Specification Request, JSR)已經進入JCP(Java Community Process)程序,而且已經開發了很長一段時間(參見 http://java.sun.com/aboutJava/communityprocess/之JSR-014)。現在,在JCP中,有超過80個JSRs正在討論中,這充分體現了整個體系對開發者的積極反饋和高度合作,這正是驅動Java平台不斷進化的動力。

發展 vs. 革新(Evolution vs. Revolution)
C++是一種發展型的語言,Java和C#似乎更像是革新型語言(它們是從頭設計的)?什麼時候,革新型的語言才是必需的呢?
Lindholm: Java技術並非憑空出世,反而更像是發展型的。Java所有的特性,在Java平台推出之前,都至少已經存在於另一種環境之中。Java的貢獻在於,在眾多的特性和權衡中,做出了合理的選擇,使得產品既實用,又優雅。Java技術對於程序員的態度是:撫養,但不溺愛。

Stroustrup:從技術上講,我並不認為Java和C#是什麼「從頭設計的」革新型語言。倘若Java是從技術原則出發,從頭設計,大概就不會模仿C/C++那種醜陋和病態的語法了(不必驚訝,Stroustrup在很多場合表示過,C++採用C的語法形式,實在是迫於兼容性。他本人更偏愛Simula的語法——譯者)。 我認為,只有當程序員們面對的問題發生了根本的變化的時候,或者當我們發現了全新的、極其優越的程序設計技術,又完全不能為現存語言所支持的時候,我們才需要全新的語言。問題是,我們恐怕永遠也碰不到那些「根本」、「全新」的情況。 我以為,自從OOP問世以來,可稱為「根本」的新型程序設計技術,唯有泛型程序設計(generic programming)和生成式程序設計(generative programming)技術,這兩項技術主要是源於C++ templates技術的運用,也有一部分曾經被視為面向對象和函數式語言(functional languages)的次要成分,現在都變成正式、可用和可承受的技術了。我對於目前C++模板(template)程序設計的成果非常興奮。例如,像POOMA, Blitz++和MTL等程序庫,在很多地方改變了數值計算的方式。

Java和C#的一個「賣點」,就是它們的簡單性。現在Java是不是快失去這個賣點了?
Stroustrup:新語言總是宣稱自己如何如何簡單,對老語言的復雜性頗多非議。其實這種所謂的「簡單性」,簡單地說,就是不成熟性。語言的復雜性,是在解決現實世界中極為煩瑣和特殊的復雜問題的過程中逐漸增加的。一個語言只要活的時間夠長,總會有某些地方逐漸復雜起來,或者是語言本身,或者是程序庫和工具。C++和Java顯然都不例外,我看C#也一樣。如果一種語言能夠度過自己的幼年時代,它會發現,自己無論是體積還是復雜性都大大增加了。

Lindholm:Java技術的的功能在增加,需要學習的東西也在增加。不過功能的增加並不一定帶來復雜性的增加。Java技術的發展,並沒有使學習曲線更加陡峭,只是讓它繼續向右方延展了。

標准
標准化語言和開放型語言各自的優點和缺點何在?
Lindholm:對於一個開放、不允許專有擴展、具有權威的強制性標准語言或者運行環境來說,不存在什麼缺點。允許專有擴展就意味著允許廠商下套子綁架客戶。特別重要的是,必須讓整個平台,而不只是其中一部分完全標准化,才能杜絕廠商們利用高層次的專有API下套子。客戶要求有選擇廠商的自由,他們既要有創造性,又需要兼容性。

Stroustrup:對於一個語言,如C/C++來說,建立正式標准(如ISO標准)最大的好處,在於可以防止某一個廠商操縱這種語言,把它當成自己的搖錢樹。多個廠商的競爭給用戶帶來的是較低的價位和較好的穩定性。 專有語言的好處,一是流行,二是便宜(不過等你被套牢了之後,情況就會起變化),三是對於商業性需求可以做出快速的反應。 標准化語言的特點之一是,它不能忽略特殊用戶的需求。比如我在AT&T中所考慮的東西,其規模、可靠性和效率要求,跟那些普通廠商關注的大眾軟體相比,根本不可同日而語。那些公司很自然只關注主要的需求。 然而,多數大機構和身處前沿的公司,都有著特殊的需求。C++的設計是開放、靈活和高效的,能夠滿足我所能想像的任何需求。跟其他的現代語言相比,C++的家長式作風可謂少之又少,原因就在這。當然,不能贊賞這一點的人會詬病C++的「危險」。 擁有正式和開放標準的語言主要是為編程工具的使用者和客戶服務的,而擁有專屬「標准」的語言,主要是為廠商服務的。

熱點內容
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:100
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:208
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554
雲伺服器的優點與缺點 發布:2024-09-08 06:30:34 瀏覽:734
上傳下載賺錢 發布:2024-09-08 06:14:51 瀏覽:258