转自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. 【BZOJ2006】【NOI2010】超级钢琴

    题意: Description 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音符 ...

  2. 51nod 1526 分配笔名(Trie树+贪心)

    建出Trie树然后求出一个点子树中有多少笔名和真名.然后贪心匹配即可. #include<iostream> #include<cstring> #include<cst ...

  3. [HAOI2016]找相同字符(SAM+DP)

    感觉很水. 因为SAM上一个点的子树大小代表这个点所表示子串的出现次数. 建出广义后缀自动机之后.在\(parent\)树上跑\(DP\),维护\(size[i][1]\),和\(size[i][0] ...

  4. ansible搭建mysql主主模式

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)等优点,实现了批量系统配置.批量程序部署.批量运行命 ...

  5. MySQL 数据还原

    1.1还原使用mysqldump命令备份的数据库的语法如下: mysql -u root -p [dbname] < backup.sq 示例: mysql -u root -p < C: ...

  6. unity 调用 .dll 或 .so时遇到的问题

    1.32位的 .dll 无法在64位的unity编辑器下运行. System.DllNotFoundException: xxx  , 64位的程序运行32位的dll是会报这种错 2.Failed t ...

  7. light oj 1317

    Description You probably have played the game "Throwing Balls into the Basket". It is a si ...

  8. php冒泡排序函数

    $arr=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226,588); function maopao($arr,$value){// ...

  9. less05 作用域

    less @clolor:#ffffff; .bgcolor{ width: 50px; a{ color: @clolor; } @clolor:#ff0000; //覆盖,作用域跟js一样,现在局 ...

  10. 安卓开发--scrollview

    package com.cnn.scrollviewdemo01; import android.R.integer; import android.annotation.SuppressLint; ...