❶ 軟體開發、APP開發和平台開發有什麼區別
1、概念不同。
應用程序(application software或 application Program)是計算機軟體的主要分類之一,是指為針對用戶的某種特殊應用目的所撰寫的軟體。
應用程序在分類上也比較多,系統應用程序,桌面應用程序,驅動應用程序,網路應用程序,手機應用程序,物聯網應用程序等。
根據《軟體工程:實踐者的研究方法》中的定義,軟體(software)是一系列按照特定順序組織的計算機數據和指令,是計算機中的非有形部分。計算機中的有形部分稱為硬體,由計算機的外殼及各零件及電路所組成。
軟體由一個或多個應用程序組合而成,分類上有編程語言、系統軟體、惡意軟體,嵌入式軟體,游戲軟體,應用軟體和介於這兩者之間的中間件。
系統軟體就是常見的操作系統,Windows,Mac OS,Linux都是操作系統軟體。
應用軟體是需要運行在操作系統上的軟體,比如常見的文檔處理軟體,圖像處理軟體,編程軟體等。
惡意軟體會故意造成隱私或機密數據外泄、系統損害(包括但不限於系統崩潰等)、數據丟失等故障及信息安全問題。
中間件是一種獨立的系統軟體或服務程序,分布式應用軟體藉助這種軟體在不同的技術之間共享資源。
軟體包括所有在計算機運行的程序,和其架構無關,例如可執行文件、庫及腳本語言都屬於軟體。軟體不分架構,有其共通的特性。
應用程序只是軟體的一部分,而軟體的概念及其廣泛,不是只有應用程序。
2、功能不同
軟體由多個應用程序組合而成,功能及其復雜,比如常見的office 軟體,能做表格,做PPT,處理文檔等功能。
而應用程序功能比較單一,只能處理一類工作。PPT只能用來處理幻燈片,沒有辦法處理復雜表格,想要錄制音頻需要調用office軟體包里錄制音頻的應用程序。
3、開發難度不同。
軟體的開發難度要比應用程序大得多,由於需要多個應用程序配合,而且需要在不同的操作系統平台上發布,都是用不同的編程語言混合開發而成 。
軟體對性能有一定的要求,很少選擇性能比較差的腳本語言開發,一般都是使用C,Java這類編譯型語言開發。
但編譯型語言的問題是,有的語言設計不合理,歷史積累,不夠成熟等原因,造成開發起來較繁瑣,調試比較困難,開發時間較長。因此一個功能完整的軟體開發起來通常需要幾年才能完成。
最常見的游戲軟體就是如此,很多游戲軟體的游戲引擎都是C,C#這種編譯型語言開發(有現成的也需要二次開發),也是整個游戲的靈魂,開發難度也是最大的。
而游戲的動作,事件等則選擇LUA,JavaScript或者Python這些腳本語言開發。很多游戲大作都是跨平台的,開發周期最少的都在1年以上。
應用程序的功能相對比較單一,遇到的業務場景也不會很復雜。通常開發一個功能完善的應用程序,只需要幾個月時間,復雜的應用程序最多1-2年就能完成。
應用程序通常對性能的需求沒有軟體那麼大,很多解釋型的腳本語言也可以開發。開發一個移動端手機應用程序(web應用程序),功能不算很復雜,開發周期都不長。通常一個完整的web應用程序,會分為客戶端和服務端兩部分。
客戶端軟體技術選型上,常用React Native 或者 flutter(IOS有自己的一套UI),服務端軟體一般常用C、Java、PHP、Python、Ruby等編程語言開發,通常都會同時在安卓和IOS平台上發布。