國內外軟件開發上的差距與分析

提高自己,迎接好的未來。


在開始任何其他文字之前,首先有必要正視一個根本現實:國內外軟件開發的水平是有差距的。

這一結論的最直接證據是每一輪新技術的發起者基本上都是國外的人或公司:

從方法論(CMMI,敏捷等)到各種框架(近來很熱的Hadoop等)再到新的編程語言都是如此。


總的來看這類差距似乎可以概括為“原創的缺失”,大多時候,我們只是處在一種“跟隨者”的角色上。

RUP出來后我們跟誰RUP,敏捷出來我們跟誰敏捷,云計算出來后我們跟隨云計算,大致如此。


年紀小的時候,會單純的以為造成這種局面的主要原因是個人技術能力不足或努力不夠。

但現在想來,這反倒是次要原因。

單以單兵能力來看,國內外的程序員群體未必就有很大的差距。

這點可以反過來看,那么多開源的庫,看過代碼后,那個是國內程序員看不懂并完全寫不出來的?


如果說既能看懂,有足夠的時間也可以自己寫出來,那么大致上就不是個人技術能力的問題。

這樣事情就變的有些微妙,我們也就需要在更高的視點上審視一下促成一件事情的因子。

一件事情的成敗大致可以用四個維度去考量:

  • 有沒有意識去做?-->創新
  • 有沒有能力去做
  • 有沒有時間去做?-->環境
  • 有沒有動力持續去做?-->意愿和環境

排除第二點能力之外,其余三點可以大致概括為:勇為天下先的意識(創新)和創新得以生長的泥土(意愿和環境)。

這幾者彼此影響,不可分割。


一提創新,很多人可能會想到其瓶頸是沒有想法,進而認為差距的主要原因是意識問題。

但這很可能是錯的,就我自身的觀感,程序員這個群體里,現實的情形應該是想法很多,但受種種制約,實踐下來的不多。

現實的需要激發了創新,也提供了實踐創新的場所和養分,脫離實際需要的創新是走不遠的。

這似乎只能寄希望于本土軟件企業的崛起,為程序員提供相應的環境(時間+實踐創新的場所),

接下來如果程序員這個群體再有實踐自身追求的意愿,那么事情將會改觀。


國內外差距的一個間接證據是國內軟件開發的工程化的程度過于薄弱。

軟件這東西過度工程化是不行的,但不工程化也一定是不行的。

先不論CMMI這種大型方法論,就說最簡單的軟件工程數據收集。

在這點上國外比較容易找到各種數據,比如下面這樣的表格:

代碼行/天?最低值-最高值(典型值)

軟件類型

10,000代碼行的項目

100,000代碼行的項目

250,000代碼行的項目

航空電子

15-150(30)

3-45(7)

3-30(6)

應用系統

120-2,700(450)

30-1050(90)

15-750(75)

命令與控制

30-450(75)

7-90(15)

6-75(12)

嵌入式系統

15-300(45)

4.5-75(11)

3-60(9)

公眾因特網

系統

90-1500(225)

15-300(45)

15-225(30)

內部內聯網

系統

225-2700(600)

45-1050(120)

30-750(90)

微代碼

15-12030

3-306

3-154

過程控制

75-750(150)

15-150(45)

13-130(30)

實時系統

15-225(30)

3-45(7)

3-45(6)

科學系統/

工程研究

75-1125(150)

15-225(45)

12-150(30)

套裝軟件

60-750(150)

15-150(30)

10-120(30)

系統軟件/

驅動程序

30-750(90)

7-150(15)

6-120(13)

電信軟件

30-450(90)

7-90(15)

6-75(7)

即使是在日本,也有一個叫IPA這樣的機構在定義各種指標,并持續收集數據。而國內似乎還沒人做這類事情。

這樣的話對軟件開發個體而言,負面影響可能并不直觀,但從整體來看卻也是一種切切實實的差距。

這點上很難靠個人來推進和改善,需要有一種組織(軟件協會?)來持續推進才有可能改觀。

------------------------------------------------------------------------------------------------------------------------------------

理想流口號:創建超一流方法論,為培育超一流軟件公司貢獻力量。

理想流博客:http://blog.csdn.net/leezy_2000


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452567.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452567.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452567.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flask愛家租房--訂單(房東接單、拒單)

文章目錄0.效果展示1.效果展示2.后端接口3.前端js4.前端html0.效果展示 1.效果展示 1)當房東點擊“客戶訂單”,js向后端接口get_user_orders()獲取數據,訂單頁面開始加載; 2)當房東確定接單時,js會向后端…

WebView性能優化--獨立進程

Android允許一個app同時存在多個進程,可以根據需要把不同的模塊放到不同進程中處理。 一、WebView獨立進程的好處 1.有效增大App的運存,減少由webview引起的內存泄露對主進程內存的占用。 2.避免WebView的Crash影響App主進程的運行。 3.擁有對WebView獨立…

linux修改python默認版本

linux修改python默認版本 update-alternatives --config pythonposted on 2018-05-24 22:42 psycheman 閱讀(...) 評論(...) 編輯 收藏 轉載于:https://www.cnblogs.com/psycheman/p/9085576.html

什么是有窮狀態機

有窮狀態機的作用是描述對象在它的生命周期內所經歷狀態序列,以及如何響應來自外界的事件。有窮狀態機首先包含一個有限狀態的集合,還包含了從一個狀態到另外一個狀態的轉換。 有窮自動機看上去就像是一個有向圖,其中狀態是圖的節點&#xf…

linux設置開機自啟 etc rt.d,Linux下禁止服務開機自啟動

一、 Upstart是兼容System V的配置方式的,但主要的服務配置放在 /etc/init 下,這也就是為什么修改 /etc/rc${runlevel}.d/ (Ubuntu默認啟動runlevel2,也就是/etc/rc2.d/)下的MySQL啟動配置并不能真正起到禁止MySQL自啟動的原因(比如使用命令 …

開發經驗和屁股的關系

昨晚為CSDN俱樂部的同學們做了一個講座《微博開發、云平臺及一個微博應用開發的簡單方案》。已經用屏幕錄相機記錄下來了,不想講完一邊和同學聊著,一邊收拾,直接關機,教室中帶有保護卡的電腦自然不給面子,錄相文件就此…

ZCARD key

返回key的有序集元素個數。 ##返回值 integer-reply: key存在的時候,返回有序集的元素個數,否則返回0。 ##例子 redis> ZADD myzset 1 "one" (integer) 1 redis> ZADD myzset 2 "two" (integer) 1 redis> ZCARD myzset (in…

Petri網

并發系統中遇到的一個主要問題是定時問題。這個問題可以表現為多種形式,如同步問題、競爭條件以及死鎖問題。用于確定系統中隱含的定時問題的一種有效技術是Petri網,這種技術的一個很大的優點是它也可以用于設計中。Petri網是由CarlAdam Petri發明的。在…

Flask愛家租房--房屋管理(獲取房屋詳情)

文章目錄0.效果展示1.思路總結2.后端接口3.前端js4.前端html0.效果展示 1.思路總結 1)房屋詳情頁面開始加載時,detail.js首先通過定義的函數(重點:document.location.search),截取需要向后端取得詳情頁面的…

MAC 安裝 pygraphviz 找不到頭文件

networkx的有向圖只能通過箭頭來區別兩點之間的兩條邊,但是我在復現snake論文的時候,需要繪制兩個交叉口之間的兩條不同方向的路段,最后選擇了pygraphviz 直接通過anaconda打開對應終端,pip install pygraphviz,一直報…

linux ntp連接失敗,linux ntp服務器連接異常

彈性云服務器 ECS彈性云服務器(Elastic Cloud Server)是一種可隨時自助獲取、可彈性伸縮的云服務器,幫助用戶打造可靠、安全、靈活、高效的應用環境,確保服務持久穩定運行,提升運維效率三年低至5折,多種配置可選了解詳情認證鑒權|…

如此如此,怎能師夷長技以制夷!

以一個愛國的軟件設計者的角度來看這樣一個weibo,大概的內容就是:北京南站的4SQ上有個老外留言吐槽:“沒有中國身份證根本就沒法在自動售票機上買票,那他媽的他們弄個英文界面干屁啊!” 出于行業的敏感性,我感到很有意…

基于supermap webgl三維樓層顯隱控制思路

supermap 9D 產品中,可以先獲取到模型的simd值,再調用setOnlyObjsVisible方法控制模型中單個物體的顯示和隱藏。 var smid "94"; //樓層的smid值,多個樓層,則用數組的方式 var ids []; var layers viewer.scene.la…

#python計算結果百位500向下取整,(0-499取000,500-999取500)

!/usr/bin/env python coding:utf-8 計算結果百位500向下取整,(0-499取000,500-999取500) import math calc_Amount float(input("輸入所有可需金額:")) act_Amount calc_Amount if calc_Amount > 0: value2 calc…

什么是Z語言

Z語言是一種用“數學文字”或“數學符號”來描述計算機系統的規范化語言,它不但能應用于計算機硬件系統,而且也特別適用于計算機軟件系統,Z語言描述“做什么”而不涉及“怎么做”,只對目標軟件系統進行功能描述。實際上&#xff0…

Flask愛家租房--房屋管理(搜索房屋列表)

文章目錄0.效果展示1.后端接口2.前端js3.前端html0.效果展示 1.后端接口 house.py部分接口: # GET /api/v1.0/houses?sd2017-12-01&ed2017-12-31&aid10&sknew&p1 api.route("/houses") def get_house_list():"""獲取房…

c語言用if語句判斷字符類型,C語言if語句的使用

C語言if語句的使用【例3】#includeint main(void){char c;printf("input a character: ");cgetchar();if(c<32)printf("This is a control character\n");else if(c>0&&c<9)printf("This is a digit\n");else if(c>A&&a…

SQL的特點

1.綜合統一集數據定義語言&#xff08;DDL&#xff09;&#xff0c;數據操縱語言&#xff08;DML&#xff09;&#xff0c;數據控制語言&#xff08;DCL&#xff09;功能于一體。可以獨立完成數據庫生命周期中的全部活動&#xff1a;定義和修改、刪除關系模式&#xff0c;定義和…

編程語言API性能大比拼

Ciaran是Skimlinks項目團隊中的一名領導者&#xff0c;熱愛開發&#xff0c;在業余時間喜歡研究一門新語言。作者和他的團隊在開發Skimlinks項目時遇到了一些困難&#xff0c;于是做了這份測試&#xff0c;文中將Node.js、Scala、Go、Python、PHP進行對比&#xff0c;最終Pytho…

ubuntu 安裝ssh服務

1&#xff1a;安裝 $ sudo apt-get install openssh-server 2&#xff1a;檢查ssh服務開啟狀態 $ ps -s | grep ssh 3&#xff1a;啟動ssh服務 $ service ssh start 4&#xff1a;本地登錄 $ ssh localhost轉載于:https://www.cnblogs.com/andy1327/p/9089930.html