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

孤月醉清風QAQ


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

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

jfinal



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

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

差別根源在哪裡?

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

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

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

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

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

極客宇文氏


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

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

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

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

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

希望能幫到你。


大學生編程指南


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

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

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

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

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

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


秋若楓261


原因一下幾點

1 沒有知識產權意識。在外國抄襲代碼會被告的。甲骨文就因為谷歌抄襲告他要求賠償80多億美金。國內不存在像騰訊這樣的公司,在美國早就倒閉了n 次。

2 沒有時間。中國的IT行業加班嚴重根本就沒有時間給他們。自己陪女朋友看電影的時間都是擠出來的。

3 企業不願意投資。一些企業對於技術都採取外包,自己懶得研發。更何況是底層軟件。拿來主義在中國盛行。

4 研發是一件吃力不討好的事情。而且成本高,技術高,時間長。一般的公司扛不住。


希望之草


這種未經求證就信口開河的問題是要被打臉的!

我不是搞Java的,但是我也知道spring全家桶,全家桶很強大,但是Java的框架不僅僅只有spring,稍微去github上搜下Java的開源項目,或者僅僅搜下阿里巴巴的,你就會發現國人寫的Java框架多的數不過來。

中國大多程序員只會搬磚這句話就更不負責任了,拋開Java,任何語言的開源項目都有國人在大放光彩,html有antd,js有vue,php有swoole,workman,golang有bingoo,erlang有emq……這些只是我隨口報來廣為人知的,至於國人寫的在某領域專精的某語種框架更是數不勝數,github上面開源代碼按地區排行的話,中國程序員的貢獻率不是第一也有第二,何來只會搬磚一說?

切記下結論要謹慎!


瑰麗傀儡


做框架產品,與程序員的開發工作相比差距太大,不能相提並論。可以做個類比,框架相當於工廠裡的生產線,而程序員相當於生產線上的工人,使用生產線加工產品。可想而知,能有多少工人具備設計生產線的能力?

國內程序員的科學理論基礎普遍太差了,例如邏輯學,普遍沒有學過,更別說精通掌握了。根據我們的經驗,國人目前的思維水平,要具備邏輯學大腦思維,基本需要五年以上的時間磨練。

無論什麼語言開發出的框架,承載的都是一種業務模式,所以首先要設計出這個業務模式,這就不是一般的程序員開發工作。業務模式的設計者,必須具備相應的科學理論基礎。在這裡列舉一些供大家參考:經濟學,管理學,統計學,邏輯學,心理學,語義學,系統論,控制論,信息論,等等。

所以國內很難出現框架類產品,是因為國內太缺乏這樣的智力資源了。


青水飛步


1、沒時間:這些框架都是極具創意的,而創新是需要寬鬆的外部環境的,這三歲小孩都知道。

三星有一條很好的規定:工程技術人員下午4點必須下班,除非極端情況。對於技術宅來說,給他充足的時間他除了改進技術、創新技術之外沒什麼事做,不要高看他的生活情趣,他不會去約會的;

但是國內。。。你不加班老闆認為他給你錢給虧了,目光之短淺令人髮指,沒有寬鬆的環境談何創新;

2、沒經驗:對於大多數職業來說,40歲是一個經驗比較豐富的年齡,大多數優秀的框架主導人、首席架構師也都是在這個年齡或之後開始逐漸主導這些框架。而國內的程序員的勞動強度你是知道的,40歲在國內一線程序員中已經是一個退休的年齡了。


你們什麼時候玩夠呀


客觀條件不想贅述,生存壓力確實比國外的一些地方要大。但我想說的是從人的角度看,國內確實不乏技術大牛,但是,太少了!從整體的程序員這個人群看,平均水平遠不及歐美國家程序員的平均水平。且不說這個行業有多少是沒有經過科班訓練的人,就是計算機科學與技術專業的畢業生,真正能寫出一手好代碼的人又有多少。 接觸過歐洲國家實習生,一進公司就寫出模塊化的結構清晰的代碼,一看就是經過良好訓練的,反觀我們的開發,別說實習生,工作三五年的所謂熟練開發,有幾個寫的代碼能達到結構清晰的。開源軟件尤其是框架類的,對於整個設計理念要求是挺高的,各種設計模式一定是廣泛應用其中的。而國內的一些程序員,聽說過設計模式四個字的就敢在簡歷上寫熟悉設計模式,瞭解過singleton的就敢聲稱精通設計模式,結果連別人應用了設計模式的代碼結構估計都看不懂,更不要說去靈活應用了。總之,中國軟件要提升,人的能力急需提升,現在什麼人都想寫代碼多賺錢,我想這次移動互聯網也有泡沫破滅的一天,而不久的將來,我們國家白鬍子的程序員也一定會多起來。也許到了那個時候,等他們知天命之時,又真正技術積累深厚的情況下,一定會帶來好的產品。


開發者讀書會


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

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

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

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

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

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


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

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

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

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


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

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


哎喲JAVA不錯哦


國內的大部分程序員哪有時間寫這種免費產品?不加班就不錯了。

事實上國內也有一些優秀而且市場佔有率不低的框架,比如java語言領域JFinal等等,php語言領域thinkphp等等,這些算是做出影響力的框架了,我見過不少很優秀,但是卻沒做出影響力的框架

JFinal 項目開發始於2011年初,作者詹波(James Zhan),遵守Apache Licence 2.0協議。

thinkphp項目開始於2006年,先不說thinkpad好還是不好,它在中國php領域裡的佔有率可是超級龐大的!用java領域來比喻的話,不亞於Struts之類的框架

從構架師角度上出發,技術選型是一個多方面思考的一件事情。能否實現當前項目需求的因素佔比僅僅佔很小一部分比例。因此給題主了一個假象,中國的框架沒人使用,甚至很少很少。


分享到:


相關文章: