[趨勢] 2017 年該學哪些語言?
https://goo.gl/5zImJS
從開版以來,「我該學哪種語言」就是我私訊中收到之提問的第一名(笑)。我一直鼓勵初學者,要以自己的興趣作為基礎來選擇語言,不要以「現在流行什麼」來作為學習語言的依據。因為流行是會變的!你現在照著流行去學某種語言,等你學完後,流行又變成另一種。而你就在追逐流行的無窮迴圈中無法跳出來。
不過我還是擋不住網友們想知道「目前流行什麼語言」這種好奇的心...剛好今天從國外論壇找到一篇文章,把今年可能流行的趨勢整理得不錯,於是就貼上來分享給大家。為了體貼「英文苦手」的朋友,我把這篇文章的大意粗略翻譯、並加上我個人的簡短評價如下:
<2017 年該學哪些語言?>
1. JavaScript: 同意!網頁前端語言的霸者!最近這幾年已經強到可以寫「網頁後端」、「手機 App」這類應用程式了!
2. Ruby: 嗯...部分同意!該語言可以在短短十幾分鐘內,寫出一個初具規模的網站。國外的 Ruby 程式師很搶手,技術本身也是好的,但可能是沒推廣還是怎麼地,國內企業對於 Ruby 程式師的需求,跟其他語言比起來就不是那麼大。
3. Python: 完全同意!初學者最佳入門語言!可用於撰寫桌機程式、手機程式、網頁程式、控制電路板(需掛外掛套件)、大數據、人工智慧...等領域。以一打十的好語言!缺點是執行效能比其他語言稍差。
4. PHP: 同意!網頁後端語言王者!雖然有點退流行,但國內企業界的需求還是有的!
5. Java: 同意!學會後可以往 Android 手機 App 這條路走。
6. C: 同意!目前該語言應用領域比較多是在「嵌入式系統」。也就是撰寫「韌體」這個領域。由於不好學,但學成後能在就業市場有一定的優勢。
7. Objective-C/Swift: 部分同意!兩個都是用於寫 iOS App 的語言為多!但 Objective-C 已經退流行了。如果現在要學,建議學 Swift。
8. C++: 呃...部分同意...(很微妙啊~)!很強很棒的語言!但也不好學!目前用於遊戲程式設計界為最大宗。
9. C#: 部分同意!目前大概只有微軟相關平台在用而已。如撰寫 XBox 的遊戲、或開發 Windows 平台相關程式。
10. SQL: 部分同意!資料庫程式設計師在國外薪水可以拿比較高,國內就普普...一般都是網頁後端程式設計師「預設得會」的語言... =__= 。其實要把資料庫寫好(不會當、跑得快)是一門很專業的知識。可惜國內老闆好像不太重視這類專業人才。
至於底下是我個人的整理:
1. 若還不知道自己興趣在哪裡的入門者:學 Python
2. 想走遊戲程式設計的朋友:學 C++
3. 想學網頁設計的朋友:學 JavaScript(HTML 與 CSS 也是必備知識喔)
4. 想寫手機 App 的朋友:Android 建議學 Java,iOS 建議學 Swift
5. 想要靠寫程式賺大錢的朋友:呃...我會建議去火星找找類似職缺,地球太競爭了,不太適合您... XD
希望今天的分享大家喜歡!也讓初學者能有個方向!喜歡這篇文章的話,歡迎按讚、分享。如果您有任何疑問,也歡迎留言在這篇的下方,我會盡快回答您的!
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「手機 執行python ios」的推薦目錄:
- 關於手機 執行python ios 在 紀老師程式教學網 Facebook 的精選貼文
- 關於手機 執行python ios 在 紀老師程式教學網 Facebook 的最佳解答
- 關於手機 執行python ios 在 iThome Facebook 的最佳貼文
- 關於手機 執行python ios 在 コバにゃんチャンネル Youtube 的精選貼文
- 關於手機 執行python ios 在 大象中醫 Youtube 的最佳貼文
- 關於手機 執行python ios 在 大象中醫 Youtube 的最讚貼文
- 關於手機 執行python ios 在 如果要在手機上執行Python,目前可以怎麼做 - Facebook 的評價
- 關於手機 執行python ios 在 ipad寫python在PTT/mobile01評價與討論 - 手機通訊懶人包 的評價
- 關於手機 執行python ios 在 ipad寫python在PTT/mobile01評價與討論 - 手機通訊懶人包 的評價
- 關於手機 執行python ios 在 2022iOS 執行Python-智慧型手機整理開箱評比,精選在PTT ... 的評價
- 關於手機 執行python ios 在 [ 分享] ipad / iphone 運行python 3! 需要越獄並安裝4 個套件 的評價
- 關於手機 執行python ios 在 ssfanli/screcord: A python wrapper for Android/iOS ... - GitHub 的評價
- 關於手機 執行python ios 在 #請益- 免費手機python app - 軟體工程師板 | Dcard 的評價
- 關於手機 執行python ios 在 用iPad寫程式? - Mobile01 的評價
- 關於手機 執行python ios 在 iOS 教學:YouTube 子母畫面、背景播放!iPhone、iPad - 首頁 的評價
- 關於手機 執行python ios 在 GitHub 推出手機版,工程師可以隨時隨地coding 囉! - 公民報橘 的評價
- 關於手機 執行python ios 在 手機python ios的解答,批踢踢、DCARD ... - 工程師的救星 的評價
手機 執行python ios 在 紀老師程式教學網 Facebook 的最佳解答
想做手機遊戲的!錯過這篇,你大概再也找不到這麼齊全的 iOS 程式設計文章大集合了!
嗯...我是認真的!這是我到目前為止,見過最齊全的 iOS 程式設計文章大集合!一共 420 篇高品質的 iOS 程式設計教學文!尤其想做 iOS 手機遊戲的人,看這篇絕對會讓您倒抽一口涼氣的!很有系統地介紹了 Sprite Kit、UIKit、Cocos2D、Corona、OpenGL...這些與 iOS 遊戲程式設計相關的框架或函式庫。作者對 iOS 程式設計很有愛啊!先奉上網址:
http://www.raywenderlich.com/tutorial-archive
好,照慣例,讓小弟為您導讀一下這篇文章:
(文長,英文好的朋友,可以直接點擊鏈結看原文,省略以下的導讀)
-----------
一、Objective-C 入門(Beginning Objective-C)
說到寫 iOS App,最常見的就是用 Objective-C 寫了。雖說 Apple 推出了 Swift,它也真的不錯用,但效能上還是差 Objective-C 那麼一點。一些 iOS App 的老手們,還是有不少人死守 Objective-C 的。
作者很貼心地把文章分為兩類:
1. 完全不懂程式設計者看的(For complete beginners to programming) x 6
2. 學過其它語言、但沒學過 Objective-C 看的(Experienced programmers but new to Objective-C) x 3
就請各位挑選適合自己程度的文章看囉!
二、iPhone 程式設計入門(Beginning iPhone Programming)
想寫 iOS App,Objective-C 語言(或 Swift 語言)是最基本的。就像想開車出去玩,「會開車」是最基本的。本區塊的文章,就是假設您已經「會開車(Objective-C 或 Swift)」的前提下,開始介紹「各地景點(設計各式 iPhone/iPad App)」。這邊只有 5 篇,前三篇幫您帶入門(雖然還遠遠不足),後兩篇教您如何發佈到 App Store 上。算是一個具體而微的「迷你課程」。
三、當機報告(Crash Reporting)
當 App 當掉,客戶來跟您抱怨時,您如何知道它是「如何當掉」的嗎?這時「當機報告」就很重要了!您可以把「當機報告」機制,一開始就寫在 App 裡,讓 App 當掉時,留下足夠判斷錯誤原因的資訊,供您判讀。這部分有 5 篇,性急的朋友可以暫時跳過。
四、Sprite Kit 教學課程(Sprite Kit Tutorials)
想寫 iOS 手機遊戲的照過來!!從 iOS 7 起,Apple 提供 Sprite Kit 這個遊戲函式庫,讓您叫用函式庫內的各種預先寫好的功能(讀入模型、動畫、材質、打光、碰撞偵測...),就能輕鬆寫好一個手機遊戲!這部分的文章很多喔!約有 26 篇!看完後應該能對 Sprite Kit 有深入的認識。
五、iOS 7 綜合性教學文(iOS 7 Tutorials)
這個部分所包含的,就是與 iOS 7 相關的綜合性文章。也是有 26 篇!充滿了 iOS 7 獨有的特色喔!
六、iOS 6 綜合性教學文(iOS 6 Tutorials)
同(五),只不過是針對 iOS 6。一共有 17 篇喔!
七、iOS 5 綜合性教學文(iOS 5 Tutorials)
同前,針對 iOS 5 的教學文。一共有 28 篇。以上(五)、(六)、(七)建議一起看!因為 iOS 7 也包含 iOS 5 的功能在裡面喔!這三部分算是 iOS 的進階認識。建議看完(一)與(二)後,可以直接跳(五)~(七)。
八、用 UIKit 製作手機遊戲(Making Games with UIKit)
如果您不想用任何現存的遊戲引擎(有時候是因為「只是個小遊戲(e.g.:黑白棋),不想弄得太笨重」這樣的原因)來打造遊戲的話,UIKit 是您最好的選擇。您可以自行撰寫簡單的遊戲引擎(比如說,只有「叫吃」與「移動規則」),搭配 UIKit 提供的畫面繪製功能,就能做出一款簡單小巧的手機遊戲喔!這部分一共有 15 篇。
九、使用 Cocos2D 撰寫遊戲(Beginning Game Programming with Cocos2D)
Cocos2D 是到目前為止,iOS 上最容易使用的程式框架(Framework)。您可以用它來做出不少棋盤類、地圖探索類的遊戲喔!這部分一共有 13 篇。
十、使用 Corona 製作手機遊戲程式(Beginning Game Programming with Corona)
用 Corona 這個程式框架來做遊戲有兩個好處!第一:可以用 Lua 這個語言。Lua 語言好懂又好寫,寫一行可以抵過 Objective-C 的十行,生產力頗高!第二:跨平台。Corona 在 Android 上也有支援。如果您想寫一款橫跨 iOS 與 Android 平台的遊戲,那 Corona 框架是您很好的選擇!這部分有 8 篇。
十一、Cocos2D 遊戲程式設計進階(Intermediate Game Programming with Cocos2D)
這是(九)的進階,看完(九)如果還「心癢癢的」,別忘了來看這部分的文章喔!這裡一共有 37 篇!
十二、Cocos2D 好用工具介紹(Cocos2D Tools)
這邊介紹了可用於 Cocos2D 的「紋理(Texture,貼在骨架外面,類似人類的皮膚)揀選」等工具,讓您寫 Cocos2D 程式時更輕鬆。這部分一共有 10 篇。
十三、使用 OpenGL 製作遊戲(Advanced Game Programming with OpenGL)
OpenGL 算是很老牌、很低階的 2D/3D 繪圖函式庫。如果 Corona、Cocos2D 這些框架比喻為「自排車」的話,OpenGL 就是「手排車」了。因為它比較低階,不太好駕馭。不過就像手排車把打檔這件事交給駕駛決定、而能做出許多特技一般,OpenGL 也能做出許多其它框架做不到的事情。這部分的文章一共有 17 篇。
十四、其它遊戲引擎(Other Game Engines)
這邊介紹了如何用 Python 或 Flash 來做簡單的小遊戲。對於國高中生想做遊戲的讀者,很推薦從 Python 學起!這部分一共有 6 篇!
十五、遊戲物理法則(Game Physics)
所謂「物理法則引擎」,管的就是類似球的彈跳、葉子飄落、髮絲搖曳、碰撞偵測...等這些人類很熟、但對機器來說不太好達成的部分。物理法則引擎越好的遊戲,會讓玩家看起來「越自然」。這部分一共有 8 篇。
十六、其它遊戲程式設計主題(Other Game Programming Topics)
包含「如何儲存遊戲進度」、「如何提高非人操控角色的智慧」...等。都包含在這個部分喔!這裡一共有 12 篇。
十七、如何儲存或讀入遊戲所需的資料(Saving and Loading Data)
這部分比較偏向「讀寫檔案」、「讀寫資料庫」...等主題。遊戲所需的動畫資料、骨架、外表紋理...都需要利用檔案或資料庫把它存起來,並在需要的時候讀回。本部分就是在介紹如何利用 XML 檔、SQLite 資料庫、以及 Core Data 這個函式庫,來儲存與讀寫資料。這裡一共有 17 篇。
十八、圖形與動畫(Graphics and Animation)
遊戲非常倚賴炫麗的視覺效果。因此,一款遊戲的圖形設計好不好、動畫是否流暢,就成了決定的關鍵。不過上述兩件事情,都會交由「原畫師」與「動畫師」來處理。程式師該做的,就是在使用者按下特定按鈕,或某個遊戲時間點,把這些圖形與動畫播出來而已。這邊一共有 30 篇,讓您好好瞭解該怎麼把圖形與動畫,在特定的時間點播放到螢幕上。
十九、網路程式設計(Network Programming)
現在的手機遊戲如果無法連線對戰,大概會被說「遜」吧?這部分提供了 25 篇,討論如何讓您的 iOS App 透過網路,互相溝通。
二十、如何賺錢(Making Money)
鄉親吶!這實在太令人感動了!我看國外文章這麼多年,很少有文章這麼直白地把技術以外的要素考慮進來的!沒錯!錢不是萬能,但沒有錢萬萬不能!這邊教大家如何使用「App 內購買(如:買虛寶)」、「廣告贊助輪播」、「多國語系」、以及如何讓您的 App 排名到 Store 內的前幾名。這 10 篇真的太重要了啊!!! XD
二十一、聲音(Audio)
好遊戲當然得搭好音樂!這邊用了 5 篇文章的篇幅,介紹如何播放各種音樂檔,還教您如何用 Mac 內的 Garage Band,來「製作」好音樂!讚啦!
二十二、iPad 程式設計(iPad Development)
某些遊戲很需要 iPad 這種大畫面來呈現。這邊的 5 篇文章,就是教大家 iPad 獨有的特色的。
二十三、第三方(非官方)函式庫(3rd Party Libraries)
這邊講的,包含 Facebook、Google 地圖...等第三方函式庫。還教您如何做「單元測試(Unit Test)」,確保 App 出廠時,錯誤率降到最低。一共有 19 篇。
二十四、其它 iPhone 相關的教學文(Other iPhone Tutorials)
存放了無法歸類於上述類別的文章。共 48 篇。
二十五、Mac OS X 上的教學文(Mac OS X Tutorials)
遊戲不一定要寫在 iPhone / iPad 上,也可以寫給 Mac 桌機筆電用喔!這邊的 9 篇文章就是談這個部分。
二十六、擴增實境教學文(Augmented Reality Tutorials)
所謂「擴增實境(Augmented Reality, AR)」,就是把像機鏡頭看到的真實世界,「貼」上虛擬的資訊。如果講七龍珠裡戴在賽亞人眼睛上的那種設備,您或許多少就能體會我說的是什麼了。記得有款遊戲就大大利用了 AR。它的地圖就是真實世界的地圖,然後您得真正用雙腳走出去,到指定地點(GPS 信號會讀取你的位置)執行特定的小任務,則就可以宣稱你「佔領」了這塊「土地」。當然其它玩家會來「奪還」,您就得「保衛」。如果您也有興趣做 AR 類的應用,那這 7 篇文章您非得好好讀一讀不可!
二十七、食譜類教學文(Cookbook Tutorials)
這是一種「透過專案實作,來學習技巧」的教學文。文初會把目標先告訴你,接著像食譜一樣,一步一步地導引您走向終點。一共有 3 篇。
-------------
怎麼樣?有沒有倒抽一口涼氣啊?我說的沒錯吧?錯過這篇,你再也找不到這麼齊全的教學文大匯總了。喜歡的話...咳咳...你也不必特別做什麼...不過你要按讚或分享,那就是你的自由了...我...我才沒有為了你特別準備這一篇的呢!別誤會了~(傲嬌模式發動中...XD)
呃...抱歉!為了擔心有網友看不懂我上面在進入「阿宅模式」時耍的一些白目術語,我正經一點做個結尾好了!感謝大家能看到最後,還請大家多多按讚,或分享給您 Facebook 的好友喔!也歡迎大家多留言,打聲招呼或說說您的感想,我非常願意能跟大家多交流的! m(^ ^)m
手機 執行python ios 在 iThome Facebook 的最佳貼文
【好文推薦】腦力科技之四:要複雜還是要簡單
成大資工係蘇文鈺教授從台灣企業看輕底層IT(忽略對OS、編譯器等等底層技術的投入)的價值,只顧搶商機的幾個真實小故事,來談臺灣資訊產業的困境和短視。
好文一篇,經蘇老師同意特轉貼!
"許多傳統的技術因為其他領域的技術的高度發展而導致被淘汰,也有許多早被丟棄在一邊多年的技術卻因此而重生。可是因為許多人無法看到幾個世代以來的技術發展過程,也欠缺終身學習的思維,因此常常固執的固守一項當下看來成功的技術與做法,這些人或公司最終都是會招致失敗的後果。
by 成功大學資訊工程學系蘇文鈺教授"
之前的po文,我修了一下文字。若是之前看過的可以跳過。
[腦力科技之四 要複雜還是要簡單]
前面說到的Dave Wilson要價數十萬美元的喇叭WAMM是個大傢伙,整個喇叭是多個分開的模組所構成,非常複雜,所以一般不熟WAMM人要把它調整好是很困難的,難怪要出動Dave Wilson本尊才行。問題是要聽好聲音一定要弄得這麼複雜嗎?
簡單的喇叭,一顆單體裝在一片木板上就可能可以很好聽了。到底要複雜,還是要簡單,其實這問題說是難回答的也不見得,想通後,也可以很簡單。以下是聖嚴師父說過的一個故事:
在我小的時候,有一天傍晚,我父親跟我正好經過一條河邊的小路,有一群鴨子本來在河岸上休息,見到我們父子倆走過,或許是受驚了,也或許是要讓路給我們,總之一群鴨子全部都下了河,從河的這一邊,游到另一邊去。接著又上岸去玩了。
父親看著在河裡游的鴨子,告訴我說:「孩子,你看到了嗎?這群鴨子裡,有大鴨、有小鴨。大鴨游出來的是大的路,小鴨游出來的是小的路。不管是大路還是小路,都是自己游出來的路,而且都到了河的對岸。」
又說:「孩子啊,人要學這些鴨子。你長大之後,不管游出大路或小路都沒有關係。可是不游是不行的,因為不游的話就沒有路可走了。」
也就是說,簡單有簡單的用處,複雜的有複雜的好,做的好,都有活路。
我們這個年紀的人當年用的是Apple II,學程式是從Basic入手,然後是Fortran,接著是Pascal和C,後兩者最大的障礙是要把當時認為抽象的資料結構(data structure)以及資料存放的位址(address)和指標(pointer)的關係搞懂。相對於Basic不知到複雜多少,可是用C能做的事,其實用 Basic也做的到,只不過後者做起來可能會很麻煩而已,程式可讀性與可再被利用性會大幅降低。後來一點我才知道其實所有的高階語言都會透過編譯器(compiler)轉為更低階的assembly(組合語言),所以實際上電腦是依照組合語言一步一步執行的,一個高階語言的指令通常是以多個低階語言來完成。當年在開發工具不足的情況下,我甚至被迫要直接用6502與Z80的機器碼(machine code)來寫程式,因為當時根本沒有如現在這些方便的滑鼠,鍵盤與螢幕可以用。一份工作是要用高階一點的語言來實做,還是用低階的語言來完成,應該依照需求與當下的技術成熟狀況來決定,而不是高階的就一定比較好,低階的就比較一定差,例如多數驅動程式,不用低階語言來做是不行的。反之亦然。
後來我的工作跟使用TI(德州儀器)的C3X與C4X等數位訊號處理器(Digital Signal Processors)有關,一些數位訊號處理的程式我與我的夥伴們都用組合語言來寫,因為編譯器轉出來的程式執行效率實在太差了。可是幾年以後,編譯器越來越強大,所編出來的程式的效能就慢慢提高了,在非關鍵處,我們已經不再堅持用組合語言來寫了。
後來的程式語言越演變越複雜,功能也越來越強大,從簡單的C,到後來的物件導向(Object Oriented),從為數不多的語言,到因為不同的需求而被開發的新語言如Java,LISP,Pearl,Python,Forth等等甚至有為了設計電路的硬體描述語言(HDL) ,慢慢的學校裡對組合語言的要求變少,學生也不願意學,造成許多需要低階語言的工作找不到人來做,不然就只好把人招進了公司後再來訓練。緊接著,為了不同的目的而開發的新的工具軟體變多了,例如為了特殊的資料流(data flow)程式模型而被開發的StreamIt,以至於目前開發iOS App而廣為使用的Object C(我們之後有機會再來談這個語言),為了平行程式所被開發的如OpenMP或MPI(Message Passing Interface),這世界上有關於寫程式這件事所被開發出了來工具多到滿出來,編譯器與中介軟體(middleware)越來越強大,各式各樣的新語言,新應用等等就越多。可是不要忘了,即使是有這麼多五花八門的產物,這世界上有一些角落裡的工作還是需要使用組合語言來做。
有些事需要用複雜的方式來做,有的事卻需要用簡單的方式來做。原本一隻簡單的程式,因為可以平行化,如今我們因為有多核心的機器與可平行的程式模型可以用,所以程式設計師會用更複雜的方式如多執行緒(multithread),資料流(data flow),Map-Reduce(如Hadoop),CUDA與OpenCL等來實做,程式的複雜度看起來提高很多,可是執行所需的時間實際上卻大幅降低。又如,在數位訊號處理裡常用的旋積(Convolution),本來是可以用沒幾行的程式就可以寫出來,但是因為快速富利葉轉換(FFT)的關係,讓我們可以在頻率域(Frequency Domain)裡運算以減少計算時間,但是程式複雜度卻高出許多。可是,因為多核心架構硬體與平行的程式模型的出現,加上時間域(Time Domain)的旋積具備高度可平行化的特性,現在反而是回到時間域來計算要快得多,同時也少了一些在頻率域(Frequency Domain)運算所造成的缺點,過去為了在頻率域運算所開發出來的演算法反而變得沒有多大用處了。
許多傳統的技術因為其他領域的技術的高度發展而導致被淘汰,也有許多早被丟棄在一邊多年的技術卻因此而重生。可是因為許多人無法看到幾個世代以來的技術發展過程,也欠缺終身學習的思維,因此常常固執的固守一項當下看來成功的技術與做法,這些人或公司最終都是會招致失敗的後果。
以上我們說了許多軟體的發展,接著來說硬體,尤其是電腦的核心,CPU(中央處理單元),也就是大家常聽到的Intel Pentium,IBM PowerPC或是ARM Cortex等等。早年的CPU如Apple II用的6502到今日的主流多核心CPU,其複雜度不知道已經高出多少倍,30年前的大型主機(我大學時用的是CDC Cyber,全校共用)的計算能力可能比不上今天的一部桌上型電腦。有一陣子,簡單架構的CPU不容易被聽到(但是實際上他們的用處很廣呢!),一般人知道的CPU都是INTEL出的(因為廣告打得兇),那時的人類似乎除了INTEL X86架構的CPU之外都不需要其他的了。可是曾幾何時,INTEL感受到ARM的架構簡單的省電CPU的強力威脅,所以INTEL也希望把它的CPU變成簡單又省電,但是與此同時,ARM卻在把它的CPU變得功能更強大,但是卻也更耗電。你們說,這兩家公司在爭的商機是甚麼呢?相信只要在這個產業的人都知道他們在玩什麼把戲。大家都知道的東西,在CPU設計落後先進國家的台灣在高階CPU上也就沒什麼好搶的了,那台灣的機會在哪裡呢?(當然,現在的聯發科跟晶心科技這兩家策略與市場都不一樣的公司看來是很有機會佔有一定的市場,有興趣的人可以去研究一下這兩家公司的CPU策略)
有一天,有朋友打電話給我,聊起他現在的公司也在做CPU,而且是八位元,或甚至位元數更低的CPU。我說,這麼低單價的東西有什麼好做的。他說,其實市場的量真正大的是簡單型的CPU,因為太多應用只需要用到簡單的CPU,這時連8051都還嫌太複雜,而且目前設計界常用的Arduino也可以在稍微複雜一點的八位元CPU跑起來。只要做的夠便宜夠省電,利潤還是有的。但是這其中還有一個大問題,那就是即使是這麼簡單的CPU,在今天的情況,工具鍊(toolchain)還是要完整,才會賣得出去。他問我可不可以幫他做編譯器,我說這非我專長,實在是愛莫能助。我不禁想,這年頭連賣一顆幾毛錢的CPU都要開始建完整工具鍊了,這錢還真難賺啊!
又有一次,有間廠商打電話過來問我有沒有興趣做一個建教合作計畫,是關於多核心的系統軟體的。那時候我一聽到多核心,腎上腺素就上來了,也沒多問細節就說可以見面討論。過兩天,我們一起聚在一起開了個會,才知道這個多核心原來是拿8051來當核心。我心想,連8051都拿來做多核心,會不會太奇怪。不過既然廠商堅持有他們的市場與考量,也可以賣得出去,我這商場門外漢就不好說甚麼了。接下來廠商希望我們可以幫忙做兩件事,第一件是為這顆多核心打造一個多核心作業系統,第二件是做一套中介軟體讓不同核心之間可以快速交換資料。當我心裡還在盤算著,且認為這應該可以做得到的時候,接著聽到的話讓我差點從椅子上掉下來。他說,但是這一切希望在16K bytes之內做到,而且在半年內做完,經費是30萬。接著我只能說我願意考慮看看,其實心裡說的是謝謝再連絡並祝福他們會成功,一刻鐘後我堆滿一臉笑容來隱藏底下的鐵青送他們出門。
這些事讓我想起來台灣過去幾年有關IC設計的問題,甚至是更多產業所面對的問題。那就是太重視硬體了,以為只要把硬體做出來,就可以賣出去的時代早就已經過去了,而目前全世界最大的高科技公司其實都是軟體為主的公司,連聯發科的軟體工程師數目早就超過硬體工程師的數目了。假如連一顆八位元的不到的CPU都需要一大堆軟體工具鍊,那麼我實在不清楚很多公司只注重看來是實際出貨用的硬體在想什麼,會逐漸失去商機不奇怪啊!我自己會想,要是早個十年我知道軟體的工具練會這麼重要,那麼我不就賺翻了嗎?可是上面的第二個故事告訴我,在台灣,不被重視的就是不被重視,早做也沒用。很多廠商把技術看得太廉價了,但是這家公司至少還願意出錢,有的台灣公司即使本身很賺錢卻根本就連錢都不出就想獲得技術。
2010之前的好幾年,韓國的政府讓許多家大學(我沒記錯的話是八家,連漢陽與首爾都在其中),參與企業(就是三星啦!)一起trace Android的核心的時候,台灣在做甚麼呢?大喊自由軟體,然後只要寫寫不知道能不能用的Java App就可以有獎金或補助。等到三星智慧型手機崛起,火燒屁股時,才急急忙忙由政府底下的若干研究單位出面協調,同時希望學界也能出面幫忙。
這整件事的荒謬在於,第一,商場如戰場,都火燒屁股,要馬上上戰場去賣的東西讓學界來幫忙怎麼會來得及呢?第二,學生寫的軟體你敢用嗎?一旦有bug不是退貨退到瘋掉?第三,這種核心技術早就該知道要做了,不然派個探子去美國,甚至是韓國轉一圈,也知道人家在做甚麼。然後,既然都火燒屁股又要找學界專家來幫忙,為什麼不乾脆花大錢挖學界懂這東西的一整個團隊進公司體系,還要找官方與半官方的機構出面協調,這不是浪費時間呢?台灣不是最流行超時工作,讓工程師燒肝(燒乾)工作的嗎?高薪一堆人進來,以台灣工程師的素質之高,其實不會沒救的。不過,我看到的情況只能用失望兩個字來形容。
有時人要挖空心思才可以看到商機,有時只要好好照著道理來做就會有商機,賣系統(不管是複雜到手機還是其他簡單的系統應用IC)卻不重視軟體就是沒照著道理來做。目前台灣所製造的電腦產品,只要是要用到稍微大型的軟體系統如Android,或甚至是小到一個小型的RTOS(即時作業系統),有多少是台灣所原創的呢?不能原創的原因很多,公司不重視軟體人才此其一,會教又提供學生實作機會的學校不多(因為做這類苦工無法出High Impact Factor的論文啊!)也是主因,政府科技與教育政策一樣難辭其咎。以編譯器(compiler)這樣傳統的學問來說,不管時代怎麼變,不變的是它對產業總是非常的重要,學校裡有多少人還在做編譯器的研究呢?再來恐怕都要找不到人來教了,因為有多少教授願意做一個傳統又難以發表High Impact Factor論文的研究呢?過幾年,整個硬體產業要是變成硬體慘業,我是一點也不意外。即使沒完蛋,還不是要乖乖每年繳一大堆權利金給外國提供軟體的廠商嗎?
你若是問我,難道台灣真的沒有那種看到軟體工具鍊與大型軟體的機會,堅持信念,終於媳婦熬成婆的團隊嗎?當然有,我也好希望我也是其中之一。可惜我沒有這麼堅強的毅力,要不然也不用在這裡狗吠火車了。
前面說過的話,這裡再重複一遍,但是用意與前面不同,這裡是希望為上面這幾段故事做小結:
許多傳統的技術因為其他領域的技術的高度發展而導致被淘汰,也有許多早被丟棄在一邊多年的技術卻因此而重生。可是因為許多人無法看到幾個世代以來的技術發展過程,也欠缺終身學習的思維,因此常常固執的固守一項當下看來成功的技術與做法,這些人或公司最終都是會招致失敗的後果。
時代在改變,有些事也會跟著變,但是有些事卻也一直不變,變與不變之間,要視實際狀況決定。就跟聖嚴師父說的一樣,大鴨子與小鴨子,只要願意努力前進,都可以游出自己的路。
手機 執行python ios 在 コバにゃんチャンネル Youtube 的精選貼文
手機 執行python ios 在 大象中醫 Youtube 的最佳貼文
手機 執行python ios 在 大象中醫 Youtube 的最讚貼文
手機 執行python ios 在 ipad寫python在PTT/mobile01評價與討論 - 手機通訊懶人包 的推薦與評價
在手機執行Python iOS這個討論中,有超過5篇Ptt貼文,作者applebg也提到我玩程式語言有時候會遇到一些程式語言本身定義就跟我自己想做的運算互相衝突的時候。 ... <看更多>
手機 執行python ios 在 ipad寫python在PTT/mobile01評價與討論 - 手機通訊懶人包 的推薦與評價
在手機執行Python iOS這個討論中,有超過5篇Ptt貼文,作者applebg也提到我玩程式語言有時候會遇到一些程式語言本身定義就跟我自己想做的運算互相衝突的時候。 ... <看更多>
手機 執行python ios 在 如果要在手機上執行Python,目前可以怎麼做 - Facebook 的推薦與評價
Apollo Yeh. ios推薦pythonisia. android推薦pydroid. 2y. 2 Replies. Milo Chen. 在你的需求中,怎麼樣算是手機上執行python ? XD. ... <看更多>