C
chn2k
Unregistered / Unconfirmed
GUEST, unregistred user!
(郑重声明:本帖可由版主任意发落)
學 Kylix? 免談!
--------------------------------------------------------------------------------
* 悬赏:『 0枚金币 』 *发榜人:『 Ai 』 *榜文类别:『 综合类问题 』
* 命题:『 學 Kylix? 免談! 』
Ai
地 位:『副主席』
地 盘:
历 史: 2001-11-24
墨 宝: 796 篇
财 富: 90 枚金币
学 历: 书童
发榜时间:2001-12-20 21:59:00 我要揭榜 本榜现估价:0枚金币
--------------------------------------------------------------------------------
(来自深度论坛)
同樣的話, 我已講了不知多少次, 第一次就是 "我發誓不寫 WINdows 的程式" , 那已經是好多年前的事了.
寫了近 10 年的 Clipper, 看到 Windows 的勢力如日中天, 而 do
S 則日薄西山, 當感到大事不妙的時候, 當然只有想辦法學著寫 Windows 的程式, 然而在書店裡望著厚厚一大本 API與SDK 時, 只有一個念頭, 唉! 改行吧!
當結束了經營有七八年的軟體公司(幾千家公司成了電腦孤兒), 的確改行了一段時間, 當時懷中只有一套向潤發買的 Delphi 1 beta, 當小說看總可以了吧.
終於耐不住寂寞, 在 Delphi3 的時候又進場了, 由 do
S + Clipper + DBF 一下變成 Windows + Delphi 3 + SQL, 不止工具不同, 連觀念都不同, 相信我, 在這二年裡所遭受的壓力與挫折遠比過去開軟體公司的七八年加起來還要大, 因為七八年裡無論是 do
S, Clipper 或 DBF 幾乎沒什麼變化, 你可以全神灌注在 AP 上, 而現在你卻要與一堆剛從實驗室裡出來的工具搏鬥.
曾經有過當 user 按一個儲存的 button 後, 要等上20分鐘才會出現 "存檔成功" 的訊息, 而幾十個貨櫃當天要結關, 若文件出不來, 貨只能全部拉回工廠.
也經有過 Oracle 7 server 一旦 login session 超過20, 再來的 session 就會無法 login, 我只好在辦公室使出吃奶的力量吼 "沒有正在使用的人, 請將 AP 結束 ...."
在那時我結識了李維( 唉! 似乎大家都是在快要淹死的時候才想到李維), 真奇怪, 那時他不是 Borland 的人, 卻願意與我一起論這些問題, 雖然每次他都沒直接給我答案, 但都能成功引導我方向, 就像和尚說禪, 一句話聽不懂, 二句話還是不懂, 但聽多了就懂了, 喔, 這就是真理.
好不容易在 Delphi 4 + Oracle 7 的環境下太平了一年(好慘, 才一年), Delphi 4 又開始鼓吹 3-tier 的觀念, 那時看李維在台上口沫橫飛的強調, "這就是未來", 我當然按耐不住也實驗了一番, 結局是, 我又發誓了, "我發誓絕對不學 3-tier"
太難搞了, Client/Server 就已經去了半條命, 而且有必要嗎? 有幾個人的 case 會大到連 Client/Server 都搞不定, 要架上 3-tier, 至少那絕對不是我.
但二年後的今天, 我不但上了 3-tier, 而且還頗有一段波折, "上 3-tier"? 為什麼不用 Java? 相信很多人都有這個疑惑, 其實廣義的說, 連 web server 的 CGI 或 ASP 也能算是 3-tier, 那為什麼要用Java或是Delphi 等難度較高的工具來開發?
其實沒到用時是不會了解這些技術的精神所在, 就好比在這二年 Client/Server 的時代裡, 為了讓遠端 user 能詢資料, 我就架了 web server, 用 CGI 與 ASP 寫了許多報表程式, 而一些簡單的資料異動, 也能在遠端透過 web server 辦到, 但久而久之就陷入了萬劫不復之地.
首先就是這環境太難維護了, 同樣的功能要用 Delphi 與 ASP 各寫一遍, Delphi 給 local lan user 用, ASP 給遠端用, 而 ASP 難寫又難除錯.
二就是對遠端 user 而言, ASP 太弱了, 即使卯足了勁寫出來連自己也快看不懂的 ASP 程式, user 還是不滿意, "為什麼不能用 mouse 把物料編號從這個視窗拖過來?"
所以基於這些理由, 我開始了奇幻之旅.
1.程式要只寫一次, 就能不分遠端或近端 user 都能使用.
2.要有如 Delphi 般超強的開發速度與使用者介面.
既然目標確立, 我就開始過濾所有的工具與技術, 首先就是當紅炸子雞 Java, 從 JDK 或是 JDBC 下手? 我才沒那麼傻, 具有 IDE 介面的開發工具共有 IBM 的 Visual Age for Java v2.0, Borland 的 JBuilder v.2.0 與 Oracle 的 JDeveloper v2.0, 除了四處聽演講, 更是一口氣各買了一套回家動手做, 這些年慘痛的經驗告訴我, "絕對不要相信 sales, 一定要親手實驗".
JDeveloper 與 JBuilder 系出同門, 優點相近, 缺點也相同, run 一個小時最少死當一次, 而且速度慢的難以忍受, Visual Age for Java 的確相當得到我的喜愛, 但結果還是敗在 Java 的本質, Java 太難了!
當我把所有 Java 工具研究告一段落, 寫個簡單 database application 之後, 我又發誓了, "要我這把年紀開始學 Java, 唉! 還不如去死算了"
Java 除了難, 複雜, 還 "亂" 的可以, 從我拿到這些工具開始, 短短幾個月就出現了 JDK 1.16 1.17 1.2 ....
更妙的是一台 server 中, Oracle 8i, Oracle application server, JBuilder, JDeveloper, Visual Age for Java 用的 JDK 版本都不同, 若 path 出了問題, 那就死的不明不白了.
會從 Java 展開我的奇幻之旅還有一個誘因, 就是 thin client 這個名詞, 多動聽啊, 所有的 client 都不需要安裝任何東西就能跑 AP, 真的還是假的?
當然是真的, 只是還要從 web server do
wnload 好幾 M 的 jar file 而且是壓縮過的, 聽懂了吧, 若要 thin client, 就得在 run time do
wnload 幾 M 的 run time library, 唉! 好個 thin client.
其實是不是 thin client 我倒不在乎, 因為我要解決的不是 internet user, 而是 intranet user, 只是許多 user 會透過 internet 等低速線做資料交換, 所以不是 thin client 無所謂, 但除了 Java 還有別的選擇嗎? 我又拿起了床頭 "Delphi 4.x分散式多層應用 系統篇 李維著" 這本書, 心不甘情不願的一頁頁往下看...
最後我的奇幻之旅還是落在我熟悉的 Delphi, 而且起初在 Delphi 4 實驗 3-tier 所碰到奇奇怪怪的問題在 Delphi 5 全部得到了合理的解決, 我的床頭書也從 "Delphi 4.x分散式多層應用 系統篇" 換成了 "Delphi 5.x分散式多層應用 系統篇", 靠這本書我現在讓公司從 Client/Server 變成了 3-tier, 當然這工程仍在進行中, 不過我已能看到這項工程改造後的成果.
首先就是從分散式作業走向 Data Center 與 ASP(Application Service Provider), 我的環境目前全世界有10個點, 5 個 Oracle database, 許多資料是單向或雙向 replication, 但 Oracle 的 replication 實在不敢恭維, 雖然最後我用 Delphi 3-tier 自行寫了 replication 提高資料可靠度, 但各資料庫是在循環異動, 所以理論上永遠不可能同步, 所以 Data Center 是最終解決方案.
既然是 ASP 與 Data Center, 這也代表我在外旅行的時間會減少很多, 只要待在一個點就夠了, 而且所有的 data 集中在一個 database 裡, 也意味著程式會簡化許多, 這點只要有寫過分散式資料庫的人, 都能體會比對資料正確性有多辛苦.
既然這麼好, 為什麼不早些進場呢? 我想時機很重要, 在 Delphi 4 的時代 3-tier 的問題較多, 而且那時我的環境也還只有全世界二個點, 二個 database, 還突顯不出需求. 所以無論是什麼技術總是有其設計的理念, 要不要跟? 因人而異吧, 至少現在的我似乎離天下太平的日子又不遠了, 要我學 Kylix? 門都沒有! 除非...
--
james
guard
小班
58 Posts Posted - 02/21/2001 : 23:05:43
--------------------------------------------------------------------------------
不長不短的敘述,道盡資訊人堅持下的悲哀/樂趣,所以現在都學得比較聰明,工具
不選第一版,技術不學第一個
Gordon Li
班長
Taiwan
241 Posts Posted - 03/01/2001 : 09:45:42
--------------------------------------------------------------------------------
首先我要謝謝您在我的論壇中發表了這麼棒的一篇文章,寫出了一個資訊人員的心路,學習,和克服障礙的過程,也許有一些比較年輕的朋友無法瞭解您說的一些事情,例如他們也許從沒有經驗過從DOS到視窗的階段,但是我也是和您有著一樣的經驗,從DOS的dBase,Clipper,以及到現在我還記得使用來接案子的Dr. Compiler。到Windows 3.1時代使用Borland C++ Compiler,以及生產力低落的Visual C++/MFC,, 一直到Delphi,Borland C++ Builder,Java,CORBA/EJB等。
在這個漫長的學習過程中,從我稱為石器時代的學習Windows API,使用Visual C++寫些小小的練習程式,到真正的能夠使用Borland C++寫出數10萬行的智慧型排程系統,再到高生產力的Delphi和BCB。在其間我也曾迷茫在各種工具,技術和人云亦云的各種學習旅程中。也許是我和您走的路有所不同,因此學習並且快速掌握各種工具,技術成為我生存下去的必要條件之一。
在看完你的文章之後,我思考了許久,心中有著各種不同的感覺。由於您一定花了許多的時間寫這篇文章,因此如果我只簡短的回答,那麼是非常不禮貌的,所以我花了一些時間才回您的文章,希望您見諒。在閱讀您的文章過程中有許多的片段讓我會心一笑,就讓下面的片段文章中讓我們互相的交流一下。
>當結束了經營有七八年的軟體公司(幾千家公司成了電腦孤兒), 的確改行了一段時間, >當時懷中只有一套向潤發買的 Delphi 1 beta, 當小說看總可以了吧.
看到這裡讓我回想到了1995年2月14日Delphi 1發表的年代,以及更早以前Delphi 1還在Beta Testing的時代。還記得我當時從Borland第一次收到Delphi Beta版時,我便深深的吸了一口氣,我對我自己說這才是我需要使用來在Windows下開發應用程式的工具,只是當時由於我使用Borland C++開發系統已經到了最後的階段,因此我並無法花太多的時間在Delphi 1之上,我只是直覺的覺得這個工具一定會紅,只是沒有想到之後的Delphi會如此受到歡迎,Borland也因為Delphi而開始起死回生。
>終於耐不住寂寞, 在 Delphi3 的時候又進場了, 由 do
S + Clipper + DBF 一下變成 >Windows + Delphi 3 + SQL, 不止工具不同, 連觀念都不同, 相信我, 在這二年裡所遭受的>壓力與挫折遠比過去開軟體公司的七八年加起來還要大, 因為七八年裡無論是 do
S, >Clipper 或 DBF 幾乎沒什麼變化, 你可以全神灌注在 AP 上, 而現在你卻要與一堆剛從實>驗室裡出來的工具搏鬥.
沒錯,我認識許多當時使用DBF和Clipper的朋友都無法接受和瞭解SQL Server的寫作方式,再加上剛學習Windows程式設計的煎熬,而紛紛的不支到地。我很幸運的熬了下來。只是不認為Delphi 3是一個非常成熟的工具,品質比Delphi 4還好,Delphi 4一直到了4.03才是真正穩定的工具。
不過好在您回來了,我想那幾千家公司一定很高興又可以重生了吧。就像Terminator之中的阿諾一樣,你當時應該對他們說『I will be back!』, 嘻。
>曾經有過當 user 按一個儲存的 button 後, 要等上20分鐘才會出現 "存檔成功" 的
>訊息, 而幾十個貨櫃當天要結關, 若文件出不來, 貨只能全部拉回工廠.
>也經有過 Oracle 7 server 一旦 login session 超過20, 再來的 session 就會無法 >login, 我只好在辦公室使出吃奶的力量吼 "沒有正在使用的人, 請將 AP 結束 ...."
這段話真是讓的會心一笑,因為我正好有兩個和你敘述幾乎一樣的案子。其中一個案子也是使用Oracle,我記得當那個系統要儲存資料時,那個主管都會起立叫所有的人不淮碰鍵盤,才可以安心的點選儲存按鈕,真是不可思議的系統。當然我接手之後不久就解決了這種難堪的場面。另外一個案子是幾年前使用MS SQL Server 4.3的經驗。那時MS SQL Server還是使用Page Lock,因此當用戶端的使用者一多時,我只記得後果是慘不忍睹,那時我才開始喜歡Record Lock的資料庫,而最後的事實也證明Record Lock獲得了大部份使用者的青睞,幾乎所有的資料庫廠商也都使用了Record Lock機制。
>在那時我結識了李維( 唉! 似乎大家都是在快要淹死的時候才想到李維), 真奇怪, 那>時他不是 Borland 的人, 卻願意與我一起論這些問題, 雖然每次他都沒直接給我答案, 但>都能成功引導我方向, 就像和尚說禪, 一句話聽不懂, 二句話還是不懂, 但聽多了就懂了, >喔, 這就是真理.
看到這段我有點高興,也有點不好意思,我不記得和您討論的情形。也許是過去5年來和我討論過的人太多了。我想能夠找到成功的方向是您努力的結果,我實不敢居功。
>好不容易在 Delphi 4 + Oracle 7 的環境下太平了一年(好慘, 才一年), Delphi 4 又>開始鼓吹 3-tier 的觀念, 那時看李維在台上口沫橫飛的強調, "這就是未來", 我當然按
>耐不住也實驗了一番, 結局是, 我又發誓了, "我發誓絕對不學 3-tier"
哈,我也想在台下看看我口沫橫飛的樣子。不過請您見諒的是,由於我的工作性質讓我必須不斷的學習新的技術。也許不是每一個人都需要這些技術,但是不推廣新的技術,資訊廠商也不會進步。特別是當我還是Borland的產品經理時,介紹並且推廣新技術和產品是我的工作之一。不過我想N-Tier的技術到現在證明是對的方向,現在幾乎許多的系統都是使用N-Tier技術和架構開發的。
>JDeveloper 與 JBuilder 系出同門, 優點相近, 缺點也相同, run 一個小時最少死當
>一次, 而且速度慢的難以忍受, Visual Age for Java 的確相當得到我的喜愛, 但結果>還是敗在 Java 的本質, Java 太難了!
>當我把所有 Java 工具研究告一段落, 寫個簡單 database application 之後, 我又發>誓了, "要我這把年紀開始學 Java, 唉! 還不如去死算了"
>Java 除了難, 複雜, 還 "亂" 的可以, 從我拿到這些工具開始, 短短幾個月就出現了 >JDK 1.16 1.17 1.2 ....
>更妙的是一台 server 中, Oracle 8i, Oracle application server, JBuilder, >JDeveloper, Visual Age for Java 用的 JDK 版本都不同, 若 path 出了問題, 那就死的
>不明不白了.
在資訊領域中我一直認為我是實用派的人,不會太在意特定的工具,也不會死守於特定的技術。我的觀念是做出來最重要,做不出來使用什麼工具或技術都沒有用。系統一要使用最適合的工具和技術,只是到目前為止我不認為在Windows平台上有什麼是我使用Delphi做不到的,因為我不需要寫Device Driver。我使用C/C++有6到7年的時間,許多人也喜歡使用C/C++,但是我必須老實說在國內我幾乎沒有看到什麼大系統或是大型的商業軟體是使用C/C++開發的,許多我看過使用C/C++開發的系統幾乎都失敗了。為什麼?因為C/C++的生產力太低,維護的成本又太高,一旦關鍵人物離開,幾乎沒有人能夠接下來繼續做,想我當初使用C/C++開發排程系統時,我記得一旦要編譯,那麼我會到當時最好的機器,一台Compaq 486-66 MHZ,64M RAM中編譯,一次編譯要4個鐘頭,150萬行程式(包含了C/C++的Header File),在這4個鐘頭中我不知道要做什麼,真希望那時Internet/Intranet已經像現在這麼發達,我就可以上網玩了。當然,有人看到這段話可能會反對,不過這是我的經驗和感覺,沒有什麼偏見,因為我使用C/C++的時間比Delphi還長,但是使用Delphi,我的生產力比我使用C/C++高上數倍則是不爭的事實。您上面的話相信道出了許多的心聲。在Borland工作時我也使用Java,也看到許多人使用Java來開發系統,但是我並沒有看到看到有多少系統使用Java開發出來。你說的一點也沒錯,Java的速度讓我無法消受,從數年前我聽SUN說Java JDK 1.2的速度將比美C/C++,HOT Spot Compiler的速度將和C/C++一樣快。我只想說我用VB寫的都比Java快。更何況如果我領導一個Team開發系統的話,我可不想每3個月來一個不同的JDK,從JDK 1.1, 1.2, 1.3....。不過JDK到了2.0之後的情形是好了好多。
>其實是不是 thin client 我倒不在乎, 因為我要解決的不是 internet user, 而是 >intranet user, 只是許多 user 會透過 internet 等低速線做資料交換, 所以不是 thin >client 無所謂, 但除了 Java 還有別的選擇嗎? 我又拿起了床頭 "Delphi 4.x分散式多層>應用 系統篇 李維著" 這本書, 心不甘情不願的一頁頁往下看...
>最後我的奇幻之旅還是落在我熟悉的 Delphi, 而且起初在 Delphi 4 實驗 3-tier 所
>碰到奇奇怪怪的問題在 Delphi 5 全部得到了合理的解決, 我的床頭書也從 "Delphi >4.x分散式多層應用 系統篇" 換成了 "Delphi 5.x分散式多層應用 系統篇", 靠這本書我
>現在讓公司從 Client/Server 變成了 3-tier, 當然這工程仍在進行中, 不過我已能
>看到這項工程改造後的成果.
謝謝您支持我寫的書,當初要寫系統篇時我掙扎了許久,因為我不知道到底有沒有人會購買這本書。旗標也希望我不要寫,最好是寫寫入門書和簡單的資料庫書籍,這樣會比較好賣。還好我堅持寫自己有興趣的書,否則寧願不出,最後旗標才同意讓我試試,想著那一段時間也覺得蠻辛苦的。
在Delphi 4的MIDAS 2.0是由Josh Dahby接手開發的,Josh是一位非常年輕的程式師,也許是經驗的不足,因此我一直覺得他並沒有把MIDAS做得很好,後來MIDAS逐漸的由Dan Miser加入和接手。現在Delphi 6的MIDAS 4.0便是由Dan Miser開發,MIDAS也逐漸的進入成熟期,問題愈來愈少了。現在MIDAS已經成為Delphi中開發Flat-File,主從架構,多層應用系統和跨平台的重要技術,因此使用Delphi的程式師不管是不是要開發分散式多層應用系統,好好的學習MIDAS已經成為最基本而且重要的工作之一了。這在Delphi 6中將會非常明顯的。
最後我當然要恭喜您成功的使用Delphi和MIDAS開發了這麼一套偉大的系統,我想這個過程雖然非常的辛苦,但是看著系統有這麼多人使用,心中一定也有著驕傲吧,我想這就是做為一個系統開發人員最好的回報。
>既然這麼好, 為什麼不早些進場呢? 我想時機很重要, 在 Delphi 4 的時代 3-tier 的>問題較多, 而且那時我的環境也還只有全世界二個點, 二個 database, 還突顯不出需求. >所以無論是什麼技術總是有其設計的理念, 要不要跟? 因人而異吧, 至少現在的我似乎離
>天下太平的日子又不遠了, 要我學 Kylix? 門都沒有! 除非...
哈哈,到了這裡我想我和您又要走不同的路了。隨著年齡的增長,現在的我似乎只有靠著學習新的技術和架構才能夠讓我覺得日子比較有趣,而且我的工作還是需要我不時的進修。用不用Kylix還是要看您的工作有無需要。不過沒有關係,讓我先走一步,也許在不久的將來我們又會一起在Delphi的Kylix的學習旅程中再次相會。
祝福您一切順利。
李維敬上。
---------------------------------------------------------------------------------
人工智能
學 Kylix? 免談!
--------------------------------------------------------------------------------
* 悬赏:『 0枚金币 』 *发榜人:『 Ai 』 *榜文类别:『 综合类问题 』
* 命题:『 學 Kylix? 免談! 』
Ai
地 位:『副主席』
地 盘:
历 史: 2001-11-24
墨 宝: 796 篇
财 富: 90 枚金币
学 历: 书童
发榜时间:2001-12-20 21:59:00 我要揭榜 本榜现估价:0枚金币
--------------------------------------------------------------------------------
(来自深度论坛)
同樣的話, 我已講了不知多少次, 第一次就是 "我發誓不寫 WINdows 的程式" , 那已經是好多年前的事了.
寫了近 10 年的 Clipper, 看到 Windows 的勢力如日中天, 而 do
S 則日薄西山, 當感到大事不妙的時候, 當然只有想辦法學著寫 Windows 的程式, 然而在書店裡望著厚厚一大本 API與SDK 時, 只有一個念頭, 唉! 改行吧!
當結束了經營有七八年的軟體公司(幾千家公司成了電腦孤兒), 的確改行了一段時間, 當時懷中只有一套向潤發買的 Delphi 1 beta, 當小說看總可以了吧.
終於耐不住寂寞, 在 Delphi3 的時候又進場了, 由 do
S + Clipper + DBF 一下變成 Windows + Delphi 3 + SQL, 不止工具不同, 連觀念都不同, 相信我, 在這二年裡所遭受的壓力與挫折遠比過去開軟體公司的七八年加起來還要大, 因為七八年裡無論是 do
S, Clipper 或 DBF 幾乎沒什麼變化, 你可以全神灌注在 AP 上, 而現在你卻要與一堆剛從實驗室裡出來的工具搏鬥.
曾經有過當 user 按一個儲存的 button 後, 要等上20分鐘才會出現 "存檔成功" 的訊息, 而幾十個貨櫃當天要結關, 若文件出不來, 貨只能全部拉回工廠.
也經有過 Oracle 7 server 一旦 login session 超過20, 再來的 session 就會無法 login, 我只好在辦公室使出吃奶的力量吼 "沒有正在使用的人, 請將 AP 結束 ...."
在那時我結識了李維( 唉! 似乎大家都是在快要淹死的時候才想到李維), 真奇怪, 那時他不是 Borland 的人, 卻願意與我一起論這些問題, 雖然每次他都沒直接給我答案, 但都能成功引導我方向, 就像和尚說禪, 一句話聽不懂, 二句話還是不懂, 但聽多了就懂了, 喔, 這就是真理.
好不容易在 Delphi 4 + Oracle 7 的環境下太平了一年(好慘, 才一年), Delphi 4 又開始鼓吹 3-tier 的觀念, 那時看李維在台上口沫橫飛的強調, "這就是未來", 我當然按耐不住也實驗了一番, 結局是, 我又發誓了, "我發誓絕對不學 3-tier"
太難搞了, Client/Server 就已經去了半條命, 而且有必要嗎? 有幾個人的 case 會大到連 Client/Server 都搞不定, 要架上 3-tier, 至少那絕對不是我.
但二年後的今天, 我不但上了 3-tier, 而且還頗有一段波折, "上 3-tier"? 為什麼不用 Java? 相信很多人都有這個疑惑, 其實廣義的說, 連 web server 的 CGI 或 ASP 也能算是 3-tier, 那為什麼要用Java或是Delphi 等難度較高的工具來開發?
其實沒到用時是不會了解這些技術的精神所在, 就好比在這二年 Client/Server 的時代裡, 為了讓遠端 user 能詢資料, 我就架了 web server, 用 CGI 與 ASP 寫了許多報表程式, 而一些簡單的資料異動, 也能在遠端透過 web server 辦到, 但久而久之就陷入了萬劫不復之地.
首先就是這環境太難維護了, 同樣的功能要用 Delphi 與 ASP 各寫一遍, Delphi 給 local lan user 用, ASP 給遠端用, 而 ASP 難寫又難除錯.
二就是對遠端 user 而言, ASP 太弱了, 即使卯足了勁寫出來連自己也快看不懂的 ASP 程式, user 還是不滿意, "為什麼不能用 mouse 把物料編號從這個視窗拖過來?"
所以基於這些理由, 我開始了奇幻之旅.
1.程式要只寫一次, 就能不分遠端或近端 user 都能使用.
2.要有如 Delphi 般超強的開發速度與使用者介面.
既然目標確立, 我就開始過濾所有的工具與技術, 首先就是當紅炸子雞 Java, 從 JDK 或是 JDBC 下手? 我才沒那麼傻, 具有 IDE 介面的開發工具共有 IBM 的 Visual Age for Java v2.0, Borland 的 JBuilder v.2.0 與 Oracle 的 JDeveloper v2.0, 除了四處聽演講, 更是一口氣各買了一套回家動手做, 這些年慘痛的經驗告訴我, "絕對不要相信 sales, 一定要親手實驗".
JDeveloper 與 JBuilder 系出同門, 優點相近, 缺點也相同, run 一個小時最少死當一次, 而且速度慢的難以忍受, Visual Age for Java 的確相當得到我的喜愛, 但結果還是敗在 Java 的本質, Java 太難了!
當我把所有 Java 工具研究告一段落, 寫個簡單 database application 之後, 我又發誓了, "要我這把年紀開始學 Java, 唉! 還不如去死算了"
Java 除了難, 複雜, 還 "亂" 的可以, 從我拿到這些工具開始, 短短幾個月就出現了 JDK 1.16 1.17 1.2 ....
更妙的是一台 server 中, Oracle 8i, Oracle application server, JBuilder, JDeveloper, Visual Age for Java 用的 JDK 版本都不同, 若 path 出了問題, 那就死的不明不白了.
會從 Java 展開我的奇幻之旅還有一個誘因, 就是 thin client 這個名詞, 多動聽啊, 所有的 client 都不需要安裝任何東西就能跑 AP, 真的還是假的?
當然是真的, 只是還要從 web server do
wnload 好幾 M 的 jar file 而且是壓縮過的, 聽懂了吧, 若要 thin client, 就得在 run time do
wnload 幾 M 的 run time library, 唉! 好個 thin client.
其實是不是 thin client 我倒不在乎, 因為我要解決的不是 internet user, 而是 intranet user, 只是許多 user 會透過 internet 等低速線做資料交換, 所以不是 thin client 無所謂, 但除了 Java 還有別的選擇嗎? 我又拿起了床頭 "Delphi 4.x分散式多層應用 系統篇 李維著" 這本書, 心不甘情不願的一頁頁往下看...
最後我的奇幻之旅還是落在我熟悉的 Delphi, 而且起初在 Delphi 4 實驗 3-tier 所碰到奇奇怪怪的問題在 Delphi 5 全部得到了合理的解決, 我的床頭書也從 "Delphi 4.x分散式多層應用 系統篇" 換成了 "Delphi 5.x分散式多層應用 系統篇", 靠這本書我現在讓公司從 Client/Server 變成了 3-tier, 當然這工程仍在進行中, 不過我已能看到這項工程改造後的成果.
首先就是從分散式作業走向 Data Center 與 ASP(Application Service Provider), 我的環境目前全世界有10個點, 5 個 Oracle database, 許多資料是單向或雙向 replication, 但 Oracle 的 replication 實在不敢恭維, 雖然最後我用 Delphi 3-tier 自行寫了 replication 提高資料可靠度, 但各資料庫是在循環異動, 所以理論上永遠不可能同步, 所以 Data Center 是最終解決方案.
既然是 ASP 與 Data Center, 這也代表我在外旅行的時間會減少很多, 只要待在一個點就夠了, 而且所有的 data 集中在一個 database 裡, 也意味著程式會簡化許多, 這點只要有寫過分散式資料庫的人, 都能體會比對資料正確性有多辛苦.
既然這麼好, 為什麼不早些進場呢? 我想時機很重要, 在 Delphi 4 的時代 3-tier 的問題較多, 而且那時我的環境也還只有全世界二個點, 二個 database, 還突顯不出需求. 所以無論是什麼技術總是有其設計的理念, 要不要跟? 因人而異吧, 至少現在的我似乎離天下太平的日子又不遠了, 要我學 Kylix? 門都沒有! 除非...
--
james
guard
小班
58 Posts Posted - 02/21/2001 : 23:05:43
--------------------------------------------------------------------------------
不長不短的敘述,道盡資訊人堅持下的悲哀/樂趣,所以現在都學得比較聰明,工具
不選第一版,技術不學第一個
Gordon Li
班長
Taiwan
241 Posts Posted - 03/01/2001 : 09:45:42
--------------------------------------------------------------------------------
首先我要謝謝您在我的論壇中發表了這麼棒的一篇文章,寫出了一個資訊人員的心路,學習,和克服障礙的過程,也許有一些比較年輕的朋友無法瞭解您說的一些事情,例如他們也許從沒有經驗過從DOS到視窗的階段,但是我也是和您有著一樣的經驗,從DOS的dBase,Clipper,以及到現在我還記得使用來接案子的Dr. Compiler。到Windows 3.1時代使用Borland C++ Compiler,以及生產力低落的Visual C++/MFC,, 一直到Delphi,Borland C++ Builder,Java,CORBA/EJB等。
在這個漫長的學習過程中,從我稱為石器時代的學習Windows API,使用Visual C++寫些小小的練習程式,到真正的能夠使用Borland C++寫出數10萬行的智慧型排程系統,再到高生產力的Delphi和BCB。在其間我也曾迷茫在各種工具,技術和人云亦云的各種學習旅程中。也許是我和您走的路有所不同,因此學習並且快速掌握各種工具,技術成為我生存下去的必要條件之一。
在看完你的文章之後,我思考了許久,心中有著各種不同的感覺。由於您一定花了許多的時間寫這篇文章,因此如果我只簡短的回答,那麼是非常不禮貌的,所以我花了一些時間才回您的文章,希望您見諒。在閱讀您的文章過程中有許多的片段讓我會心一笑,就讓下面的片段文章中讓我們互相的交流一下。
>當結束了經營有七八年的軟體公司(幾千家公司成了電腦孤兒), 的確改行了一段時間, >當時懷中只有一套向潤發買的 Delphi 1 beta, 當小說看總可以了吧.
看到這裡讓我回想到了1995年2月14日Delphi 1發表的年代,以及更早以前Delphi 1還在Beta Testing的時代。還記得我當時從Borland第一次收到Delphi Beta版時,我便深深的吸了一口氣,我對我自己說這才是我需要使用來在Windows下開發應用程式的工具,只是當時由於我使用Borland C++開發系統已經到了最後的階段,因此我並無法花太多的時間在Delphi 1之上,我只是直覺的覺得這個工具一定會紅,只是沒有想到之後的Delphi會如此受到歡迎,Borland也因為Delphi而開始起死回生。
>終於耐不住寂寞, 在 Delphi3 的時候又進場了, 由 do
S + Clipper + DBF 一下變成 >Windows + Delphi 3 + SQL, 不止工具不同, 連觀念都不同, 相信我, 在這二年裡所遭受的>壓力與挫折遠比過去開軟體公司的七八年加起來還要大, 因為七八年裡無論是 do
S, >Clipper 或 DBF 幾乎沒什麼變化, 你可以全神灌注在 AP 上, 而現在你卻要與一堆剛從實>驗室裡出來的工具搏鬥.
沒錯,我認識許多當時使用DBF和Clipper的朋友都無法接受和瞭解SQL Server的寫作方式,再加上剛學習Windows程式設計的煎熬,而紛紛的不支到地。我很幸運的熬了下來。只是不認為Delphi 3是一個非常成熟的工具,品質比Delphi 4還好,Delphi 4一直到了4.03才是真正穩定的工具。
不過好在您回來了,我想那幾千家公司一定很高興又可以重生了吧。就像Terminator之中的阿諾一樣,你當時應該對他們說『I will be back!』, 嘻。
>曾經有過當 user 按一個儲存的 button 後, 要等上20分鐘才會出現 "存檔成功" 的
>訊息, 而幾十個貨櫃當天要結關, 若文件出不來, 貨只能全部拉回工廠.
>也經有過 Oracle 7 server 一旦 login session 超過20, 再來的 session 就會無法 >login, 我只好在辦公室使出吃奶的力量吼 "沒有正在使用的人, 請將 AP 結束 ...."
這段話真是讓的會心一笑,因為我正好有兩個和你敘述幾乎一樣的案子。其中一個案子也是使用Oracle,我記得當那個系統要儲存資料時,那個主管都會起立叫所有的人不淮碰鍵盤,才可以安心的點選儲存按鈕,真是不可思議的系統。當然我接手之後不久就解決了這種難堪的場面。另外一個案子是幾年前使用MS SQL Server 4.3的經驗。那時MS SQL Server還是使用Page Lock,因此當用戶端的使用者一多時,我只記得後果是慘不忍睹,那時我才開始喜歡Record Lock的資料庫,而最後的事實也證明Record Lock獲得了大部份使用者的青睞,幾乎所有的資料庫廠商也都使用了Record Lock機制。
>在那時我結識了李維( 唉! 似乎大家都是在快要淹死的時候才想到李維), 真奇怪, 那>時他不是 Borland 的人, 卻願意與我一起論這些問題, 雖然每次他都沒直接給我答案, 但>都能成功引導我方向, 就像和尚說禪, 一句話聽不懂, 二句話還是不懂, 但聽多了就懂了, >喔, 這就是真理.
看到這段我有點高興,也有點不好意思,我不記得和您討論的情形。也許是過去5年來和我討論過的人太多了。我想能夠找到成功的方向是您努力的結果,我實不敢居功。
>好不容易在 Delphi 4 + Oracle 7 的環境下太平了一年(好慘, 才一年), Delphi 4 又>開始鼓吹 3-tier 的觀念, 那時看李維在台上口沫橫飛的強調, "這就是未來", 我當然按
>耐不住也實驗了一番, 結局是, 我又發誓了, "我發誓絕對不學 3-tier"
哈,我也想在台下看看我口沫橫飛的樣子。不過請您見諒的是,由於我的工作性質讓我必須不斷的學習新的技術。也許不是每一個人都需要這些技術,但是不推廣新的技術,資訊廠商也不會進步。特別是當我還是Borland的產品經理時,介紹並且推廣新技術和產品是我的工作之一。不過我想N-Tier的技術到現在證明是對的方向,現在幾乎許多的系統都是使用N-Tier技術和架構開發的。
>JDeveloper 與 JBuilder 系出同門, 優點相近, 缺點也相同, run 一個小時最少死當
>一次, 而且速度慢的難以忍受, Visual Age for Java 的確相當得到我的喜愛, 但結果>還是敗在 Java 的本質, Java 太難了!
>當我把所有 Java 工具研究告一段落, 寫個簡單 database application 之後, 我又發>誓了, "要我這把年紀開始學 Java, 唉! 還不如去死算了"
>Java 除了難, 複雜, 還 "亂" 的可以, 從我拿到這些工具開始, 短短幾個月就出現了 >JDK 1.16 1.17 1.2 ....
>更妙的是一台 server 中, Oracle 8i, Oracle application server, JBuilder, >JDeveloper, Visual Age for Java 用的 JDK 版本都不同, 若 path 出了問題, 那就死的
>不明不白了.
在資訊領域中我一直認為我是實用派的人,不會太在意特定的工具,也不會死守於特定的技術。我的觀念是做出來最重要,做不出來使用什麼工具或技術都沒有用。系統一要使用最適合的工具和技術,只是到目前為止我不認為在Windows平台上有什麼是我使用Delphi做不到的,因為我不需要寫Device Driver。我使用C/C++有6到7年的時間,許多人也喜歡使用C/C++,但是我必須老實說在國內我幾乎沒有看到什麼大系統或是大型的商業軟體是使用C/C++開發的,許多我看過使用C/C++開發的系統幾乎都失敗了。為什麼?因為C/C++的生產力太低,維護的成本又太高,一旦關鍵人物離開,幾乎沒有人能夠接下來繼續做,想我當初使用C/C++開發排程系統時,我記得一旦要編譯,那麼我會到當時最好的機器,一台Compaq 486-66 MHZ,64M RAM中編譯,一次編譯要4個鐘頭,150萬行程式(包含了C/C++的Header File),在這4個鐘頭中我不知道要做什麼,真希望那時Internet/Intranet已經像現在這麼發達,我就可以上網玩了。當然,有人看到這段話可能會反對,不過這是我的經驗和感覺,沒有什麼偏見,因為我使用C/C++的時間比Delphi還長,但是使用Delphi,我的生產力比我使用C/C++高上數倍則是不爭的事實。您上面的話相信道出了許多的心聲。在Borland工作時我也使用Java,也看到許多人使用Java來開發系統,但是我並沒有看到看到有多少系統使用Java開發出來。你說的一點也沒錯,Java的速度讓我無法消受,從數年前我聽SUN說Java JDK 1.2的速度將比美C/C++,HOT Spot Compiler的速度將和C/C++一樣快。我只想說我用VB寫的都比Java快。更何況如果我領導一個Team開發系統的話,我可不想每3個月來一個不同的JDK,從JDK 1.1, 1.2, 1.3....。不過JDK到了2.0之後的情形是好了好多。
>其實是不是 thin client 我倒不在乎, 因為我要解決的不是 internet user, 而是 >intranet user, 只是許多 user 會透過 internet 等低速線做資料交換, 所以不是 thin >client 無所謂, 但除了 Java 還有別的選擇嗎? 我又拿起了床頭 "Delphi 4.x分散式多層>應用 系統篇 李維著" 這本書, 心不甘情不願的一頁頁往下看...
>最後我的奇幻之旅還是落在我熟悉的 Delphi, 而且起初在 Delphi 4 實驗 3-tier 所
>碰到奇奇怪怪的問題在 Delphi 5 全部得到了合理的解決, 我的床頭書也從 "Delphi >4.x分散式多層應用 系統篇" 換成了 "Delphi 5.x分散式多層應用 系統篇", 靠這本書我
>現在讓公司從 Client/Server 變成了 3-tier, 當然這工程仍在進行中, 不過我已能
>看到這項工程改造後的成果.
謝謝您支持我寫的書,當初要寫系統篇時我掙扎了許久,因為我不知道到底有沒有人會購買這本書。旗標也希望我不要寫,最好是寫寫入門書和簡單的資料庫書籍,這樣會比較好賣。還好我堅持寫自己有興趣的書,否則寧願不出,最後旗標才同意讓我試試,想著那一段時間也覺得蠻辛苦的。
在Delphi 4的MIDAS 2.0是由Josh Dahby接手開發的,Josh是一位非常年輕的程式師,也許是經驗的不足,因此我一直覺得他並沒有把MIDAS做得很好,後來MIDAS逐漸的由Dan Miser加入和接手。現在Delphi 6的MIDAS 4.0便是由Dan Miser開發,MIDAS也逐漸的進入成熟期,問題愈來愈少了。現在MIDAS已經成為Delphi中開發Flat-File,主從架構,多層應用系統和跨平台的重要技術,因此使用Delphi的程式師不管是不是要開發分散式多層應用系統,好好的學習MIDAS已經成為最基本而且重要的工作之一了。這在Delphi 6中將會非常明顯的。
最後我當然要恭喜您成功的使用Delphi和MIDAS開發了這麼一套偉大的系統,我想這個過程雖然非常的辛苦,但是看著系統有這麼多人使用,心中一定也有著驕傲吧,我想這就是做為一個系統開發人員最好的回報。
>既然這麼好, 為什麼不早些進場呢? 我想時機很重要, 在 Delphi 4 的時代 3-tier 的>問題較多, 而且那時我的環境也還只有全世界二個點, 二個 database, 還突顯不出需求. >所以無論是什麼技術總是有其設計的理念, 要不要跟? 因人而異吧, 至少現在的我似乎離
>天下太平的日子又不遠了, 要我學 Kylix? 門都沒有! 除非...
哈哈,到了這裡我想我和您又要走不同的路了。隨著年齡的增長,現在的我似乎只有靠著學習新的技術和架構才能夠讓我覺得日子比較有趣,而且我的工作還是需要我不時的進修。用不用Kylix還是要看您的工作有無需要。不過沒有關係,讓我先走一步,也許在不久的將來我們又會一起在Delphi的Kylix的學習旅程中再次相會。
祝福您一切順利。
李維敬上。
---------------------------------------------------------------------------------
人工智能