開發一款瀏覽器難點有哪些?

不限定pc還是移動客戶端。


瀏覽器的兩個關鍵部分,布局引擎和JavaScript解釋器。

布局引擎就是我們常說的瀏覽器的內核,主要處理HTML和CSS。簡單的說,就是他決定了什麼東西該在什麼地方怎麼樣顯示。對於網頁這種視覺工程來說,布局引擎的重要程度不言而喻。

對於布局引擎的難點,大概有這些方面。

對標準的支持和擴展: 有一些標準的內容可能會難以實現,或者會帶來一些安全的問題,所以各大瀏覽器對於標準都會有一些的裁剪,而另外又有一些拓展。

布局性能: 布局引擎的性能,包括內存、CPU等指標,能夠直接影響用戶的體驗。簡單來說就是顯示快不快,佔用內存多不多。

其他: 類型穩定性、可拓展性這樣的一些其他類型軟體共有的特點。

JavaScript解釋器本來應該是瀏覽器內核的一部分,但是現在前端大量對JavaScript的應用,和瀏覽器廠商對這個部分的重視,開始分離出來了。既然拿出來了,JavaScript解釋器的性能,包括時間性能、內存性能這些因素就很重要了,需要各種優化編譯過程,優化生成代碼,優化指令的工作。

其他的一些難點,就是一些軟體上通用的東西,如何挖掘用戶需求,如何讓用戶使用得更滿意,比如單窗口向多標籤的轉變,快速撥號,滑鼠手勢這些功能。

然後就是一個好看的界面。


@余天升 的答案不錯。不過就實際可行的開發策略就是集成一個現有的 open source 引擎,比如 WebKit 和 V8。難度主要在集成 (integration)。—— 曾經有篇 blog 說一般的框圖都是 component 大,中間連接的箭頭細。其實按照工作量來說應該倒過來。說的就是這個意思。

很少有人會不用 libjpeg、libpng、libz 而自己開發的吧。我的理想是每種 parser 在全宇宙中只有一個實現!


這個問題要看你問的是技術難點還是非技術難點。
如果是非技術難點,最大的就是人才和資金。如果找不到合適的人才,籌不到足夠的資金,開發工作是否能開始都是個問題。
如果是作為商業產品開發,就隨之而來另一個難點:盈利方式。現在免費瀏覽器滿天飛,你花了錢開發了瀏覽器,如何與其他產品競爭,如何收回成本甚至盈利。

再看技術難點,余天升說的比較全面。但順序上,我覺得穩定性和可靠性要更重要一些。對於幾乎一切軟體,這兩點都是最重要的。只不過要求的標準看要定多高了。瀏覽器肯定不需要銀行系統那麼高的可靠性和穩定性。
另外,從技術上看,你是要重新開發一個渲染引擎還是利用現有引擎。如果要重新開發引擎,那麼難點就會多很多。各種協議、標準的支持,自身的特性,性能都是不得不考慮的問題。

如果,你只是想自己做著玩玩,沒有任何與現有瀏覽器競爭的打算。那麼難點就是你個人的技術能力提高和各種資料的查找和閱讀上了。
假如你真的開始了自己的項目,一定記得寫博客給大家共享經驗教訓喲。


避嫌(一般是國內的用國外的開源引擎就會引來一大堆噴子)
別把功能太誇大了
弄的簡單點,不要太多功能,流暢和速度最重要

用戶感覺,坐等科技人員~


首先開發瀏覽器與開發瀏覽器內核是兩個級別的難度。一。如果不做瀏覽器內核,只做「殼」,難度只有架構設計與實現(保證流暢--不卡不死快速);還有由於產品定位所引入的新的功能。二。如果做內核,則排版引擎有難度(不僅僅要支持W3C標準,還要一定的兼容性,這個也是區分不同瀏覽器內核的標誌);腳本引擎也有一定的難度,也是既要支持標準,同樣也要高性能;由於做內核所面對的各種兼容性問題;整體架構設計與實現(保證流暢--不卡不死快速)。


JS引擎和布局引擎是瀏覽器核心模塊中的比較複雜的2個,實際上布局之後的渲染過程也相當複雜,而且現在瀏覽器都有硬體加速,渲染都有多個路徑完成。另外還有些新出現的功能,像webgl等,也是比較獨立的模塊。瀏覽器越來越龐大,已然是半個操作系統了。


難點就是門檻降低了,
渲染引擎和腳本引擎都有一些現成的,不用再開發了,但是競爭也更激烈了,想脫穎而出太難了。


非科技人員,純用戶淺談,權當拋磚引玉了!

  1. 引擎
  2. UI
  3. 後期維護

推薦閱讀:

IT 從業人員都用什麼瀏覽器?為什麼?
開發一款瀏覽器內核需要學習哪些方面的知識?
Chrome 有沒有可以下載優酷等網站視頻的插件?
《神探夏洛克》里Sherlock使用Windows Vista操作系統和IE8瀏覽器,這符合Sherlock的性格嗎?
你覺得體驗比較好的瀏覽器是哪款?為什麼?

TAG:產品經理 | 產品設計 | 軟體開發 | 網頁瀏覽器 |