2015年6月18日 星期四

重讀〈Java學校帶來的危害〉

 
每週二∼六出刊.2015.06.20
 
本 期 目 錄 簡介/舊報明細
重讀〈Java學校帶來的危害〉
微軟可能開放Live Writer源碼
〔書摘〕不蓋核電廠也能省電的關鍵技術

優惠訊息

. 中小企業輕鬆享雲端,大神開講,不可錯過
. 6/27(六)【Docker建置實戰講堂】移師高雄
. 日日新軟體、時時有更新,登入再下載、小當家通知你!

專欄 

重讀〈Java學校帶來的危害〉

無論xxx本身是Arduino、Java、C#,或者是任何其他的東西。這些框架是技術毒藥還是另一個可能性?

林信良
因在網路上經營「良葛格學習筆記」(openhome.cc)而聞名,曾任昇陽教育訓練中心技術顧問、甲骨文教育訓練中心授權講師,目前為自由工作者,專長為技術寫作、翻譯與教育訓練。喜好研究程式語言、框架、社群,從中學習設計、典範及文化。閒暇之餘記錄所學,技術文件涵蓋C/C++、Java、Ruby/Rails、Python、JavaScript、Haskell等多個領域。


只要我們站在技術的時間軸上夠久,然後往歷史回顧時,總是會看到所謂技術上的毒藥,就像〈Java學校帶來的危害〉一文說到的,這類技術毒藥「不夠困難,無法區分偉大的程式員跟平庸的程式員」,這時差不多就表示我們老了,然而,如果再站久一點就會發現,有人用這毒藥,建立了當初想都沒想過的應用,這時就不太能分清楚,這是不是毒藥了。

Arduino有毒?

最近我重讀了《約耳續談軟體》中〈Java學校帶來的危害〉,原因卻是接觸了Arduino的這段期間內,發現這個生態圈中,偶而會有人圍繞著「Arduino有毒」與否這類主題做討論,無論支持Arduino有毒或沒毒,大多數人都認為,不應該局限在Arduino的框架中,這類討論在軟體界似曾相似,感覺好像軟體業界�也有人感嘆,一堆新人只會用XXX框架,脫離了XXX框架就什麼也不會。

對這類討論,我其實百感交集,我是一個離開學校後,就決定離開電子電機領域的人,十幾年來,以為我這輩子不會再去碰麵包板這鬼東西,近來卻因為接觸Arduino、Raspberry Pi的關係,我有機會開始去重新撿拾一些基本的電子電路知識,並改造一些東西,像是女兒的聲光玩具,這是個很神奇的體驗。近來我也試著去瞭解,怎麼自己用Atmega328拉出個基本的Arduino Uno,也試著去翻一些8051的書,以及瞭解除了Arduino上使用的之外,還有其他哪些單晶片,以及如何使用。

我有沒有被Arduino框住呢?天曉得,只知道我現在的想法是,把電子電路當作我業餘的興趣,玩個十幾年再說,這個時間單位是因為我離開電子電機進入軟體領域,也差不多是十幾年,也許Arduino真的是毒藥!因為吃了它,我神智不清地,開始重學電阻、電容、電感、電晶體、積體電路、開始重讀微積分、想要重看工程數學……這陣子以來,我一直覺得,會重拾曾經令我厭惡的東西,是很神奇的一件事。

Arduino一開始是教育工具,不過,近來確實也有些大公司瞄準了它,像是Facebook日前發表的Parse for IoT,第一個支援的板子就是Arduino Yún,我知道Arduino Yún、Arduino Dun等,是另一個層次的東西,不能與Arduino Uno等相提並論,不過我想講的是,從程式人的角度來看,Arduino 是「軟體」,我之前專欄中〈程式人與微控制器開發板〉,就曾經談過這類觀點。

Java學校帶來的危害

看過幾個Arduino有毒與否的討論,我腦海中浮現了〈Java學校帶來的危害〉這篇文章,因而重新翻開了《約耳續談軟體》,文中第一段就寫著‥「一直在抱怨『現在的小孩』不願意或無法面對困難,顯然表示我已經老了」,約耳是在2005年寫下這篇文章,在近十年後的現在看來,又是如何呢?Java本身已經有點古老了,不過這段期間,基於Java也有著不少出色的應用產生。

在更早的2001年,Dijkstra也有著類似的呼籲,他寫信(http://goo.gl/92tqTT)力勸德州大學,不要將計算機入門使用的語言,從Haskell改為Java,在程式語言的歷史上,大概就數Java最常被拿來當作毒藥來看待吧!約耳在他的文章中也談到了Haskell,而且,兩個人也都談到了Functional Programming。

然而,在Java正式導入Lambda前的好幾年,就基於自己的興趣,開始研究起Functional Programming,也試著學習使用Haskell,時至今日,儘管並不完全,Java確實也有了Functional Programming的部份風格,儘管我不是在學校�開始學習Java,然而一開始幾乎是靠Java為生的我,似乎也沒有受到Java的毒害。

我也知道約耳在說的固定點理論(Fixed-point theorem)是什麼東西,也許我知道得不夠深,不過,真有必要,我會去深入瞭解的,我身邊也看得到許多優秀的程式人,他們不見得在學校都學過那些困難的課程,不過,卻也都曉得Functional Programming是什麼!

框架有毒嗎?

在軟體的領域中,只要某個語言興盛,就會開始產生各種程式庫與框架,一開始會呈現熱烈擁護、愛用的情況,接下來就會有人開始從擁抱框架到唾棄框架,幾乎都是這樣的,你可以在Java、Ruby/Rails、JavaScript等生態圈的發展過程中,重複看到這類劇情重演,仔細想想,這真的是框架的問題嗎?還是人的問題?

Arduino框住我嗎?我在研究Arduino 時,除了將那些電路模組是如何組成,當成業餘興趣之外,我最常作的就是,閱讀那些程式庫的原始碼,這是我很擅長的事,瞭解這些程式庫原始碼,我就能知道原理,也能修改它,不是直接修改電路(這目前的我還作不來,十年之後再看看),我想講的是,想認真玩Arduino,可以是基於它往上建立更好的應用,也可以是從它作更深入的電子電路鑽研,前者我比較擅長,後者是我的業餘興趣……想玩就不要停在Arduino本身。

Java當初是毒藥,也有人說它是教育工具,過了不久,又有人開始說,那些框架是毒藥,但其實有人用得很爽,也不會被框住。Rails是徹頭徹尾的框架,連我都不是很愛用它,不過,我不愛用它,不表示我反對它,很多人基於Rails建立了很多極為有用的東西。

我不會覺得框架是毒藥,那是產能工具、只是一個產能工具,要怎麼發揮它的產能,在上頭建立更好的應用,那決定權是在使用者的身上,你瞭解它,你就能操控它,你就能改造它。

對我來說,學一件事向來就有不同方向,一個由上而下,一個由下而上,不同人適用不同方向,我是屬於前者,喜歡從如何應用開始著手,接著,再逐步深入瞭解這是怎麼作到的。

我在軟體界從事教學時,是兩個方式都會用,有時間的話,我會自下而上,從基礎好好教導學員們,沒時間的話,我會自上而下,在行有餘力之時,告訴學員,那些表面的魔術是什麼。如果面對實戰式的課程,我還會從中間開始,比方說,我會教學員從無到有,從需求開始,逐步將既有程式重構,逐漸使得一個框架成形……,我會教學員一個IoC框架是怎麼出現的、一個測試框架怎麼出現的、一個 Web 框架怎麼出現的,近來,我也分享了既有程式要怎麼做,才能改為使用Java 8 Lambda的過程。

 閱讀全文
專題報導 

微軟可能開放Live Writer源碼

Google終止對某些舊版身份認證協定的支援導致Live Writer用戶要求微軟更新該程式。微軟則回覆指出,微軟可能會在未來幾個月公開釋出Live Writer的原始碼,要大家不必擔心



微軟部落格出版工具Live Writer的用戶在今年5月時發現再也無法連結Google Blogger服務,因而到微軟社群網站上求助。微軟首席專案經理Scott Hanselman隨之表示,Live Writer將會成為開放源碼專案,但有媒體報導,相關計畫仍有變數。

Live Writer無法連結Blogger的主因在於Google終止對某些舊版身份認證協定的支援,導致Live Writer用戶要求微軟更新該程式。不過Google表示已經在著手解決這個問題。微軟的Hanselman則先後於微軟社群網站及Twitter上回應此事,表示微軟可能會在未來幾個月公開釋出Live Writer的原始碼,要大家不必擔心。

但有媒體報導,雖然微軟內部傾向於讓Live Writer成為開放源碼專案,可過程不會那麼順利,這仍為未定之數。

Live Writer是Windows Essentials(原名Windows Live Essentials)的元件之一,誕生於2006年的Windows Essentials集結各種免費的微軟程式,包括Movie Maker、Photo Gallery、OneDrive、Family Safety、Mail與Live Writer,迄今已發表3個版本,陸續支援Windows XP、Windows Vista及Windows 7/8/8.1,最後一次更新是2012年的Windows Essentials 2012。

而Live Writer則是Windows Essentials中最受歡迎的程式之一,它具備所見即所得(WYSIWYG)的編輯工具,提供照片與地圖出版功能。

 閱讀全文
書訊 

〔書摘〕不蓋核電廠也能省電的關鍵技術


資源革命:如何抓住一百年來最大商機
史蒂芬•海克(Stefan Heck), 麥特•羅傑斯(Matt Rogers)╱著
黃庭敏╱譯
大是文化出版
售價:340元

當傳統電網設施走向網際網路般的連結架構,再結合物聯網技術,便能提供眾多創新電力服務

若想知道未來系統整合的方式,可以從電網未來數十年的演變一探究竟。要整合電網非常困難,以致於過去百年來變化很小。有一個笑話是說:如果發明電話的貝爾(Alexander Graham Bell)活過來,看到我們現在用的電信網路和行動裝置,一定會大為震驚;但是換成愛迪生活過來,看到現在的電網,他會說:「對,我臨走前就是這樣子。」

改良電網有困難,是因為影響太深遠了,得從現有發電廠和客戶連結的軸輻式系統(hub-and-spoke),轉變成類似資訊網路那樣方便和綿密的結構。雖然大規模變革必然會衝擊到大公司,電網的例子,卻能讓每間公司清楚看到所面臨的改變和機會。

在我們探索電網整合的過程,就會看到商業模式的新可能,資源革命帶來的變化太大,新的商業模式也會隨之而生。

我們需要的是智慧電網,不是多蓋電廠
現在的電網,大概跟一九四○年代的電話系統差不多,以前打長途電話要在事前兩小時前預約,接線生才能先手動連線,一通長途電話可能要先花十五分鐘的時間設定。

這種事聽起來可能很誇張,但是我們的公用事業系統,常常要在二十四小時前先設定好發電和傳輸方式,而且在發電廠,若要人工強制執行,得預留十五分鐘的作業時間。

現代的電網可以回溯自一八八五年的春天,當時愛迪生和威斯汀豪斯一同競爭,設立電力的全國標準。興建電網被稱為二十世紀的工程奇蹟,但是打從愛迪生和威斯汀豪斯之後,電網的基礎科技就幾乎沒有變動過。

現在很多公用事業仍然不知道電網出了什麼問題,或是出問題的點在哪裡,一般找管線毛病的方式,是看申訴的用戶群在哪個區域,而不會直接收到問題訊號。各地分局常常要派遣維修工人去現場操作開關,才能處理好電網的問題,無法從辦公室下達指令。理想的方式,是讓電網偵測問題,然後自動修復,或是繞道傳輸電力。

一般情況下,電網內的傳輸量和配送量只有用到二○到四○%,發電廠只發揮三○到四○%的效能,很多發電廠一整年中其實只運轉數十小時,其他時間都閒置不用,只為了在夏天最熱的那五天可以啟動,支援冷氣的尖峰用電量。

順道一提,要維持這些發電廠的成本太高,就算在用電尖峰時刻,向消費者加收看似驚人的電費還是划不來。發電廠耗費燃料所產生出的電力,只比燒掉燃料產出的能源一半再多一些些,而且輸送過程中,又浪費了一○%,這被稱為線路損失。

公用事業不只需要克服龐大又沒效率的作業,也需要適應快速變遷的現代環境。因為現在住宅屋頂可以裝設太陽能電板,不但會流失客源,還必須想出辦法,讓居家所收集到的能源,納入電網的運用。

目前有一些地方,只有在配電網路負載量過大、無法供電時,太陽能和風力發電才會派上用場,這代表再生能源平時都用不著。而工程師正在研發控制房子的尖端科技,已經有建築師設計出更有效率的房屋,會趁離峰的時候運用電力,舉例來說,像是美國德州的奧斯丁市(Austin),會在晚間電費便宜時,將水冰凍起來,然後白天的時候,送風吹到冰塊上面,讓房屋涼爽舒適。

新的空調系統同樣也可以利用蒸發原理讓房屋涼爽,不用再開冷氣機,削減至少五○%的用電量。美國電網主要的設計目的,是為了供應熱天午後的尖峰用電需求,如果改變空調,就會大幅降低用電量。而照明也能變得更有效率,和白熾燈泡相比,LED燈泡可以減少八五%的用電量。公用事業還可以繼續推動改善電器用品的表現,從插孔到除草機,每樣東西都可以改善。

當人們大量採用電動車之後,隨時隨地都會有龐大的用電需求,耗電量等同商業大樓或是小型工廠,而且還會接電、移動再接電,公用事業必須發展強大的整合能力,不只要處理現在的業務,也要能提供其他業者協助。

很多科技能夠協助人們二度發明,舉例來說,如果將電池分布在電網中,讓電力得以儲存,發電就會更穩定順暢,成本也降低,發電廠的運轉效率也能拉高,只有在需要用電時,才從電池中提取。這樣一來,就不需要發電廠整年待機,卻只有少數幾天裡的幾個小時需要運轉。

固態變壓器運用先進半導體科技,現在也用在高速鐵路和軍機上,比傳統變壓器更可靠,價格卻低得多。此外,傳統變壓器是笨重的銅基設備,以後微型發電站只需要一間小機房的空間,不用再占據大片土地。

當用電需求低時,電網可以降低發電量,用最有效率的方式產生電力,而電動車也可以充當電網一環。以後,電網內的感應器可以發現問題、自動修復,或是讓電力繞道傳輸,就跟現在資訊網路處理資料一樣。

家裡和辦公室會安裝整排的智慧型電表,電網的供應平衡,不再只是製造更多電力而已,還可能由減少尖峰消耗量達成。電力將能雙向傳輸,從供電充沛的地方傳到需要的地方,不像現在由幾座中央發電廠供應所有的電力。

電池能改變電網,但是還沒有人將這種模型計算出來。有一連串還未釐清的問題,而且這還只是開端而已。一九四○年代的電話網路,原本用一大批的接線生轉接,公司必須願意不斷實驗,才能跳脫傳統模式,轉變到現今的資訊網路,並從中獲益。

公用事業和他們的供應商得加強合作的關係,而非各自忙自己的事情。和電網相關的公司必須投入研發標準規格,這樣每間公司、每部儀器和每位客戶才能彼此聯繫溝通。如果電訊公司、無線路由器的製造商和手機、平板電腦的開發商,只是各自改善傳送訊號的方式,那麼無線通訊的成效大概無法達到目前的十分之一。

無線上網的優勢是在早期就建立好標準規格,所以使用者和設備可以跟其他的使用者和設備連線。有時候,標準格式會自己出現,就像當年索尼(Sony)的VHS規格,打敗JVC公司的Betamax,成為家用錄影系統的標準格式。有時候,標準格式是由政府設定的,就像資訊網路一樣。

電力公司必須彼此配合,並且在計畫、資本設備升級和時程方面,與其他種類的公用事業合作。美國電網會不穩定,大多是因為兩種情況:一、暴風雨吹倒樹木,因而弄到電線;二、在傳輸過程或是各分區的配電流量出現問題。

第一種問題比較容易解決,把線路地下化,像是日本和歐洲大部分的國家就做到了。但是美國面臨的挑戰與技術無關,而是在財務,因為把線路地下化要花很多錢。不過,只要大家合作,就能解決問題。

本書作者之一史蒂芬住在紐約的時候,就曾看到街道被當地的電力公司聯合愛迪生(Con Edison)挖開,然後由政府運輸部鋪回街道,而在珊迪颶風過後,威訊通訊(Verizon)又把馬路挖開,埋進光纖電纜,強化處理基礎建設。如果光纖電纜、電話線、電力線和有線電視管線都可以一同鋪設在導管內,馬路只要開挖一次就好。

紐約市做過溝通協調,若馬路才剛鋪好又開挖,會被罰暫停使用開挖的路證,期間為五年,以減少重複開挖的情形。但是這個方式明顯無法發揮作用,因為公用事業單位無法同步整合彼此的維修和改良作業。

同樣地,因為缺乏協調整合,生產和配送電力的單位都受到波及。目前,公用事業各單位獨立開發自己的擴建計畫,而單單在美國,電力公司就有超過三千家,其中兩百家是大型電力公司,其他則是社區型或是由市政府經營的電力公司。

此外,美國的東、西部和德州的電網沒有連結,各自有效率地配送電力到獨立的電網。很多城市擁有電網,卻只有部分的電網連結至該州或其他地區。

如果協調控制配電的範圍可以更大,要平衡電網也就變得更容易、更便宜,光是利用各地的風勢、陽光和溫差就可以相抵平衡,而只要連結不同的時區,也能平衡電網,因為每日的尖峰用電時間和上班日有關,不同時區就會有差異。

再生能源平常被視為不可靠的供電來源,因為風跟陽光不會一直持續;但是我們的模型顯示,如果電網涵蓋的範圍直徑超出好幾百英里,而且發電來源超出一千個,就算夾雜著再生能源,攤平計算下來,供電量也會和核能發電廠一樣穩定。

數千間美國的公用事業公司,是由五十個州各自的公用事業委員會管轄,委員會幾乎不會跟其他州合作,試著用更經濟的方式讓產業升級。系統為了確保輸電穩定會超額供給,也就是以電力需求為基準,再多供應所謂備用容量(reserve margin),也就是多供應二到六%的電力,但是這是過往的做法,在資源革命時代,公用事業公司和模式必須跟上時代。

系統整合,一點巧思就能更省更快
雖然其他產業面臨的問題,沒有電網這麼複雜,系統整合的重點仍然適用,零售商需要更努力付出心力,讓貨架上的商品尺寸、樣式和顏色都維持正確,才能刺激銷售、減少浪費;計程車公司要改善排班和出車的方式,讓對的車輛在對的時間,出現在對的地方;醫院治療病患的方法要更有效率,不同症狀的疾病,就該找不同醫生。

 閱讀全文
前期文章 全部歷史文章
出刊日期 出刊主題
2015-06-19 【Win 10 試用報告】新瀏覽器E...
2015-06-18 【Win 10 試用報告】桌面設計...
2015-06-17 諸神黯淡,何時重返榮耀?
2015-06-16 群暉引進Docker,顛覆NAS應用
主編推薦  
尷尬∼有緣無份星座情侶榜
水汪汪電眼正妹單身尋友!
暑假親子同樂Fun假去
波士頓最便宜行程排行榜
我要訂閱這份報紙 我要取消這份報紙 訂報說明
.本電子報內容由 iThome online 提供
PChome ePaper 電子報版權所有,關於電子報發送有任何疑問,請聯絡 客服中心
廣告刊登消費者保護兒童網路安全關於PChome徵人
網路家庭版權所有、轉載必究 Copyrightc PChome Online

沒有留言:

張貼留言

您或許對這些文章有興趣: