转自jdon的小文章:来自Infoworld的一篇纪念

mod=viewthread&tid=3042" target="_blank">Java诞生20周年的文章。主要讲述了一些在今天习以为常可是在20年前却难以想象的情况。

请记住,在1995年那时的编程不是一件非常easy的事情。面向对象概念已经接受,可是非常难实践。那时没有多少真正的面向对象语言。最多是将C代码粉饰一下。比方用class替代struct等。用这些技术编写的程序常常因为指针错误或内存泄漏崩溃,源码只可以在Unix不同版本号之间移植。使用相同二进制代码执行在不同处理器和操作系统上简直是疯狂的笑谈。

Java改变了这一切,第一次我们使用一种跨平台
垃圾回收和面向对象的编程语言进行产品化的编码,紧跟着Java的语言,比方最引人注目的C#,将Java创建的生产力提高到一个新高度。

Java开天辟地实现其它语言没有的异常检測,Java也是第一个在原生字符类型和源码中使用Unicode。

java的核心力量是它为做好工作建立一套实践性的工具。它从早期语言导入好的主意,然后以让熟悉的格式包装它们,虽然。Java不是一个严格的C的超集合(C++和Objective-C是),移除了一些东西以后,Java变得更简单,更易于学习。

Java并没有structs, unions,
typedefs, 和header ,这是一个新的面向对象编程语言,没有被要求可以执行遗留老的代码,Java明智地忽略了一些在其它语言被尝试然后发现不足的一些特点,比方多重继承 指针运算和operator overloading,这样的好的风格一直在Java中保持到如今。正如Martin Fowler所说:在软件开发领域从来没有一种语言被这么多人次和这么多行代码使用,这样的语言就是Java。

二十年以后。Java不再是新贵。它已经成为其它语言“造反”的对象。更轻量语言如Ruby和Python(banq注:还有Go语言与Rust语言的呢个)已经大举进入Java领土。特别是追求开发速度的创业工作。当然,Java也不是精巧不动,也正在不断加入新的语言特点。比方函数语言的Lambda表达式等,这些新的编程方式还是Java领域新的概念。

虽然还有非常多程序猿不知道Java。可是不管他们知道与否,今天每个程序猿已经受到它的影响。Java
at 20: How it changed programming forever | I

点评:Java对每一个程序猿的影响可能还要首推Android安卓开发,由于后端开发语言选择越来越多。而前端client由于资源等影响,包含安卓

的普及度,随着智能终端的发展和万物联网,借助安卓平台。Java可能会实现当初Java applet的梦想。

博主自己的看法:

1、Java是C和C++的继承者和延伸

2、Java所谓的跨平台根本是个伪概念

3、Java的异常机制一方面带来优点。一方面也带来恶心

4、Java越做越难用了

5、如今Java应当分裂

我看Java二十年:它是怎样永远改变编程的。的更多相关文章

  1. 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)

    本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...

  2. 从 HelloWorld 看 Java 字节码文件结构

    很多时候,我们都是从代码层面去学习如何编程,却很少去看看一个个 Java 代码背后到底是什么.今天就让我们从一个最简单的 Hello World 开始看一看 Java 的类文件结构. 在开始之前,我们 ...

  3. 从字节码看java中 this 的隐式传参

    从字节码看java中 this 隐式传参具体体现(和python中的self如出一辙,但是比python中藏得更深),也发现了 static 与 非 static 方法的区别所在! static与非s ...

  4. 【Java】PS-查看Java进程-线程数

    PS-查看Java进程-线程数 ps 线程 个数_百度搜索 查看进程的线程数命令 - CSDN博客 java命令行运行jar里的main类 - coderland - 博客园

  5. 通过反编译看Java String及intern内幕--费元星站长

    通过反编译看Java String及intern内幕   一.字符串问题 字符串在我们平时的编码工作中其实用的非常多,并且用起来也比较简单,所以很少有人对其做特别深入的研究.倒是面试或者笔试的时候,往 ...

  6. 从JVM的角度看JAVA代码--代码优化

    从JVM的角度看JAVA代码–代码优化 从JVM的角度看JAVA代码代码优化 片段一反复计算 片段二反复比較 在JVM载入优化为class文件,运行class文件时,会有JIT(Just-In-Tim ...

  7. 031.[转] 从类状态看Java多线程安全并发

    从类状态看Java多线程安全并发 pphh发布于2018年9月16日 对于Java开发人员来说,i++的并发不安全是人所共知,但是它真的有那么不安全么? 在开发Java代码时,如何能够避免多线程并发出 ...

  8. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  9. Java:过去、未来的互联网编程之王

    Java对你而言是什么?一门你大学里学过的语言?一个IT行业的通用语言?你相信Java已经为下一次互联网爆炸做好了准备么?Java 一方面为嵌入式计算做了增强,而另一方面为实时应用做了精简,本文将介绍 ...

随机推荐

  1. apicloud 上传/更新App版本到 ios store 流程步骤

    app更新 上传APP的地址: https://itunesconnect.apple.com/login 苹果开发者中心: https://developer.apple.com/ app正式包更新 ...

  2. centos7 安装freeswitch

    1.安装运行库 yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip ...

  3. hibernate N+1

    http://www.cnblogs.com/sy270321/p/4769198.html

  4. Vue style里面使用@import引入外部css, 作用域是全局的解决方案

    问题描述 使用@import引入外部css,作用域却是全局的 <template> </template> <script> export default { na ...

  5. Camera Calibration 相机标定:原理简介(三)

    3 绝对圆锥曲线 在进一步了解相机标定前,有必要了解绝对圆锥曲线(Absolute Conic)这一概念. 对于一个3D空间的点x,其投影空间的坐标为:x~=[x1,x2,x3,x4]T.我们定义无穷 ...

  6. hdu 1075 What Are You Talking About(map)

    What Are You Talking About Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/204800 K ...

  7. Consolidate data by using multiple page fields

    Consolidate data by using multiple page fields https://support.office.com/en-us/article/Consolidate- ...

  8. 如何将网站升级为HTTPS协议(整理)

    如何将网站升级为HTTPS协议(整理) 一.总结 一句话总结: 获取证书(有免费有付费):证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买. 安装证书:证书可以放在/etc ...

  9. 34.share_ptr智能指针共享内存,引用计数

    #include <iostream> #include <memory> #include <string> #include <vector> us ...

  10. 再谈Ubuntu和CentOS安装好之后的联网问题(桥接和NAT、静态和动态ip)(博主推荐)

    不多说,直接上干货! 首先,普及概念. hostonly.桥接和NAT的联网方式 对于CentOS系统,用的最多的就是,NAT和桥接模式 CentOS 6.5静态IP的设置(NAT和桥接联网方式都适用 ...