為什麼一些優秀的java框架都是外國人寫的,為什麼國內的一些程序員只會搬磚?

孤月醉清風QAQ


這個問題應該客觀分析。

軟件開發的目的是什麼呢?要實現一套完整的信息採集、處理、再分發、再採集如此週而復始的機制。為什麼要建立這樣的機制呢?或者是為了做科學研究,或者是為了創建一種基於信息傳播的“生態”,又或者是為了提高某種管理模式的運行效率。

香農告訴我們:人與人之間之所以要進行通信,要麼是把自己知道而別人不知道的消息告知對方,要麼是自己有某種疑問需要得到對方的解答。

我們根據香農的這個觀點,可能會得出這樣的結論(不知道是不是香農的本意):信息的傳遞是為了消除不確定性。

那麼基於這種結論,在信息傳播過程中起到如此重要作用的軟件及其所構建的信息採集、處理、分發機制,就是為了踐行“消除不確定性”的核心思想而產生。

既然軟件包括信息採集、信息處理、信息再分發這樣三個環節,那麼軟件開發人員的工作自然也就涉及這三個方面——有人開發信息採集程序,有人開發信息處理程序,也有人開發信息的分發程序。

但這好像沒有軟件框架什麼事...

其實,如果你把軟件開發的過程看做消除“軟件開發中的不確定性”,那麼軟件框架其實就是“開發軟件的軟件”。是對軟件本身更高程度的抽象。

為什麼感覺國內在軟件框架方面的發展要明顯慢於國外呢?

因為在國內開發軟件框架的基礎環境不行。這倒不是說國人的能力不行,這裡要強調的是刨除人員素質之外的其他因素。

——國內的軟件開發人員在“消除信息的不確定性”方面,要比國外付出更多的努力。也就是說國內的程序員所面對的信息採集、處理、再分發的複雜性要遠甚於國外。

記得若干年前,我接觸過一個銀行信息部的工作人員,此人算是比較有資歷的銀行信息化“老人兒”了。他曾經說過,國外的銀行系統拿到國內,根本沒法用,因為所服務的客戶數量,根本不是一個量級。

這只是從“量”的角度來考慮。另外,鑑於我國所處的發展階段,各個行業標準尚在完善之中,國家的投資、建設也需要付出一定程度的“試錯”成本。這些試錯成本中自然會涵蓋“錯誤的”消除信息不確定性的機制所造成的“無用功”,這直接影響到軟件開發行業的發展。

軟件的抽象總是自下而上的。軟件開發者需要積累經驗,對反覆出現的問題和解決方案加以抽象,才能開發出一套相對成熟的軟件框架。而且,對軟件框架的開發不應該是一個“閉門造車”的過程,無論是在理論上,經驗上都應該“博採眾長”。如果對這樣的環境下努力奮鬥在信息化一線的軟件工程師們橫加指責,說他們抄襲、照搬、缺少創新之類,是否有失偏頗呢?


信息扭曲力場


我想,這個問題放到其它語言同樣有效(易語言除外,哈哈)

之所以出現這種情況,我覺得是因為教育差異導致的。

麒麟子在剛畢業不久的時候,幫國外的大學生做過一次作業。是一道C語言的操作系統相關的作業。

大家還記得我們在學操作系統的時候,有一個分頁算法麼,分頁分好後,會有換頁機制。

他們的作業就是實現這一個函數,並且有20個test cases。作業達標的條件是實現這個函數,並且20個test cases都要PASS。

為了完成這個作業,我又重新讀了操作系統相關章節。本來覺得這個部分學得不錯的我,又再一次深入學習了。

國內基礎教育在理論到實踐這一步是脫節了的。當我們出社會後,又與理論脫節了,因為我們的項目要的是結果。

再者,達XX等機構培訓了一大堆搬磚的。

不想再寫了,再寫就成了吐槽了。


我覺得糾結這個問題沒有太多意義,國內的程序不寫框架,那我們用國外的框架也是沒問題的。技術無國界。 如果真覺得需要一個國內框架來增強國內JAVA黨在國際程序界的地位。樓主可以在GITHUB上起個頭,邀請眾多能人異士一起完成它!


財思敏捷一麒麟子


這個題設很尖銳不過卻是很現實。作為軟件開發從事者,我覺得這個問題應該引起反思。

許多優秀的框架尤其是spring全家桶,都是外國人寫的,而且寫框架的也並非什麼科學家。都是一些國外有想法有毅力有能力的工程師。

jfinal



而中國自己的框架,並非沒有,個人接觸過jfinal,這是有國內一位牛人創作,而且有它的官方文檔和論壇。相對來說這是一個比較優秀的框架,因為有一些企業在用這個框架進行開發並且有了盈利。

但是作為這個框架的直接使用者,不得不承認一點就是,他的數據持久層相比著名的mybatis確實用起來極其不方便,jfinal把SQL語句拼接在代碼裡,而mybatis用配置文件集中管理SQL,這兩個細節決定了很多成敗。

差別根源在哪裡?

中國開發人員和外國開發者最大的區別就是,一個還在加班中掙扎,一個已經在開源裡遨遊。一個是為了更高的工資,一個是為了更高級的設計。

這就是環境所致,中國不缺乏開發能人,但是缺乏可以專研的環境,競爭壓力巨大的程序員環境,35歲可能就面臨轉行創業甚至失業,國外的35歲程序員可能才剛剛開始自己的框架設計生涯,這就是差別。

造成這樣的局面最主要的一點是你開發個開源框架可能沒有人家接一個實際項目來錢快,原因是,第一版權問題,第二商業價值。

當然,這也不是宇文氏在這裡一兩句可以說明的道理,我相信中國以後會有超越國外的強大開源框架。

關注“極客宇文氏”,專注分享編程圈那些事

極客宇文氏


為啥有名的操作系統 ios android osX windows linux都是外國人發明的?

為啥有名的IDE,比如Visual Studio, IDEA家族,eclipse等都是外國人發明的?

為啥有名的editor,比如VScode,atom,sublime都是外國人發明的?

為啥有名的後端框架,比如java的spring,node.js的express都是外國人發明的?

為啥有名的計算機語言 C java python ruby ...... 都是外國人發明的?

原因有二:

1. 中國只有一個 外國有兩百多個。

2. 我國的IT產業是很興榮,電商我們有阿里,娛樂服務我們有騰訊,網易,這些公司都做得很不錯了,阿里每年雙十一的十億級併發都扛了下來,技術自不必多說,但是我們也要承認我國在軟件開發的基礎設施方面,比如框架,IDE,操作系統,編程語言方面,幾乎從未成為領銜者,這也是我國IT行業的最大弱勢。


青山三毫米


你只是知道的太少了,apache幾乎半壁江山都有中國人身影,很多項目還是中國人主導的,比如: apache kylin, apache ratis, apache livy ,最近進孵化池的easy schedule(改名了),中間件包括,tubemq, rocketmq 還有個滴滴的,plusar也有幾個中國pmc,數據庫,tidb,apache driud等等,spark,flink等等,裡面的核心有很多都是中國人


我從來不錯過早餐哦


作為一個寫了十幾年代碼的程序員,平時用的比較多的有三種編程語言,C/C++ java,相對來講C/C++愛的更加深刻一點,國內普遍一個現象拿到的源碼基本上都是國外寫好多,然後拿到源碼直接在上面修改定製功能,這幾乎國內程序員做的絕大部分事情了,這種情況不能單純認為成搬磚,畢竟能把框架玩得轉也不是一件輕鬆的事情,而且有些開源框架裡面的代碼能看懂就是一件很幸福的事情了。

在第二家公司共識過一個同事,典型的linux內核迷,幾乎天天研究linux內核的源碼,對於linux內核最核心的內存管理研究的特別透徹,公司涉及到操作系統的定製功能幾乎都是他一個人來搞定所有的事情,每天談到linux內存方面的知識點兩眼放光,有次交談中說到如果有時間能講上三天三夜,可見在裡面下的功夫是如此的深刻,所以不能簡單的認為拿來主義就是這麼容易去做的,現在付費的軟件已經變得非常少了,付費軟件有個好處有難點可以直接找公司提供方給解決方案。

開源直接拿到源碼是好事,但要真正玩的轉還是靠對源碼的解析,解決的途徑只有兩個直接在網上找別人出現過的錯誤,還有就要自己死磕,曾經在一家公司從谷歌的開源代碼社區弄了一套軟件從運行在電腦上的軟件移植到數字電視上,結果因為軟件本身的設計問題導致出現性能以及內存洩漏等方面的問題,網絡上找到的資料很少,最後一點點死磕過去了,所以拿到代碼能夠玩的轉也是一種技術實力的體現,很多人覺得直接拿別人的代碼來使用說明我們軟件實力還是存在差距,有差距先學會了再去想著創新的事情,本來就是基礎薄弱,認識到自己有差距,然後先學會使用,再慢慢趕上,其實在很多開源社區裡面已經出現了很多中國人的名字,這些都是在融入軟件大家庭的一種信號。

在高速發展階段先學會怎麼去用,再去考慮理想問題,畢竟差距不是靠短時間能彌補上的,認識到有差距也不是一件丟人的事情,現在很多國內的大公司已經認識到人才的重要性,也開始集中力量搞一些前沿性的東西,開始在向創新方向發力了,大廈也不是一兩天能夠建立起來的。

現在國內很多技術牛人已經慢慢在開源社區綻放自己,而且還有很多外國人也參與進來了,但距離主流的開源社區還是存在一定差距,畢竟主要的技術牛人和有影響力的人大部分在國外,在生態鏈中佔據一定的份額,還有文化等方面的因素,國內的程序員進入主流的軟件通道只是時間問題,畢竟從程序員的絕對數量上已經夠了,剩下的就是時間來發酵,很多人拿國內的程序員沒有創造力來一棍子打死,還沒解決溫飽問題就想著多高的精神境界,在基礎積累到一定層面早晚會爆發出大能量,時間問題。

希望能幫到你。



遊戲人超超


作為專業程序猿這個問題我是有資格說的。

1.國內和國外環境不一樣,首先國內的公司恨不得把男人當牲畜用,把女人當男人用,加班加到手軟,那裡有時間來研究自己的框架?

2.國內的人尤其是軟件行業,版權意識過於薄弱,開發一個框架幾乎很容易被別人拿去改改就衍生了另外一個版本,自己辛辛苦苦開發的卻被別人盜用了,出力不討好,不如接項目來的快!

3.知道996.icu吧?這是中國程序猿特有的,都要進icu了傻叉才會寫框架,身體都快不行啦那裡有時間寫框架?

4.因為計算機老外發明的,編程語言英文的,國內程序猿很多英文都不行,只會簡單得使用,更不願意去看源代碼,對源代碼不瞭解你怎麼開發框架?認識過於膚淺。而老外不一樣,英語就是他的母語,編程語言自己寫的,懂編譯原理,源碼都懂,寫框架自然遊刃有餘。

綜上所述:框架大多數老外寫,國內程序猿大多數寫不出。


秋若楓261


作為一個寫了十幾年代碼的程序員,平時用的比較多的有三種編程語言,C/C++ java,相對來講C/C++愛的更加深刻一點,國內普遍一個現象拿到的源碼基本上都是國外寫好多,然後拿到源碼直接在上面修改定製功能,這幾乎國內程序員做的絕大部分事情了,這種情況不能單純認為成搬磚,畢竟能把框架玩得轉也不是一件輕鬆的事情,而且有些開源框架裡面的代碼能看懂就是一件很幸福的事情了。

在第二家公司共識過一個同事,典型的linux內核迷,幾乎天天研究linux內核的源碼,對於linux內核最核心的內存管理研究的特別透徹,公司涉及到操作系統的定製功能幾乎都是他一個人來搞定所有的事情,每天談到linux內存方面的知識點兩眼放光,有次交談中說到如果有時間能講上三天三夜,可見在裡面下的功夫是如此的深刻,所以不能簡單的認為拿來主義就是這麼容易去做的,現在付費的軟件已經變得非常少了,付費軟件有個好處有難點可以直接找公司提供方給解決方案。

開源直接拿到源碼是好事,但要真正玩的轉還是靠對源碼的解析,解決的途徑只有兩個直接在網上找別人出現過的錯誤,還有就要自己死磕,曾經在一家公司從谷歌的開源代碼社區弄了一套軟件從運行在電腦上的軟件移植到數字電視上,結果因為軟件本身的設計問題導致出現性能以及內存洩漏等方面的問題,網絡上找到的資料很少,最後一點點死磕過去了,所以拿到代碼能夠玩的轉也是一種技術實力的體現,很多人覺得直接拿別人的代碼來使用說明我們軟件實力還是存在差距,有差距先學會了再去想著創新的事情,本來就是基礎薄弱,認識到自己有差距,然後先學會使用,再慢慢趕上,其實在很多開源社區裡面已經出現了很多中國人的名字,這些都是在融入軟件大家庭的一種信號。

在高速發展階段先學會怎麼去用,再去考慮理想問題,畢竟差距不是靠短時間能彌補上的,認識到有差距也不是一件丟人的事情,現在很多國內的大公司已經認識到人才的重要性,也開始集中力量搞一些前沿性的東西,開始在向創新方向發力了,大廈也不是一兩天能夠建立起來的。

現在國內很多技術牛人已經慢慢在開源社區綻放自己,而且還有很多外國人也參與進來了,但距離主流的開源社區還是存在一定差距,畢竟主要的技術牛人和有影響力的人大部分在國外,在生態鏈中佔據一定的份額,還有文化等方面的因素,國內的程序員進入主流的軟件通道只是時間問題,畢竟從程序員的絕對數量上已經夠了,剩下的就是時間來發酵,很多人拿國內的程序員沒有創造力來一棍子打死,還沒解決溫飽問題就想著多高的精神境界,在基礎積累到一定層面早晚會爆發出大能量,時間問題。

希望能幫到你。


大學生編程指南


有幸認識了國內某微服務社區,還有某中間件社區的創始人,他們出過的書可能也賣了幾百萬,我發現了他們的共同特點——大牛,英語好,喜歡翻譯!

沒錯,作為他們這種技術社區大牛,做的更多的事竟然是翻譯,彙總國外的技術文檔,然後歸併成為一本書,就成了國內炙手可熱的“傳唱經典”!


有這種現象我覺得有很多原因,下面一一來列舉:

1,大環境:國內的軟件行業相較於國外本來就起步晚,二三十年前,國外的編程語言諸如C,JAVA,Python等已經開始蓬勃發展,而國內幾乎都是傳統行業佔據,所以我們只能晚!

2,業務技術耦合太重:舉個道聽途說的故事,阿里當時為了加入apache軟件基金會,想更多的有開源項目,然後想把“第二代dubbo”---HSF開源,但是因為跟業務耦合太重,最好放棄了,選擇繼續維護dubbo!

而springCloud從一開始就是為開源,為企業級底層架構而生!


3,能解決事就是大牛:國內開發需要的是能快速解決事情的能力,放著國外成熟的框架不用,去做更新的項目,先不論說做的好不好,光是時間就不允許,一旦精通國外框架,往往就被當做神來看待,誰還會想著去創造!

4,CV能解決99%的事:國內編程人員只要能翻牆google,能stackflow基本能解決大多數的問題,剩下的自然不是問題!

我是一個JAVA開發人員,完全不會php,但是當時硬著頭皮接了一個php小項目,邊學語言邊做(主要是copy),花了幾天做出來了,獲得了幾千收益,你說要是不能cv,我還敢接嘛?

所以說cv最輕鬆,一樣的賺錢,何不選擇“對自己好一點”?


但是話說回來,現在也有很多國內大牛活躍在著名開源平臺持續貢獻開源項目,也有很多不錯的項目,相信隨著國內軟件行業的發展,遲早誕生出在軟件行業舉重輕重的項目!

無論無何,持續分享JAVA技術還是我的最愛,喜歡請關注。。


此生唯一


國外公司及早的實現了工業化,連互聯網都是在歐洲誕生的。

不止科技瑤瑤領先我們,就連自由思想都是由外國人貢獻的,知道WTO吧世貿組織,當時中國想加入世貿組織對外出口商品,不過外國人給我們一個出了一個難題,就是每週建立一個雙休日也就是週六週日。

講到這真是慚愧!我們連休息的日子都要別人幫助爭取。

外國人有極高的人權,包括基本的休息權力,下了班以後老闆和公司管理者不得強制安排加班,就算有項目需要緊急處理也是要和員工積極溝通的,而且加班費一分不少,這些權益大部分公司都做到了。

而我們國家目前正在追趕發達國家中,對於中國現在這個才是最重要的,所以我們不惜犧牲員工個人的任何利益來幫助中國成為一個強國。

總而言之,就現在的狀況來說我們並沒有其它多餘的時間來做任何對於個人有提升和有益的事,如果有多餘的時間那我們都是在為這個國家而使用我們個人的獨立時間。

一句話"大家人都很忙沒時間‘’。


分享到:


相關文章: