我和Java这些年的故事(六)
从2006年开始,我就在建设自己的网站,从2008年到2011年,我托管了四年自己的服务器,那时阿里云还没有兴起,只能自己买服务器,放到托管商机房里去,他们给你一个IP。机器全部是自己运维。
IBM内部使用的是自家的JDK,俗称J9,性能据说宇宙第一强。我也是对它喜爱有加。但我觉得IBM对Java世界的最大贡献当属Eclipse,这个IDE直接给JBuilder送了终,以至于JBuilder2005之后的版本也采用了Eclipse的插件体系。其实JBuilder和Net beans的技术路线我还是很看好的,估计是Borland公司销售不利导致了后续版本开发的无以为继,Borland的Delphi/C++Builder的相继衰落也证实了这一点,即使最后垮掉,也不肯开源,这是让我最痛恨的一点。
有了Eclipse作为基石,IBM众多产品开始百花齐放,一时在Java中间件世界里风头无两,尤以WebSphere和Rational两大家族的产品为甚。当时,如果国内某个企业级的软件采用osgi架构,绝对是时尚,是实力的标志。为何这么说?一方面是osgi本身先进,有足够的弹性,驾驭它要对它足够了解;另一方面也是复杂性,能玩转它的公司不多。
为此,我还买了一本osgi的专著。现在已经在我书架的某个角落里积满了灰尘。
有一阵子,我迷恋SWT界面开发,它和原生的windows应用一样,让我有了VC程序员的成就感。我还搞过一段时间的Eclipse RCP开发,认为它符合未来桌面端应用的趋势。
可惜,好景不长,以ajax为基础的web2.0迅速兴起,jquery,dojo,ExtJS一堆的前端框架雨后春笋般冒了出来,它们开发的界面又好看,开发效率也快,当然还有先天性的优势:容易部署和更新。
于是乎,我的重心开始转移,关注起Spring, Restful应用的开发。开源世界的快速发展,导致IBM也不得不转向,推出了轻量级的web container即Liberty。虽然是轻量级,但osgi不能丢,模块化、可配置化这些现代化的特征不能丢,也就是说,一个个feature都是可拆卸的。模块化的思想由来已久,但是在应用服务器领域走过了一段艰难的旅程。有人说,中间件复杂度和操作系统不相上下,WAS就是典型例子,WAS几百万的代码量也验证了这一点。
我和Java这些年的故事(六)的更多相关文章
- Java反射的小故事
Java反射的小故事: 首先定义一个Java类 package com.xiaoysec.test; public class Person { private String name; privat ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- JAVA之旅(十六)——String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较
JAVA之旅(十六)--String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较 过节耽误了几天,我们继续JAVA之旅 一.String概述 String时 ...
- Java反射机制demo(六)—获得并操作一个类的属性
Java反射机制demo(六)—获得并操作一个类的属性 获得并操作一个类的属性?! 不可思议啊,一个类的属性一般都是私有成员变量啊,private修饰符啊! 但是毫无疑问,这些东西在Java的反射机制 ...
- 20145302张薇《Java程序设计》第十六周课程总结
20145302 <Java程序设计>第十六周课程总结 实验报告链接汇总 实验一 Java开发环境的熟悉 实验二 Java面向对象程序设计 实验三 敏捷开发与XP实践 实验四 Andoid ...
- Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
- 201871010123-吴丽丽 《面向对象程序设计(Java)》第十六周学习总结
201871010123-吴丽丽 <面向对象程序设计(Java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- 201271050130-滕江南-《面向对象程序设计(java)》第十六周学习总结
201271050130-滕江南-<面向对象程序设计(java)>第十六周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...
- 201871010111-刘佳华《面向对象程序设计(java)》第十六周学习总结
学号-姓名<面向对象程序设计(java)>第十六周学习总结 实验十四 应用程序归档与线程初步 实验时间 2019-12-12 第一部分:理论知识总结 1.程序与进程的概念 ‐程序是一段静 ...
- 201871010104-陈园园《面向对象程序设计(java)》第十六周学习总结
201871010104-陈园园<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
随机推荐
- Java学习笔记(三)java方法
学习笔记3 Java方法 一.什么是方法 System.out.println() 是什么 System是一个类,out是一个对象,println()就是一个方法 意思是调用System中的out对象 ...
- mysql 服务安装与配置
数据库服务下载与安装: 下载地址:MySQL Community Server 安装:跟随引导一路下一步,建议配置root密码,不然安装成功cmd验证却是要求密码.没有密码还需要执行命令重新设置密码, ...
- 【语义分割】使用DAFormer测试自己的数据集
DAFormer: https://github.com/lhoyer/DAFormer window运行shell命令: 使用git bash pip 安装包超时: pip --default-ti ...
- 关于浏览器缓存造成的bug解决方法(页面跳转缓存,刷新生效)
1.在执行操作时带上一个随机数/时间戳,表示每一次的都是独一无二的
- C++ MFC学习 (三)
视窗口覆盖在框架窗口之上 如果有了 OnDraw 不要再用OnPaint OnPaint会覆盖掉OnDraw所画内容 1 // MFC_Demo1View.cpp : CMFC_Demo1View ...
- JS学习-Web Workers API接口
Web Workers API接口 通过使用Web Workers,Web应用程序可以在独立于主线程的后台线程中,运行一个脚本操作.这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线程(通 ...
- 浅谈storm
storm分布式,可容错的实时计算框架,低延迟能做到毫秒级的响应,storm进程是常驻内存,Hadoop是不断启停的,storm中的数据不经过磁盘,都在内存中,处理完成后就没有了,但是可以写到数据库中 ...
- c++ sizeof详解
c语言详解sizeof 原文地址:http://blog.sina.com.cn/s/blog_5da08c340100bmwu.html 一.sizeof的概念 sizeof是C语言的一种单 ...
- 杭电oj 进制转换
Problem Description 输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=1 ...
- ts面试题
1.ts的内置数据类型2.ts中any和unknown3.如何将unknown指定为更具体的类型4.说说对ts中命名空间与模块的理解?区别?5.对ts的理解,和js的区别6.tsconfig.json ...