快本的没落与Java发展的思考

刚刚看了圈内师老师对于快乐大本营没落的讲解- 《快乐大本营》为什么“消失”了?,让我感觉到编程语言是不是也是在这样的进行发展。

快乐大本营和Java的相似点

共同点中有:快乐大本营创办于1997年,创办的那个人也是第一个吃螃蟹的人,当创立这个节目之后,产生了大量的流量,甚至敢于用年仅21岁的李湘当主持人

回顾Java的历史,当中有一些特性在当时也是非常超前的理念:

  • 面向对象
  • 跨平台
  • GC
    在当时还是普遍使用C++的工程来说,这些特性吸引了大批的开发者为其添砖加瓦,也为Java从1995年到2023年提供了巨大的活力。

但是在今天看来,Java的一些特性反而成了拖累,比如GC时的延迟时间,运行时占用的内存,啰嗦的语法,让不少的开发者批评写Java就跟裹脚布一样又臭又长。

Java在如今已经是一个非常庞大的编程语言,就跟一个航空母舰上,载着大量的历史包袱一样,很难进行转向与掉头。

在对于Java批评的声音中,我们听到:Java太啰嗦了,太笨重了。但是在Java的设计之初,很多功能竟然是为了轻巧性,这种矛盾的冲突其实也是历史包袱和现代年轻语言更加简单化语义话的冲突。

Python的崛起

Hellogithub中,近几年Java的占有率也在逐年下降,取而代之的是Python,一门更加语义化的编程语言+搭上了深度学习和机器学习的快车,超过了Java,成为流行度第一的语言。

图为 2022年03月编程语言排行榜

甚至连C这种诞生于Java之前的语言也超过了Java,这并不是Java的转折点,而是Java可能在未来衰退的一个时间片。

在这里其实有几个疑问:
Java为什么没能搭上深度学习,机器学习的快车?
Java在2016年以后做的改变能否挽回Java的宝座?

Java与ML

在这里截取了一些在我看来有说服力的回答:

Java没有一流的机器学习支持。

文章来源:Java为什么不能真正支持机器/深度学习?到底还欠缺了什么

在文章中提到,如果Java需要参与ML的竞争,那么需要的一些补充:

1.在核心语言中添加本机索引/切片支持,以与Python的易用性和表现力相媲美,可能以现有的有序集合List

接口为中心。这种支持还需要承认重载以支持

2.构建Tensor实现 - 可能在java.math包中,但也可以桥接到Collections API。这组类和接口将作为ndarray的等价物,并提供额外的索引支持 - 特别是三种类型的NumPy索引:字段访问,基本切片和编码ML所必需的高级索引。

3.支持广播 - 任意(但兼容)维度的标量和张量。

如果在核心Java语言和运行时中存在这三件事,它将开辟构建“ NumJava ” 的道路,相当于NumPy。巴拿马项目还可以用于提供对CPU,GPU,TPU等运行的快速张量操作的矢量化低级访问,以帮助Java ML成为最快的。

这些特性对于Java来说或许确实是一个缺陷,但是让我感到好奇的时候,既然Java的体系这么庞大,为什么没有人能够推动这一个领域的Java发展。

Python在ML上的成功源于numpy and scipy

在机器学习还没有兴起之前,大量的机器学习代码都是通过Fortran和C进行编码的。

在2016年阿法狗打败李世石的转折点到来后,资本对这一市场倾注了大量的资金,此时便急需一个编程语言带领资本实现他们想要的阿法狗山寨版,而Python正好具备hook numpy 和 scipy的能力。

于是,Python从2016年开始,节节攀登,机器学习也随之兴起,水涨船高。或许此时的Java闻到了一丝危机,但是庞大的Java帝国让Java也放松了警惕,一个新兴事物不会这么容易取代Java的吧。

自己的一些思考

答案在我看来,还是因为Java太关注于Web应用的开发了,现今web应用服务的开发,在2018年的一个统计中,tomcat占据了62.5%的份额。使得大量的Java程序员都在进行web应用的开发。

我猜大概只有少部分的Java程序员在关注着ML,而ML这个区域,Java一直以来也是有对应的架构,比如Spark,只是因为架构庞大,很难在普通的程序员中进行传播。

当Python真正在ML中蚕食大部分份额的时候,Java已经失去了在ML的竞争力,虽然Java推出了DL4J,但是没有资金的投入,DL4J始终是感觉力不从心。

这里或许能看出一点资本在编程语言届中起的催化作用,一个阿法狗让Python几年的时间内冲到了榜首,让资本大量的砸钱进行驱动。或者当中的原因不止是阿法狗,或者Python还有这更多适合ML的理由,但是在ML的领域,Java目前为止是输了的。

ML的兴起创造了大量的岗位,ML需要数据,所有就有了Python爬虫,需要数据存储,就有了数仓,需要计算力,就有了专门的GPU计算卡。

回顾这几年的编程语言发展,回过神来发现真正引导语言发展的还是需求+资本,资本或许可以创造需求,但是创造不了新的编程语言。

而需求便是编程语言起伏的最大动力。

下一个辉煌的编程语言是什么呢?

从互联网电脑应用到手机app应用,最近最火的是抖音,短视频。短时间的高强度刺激让人欲罢不能,这倒是让我想起了那个知乎回答:如果有一个按钮,你按下去能获得无上的快感,但是代价是生命减少一分钟,你会按吗?

我猜只要有一个人开了头,那便没有回头路了。

很可惜当中有个文章,我已经记不太清楚,说的是,人类的心理发展没有跟上科技的发展水平。

我们仍然会为了身体的快感和大脑瞬间的快乐而沉迷,这是本能驱使我们这样去做的,但是科技作用不应该朝着这一方面进行发展。

能够猜想到的后面几年可能的发展情况,资本需要一个突破口砸钱,人们需要更沉浸的方式进行发泄(现在的短视频已经无法满足了,产生耐受性),所以扎克伯格提出元宇宙确实是切合了现在的情况与痛点,大量的伪需求被制造出来,资金大量投入进去,就为了等到一个真正的元宇宙(或许很粗糙,但是有着真正意义上的元宇宙)诞生,此时将是人类和资本的另一个狂欢。

在元宇宙里不仅有压迫,还有奴隶,因为在当中没有现实法律的保护(法律永远都是落后于科技的),会将人类的阴暗面彻底的释放,是另一个披上了现代科技的原始社会也不为过。在那天可能996都是福报,是我们想不到的压迫,无法想象的压榨。

那压榨的是什么呢?我想应该就是人的脑力,创造力,只有这种才暂时不会被AI给取代。

会有新的编程语言诞生吗?我不知道,但是现在符合快速开发,更加语义化的编程语言,有能够让AI训练自己的特性的编程语言出现了吗?

下一个编程语言也必将是突破性的,创新性的,打破了我们现在编程语言的痛点,我们一个月的开发量可能在上面只是2天的开发量,你说:怎么可能?在汽车出现前,你去跟那些马车的车夫说,我要发明一个东西代替马车,它完全不用休息,而且跑起来比马车更久,就叫他汽车吧。你说马车会不会相信。

总结

  • 编程语言无关好坏,只有适合与不适合之分
  • 需求仍然是编程的最大动力
  • 未来主导的编程语言,会带着新特性而来爆发,短短时间内流行度便甩开以前的编程语言一大截

  

  
  

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×