Java 开发环境的过去、现在和将来

Java 语言概述 -- Java 语言的介绍、现在、过去与将来 Java 语言是于 1991 年由 Sun(Sun Microsystems,美国)公司的 詹姆斯·高斯林(James Gosling)团队研发的一门面向对象的编程语言。最初命名为 Oak,并于 1995 年更名为 Java 后开始推广。如今,随着互联网的崛起,Java 已经成为目前世界上最流行、最重要的计算机编程语言之一。Java 作为一门面向对象的高级编程语言,在设计之初,借鉴了多种编程语言的特性和理念。 阅读详情
1995年3月23日,San Jose Mercury News登出一篇题为"Why Sun thinks Hot Java will give you a lift"的文章,在那篇文章里预言Java技术将是下一个重大事件,这个预言现在看来并不仅仅是商家的宣传伎俩,虽然文章是当时Sun的公关经理 Lisa Poulson安排撰写的。从世人知道Java那一刻起到现在,算起来已经过去整整十年,回顾过去的十年值得总结的东西可以有许多,但在这里笔者只想就Java 开发环境谈些个人的想法与朋友们交流一下。   现在的软件开发人员在整个软件的开发生命周期里,也许会根据需要使用各式各样的开发工具来完成相对复杂的开发任务,而在几十年以前,人们还只是使用文本编辑器、编译器和Debugger进行开发,对于这个阶段的开发环境人们称之为CLEs(Command Line Environments) 。而当人们发现如果将那些单独分开的开发工具集成起来就可以有效的提高开发效率时,IDEs(Integrated Development Environments)就出现了。第一个IDEs也许可以追溯到1964年的Dartmouth Basic,尽管这有争议,它是作为Dartmouth Time Sharing System的一部分,在John Kemeny 和 Thomas Kurtz指导下建立起来的,这套系统一直使用到1999年。尽管这40多年以来,开发人员的开发环境几经变化、不断进步,从早期的集成开发环境 IDEs到扩展开发环境XDEs(eXtended Development Environments)再到协同开发环境CDEs(Collaborative Development Environments),历经了几个不同的阶段,但开发人员使用开发环境的目的始终就是一个:提高开发效率。Java的出现尽管只有十年,但其开发环境也大至经历了从CLEs到IDEs再到XDEs这三个阶段,现在即将进入CDEs阶段。在上述Java开发环境发展过程中,有许多值得我们大家关注的地方。    Java开发环境的历史回顾   纵观过去十年Java开发环境的发展,大致可以粗略的划分为如下几个阶段:   1995 命令行开发环境CLEs 1996 ? 2000 集成开发环境IDEs   2001 ? 2004 扩展开发环境XDEs   2005 - 协同开发环境CDEs   1995年,不平凡的一年,这一年Java 获得了成功。可令人尴尬的是在1995年并没有一个令人满意的Java开发环境,开发人员在进行Java编程时,大多使用文本编辑器编辑源程序,比如,Emacs、Vi、Notepad 等,然后再使用命令行的方式进行编译处理。那时的Java开发环境还处于CLEs时代,开发效率非常低,这不能不说是Sun的一个失误,但也预示着在Java开发工具上会有一番激烈的竞争。与Java世界即将开始的开发工具大战不同,在Smalltalk世界里胜负结果似乎已经明朗, IBM的 Visual Age for Smalltalk、 ParcPlace的ObjectWorks和Digitalk的Visual Smalltalk三足鼎立的格局那时已经被打破,IBM的Visual Age for Smalltalk所占市场分额越来越大,而当时IBM进入Smalltalk市场仅有两年多的时间。IBM之所以在很短的时间超越老牌的 Smalltalk 厂商ParcPlace和Digitalk,其中一个重要原因是IBM直接将其产品委托给一家由软件精英组成的公司进行开发,这家公司就是由软件开发大师级的人物Dave Thomas( Bedarra-Dave)创建的OTI( Object Technology International)公司。IBM在1993年进入Smalltalk市场的第一个产品ENVY/400就是OTI为其开发的,而其后包括 Visual Age for Smalltalk在内的多种产品开发OTI都参与了。为了抗衡IBM,ParcPlace和Digitalk两家公司在Java诞生的那一年进行了合并,成立了名为ParcPlace-Digitalc的公司,但事后再看这次合并,不过是徒劳之举罢了。现在各厂家的Smalltalk 开发环境中都或多或少的内置了ENVY,而随着IBM进军Java开发工具市场,ENVY的相关技术也被从Smalltalk世界带入到Java开发环境中。   1995年也是Smalltalk作为第5代编程语言从 Xerox Palo Alto研究中心走向市场的10周年,Dave Thomas为此写了一篇题为"Ubiquitous Applications:Embedded Systems to Mainframe"的论文,作为Smalltalk市场化10周年的总结,文中介绍了Smalltalk是如何利用虚拟机实现从嵌入式到大型机广泛应用开发的,而那时Java世界的人们还在为Java虚拟机的拙劣性能而苦恼,那时也许没有人会想到现在Java的普及程度早已超越了Smalltalk。   有人称1996年为互联网年,有人却称之为Java年,还有人称之为Web开发年,但不论如何称呼1996年,它都反映了一个事实: Bill Joy将Java与互联网相结合的策略取得了成功。这一年的9月Sun推出了其Java开发环境-Java WorkShop,这是一款基于浏览器的Java开发工具,但由于当时 Java在许多方面还不成熟,所以实际上Java WorkShop并不成功,同年发布的Symantec Visual Cafe由于还是采用C/C++语言进行开发,所以性能与成熟度上就比WorkShop好得多。提到Visual Cafe就不能不提Eugene Wang,因为Eugene Wang常常是与计算机间谍这个词同时出现的人物,有人甚至讲当时Symantec的老板Gordon Eubanks与Eugene Wang签约时,也同时签下了监狱里的一个单元。围绕着Eugene Wang的间谍案发生的种种事情,将Borland和Symantec两家公司不为人知的阴暗面展现在公众面前,对两家公司的声誉都带来了损害。为避免双方商业利益继续遭受损失,最后这个间谍案以 Eugene Wang向法庭交纳了一笔罚款而不了了之。Visual Cafe就是由Eugene Wang进行主要策划的,它是在同一年发布的Java开发环境中,唯一解决了与数据库连接问题的开发环境,带有一套可以与数据库相连接的组件,无需太多编程使用拖拽的方式就可完成大部分工作,这一优点使得Visual Cafe受到了Java开发人员的欢迎。这一年IBM收购了OTI公司,从而得到了Dave Thomas的弟子John Duimovich、Dave Thomson、Mike Wilson等一大批软件精英,这之中还包括"生活在技术刀锋上的开发者"Brian Barry。   1997年,由于 微软垄断案,使得微软在Java开发环境上的努力受到了限制,Visual Cafe由于界面直观易用,可以很容易地连接各种数据源等功能再次受到开发人员的欢迎。这一年IBM发布Visualage for Java,它是用Smalltalk编写的吸收了许多ENVY的设计思想,比如,Visualage for Java是面向代码库的开发环境,它提供代码库和项目管理以便于开发团队在 C/S环境下进行项目开发。但由于大多数Java开发人员比较熟悉面向文件的开发环境,还不太习惯面向代码库的开发,再加上Visalage for Java对系统资源的要求比较高等因素,使得Visualage for Java一开始未被Java开发人员所认可。
Java语言是由Sun公司于1995年5月23日正式推出的面向对象的程序设计语言 Java语言是由Sun公司于1995年5月23日正式推出的面向对象的程序设计语言,集安全性、简单性、易用性和平台无关性于一身,适合网络环境下编程使用。 立即下载

相关推荐

瑞萨 RL78 开发环境实战:从 CS+ for CC 到 e² studio 高效开发

本文详细介绍了瑞萨RL78单片机开发环境的选择与配置,对比分析了CS+ for CC和e² studio的特点及适用场景。内容涵盖环境安装、工程创建、调试技巧、外设驱动开发和低功耗设计等实战经验,为开发者提供全面的RL78入门指南,帮助快速上手并高效开发。

4k5l6j7h8的博客 242

Hocuspocus性能优化技巧:10个提升协作效率的关键策略

Hocuspocus作为基于Yjs CRDT的WebSocket后端,为实时协作应用提供了强大支持。在高并发场景下,优化性能不仅能提升用户体验,还能降低服务器负载。本文将分享10个实用的Hocuspocus性能优化策略,帮助开发者构建更高效的协作系统。 ## 1. 升级至最新版SQLite扩展 SQLite扩展已从维护停止的`sqlite3`迁移到`better-sqlite3`,后者提供同步

gitblog_01103的博客 501

在Qt中使用EtherCAT-SOEM的初始化中,状态机卡在PreOp->Save-Op过程中,出现State=0x12, Error=0x001e错误的解决办法

1.在调试EtherCAT软件过程中,一直出现配置从站进不了Save_op状态,通过下函数检查从站状态: //使用的从站编号为1 只有1个从站 ec_slave[1].state = EC_STATE_SAFE_OP; ec_writestate(1); //设置到安全模式 ec_statecheck(1, EC_STATE_SAFE_OP, EC_TIMEOUTSTATE * 4); printf("Slave %d State=0x%2.2x StatusCode=0x%4

zeal_for_rov的博客 6828

java基础(超赞!!!)

我是技术搬运工,好东西当然要和大家分享啦原文地址关键字1. final数据声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。对于基本类型,final 使数值不变;对于引用类型,final 使引用不变,也就不能引用其它对象,但是被引用的对象本身是可以修改的。方法声明方法不能被子类覆盖。private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 p...

FanceFu的博客 907

从建模到调参:基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程解析

本文详细解析了基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程,涵盖运动学建模、仿真环境搭建、PID控制器设计与实现等关键环节。通过Simulink仿真和可视化调试技巧,帮助开发者掌握移动机器人运动控制的核心技术,提升轨迹跟踪精度与性能优化能力。

weixin_28717683的博客 243

ESP32-S3射频测试与全球认证全栈实践指南

功率谱密度(PSD)和发射功率等级是无线通信设备射频合规的核心基础概念,其物理层原理直接决定自适应测试、阻塞容限及多国认证的通过路径。PSD ≥10 dBm/MHz触发强制性自适应测试,需验证LBT机制与跳频鲁棒性;而16级可编程发射功率等级(-24 dBm至+20 dBm)则为功耗、覆盖与法规平衡提供工程调控维度。该能力广泛应用于低功耗蓝牙IoT终端、智能家居网关及工业无线传感器等场景,尤其在ESP32-S3平台中,需结合eFuse校准、Sigma工具链与QuickTrack认证策略实现从实验室调试到量产

weixin_34945060的博客 287

Java开发环境的过去、现在和将来

1995年3月23日,San Jose Mercury News登出一篇题为“Why Sun thinks Hot Java will give you a lift”的文章,在那篇文章里预言Java技术将是下一个重大事件,这个预言现在看来并不仅仅是商家的宣传伎俩,虽然文章是当时Sun的公关经理 Lisa Poulson安排撰写的。从世人知道Java那一刻起到现在,算起来已经过去整整十年,回顾过去

FutureInHands的专栏 3195

UART全功能测试指南:环路/DMA/RS485/硬件流控实战

UART(通用异步收发器)是嵌入式系统中最基础的串行通信接口,其核心原理基于起始位、数据位、校验位与停止位的异步帧结构,依赖精确的波特率时钟同步与采样重建机制。在工业与物联网场景中,UART不仅需保障基本通信可靠性,更需支持DMA卸载、RS485半双工自动方向控制、RTS/CTS硬件流控等进阶能力,以提升实时性、抗干扰性与系统资源效率。典型应用涵盖调试日志输出、传感器数据采集、Modbus RTU总线通信及固件空中升级。本指南聚焦UART外设测试实践,覆盖环路自检、DMA吞吐验证、RS485时序对齐、硬件流

weixin_42599908的博客 133

【Java故事系列】Java开发环境的过去、现在和将来

1995年3月23日,San Jose Mercury News登出一篇题为“Why Sun thinks Hot Java will give you a lift”的文章,在那篇文章里预言Java技术将是下一个重大事件,这个预言现在看来并不仅仅是商家的宣传伎俩,虽然文章是当时Sun的公关经理 Lisa Poulson安排撰写的。从世人知道Java那一刻起到现在,算起来已经过去整整十年,回顾过去

Holon的专栏 1091

规控面试常见问题

规划控制算法常见问题。

每天进步一点点。 982

越野换了逐飞的ips200pro的屏幕后代码烧录中报错: “Cannot initialize device connection” 和 “Flashing failed” ...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1150

Java开发环境的过去、现在和将来- -(转)

1995年3月23日,San Jose Mercury News登出一篇题为“Why Sun thinks Hot Java will give you a lift”的文章,在那篇文章里预言Java技术将是下一个重大事件,这个预言现在看来并不仅仅是商家的宣传伎俩,虽然文章是当时Sun的公关经理 Lisa Poulson安排撰写的。从世人知道Java那一刻起到现在,算起来已经过去整整十年,回顾过去...

朱远翔的技术专栏 253

OSG第三方库编译之二十一:minizip编译(Windows、Linux、Macos环境下编译)

OSG编译;第三方库;跨平台编译;minizip编译(Windows、Linux、Macos环境下编译)

LuckyHanMo的博客 2621

Java开发环境的过去、现在和将来-Java基础-Java-编程开发

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/javascript"

java专栏 348

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java技术本纪(系列专题--Java开发环境的过去、现在和将来)

Java开发环境的过去、现在和将来文/EclipseCN1995年3月23日,San Jose Mercury News登出一篇题为“Why Sun thinks Hot Java will give you a lift”的文章,在那篇文章里预言Java技术将是下一个重大事件,这个预言现在看来并不仅仅是商家的宣传伎俩,虽然文章是当时Sun的公关经理 Lisa Poulson安排撰写的。从世人知道

木头的专栏 1277

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java 判断日期格式, 判断是否为今天, 判断是否为过去, 判断是否为将来 亲测

Java 判断是否为今天, 判断是否为过去的日期, 判断是否为将来的日期判断是否为今天判断是否为过去的日期判断是否为将来的日期 判断是否为今天 /** * 判断是否为今天 * @param * "yyyy-MM-dd" * */ public static boolean isToday(final String dateStr) { ...

Shawn Jeon`s blog 1997

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java 判断日期是否今天_「是否」Java 判断日期格式, 判断是否为今天, 判断是否为过去, 判断是否为将来 亲测 - seo实验室...

是否java 判断日期格式, 判断是否为今天, 判断是否为过去, 判断是否为将来判断日期格式判断是否为今天判断是否为过去判断是否为将来判断日期格式/*** 判断日期格式* @param* "yyyy-MM-dd"* */public static boolean isDate(final String dateStr) {final DateTimeformatter dateFormat = ...

weixin_30399511的博客 416

Fragment 的过去、现在和将来

Fragment 是 Android 中历史十分悠久的一个组件,它在 API 11 被加入,时至今日已成为 Android 开发中最常用的组件之一。Fragment 有了哪些新特性、修复...

程序亦非猿——一个能帮你进大厂的男人 252

java获取过去时间

Calendar c = Calendar.getInstance(); //过去七天 c.setTime(new Date()); c.add(Calendar.DATE, - 7); Date d = c.getTime(); //过去一月 c.setTime(new Date()); c.add(Cale...

qq_35597828的博客 812

Java获取过去一周、一月、一年的时间

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar.getInstance(); //过去七天 c.setTime(new Date()); c.add(Calendar.DATE...

过客璇璇的博客 2289
上一篇: 全面分析Java的垃圾回收机制
下一篇: 软件最大的追求是什么?
netaspp
博客等级 码龄18年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值