我的Java!越过山丘

当年我是VS程序员,2000年被微软无情抛弃时,我徘徊过,到底继续跟着微软跑还是甩了它!当时兜里没钱,没法再花精力去学习除了名字很像其他都不一样的VS.net……

既然甩了微软,那我为什么不直接选一个跨平台的语言呢?!就这样我没有选择IDE更漂亮的其他语言,选择了IDE还是NotePad的Java。

钟声

如今Java已经用了15年了。这15年中我也曾想过换掉它,直到我用.NET在开发服务器端程序找不到北,用Win2000频遭黑客攻陷,程序经常无故假死时,才知道,走过这么多风风雨雨都让我们稳如泰山的原因,是因为它的名字叫Java!

曾经,我单枪匹马用Java+Linux+MySQL搞定某当年业内知名公司(现已垮掉)1年没搞定的一个采集程序,而轻松愉快。曾经用Java搞定多进程多服务,各进程间通信以及线程健壮且牢固(现在流行的名字叫微服务),坚挺长达8年,直到那个公司被收购才停掉。曾经面对大规模服务器集群,每天数据增量几十GB,Java表示毫无压力。让我们一次次地越过山丘的它,让我曾经以为这是每个语言都有特性,直到我多次尝试多次拖底才知道:不是!

当我以几分钟的速度搞定跨平台程序时,我以为所有语言都可以做到,但,不是!因为只有Java才有最初的跨平台基因。当我处理多线程只需继承个类就搞定时,才知道Java的线程机制有多易用。当我们拿来一个别人写的jar直接放到我们的项目中,不需要再编译成DLL时,才知道Java是多么的开放!只有被那个号称特别强大的IDE的“强大”功能以及复杂的组件结构搞晕时,才真正理解了,语言与IDE分离的重要性!

现在可能Java已经不那么时髦了,又来了一群小屁孩(Python、Go)。我看了半天可能真正可以和它的安全性能以及易用性相提并论的语言是未来的Go语言,但Go并没有跨平台基因,目前Google自己公司的Android都没有很好的支持,以及现在Go想替代线程而采用的协程机制也不怎么好用,因此我只能说那个未来如果能像他号称的那样友好,可能才真正和Java有的一拼。

有同学说,那个.NET现在多强大啊!微软也说可以跨平台了啊?我说:哥们儿,作为Java程序员,我真的看不上它。因为想看清它们的本质就褪去那些华而不实的附着物吧。

Java继续带着我们越过山丘。

了解我的朋友说:钟声,你有点像Java!我说是的,谢谢你的夸奖。

作者简介:钟声业界知名程序员、架构师,曾任金山软件公司KIS系统架构师,国家电网电科院普华安全中心技术总监等职。同时他也是Need100加密算法设计者,JOpenDNS的创始人,最近他针对Java的Web开发特点设计了ACPL架构模式。微博:@钟声程序员

本文选自程序员电子版2015年5月B刊,该期更多文章请查看这里。2000年创刊至今所有文章目录请查看程序员封面秀。欢迎订阅程序员电子版(含iPad版、Android版、PDF版) 。

相关文章

Java内存模型的历史变迁

本文通过介绍Java的新/旧内存模型,来展示Java技术的历史变迁。旧的Java内存模型Java使用的是共享内存的并发模型,在线程之间共享变量。Java语言定义了线程模型规范,通过内存模型控制线程与变...

如何识别Java中的内存泄漏

【编者按】作者Martin Gutenbrunner供职于Ruxit,拥有十年的Java Web应用程序架构和管理经验。近日,他在Dzone上撰文分享了Java内存泄漏识别相关经验,由OneAPM工程...

我们为什么要在Android中使用RxJava

感觉RxJava最近风生水起,不学习一下都不好意思了,洒家也是初学RxJava,也是感觉代码好像更复杂更难懂了,看了一篇外文感同身受,简单翻译一下。本文简单介绍使用RxJava优势所在。但可能需要有一...

详解Java中的注解

在Java中,注解(Annotation)引入始于Java5,用来描述Java代码的元信息,通常情况下注解不会直接影响代码的执行,尽管有些注解可以用来做到影响代码执行。注解可以做什么Java中的注解通...

Java反射机制剖析

java反射机制:1.指的是可以于运行时加载,探知和使用编译期间完全未知的类.2.程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; 对于...