哈哈哈,请原谅我标题的假大空,其实我想说只有两点:
- 为什么会出现jvm这种技术以及jvm是如何发展到今天的?
- 什么才是jvm当下最大的优势?
在大约20多年前,当时主流的开发语言还是C,C语言由于其编译后直接运行在操作系统之上,被称为运行最快的语言。但这也带来了开发人员的苦恼,开发人员不得不去了解各个操作系统的差异性,来编写出适应于某个操作系统的代码。
在1995年SunWorld大会上,首次提出“Write Once, Run Anywhere”的口号,而那时候windows95几个月后在正式发布,linix 1.0版也才发布一年,可以想象在那个时候挺具有的划时代意义的。时间回到现在,windows系统在服务器端越来走下坡路,而linux几乎是势不可挡(至少在互联网领域),在这种现状下,所谓的“Write Once, Run Anywhere”是否真的还是jvm的决对优势呢?其实我们简单思考下就可以了,想想我们在我们的司龄内是否有更换服务器环境的需求呢?
所以我们可能都被误导了,jvm能发展20年到今日还如此活跃,绝不仅仅因为其当时倡导的平台无关性的。我们思考下近些年比较火的一些语言,无论是php、python甚至kotlin、go,都有一个普遍的特点就是简单、易懂。我们视线回到jvm本身上,jvm本身的优势也是一样的。C语言开发者需要关心内存分配、对象回收甚至线程管理,而这些不正是jvm所做的事情吗?解放了程序员的生产力,程序员只需要关心其代码,和操作系统、内存打交道的事情都由jvm去处理了。再思考下我们现在所用的一些框架(例如spring),又进一步解放了程序员的生产力,程序员只需要关心业务逻辑了。
有很多的人,总是唱衰现在的开发人员,尊崇老一辈的程序员,甚至还有了所谓的开发语言鄙视链,理由
无非是“不懂底层实现”等等。从个人的角度来说,现在的开发人员这方面确实相对比老一辈的人员懂的少一些,但现在的程序员所涉及到的知识储备可能也是原来比不了的。这个其实可能也归因于,我们的生产力的解放,然后才能把以精力投入到其他方面。从整个互联网的发展来说,这个无疑是进步的,人类的发展表现在工作的细分,从这个角度来说,我们可以说是进步了吧。(●’◡’●)
说一下我的思考历程,最开始想到了java编译器,然后找到了jvm的解释器(原来了解到java其实是一门解释型语言),然后想到了平台无关性,然后思考平台无关性存在的意义,到此引发上文end。
马上过年了,祝自己新年快乐。(●’◡’●)