节选自《Go语言之父谈Go:大道至简》(图)
2021-08-11
现在下班了,随便解释一下
1)明显下降的是c&c++。单独
c 的下降与硬件不景气有关。现在一切都在过渡到互联网。硬件不如软件,软件不如互联网。这是大势所趋。这一切不都反映在这部终结者电影中吗?有自我意识。看这个名字,不,在今年的一些行业趋势中也可以看到,通信行业也开始走下坡路,华为等裁员的消息并不少见;
c++的没落与c有关系,但也与go的出现有很大关系。 Go 的上升趋势极大地打击了现有的 c++ 用户群。 C++在语言层面上是蹩脚的。我没有勇气去解决c带来的问题,所以我保留了c的很多特性。同时在c的基础上,加入了oop的特性,但没有java那么纯粹。和lisp等fp相关的语言相比,它就更加复杂了,所以后来的大部分语言都在一定程度上撞上了c++。这从多年前java的出现就可以看出。 java原来的名字是c++++--,看这个名字,++--,而c++缺的就是这个--,c有很多不纯的东西,c++只有+不敢-,所以最后不像四,发明go的初衷是为了取代c++,就像go的父亲说的那样
这时候,我问自己一个问题:C++委员会真的认为C++没有足够的特性吗?当然,不像罗恩的玩笑,简化这门语言肯定是一个更大的成就!也许这很荒谬,但请记住这个想法。
摘自《围棋之父:谈围棋:通往简的大道》,网上搜索即可找到;
2)java,一个永远绕不开的话题
首先,你可以看到Java过去有一个上升的浪潮,然后开始下降,嗯,为什么?猜一猜
很简单。发生在上次低谷的时候。程序员们已经熟悉了Java的特性,所以8开始添加一些新兴的。重要的是它是fp的基石,就像oop一样,没有就没有fp,同样,没有就没有oop,所以能遇到的未来一定是一个把fp叠加在自己身上的过程通过java,因为java几乎把oop做到了极致,也没什么可做的,但是fp是一个 池子越大,出土的宝物也越多,所以8之后有一个明显的上升期,到了的时候被程序员普遍接受和消化,难免人气开始下滑。这是正常的。学了东西以后就不会再搜索这个关键词了,除非你不搜索,所以你可以看到,2016年之前是世界程序员学习的高峰期,16年后,程序猿一般接受了这个特性,各种东西开始成熟,所以开始没落,消化Java世界最重要的结果就是Vert.x,开始输出各种经验,后面会讲到。
可以看出,对于学习来说,需要一定的时间。我个人觉得理解oop的概念和我第一次接触oop的时间差不多,可能多一点,因为它比较抽象,需要很多,只有通过实践才能掌握。现在很多人对这些参数并不熟悉。可见,学习并不是一个简单的过程,需要投入时间和汗水。然而,16 年是一个分界线。 16年前,学习意味着你仍然可以与时俱进。 16年后,所有技术娴熟的程序员都在船上。如果你还在游泳,那你就很危险了:
作为Java程序员,如果你现在不熟悉,尤其是不精通,那是不合格的
因为以Vert.x为代表的重框架已经开始输出各种经验教训,这其中的一个重要体现就是它带来的各种问题,最典型的就是异步应用,带来了地狱,那么如何解决羊毛布?三种方式:和
目前java不是最后一个,可以使用vert.x本身和java。这个设计类似于node.js中的方法,可以说是借(chao)建(xi)
或者,也就是已经更新为2了,替换了代表新生代类中1所代表的工具类
输出是什么?输出当然是设计借用了很多go,c#等相关的设计,然后导出,然后感谢vert.x的中国用户群,vert.x的中国用户已经把部分完成并贡献给了官方的vert.x,应该会在3.5的下一个正式版本中看到。预计3.5会在10.1发布;
设计
真正解决了异步带来的各种问题。用户可以像同步代码一样编写非常漂亮的代码块。同时idea会在ide里面用一个绿色的小箭头来标记,让我们的开发更方便、更自由。
同时,这个语言最近也被red hat 贡献并移交了。按照现在的情况,第一个版本要做的就是添加/支持,就这样,而且这两种语言同时被 .x支持,没错,vert.x支持7种语言,包括js , ruby,,,, 以及最新的创意也是免费支持的,所以你可以看到这个趋势。
也就是16年后,发展的重点不是java本身,而是基于java/jvm和异步API的开发,可以比喻为java和jee的关系。虽然java本身的热度在16年下降,但与此同时,vert.x等,热度却在上升,达到前所未有的高峰期
Java one 即将开放。今年是九月。估计我们会跟上的。同时vert.x制作组会在java上制作一个&vert.x。今年11月,大会也将有同样的主题。 ,但不是这样,viet说10月柏林会有vert.x
说了这么多,总结一下,java最近的上涨是什么时候,所以可以预计下个月之后还会有一波上涨
java最近的没落,就是程序员吸收消化了这个特性,开始转移到相关框架的生产和实践的过程。最后的结果是:vert.x,这些繁荣,但这些不属于java基础也是java核心部分,所以掉了,但是jvm取得了很大的成绩
虽然后续java会有一波增长,但是java还有很长的路要走,因为用户期望java真正解决异步带来的写问题。目前其他语言都在尝试,或者借(chao)欣赏(xi)go等其他非jvm语言的成果,等这些成熟之后,直接把java复制到它的里面也不是没有可能语言特性
特点
主要是为了摆脱历史包袱。同时,类型已经在生产,也就是真机。这个需求是典型的fp需求,所以java圆满完成了oop之后,在fp的道路上越走越远,作为程序员,你要跟上这个趋势。与oop相比编程语言热度排行2016,fp就像另一种语言。重新学习是必要的。如果你还什么都不熟,呵呵,小心点,被踢了 行业更新很快
写的乱七八糟,急着下班,今天有台风,先看看
看不懂请看我的专栏:百慕城全栈
我想在这里补充一些常识。有些人总是说,哦,你看到某种语言的某个特性,但Java最近才添加了它
首先,给Java添加特性是非常慎重的,因为语言特性添加起来很简单,如果以后打算去掉的话,会造成大规模的破坏,因为这意味着重构旧代码,这是绝大多数资本家不愿意接受的,因为解释不清楚。为什么你需要重写你写的代码?需要重新测试吗?之前写的代码是什么?因此,Java 添加功能非常谨慎和小心。我宁愿不添加它或随机添加它。这不是和圣人的逻辑很相似吗?你宁愿不结婚也不容忍吗?
Java 是迄今为止与旧版本兼容的最佳语言。没有必要添加一个。过去写的代码和之前写的一样,可以在各种平台上舒服的运行。语言功能没有那么高。技术不难加,要看它的副作用
比如我当时打算加,但是jcp以功能可读性不是很好为由叫回来,要求重新修改重新提交,然后就有今天的样子了,所以java中新增的特性是各个公司反复论证的结果,可以说是政治斗争和博弈,但不管怎样,这都是最大公约数,也就是说大家感觉,呃,这种方式写,我们可以接受,副作用很小甚至没有,这个结论一旦形成,就定下来了,不会改变。所以java可以在企业后端猖獗运行。这种对老版本的兼容性做的很好很重要编程语言热度排行2016,随便加一些特性造成混乱的例子:
1),到了5还在变,几乎每次发布都是小版本造成的,太强了
2),又乱又乱。这也是很多公司放弃它的原因。你可以看到保罗对此的抱怨。该链接是一个链接。想办法自己翻墙
3),2->3的闹剧是业界经典的失败案例。游戏中以jcp为例,说我们不能有2->3这样的,所以我们也会重新设计一下。
当我们看到这些语言时,为什么会有这样的困惑?因为都是一户人家,就一个字。例如,如果你想做出这样的改变,即使你看到这种改变是脑死亡的行为,你能做什么?我不听。你说什么就是你说什么,但Java不同。 Java 的所有特性将在jcp 讨论和批准后添加。这既有优点也有缺点。优点是变化少,可预测性强,够用。可以适应时间,但缺点是反应较慢。所以,作为程序员,你应该把这两者结合起来,以java为基础,然后以这些为先锋来扩展和尝试新的特性,但始终保留java的返回选项真的不好。我总是可以改回java,对吗?正如一些人所说:java不酷,但它
vert.x的开发模式特别适合这个,因为都是这样,不行的话,我不是一秒就切换回Java写了吗?无需像JVM以外的其他语言一样更改ide和包管理
顺便说一句,即便如此,有没有java升级?
是的,但是很少,基本可以接受,但即便如此,还是引起了很多波
比如_下划线会被去掉,下划线会作为新的关键字使用。后续可以为类型推导做准备。一般这个会先出来,后面几个版本再出来,然后才是真正的强制要求,所以现在java也面临这个问题,就是与旧版本的兼容性问题。比如com.sun包里的很多东西都用到了。这个已经标记很久了,但是还是不能阻止一堆第三方库的使用,直到9号以后,才会正式,所以9号之前,一堆库在更新自己的代码