軟體開發中的哲學——世界的本原是物質(一)

來源:互聯網
上載者:User

在這個系列部落格的第一篇中,首先要涉及到的哲學原理就是——世界的本原是物質。

在IT領域,有硬體和軟體之分,而二者之間的關係,就和物質與精神類似。沒有硬體的存在,那麼軟體就沒有能夠發揮作用的基礎支援了。所以,我們會看到,硬體的作用非常重要,即便是我們只從事軟體開發,也需要對硬體有足夠的瞭解,這也正是電腦軟體專業的學生也需要學習電腦原理,電腦網路等等課程的原因所在把。

硬體的不同,有時候會在很大程度上決定運行其上的軟體,比方說,在不同體繫結構的電腦硬體上,所能夠啟動並執行軟體會受到限定,比方說,電腦會分為微電腦、小型電腦、大型電腦等等,上面啟動並執行軟體,從作業系統到各種應用軟體,都會有很大的區別,這也是由於每種電腦所要完成的工作也是不同的。再比方說x86架構和RISC架構的電腦,軟體啟動並執行方式也不盡相同。很多大型軟體,像Linux、Oracle等等都需要針對不同的架構來開發出不同的軟體。

在解決問題的過程中,儘管我們是開發人員,大部分的時間只會和軟體打交道,但是對於特定的問題,也要關注硬體。比方說效能問題,根據摩爾定律,硬體更新的速度非常之快,所以在很多時候,大家都希望通過從硬體的角度來解決,軟體啟動並執行速度不夠快,那麼我們就換更好的CPU,甚至是四核、八核的,提高並行計算的速度,或者加更多的記憶體,讓更多的程式在記憶體中運行,或者把磁碟換成固態的硬碟等等。這樣的手段在某些情況下會很有效,起到立竿見影的效果,而且購買這些硬體所需要付出的成本,遠遠要比一個程式員修改程式、從軟體的角度調優的成本要低得多。

然而,我們又不能夠把所有的效能最佳化問題都交給硬體工程師來解決,那樣軟體工程師不就失去了存在的價值嗎?很多時候,我們在編寫程式的時候就應該關注效能的問題,從開始的時候就避免因為程式的編寫而造成效能問題。比方說,因為各種裝置或者的速度大概會是:網路 < 傳統硬碟 < 固態硬碟 < 記憶體 < 快取,這樣我們在編寫程式的時候,就應該盡量避免網路傳輸的頻率和數量,比方說應用伺服器和資料庫伺服器是通過網路連接的兩台獨立的電腦,那麼就應該在往返一條指令的過程中,在一台伺服器上做更多的處理,而不是過於頻繁地在兩台伺服器之間傳遞資料。而且在二者之間傳遞資料的時候,要儘可能地節省,只傳遞必要的資料,而不是眉毛鬍子一把抓,傳遞了一大堆沒有用的資料,這樣就會產生大量的浪費。

硬體和軟體是密不可分的,而且硬體是看得見摸得著的實體,而想要一個人認識到軟體,就有一些抽象了,它們只不過是存在於電腦中的“1”和“0”,因此就會產生這樣的情況,人們願意為硬體付費,但是卻不願意為了軟體花錢。很多人願意花1萬元購買一台昂貴的電腦,卻不願意花30元購買一個小軟體。這對於程式員群體是一種悲哀,因為那就意味著大家的勞動成果沒有得到認可,畢竟錢也是對價值的一種體現。所以,在很多項目中(特別是國內項目),廠商都喜歡採用硬體和軟體搭配在一起銷售的方式,因為只有見到了硬體,才認為自己的錢花的值得。更可笑的是,為了證實自己的硬體有價值,廠商們可能會把本來可以做的很小的裝置放在一個龐大無比的鐵箱子裡,那樣才能夠賣得出價錢——這鐵塊兒也太值錢了吧,哈哈。

因為同樣的原因,還有一些廠商喜歡把軟體的功能整合到硬體之中去,把原來的賣軟體變成了賣硬體,比方說大家最為熟悉的防火牆,有硬體防火牆,也有軟體防火牆,其實二者的功能以及運行機制上都是類似的,但是銷售起來卻完全不是一個概念了。

在現在流行的移動開發中,硬體對於開發人員的影響也非常大。iOS的開發人員很幸福,只需要針對一種或者幾種裝置開發應用就好了,而Android的開發人員就比較悲催了,光是主流裝置的種類就夠頭疼的了,更不用提各種各樣的山寨機了,儘管現在有不少網站提供了虛擬測試的環境,但是很多功能只有用具體的裝置才能夠測試出真正的效果。因此,現在才會有HTML 5技術會更為流行的說法,這樣開發人員就不需要去適配各種各樣的裝置了。然而這又會導致另外的問題,原生的應用和基於HTML 5的應用,不論從開發方法還是從各種使用方式來說,都會有一些區別。

軟體的確會受到硬體的各種限制,同時,沒有軟體,硬體也就沒有用武之地了。想要讓一個硬體發揮出真正的作用,需要大量軟體的支援,比方說我們的電腦中會安裝作業系統軟體、辦公軟體、開發軟體、遊戲軟體等等,每種不同的軟體都會為我們的工作提供不同的便利,有了這些軟體,我們的工作和生活才會變得如此美好。

總之,硬體和軟體的關係,與物質和精神之間的關係類似,硬體決定了軟體,反過來軟體也會讓硬體體現出存在的價值,決定硬體所能夠起到作用的效果,二者是密不可分的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.