网站首页 > 技术文章 正文
当年我是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版) 。
猜你喜欢
- 2025-06-12 《我的世界》迎15周年,Java+ 基岩版游戏国区五折售44.5元
- 2025-06-12 我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊
- 2025-06-12 Java反射+注解实现Entity类与Dto类相互转换
- 2025-06-12 Java开发200+个学习知识路线-史上最全(框架篇)
- 2025-06-12 年末将至,Java 开发者必须了解的 15 个Java 顶级开源项目
- 2025-06-12 Java实现 10 万+并发去重,持续优化
- 2025-06-12 java+上传整个文件夹的所有文件(java实现文件上传的三种方式)
- 2025-06-12 系列教材JAVA+J2SE+JSP+SSH+javaWEB+框架+CMS+SQL 免费教材分享
- 2025-06-12 Java让你遥遥领先的7个编程习惯(java编程100例)
- 2025-06-12 Java+saas模式多校运营数字化校园云平台源码 小程序原生开发
- 06-13C++之类和对象(c++中类和对象的区别)
- 06-13C语言进阶教程:数据结构 - 哈希表的基本原理与实现
- 06-13C语言实现见缝插圆游戏!零基础代码思路+源码分享
- 06-13Windows 10下使用编译并使用openCV
- 06-13C语言进阶教程:栈和队列的实现与应用
- 06-13C语言这些常见标准文件该如何使用?很基础也很重要
- 06-13C语言 vs C++:谁才是编程界的“全能王者”?
- 06-13C语言无锁编程指南(c语言锁机代码)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)