为什么一些优秀的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吧世贸组织,当时中国想加入世贸组织对外出口商品,不过外国人给我们一个出了一个难题,就是每周建立一个双休日也就是周六周日。

讲到这真是惭愧!我们连休息的日子都要别人帮助争取。

外国人有极高的人权,包括基本的休息权力,下了班以后老板和公司管理者不得强制安排加班,就算有项目需要紧急处理也是要和员工积极沟通的,而且加班费一分不少,这些权益大部分公司都做到了。

而我们国家目前正在追赶发达国家中,对于中国现在这个才是最重要的,所以我们不惜牺牲员工个人的任何利益来帮助中国成为一个强国。

总而言之,就现在的状况来说我们并没有其它多余的时间来做任何对于个人有提升和有益的事,如果有多余的时间那我们都是在为这个国家而使用我们个人的独立时间。

一句话"大家人都很忙没时间‘’。


分享到:


相關文章: