国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Thinking in Java | Prewords

寫在前面的話

我的兄弟Todd目前正在進行從硬件到編程領(lǐng)域的工作轉(zhuǎn)變。我曾提醒他下一次大革命的重點將是遺傳工程。
我們的微生物技術(shù)將能制造食品、燃油和塑料;它們都是清潔的,不會造成污染,而且能使人類進一步透視物理世界的奧秘。我認為相比之下電腦的進步會顯得微不足道。

但隨后,我又意識到自己正在犯一些科幻作家常犯的錯誤:在技術(shù)中迷失了(這種事情在科幻小說里常有發(fā)生)!如果是一名有經(jīng)驗的作家,就知道絕對不能就事論事,必須以人為中心。遺傳對我們的生命有非常大的影響,但不能十分確定它能抹淡計算機革命——或至少信息革命——的影響。信息涉及人相互間的溝通:的確,汽車和輪子的發(fā)明都非常重要,但它們最終亦如此而已。真正重要的還是我們與世界的關(guān)系,而其中最關(guān)鍵的就是通信。

這本書或許能說明一些問題。許多人認為我有點兒大膽或者稍微有些狂妄,居然把所有家當都擺到了Web上。“這樣做還有誰來買它呢?”他們問。假如我是一個十分守舊的人,那么絕對不這樣干。但我確實不想再沿原來的老路再寫一本計算機參考書了。我不知道最終會發(fā)生什么事情,但的確認為這是我對一本書作出的最明智的一個決定。

至少有一件事是可以肯定的,人們開始向我發(fā)送糾錯反饋。這是一個令人震驚的體驗,因為讀者會看到書中的每一個角落,并揪出那些藏匿得很深的技術(shù)及語法錯誤。這樣一來,和其他以傳統(tǒng)方式發(fā)行的書不同,我就能及時改正已知的所有類別的錯誤,而不是讓它們最終印成鉛字,堂而皇之地出現(xiàn)在各位的面前。俗話說,“當局者迷,旁觀者清”。人們對書中的錯誤是非常敏感的,往往毫不客氣地指出:“我想這樣說是錯誤的,我的看法是……”。在我仔細研究后,往往發(fā)現(xiàn)自己確實有不當之處,而這是當初寫作時根本沒有意識到的(檢查多少遍也不行)。我意識到這是群體力量的一個可喜的反映,它使這本書顯得的確與眾不同。

但我隨之又聽到了另一個聲音:“好吧,你在那兒放的電子版的確很有創(chuàng)意,但我想要的是從真正的出版社那里印刷的一個版本!”事實上,我作出了許多努力,讓它用普通打印機機就能得到很好的閱讀效果,但仍然不象真正印刷的書那樣正規(guī)。許多人不想在屏幕上看完整本書,也不喜歡拿著一疊紙閱讀。無論打印格式有多么好,這些人喜歡是仍然是真正的“書”(激光打印機的墨盒也太貴了一點)?,F(xiàn)在看來,計算機的革命仍未使出版界完全走出傳統(tǒng)的模式。但是,有一個學(xué)生向我推薦了未來出版的一種模式:書籍將首先在互聯(lián)網(wǎng)上出版,然后只有在絕對必要的前提下,才會印刷到紙張上。目前,為數(shù)眾多的書籍銷售都不十分理想,許多出版社都在虧本。但如采用這種方式出版,就顯得靈活得多,也更容易保證贏利。

這本書也從另一個角度也給了我深刻的啟迪。我剛開始的時候以為Java“只是另一種程序設(shè)計語言”。這個想法在許多情況下都是成立的。但隨著時間的推移,我對它的學(xué)習(xí)也愈加深入,開始意識到它的基本宗旨與我見過的其他所有語言都有所區(qū)別。

程序設(shè)計與對復(fù)雜性的操控有很大的關(guān)系:對一個準備解決的問題,它的復(fù)雜程度取決用于解決它的機器的復(fù)雜程度。正是由于這一復(fù)雜性的存在,我們的程序設(shè)計項目屢屢失敗。對于我以前接觸過的所有編程語言,它們都沒能跳過這一框框,由此決定了它們的主要設(shè)計目標就是克服程序開發(fā)與維護中的復(fù)雜性。當然,許多語言在設(shè)計時就已考慮到了復(fù)雜性的問題。但從另一角度看,實際設(shè)計時肯定會有另一些問題浮現(xiàn)出來,需把它們考慮到這個復(fù)雜性的問題里。不可避免地,其他那些問題最后會變成最讓程序員頭痛的。例如,C++必須同C保持向后兼容(使C程序員能盡快地適應(yīng)新環(huán)境),同時又要保證編程的效率。C++在這兩個方面都設(shè)計得很好,為其贏得了不少的聲譽。但它們同時也暴露出了額外的復(fù)雜性,阻礙了某些項目的成功實現(xiàn)(當然,你可以責備程序員和管理層,但假如一種語言能通過捕獲你的錯誤而提供幫助,它為什么不那樣做呢?)。作為另一個例子,Visual Basic(VB)同當初的BASIC有關(guān)的緊密的聯(lián)系。而BASIC并沒有打算設(shè)計成一種能全面解決問題的語言,所以堆加到VB身上的所有擴展都造成了令人頭痛和難于管理和維護的語法。另一方面,C++、VB和其他如Smalltalk之類的語言均在復(fù)雜性的問題上下了一番功夫。由此得到的結(jié)果便是,它們在解決特定類型的問題時是非常成功的。
在理解到Java最終的目標是減輕程序員的負擔時,我才真正感受到了震憾,盡管它的潛臺詞好象是說:“除了縮短時間和減小產(chǎn)生健壯代碼的難度以外,我們不關(guān)心其他任何事情。”在目前這個初級階段,達到那個目標的后果便是代碼不能特別快地運行(盡管有許多保證都說Java終究有一天會運行得多么快),但它確實將開發(fā)時間縮短到令人驚訝的地步——幾乎只有創(chuàng)建一個等效C++程序一半甚至更短的時間。這段節(jié)省下來的時間可以產(chǎn)生更大的效益,但Java并不僅止于此。它甚至更上一層樓,將重要性越來越明顯的一切復(fù)雜任務(wù)都封裝在內(nèi),比如網(wǎng)絡(luò)程序和多線程處理等等。Java的各種語言特性和庫在任何時候都能使那些任務(wù)輕而易舉完成。而且最后,它解決了一些真正有些難度的復(fù)雜問題:跨平臺程序、動態(tài)代碼改換以及安全保護等等。換在從前,其中任何每一個都能使你頭大如斗。所以不管我們見到了什么性能問題,Java的保證仍然是非常有效的:它使程序員顯著提高了程序設(shè)計的效率!

在我看來,編程效率提升后影響最大的就是Web。網(wǎng)絡(luò)程序設(shè)計以前非常困難,而Java使這個問題迎刃而解(而且Java也在不斷地進步,使解決這類問題變得越來越容易)。網(wǎng)絡(luò)程序的設(shè)計要求我們相互間更有效率地溝通,而且至少要比電話通信來得便宜(僅僅電子函件就為許多公司帶來了好處)。隨著我們網(wǎng)上通信越來越頻繁,令人震驚的事情會慢慢發(fā)生,而且它們令人吃驚的程度絕不亞于當初工業(yè)革命給人帶來的震憾。

在各個方面:創(chuàng)建程序;按計劃編制程序;構(gòu)造用戶界面,使程序能與用戶溝通;在不同類型的機器上運行程序;以及方便地編寫程序,使其能通過因特網(wǎng)通信——Java提高了人與人之間的“通信帶寬”。而且我認為通信革命的結(jié)果可能并不單單是數(shù)量龐大的比特到處傳來傳去那么簡單。我們認為認清真正的革命發(fā)生在哪里,因為人和人之間的交流變得更方便了——個體與個體之間,個體與組之間,組與組之間,甚至在星球之間。有人預(yù)言下一次大革命的發(fā)生就是由于足夠多的人和足夠多的相互連接造成的,而這種革命是以整個世界為基礎(chǔ)發(fā)生的。Java可能是、也可能不是促成那次革命的直接因素,但我在這里至少感覺自己在做一些有意義的工作——嘗試教會大家一種重要的語言!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
01前 言
為什么會有這么多種程序設(shè)計語言?
java學(xué)習(xí)——理解面向?qū)ο蟪绦蛟O(shè)計
三個神話的破滅 VB程序員未來究竟在哪?
軟件相關(guān)技術(shù)及其在國內(nèi)的應(yīng)用
程序員入門必讀:編程語言爭霸 霸主是他
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服