Google App Engine 世界觀(2)--計算即服務

這也是一點思考,一家之言,歡迎拍磚。
在咱們的計算世界裏面,程序員太習慣於實現功能。不斷地實現功能。
應該說,咱們目前的計算機系統,仍是比較初級和原始的,主要的問題,我我的的理解,是在描述上。
最理想的計算機,好像和人同樣,咱們只須要說出咱們想要什麼,他就會把結果作出來給咱們。但這顯然不現實。
因而就出現了程序員,專門把人的語言,翻譯成計算機聽得懂的步驟,傳遞到計算機中。這也很好理解,既然計算機沒有辦法聽懂人說什麼?或者說如今的軟件技術不足以讓計算機理解人類的語言,那麼,只有安排專人來向計算機翻譯人類的需求,最終轉化成計算機能夠理解的執行步驟,而後完成功能。
程序員,更加像個翻譯。
ok,既然這樣,咱們回過頭來,看看這個模型是怎樣的?咱們有臺設備,它有必定的功能,可是比較弱智,聽不懂咱們說的話,而後,人類社會就派出一羣人(社會老是這樣,當有一方面的需求,就安排一我的羣分工去作),訓練他們能同時聽懂人和計算機的語言,而後,請他們把人的要求翻譯成計算機的程序。就這麼簡單。
奇怪的是,反方向的溝通曆來就沒有障礙,計算機想說什麼,卻老是能以人能看懂的方式表現出來,文字,圖片,語音,視頻。。。
這裏能夠看出人的幾個特色:
一、理解能力很強
二、通過訓練,溝通能力也不錯
三、很懶,能讓別人作的,本身不肯意作
那麼,計算機的計算能力,真實的含義是什麼呢?
我之前有文章說過,計算機,就是能以恆定質量標準,持續不斷提供服務的機器。
不少時候,人就是須要這個能力,因此才造出了計算機。
ok,如今來看看咱們的程序,咱們不斷的寫程序,寫出一個個函數,一個個類,其實都是在寫出一個個的小的計算服務,再把這些小的服務疊加起來,構建一個個大型的服務,是否是這樣?
一個函數調用,一個對象的初始化,構造和析構,再往上走,咱們雙擊Windows下一個圖標,咱們在Linux命令行鍵入一個命令,這些都是請求服務的過程。
如今咱們是否是能夠明白了,咱們說的,CPU從內存某個點,開始運行一段代碼的真實含義,是否是開始向外提供一段服務?
那麼,把這個行爲抽象出來,咱們假定一個服務是無處不在的,好比說,1+1=2,那麼,咱們採用命令行打開一個計算器來算,仍是咱們經過調用函數來計算,仍是咱們訪問一個網站來計算,有什麼差異嗎?
可見,不少計算服務,其實不少地方都有提供,可是,長期的單機程序員生涯,使咱們習慣了,在本機計算,請求本機的服務,咱們彷佛忘了,在網絡上,有不少更大,更好的計算機,能夠提供相似,甚至相同的服務,服務效果可能會更好。
這裏順便提到一個服務通用性問題:
從咱們開始編程的第一天,其實有個問題,就是程序員揮之不去的夢寐,就是如何作到一段代碼,到處使用,這其實體現了程序員最原始和最純樸的一個願望,但願節約本身的勞動力,本身這一輩子,每種代碼只寫一次,不須要重複編寫,你們的代碼能夠互通,彼此無需重複勞動。
可是,在單機下,程序設計語言,與操做系統有太多的牽連,咱們學習C語言的第一個程序,printf("Hello World! ");,其實不是一個C語言的功能,這是操做系統提供的一個控制檯打印功能,全部的程序員,從第一天開始,就被帶偏了,覺得操做系統就是計算機,操做系統就是本身能掌握的全部資源。
其實這是不對的,操做系統,僅僅是一個在某個硬件平臺上,提供比較通用計算服務的一個平臺,甚至平臺都算不上,算是一種方法的集合。這和計算沒有一點關係。
試想一下,一個企業ERP系統的客戶,他是否關心本身的工具是運行在哪一個操做系統上的?一個MP5的客戶,是否關心本身的電影是哪一個CPU利用哪一個操做系統在解碼?客戶須要的僅僅是服務,是計算服務,與平臺無關,與操做系統無關。
那種以某個操做系統的特性作聖旨,不會什麼Door32開發,就不叫程序員的理解,是膚淺的,也是錯誤的,甚至,提出這句話的人,本身的程序設計水平都值得懷疑?在計算這個哲學觀點上,他哪有抽象能力嘛?
由此咱們得知,客戶,咱們,要得僅僅是計算服務,這個服務,放在那裏運行均可以,只要可獲取,可接觸,就能夠,是否是本機,無所謂,是否是網絡,也無所謂,是否是GAE,其實仍是無所謂。
計算即服務,服務自己是無屬性的,最理想的服務,是最低的成本,服務最多的人羣,由於效益最高。
那麼,一個單機運行的服務,其實能力頗有限的,若是咱們能把服務部署到網絡上,則能夠服務更多的人羣。
程序員銷售什麼?不少共享軟件做者,提出銷售的是產品,可是,這對不對呢?用戶是不須要咱們的產品的,他們須要咱們產品提供的服務,若是有一天,咱們一樣作出一個服務,可是,咱們改一下,再也不銷售單機的產品,而是銷售公網的服務,用戶只要上網,就能得到服務,那,和他購買產品,單機安裝,有差異嗎?
這樣的好處是顯而易見的,軟件產品的銷售者,並不知道用戶會使用本身的產品幾回,只能簡單計算一個平均成本,以此肯定一個平均售價,這其實是不公平的。
有的用戶可能用一生,有的用戶可能只用一次,有的用戶雖然只用一次,可是,這一次就很是重要,這些狀況,售價都是不同的,差別化市場競爭,就是要細分用戶的需求,作個性化的,量身定作的服務。
而部署到網絡上,以網絡服務存在,則徹底能夠按次計費,以租代買的形式,則,每一個用戶能夠根據本身的實際狀況,自行選擇服務標準,而且支付價格,這樣是否是更合理?
舉個例子,PhotoShop CS3,很貴的,咱們通常都用盜版,由於正版太貴了,幾千塊錢,可是,又有多少人,會頻繁使用?你們以爲不划算,天然不肯意買正版,可是,若是開發商以網絡服務的形式提供,處理一張照片,1塊錢,咱們會不會考慮使用正版?至少,使用了正版,本身的精彩照片丟了,處理壞了,能夠找我的理賠嘛。
還有,若是有這種服務,咱們還要不要花幾千塊錢買高性能的計算機?1塊錢,上傳,處理,下載所有完成,手機上都能操做,爲啥還要使用PC機?
其實咱們買PC機的硬件,也是在買服務。
PC機是個很貴的平臺,若是咱們所須要的全部計算服務,在網上都能以很是廉價的價格租到,咱們爲何還要購買本身的計算機?
如今回過頭,咱們再來看程序員的工做。
咱們很辛苦地,要學習不少知識,要學習不少技巧,其實,大學裏面,90%的課程,都是在教咱們,若是有一天,咱們須要一個功能,可是沒有人提供,咱們怎麼本身把它實現了,你們說是否是?
可是,若是這個世界上,任何一個程序員,寫的任何一個功能和代碼,都能當即提供成網絡服務,被全部人看到,知道,而且集成進本身的系統,那麼,你們的生產力解放大不大?
服務,不只僅是計算機提供給人,也能夠計算機提供給計算機的。
GAE給我最大的感受,就是給每一個程序員一個把計算提供成服務的手段。
如今,咱們可能只是邁出了小小的一步,比起傳統的PC計算平臺,GAE還很簡陋,可是,咱們知道,從如今開始,咱們作的幾乎每一段代碼,其實都是一次性的,之後任何系統均可以隨意調用,那麼,這樣只增不減的積累下來,10年,20年,會怎麼樣?
計算即服務,服務是永續的,則技術的積累會愈來愈高,最終,量變引發質變。
歡迎你們討論。
相關文章
相關標籤/搜索