转自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. java的selenium环境搭建

    1.下载jdk1.8   环境变量我的博客有我就不说                   selenium下载地址:http://npm.taobao.org/mirrors/selenium 2.下 ...

  2. 关于Python的装饰器

    false 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {m ...

  3. Html标记语言学习一2017年6月12日

    今天主要学习了 frame的用法. <frameset> 可以将网页分成几个不同的部分 使用 cols  和  rows 两种标记.前者是列,后者是行 <frame/>  单标 ...

  4. FTP 无法获取目录列表的处理方法

    FTP 无法获取目录列表的处理方法 1.以阿里云的服务器为例 对于阿里云的服务器是因为阿里云为了进一步保护用户的安全利益使用了安全策略组,我们要设置安全策略组对应的端口开启. 首先要设置端口范围,这个 ...

  5. Python格式化字符串、占位符、合并数组

    合并数组 参考链接:https://www.cnblogs.com/chaihy/p/7243143.html >>> a=[2] >>> b=[3] >&g ...

  6. Linux的硬链接、软连接与拷贝

    Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).硬链接:创建一个与原文件任何信息都相同的目标文件(文件名可能不同,自由设定).硬连接的 ...

  7. 题解 P3834 【【模板】可持久化线段树 1(主席树)】

    可持久化线段树的前置知识是权值线段树,但是你不学也没有太大的关系因为思想不是很难理解. 可持久化线段树支持历史记录查询,这是它赖以解题的方法. 在本题中思路是建立n颗线段树,然后对于每次询问,考虑其中 ...

  8. 现代C++

    C++ 是世界上最常用的编程语言之一. 编写良好的 C++ 程序是快速.高效的. 该语言比其他语言更加灵活,因为你可以使用它来创建各种应用,包括有趣刺激的游戏.高性能科学软件.设备驱动程序.嵌入式程序 ...

  9. django 笔记11 装饰器

    在views.py创建 一般用来cookies的装饰器 def auth(func): def inner(request, *args, **kwargs): v = request.COOKIES ...

  10. Kali linux 2016.2(Rolling)中metasploit的端口扫描

    目前常见的端口扫描技术一般有如下几类: TCP  Connect.TCP SYN.TCP ACK.TCP FIN. Metasploit中的端口扫描器 Metasploit的辅助模块中提供了几款实用的 ...