編輯:開發入門
簡介: 很少有事物像技術那樣變化迅速,而 Web 技術的變化速度似乎更快。了解在 2010 年您有望從技術供應商那裡看到的新興技術。
如果 Web 是一位世界名流,那麼 2009 年的報紙頭條可能包括:“雲計算與服務器的親密接觸”、“外星來客 Twitter:‘我們為和平而來’” 和 “真人 TV 秀中的 Gosselin:8 個浏覽器就足夠了”。
毫不誇張地講,雲計算、實時內容以及浏覽器速度和功能上的進步使 Web 比以往更引人注目了。健壯的基礎設施 —— 從用於存儲的 Amazon 簡單存儲服務 (S3) 到實現了可擴展電子郵件功能的 SendGrid —— 現在只需單擊幾下鼠標就可以租用。在任何時刻從任何地方發送的 Tweets 和 Flickr 更新成為了即時信息的特征,是一項必須滿足的社會需求。Google Chrome、Apple Safari、Mozilla Firefox 和 Windows® Internet Explorer® 之間的激烈競爭使浏覽器逐漸向獨立平台轉變,而 Chrome 成為了全新的操作系統的核心。
當然,在 2010 年,追逐技術發展的熱心記者將繼續跟蹤這些故事,挖掘關於微軟自己的雲產品、Twitter 的艱辛發展以及浏覽器開發者之間的競爭的搶先報道和圖片。但是其他軟件、開發和趨勢等在 2010 年必定會成為開發人員所關注的頭條新聞。讓我們預測一下在技術報道中會看到哪些重要新聞。
Html 的大力整改
這並不是對剛出道的明星進行整形手術。流行的超文本標記語言也正在進行大變臉。毫不奇怪,已有 10 年歷史的 HTML 格式正在努力跟上創新的步伐。畢竟,Html 是發明用來構造和打包文檔的,而不是處理 Web 應用程序。
HTML 5 的目標是解決現代 Web 的需求,包含對內容與本地計算機之間的編程化交互的廣泛支持。且不說其他新穎的特性,Html 還包含應用程序編程接口 (API),支持在新的 canvas
上隨意繪制圖形,找到您在全球中的位置,緩存代碼和數據,以及卸載計算密集型任務以保持浏覽器的交互具有高響應能力。
隨著 video
和 audio
標記的出現,HTML 5 使 Adobe® Flash® 和 Microsoft® Silverlight™ 的最常見的用途變得過時,使開發人員和用戶不必求助於這些專用解決方案。使用 HTML 5 嵌入影片或音軌就像用 Html 4 嵌入圖像那麼簡單:
<video src="/video/redcarpet.ogg" width="400" height="300" controls>
Html 5 還規范化了用於構造內容的其他專門技術。常見的網頁構造,比如 <div class="header">
、<div class="footer">
、<div class="article">
和 <ul class="nav">
分別被簡單易懂的<header>
、<footer>
、<article>
和 <nav>
標記取代。後一種標准化的標記暗示了上下文,使網頁爬行工具(spider 和 scraper)能夠更輕松地獲取網頁中的重要內容。
盡管 Html 5 不是一種經正式批准的標准,似乎也沒有確定 “標准化” 時間表(根據內部消息,這可能需要 “多年” 的時間),但大部分主流 Web 浏覽器都已經實現了它的許多強大特性。例如,Chrome、Firefox、Safari 和 Opera 都支持上面列舉的 API,您也可以在網上找到每個浏覽器的生動演示。而且,開發人員正在積極創建和部署基於這些新功能的應用程序。著名的例子包括 Google 的會話引擎 Wave(現在處於測試階段),完全基於 JavaScript™、Html 5 和 CSS 的應用程序框架 SproutCore,以及 Mozilla 實驗室的 Bespin(一個豐富的協作式代碼編輯器,完全在浏覽器內運行,在雲中保存所有工作)。
HTML 5 在不斷發展演化。盡管如此,預計仍會有更多應用程序利用這個明確定義、廣泛實現且穩定的規范草案的許多內容。即使在現在,HTML 5 仍然能夠在移動浏覽器中得到良好支持,包括 Apple iPhone 和 android。事實上,創新的 Html 5 應用程序的最有可能的目標就是移動平台。
紛繁復雜的數據庫關系:“不再彼此排斥”
Web 開發人員已經醉心於關系數據庫 (RDBMS) 很長時間了。Perl 的 DBI(在十多年前創建)首次將動態性和個性化功能加入到網頁中。但 RDBMS 不再是惟一的選擇。曾經密不可分的 LAMP 堆棧正在分離。
嚴格來講,Oracle、MySQL、PostgreSQL 和 SQLite 等 RDBMS 都不屬於 Web 技術。實際上,它們是委托給最底層 Web 基礎設施的不太誘人的結構。然而,如果沒有那些實現從 Amazon 的銷售到 Wikipedia 的知識等所有內容的各種模式,現代 Web 很難正常運轉。但像 Html 一樣,熟悉的 RDBMS 正在努力滿足現代 Web 應用程序的實際需求 —— 具體來講,不是所有信息都適合規范化。文檔是一種通常按行和列填充的數據,不規則的數據也不適合於 RDBMS。而且,TB 和 PB 級數據無法在單一系統中輕松管理。一些獨特的應用程序還需要專門的存儲來簡化分析。
在過去 18 個月內,開創性的開發人員已開始向所謂的 “無 SQL”(No SQL) 解決方案遷移,這個一時興起的創意成為了現在的主流趨勢。MongoDB、BigTable、Cassandra 和 Tokyo Cabinet,這些具有古怪名稱的存儲系統設計用於跨數千個商用服務器處理 PB 級別的信息。除了容量優勢以外,“無 SQL” 軟件通常針對的是某個特定的問題域。面向文檔的數據庫(比如 MongoDB)就是一個例子,面向對象的數據庫也是,它完全脫離了對象關系映射 (ORM)。甚至 RDBMS 也正在適應 Web 第三十個年頭的現狀。舉例而言,Drizzle 是 MySQL version 6 的一個分支,它更小、更快、更簡單,且針對 Web 進行了調優。
不久以前,持久化存儲的最顯而易見的答案是 RDBMS。現在,惟一明確的答案是 “視具體情況而定”。開發人員正在利用一切機會尋找更好的選擇。
數據:源於公眾
在傳統上,數據由其管理者小心地隱藏、保護和公開,或者隱藏在公眾視線以外,披上了層層偽裝,或者淹沒在網絡海洋之中。在很多時候,為了找到所需的信息,您需要成為一位在線的數字淘寶者,如果您幸運,某個搜索引擎(比如 Wolfram)可能會找到一點線索。但是,即使 Google 和 Yahoo! 也不會很頻繁地收集網絡信息,所以重要信息的顯現難免會存在延遲。實際上,Web 可能並不總是能提供最佳的信息。或許理想的來源是一場抗議活動中的游行者、一場會議的博客作者,或者在一個熱鬧的新飯店裡的用餐者。
Mashup 預示著合成數據(從多個來源挑選並整合在一起的信息)的前景,許多案例都取得了關鍵和廣泛的成功。Google Maps 就是一個引人注目的例子,它使用了搜索結果、街道和衛星地圖來標注企業目錄。Facebook 等服務豐富了社交網絡,無處不在的 Twitter 解決了對信息的即時性需求。而這每一個示例都只是今年的趨勢的一個預兆,所有類別的數據都會被應用程序即時組裝在一起。考慮 Trapster,一個 DIY 實時速度跟蹤檢測器;或者 Layar,一個信息擴充工具,可通過實際數據、圖片和虛擬現實為遠途旅行增添樂趣。
與其將增強視為一種技術,不如說它是一種趨勢,而出色的體驗必然會包含許多活動的組成部分,比如圖像和模式識別、搜索、數據收集、分析、信息傳播等。地理位置很重要,但社交網絡也同樣重要。一些信息可能基於參考材料和傳統來源,但更個人的見解可能從其他來源獲得。
贏利明星
如果您以前聽過這句話,那就當我沒說:在不久的將來,您將能夠使用數字錢包進行一切支付活動。
誠然,無現金化已是一句熟悉的預言,遠的不說,至少可追溯到 Web 誕生之初。您甚至可能覺得這只是一種陳詞濫調。盡管如此,小額支付和電子交易仍將在 2010 年廣泛流行。事實將會證明,實現這一目標並不是什麼難事。
直到最近,支持小額支付和數字錢包的基礎設施仍然很少。對於小額支付,很少有提供商在瓜分這一市場。對於數字錢包,無現金支付方法,包括自動取款機 (ATM) 卡和信用卡,通常需要一台收銀機和與清算銀行網絡的物理連接。但 Web 與移動設備(可能是電子書閱讀器、電話、網絡或筆記本電腦)的結合就足以實施所有類型的交易,無論是大額還是小額交易。舉例來說,可以考慮 iPhone、Amazon Kindle(也可用於 iPhone)和新的 Barnes and Noble Nook。只需觸摸一個按鈕即可進行購物。當然,Kindle 和 Nook 都與專用服務捆綁在一起,但 iPhone 是個例外。許多人抱怨小額支付需要在應用程序上添加額外的層和插件,而在 2009 年末發布的 Square 允許幾乎所有人通過 iPhone 接受支付。許多零售商和銀行提供了 iPhone 應用程序來簡化交易。
可以說,Amazon 的 PayPhrase 以及移動支付平台 PayPal 的 PayPalX 和 Square 都是領先的支付解決方案。開發人員和企業家必定會創建業務模型、流程和應用程序來以全新的方式銷售產品。
日新月異的新技術
技術革命在一定程度上仍在繼續。在經歷個人計算領域 20 多年的緩慢發展之後,大量新平台浮出了水面,其中許多都是在 2009 年的後半年誕生的。Google 已確認其自主研發的電話 Nexus One 確實存在,而它的 android 操作系統支持其他許多移動設備,包括 Barnes and Noble Nook。Apple 在 2009 年 9 月發布了 Mac OS X version 10.6 Snow Leopard,而微軟公司緊跟其後推出了 Windows 7。iPhone 進行了重要的硬件和軟件更新,而其姊妹產品 App Store 改變了軟件、音樂和電影的銷售和使用方式。變化之迅速有點像個人計算誕生之初,但現在計算機已牢牢融合到生活的每一方面中。
浏覽器現在只是進入互聯網的一個入口。各家企業不再擁有網站,而擁有了一定的個性化 —— 為每種產品賦予一種個性。傳統的 UI 已足夠滿足桌面用途,而移動設備需要更簡約且針對其容量、屏幕大小和典型用戶進行了良好優化的方法。如此多的改變似乎很難實現而且成本高昂。然而,與為桌面開發軟件不同,開發人員可以利用一組適用於所有平台的技術 —— Html 5、JavaScript 和 CSS。
最優秀的技術升級:Toy Story 3、Rails 3、PHP 6
除了 Buzz Lightyear 重返大屏幕,2010 年還將有許多針對小屏幕的技術升級。
Ruby on Rails version 3 計劃於 2010 年年中推出,合並了流行的 Rails 和 Merb 框架,添加了大量專為提高 Rails 應用程序性能和編程人員速度的特性。Rails 路由器速度更快,能夠按子域路由並路由到中間件的各個部分。Rails 3 能有效阻止跨站點 (XSS) 攻擊並抽象了常見 AJax 技術,使生成的 Javascript 代碼井然有序且與 JavaScript 框架完全獨立。
PHP version 6 全面集成了 Unicode,添加了大量內容,可能還會包含 traits。traits 可用於組合類中的各種方法,可以避免多重繼承的 “全有或全無的” 方式。(如果您是一位 Ruby 開發人員,您會發現 traits 模擬了 module
和 include
的功能)。下面給出了一個例子(已經過 Mark Story 許可):
trait Sluggable { function slug() { return preg_replace('/[^\D\d]*/'), '_', strtolower($this->title)); } } class Post extends Model { use Sluggable; }
其他重要的技術升級包括 Ubuntu version 10.4 (Lucid Lynx)、Google Chrome OS、GNOME version 3.0、Drizzle version 1.0(正在計劃中)和 Rakudo version 1.0(基於 Parrot Virtual Machine 的 Perl 版本 6 的部分實現)。
新的應用程序,新的需求
2010 年的重要主題是便攜 Web。無論您在哪裡,無論您攜帶了何種設備,您都可以訪問 Web。
對於開發人員,可能對便攜 Web 既熟悉又陌生。新應用程序可能要滿足許多新的需求:
很少有事物像技術那樣變化迅速,而 Web 技術的變化速度似乎更快。當幾個普通人就能創建新一代功能強大的應用程序時,軟件開發人員將感到無比的振奮。誰知道呢?也許您將成為下一個頭條。期待在報道上看到您的消息。
Android 應用程序必須訪問位於 Internet 上的數據,而 Internet 數據可以有幾種不同的格式。本文將介紹在 android 應用程序中如何使用三種數
簡介本文建立在 “使用 Eclipse 開發 android 應用程序” 一文的基礎之上,探究了 Android 的網絡功能。了解如何利用 Android 的網絡選項來
XMLvsJSON 應用程序真實的實時更新需要注意的是,樣例應用程序沒有實時地從 web 移動數據,盡管我們期盼一個真實應用程序。由於數據 feeds 取自原始資源文件
使用 JSONXML 是 android 上的一等公民,鑒於依賴於 XML 的 Web 服務的數量,這是個好事。很多服務還支持另一個流行格式 JSON。它通常比 XML
XMLvsJSON 應用程序真實的實時更新需要注意的是,樣例應用程序沒