Sun Tech Days 2007 -- Preview
一年一度的Sun Tech Days又将开幕了,本文回顾了我前两年参会的体验,并分析了本次会议中我个人所感兴趣的几个主题。(2007.10.12最后更新)
从上周三开始,本年度的Sun科技日(Sun Tech Days,STD)就开始接受报名了。官方网址:http://www.suntechdays.cn,优惠期截止到9月29日之前(我想应该就是到9月28日为止吧)。在优惠期内,单个人的会费是195元,和去年的会费一样(Well,没有随社会物价的上涨而上涨 ^_^)。
今年,将是我连续第三年参加STD了。
2005年,当时还在武汉上大学(我本身也是湖北人)。那时学习Java不到1年,断断续续的,满打满算就11个月,学习也不努力,连门都没入(在学校里自学,效率太低了) :-( 但不知道为什么,对Java/软件开发非常感兴趣,而对自己的本专业--通信,就是一点兴趣都没有(呜呜呜,浪费了7年时间啊!)。2005年恰逢Java 10周年,从CSDN上看到要在北京举办JavaChina 2005(其实也就是STD)的消息,就报名参加了。对2005年的感觉就是,规模很大,北京主会场有4000多人,另外8个城市的分会场也有4000人左右。毕竟是Java 10周年嘛,其它年份的STD都达不到这个规模(当然,JavaOne的规模每年都会超过STD)。2005年时的我,对Java只是一知半解,在会议的众多session中,我也不知道应该听哪些主题,只是选择了一些Java语言级方面的session去听了。现在回想起来,也不知道当时听到了些什么。当年的最大收获就是和Java之父James Gosling有一张集体合影。哈哈,这难倒就是获得Sun认证的最大好处吗 *_* 因为我是在顺便参加"Sun认证群英会"时有幸得到了这个机会。这次活动大大激励了我学习和应用Java的热情。
2006年,我刚刚毕业,目前一直在北京的一家电子商务类的公司工作。虽然在当时还没有直接地参与Java项目的开发,不过项目都是和Java相关的(我当时做系统方面的工作),并且一直坚持对Java技术的学习。其实,我自感自己的Java基础还是不错的,2004年,通过"Sun认证Java程序员 SCJP"(88%得分率),2005年通过"Sun认证Java开发员 SCJD"(97%得分率),而且平常学习时很注重基础知识。出于不断学习Java技术的想法,我又参加了当年的STD。此时,毕竟有些经验了,知道的东西也多了些,再听STD,就会有自己的选择了。我仍然对Java语言的基础部分比较关注(Java 5的新特性,Java 6的新特性),另一个很关注的就是数据库方面(Java DB)。Java DB的session,我认为是当年最好的。2006年的收获确实不少,很多场景我现在还有很深的回忆。另外,发现在自己的英语水平又有提高了,这个收获可能更大啊 @_@
今年,我已工作一年有余,有了一些实际的Java项目开发经验,并且学到了更多的Java方面的知识,有了新的提高。关于今年的STD,其中有几个session确实是我本人十分期待的,如关于:
Open JDK。Java是真的开源了,而不是"半"开源(javac、core API、...,all of them have "Full" Sources)。目前我们使用的Sun JDK,不能debug Java API(因为src.zip中的源文件与实际使用的rt.jar中的class文件无法完全对应上,它们不是"一脉同生"的。"Who"动的手脚,FT!),这让我很多次的很、很、很不爽。Well,现在我们可以用OpenJDK了。OpenJDK就是Java,而不是Java的一个分支(Apache Harmony?),JDK 7的新特性将首先在Open JDK中实现。OpenJDK与Sun JDK的关系,就如OpenSolaris与Sun Solaris之间的关系。一个是开源社区主导的开源项目,另一个是Sun公司的产品。但Sun的产品(JDK,Solaris)是从开源项目(OpenJDK,OpenSolaris)中来的,只不过Sun在内部另外再做了一些测试。可能Sun产品的稳定性更强些,但差别应该很小,因为Sun这些产品的源代码最终还是要放到相关的开源项目中。
Consumer JRE。当前的JDK/JRE太大了?Java程序的启动(特别是冷启动)太慢了?Consumer JRE很快就要来了。还有Java Kernel,它能像Linux Kernel那样出众嘛?
Java DB。我一向关注数据库应用,去年听了,今天还要听。超级小(但比db4o大N倍)、可嵌入(不一定就是"嵌入式"),做大型数据库的前端Cache,方便使用、无需DBA,...。看起来都很吸引人,不是吗,哈哈哈...。在去年的STD中就听了Sun的数据库产品经理(华人,能够讲中文,就是讲中文,太棒了!)讲的这个session,今年又将有
新玩意儿(也许这次要换讲师了?!)。
Swing。我个人(or,一个人?)最喜欢的Java"表现层"。"UI"可能是Java最弱的方面了。Web方面的表现层框架,用起来都不方便(和M$ .Net的WebForm差太远了);由于Java的桌面应用不受多数人的关注,而且还受SWT的冲击,Swing/AWT的应用面只能很小了。但我就是喜欢这种纯Java的"表现层",它那如此优秀的组件化恐怕是其它Web表现层框架无法达到的(JSF的组件化是在模仿Swing)。在Java使用GPL v2协议开源之后,可以与Linux系统兼容(目前Ubuntu 7.0.4已默认安装JRE 6),这为Java桌面应用提供了更多机会。
Concurrency。该主题是今年Java One的session之一。java.util.concurrent包是JDK 5的重要新特性。在JDK 5之前,大家在编写Java多线程应用时,只能使用Thread,Runnable和wait,notify,notifyAll,...等少数几个类/接口和方法。大量的工作都需要应用程序员自己去完成。现在有了concurrent包,相信会给大家提供更多的便利。该包目前受到大师们的广泛重视。关于它,已经有了专题书籍"JAVA CONCURRENCY IN PRACTICE"(主要作者Brain Goetz是JSR 166--"Concurrency Utilities"的核心成员,合作者还包括Joshua Bloch这样的Java Guru)和"Concurrent Programming in Java: Design Principles and Patterns"(作者Doug Lea是JSR 166和OpenJDK项目的领导,concurrent包的创始人);Bruce Eckel的"Think in Java 4th"有一章专门讲它;Joshua Bloch在他的"Effective Java"第二版(尚未完成)中也将会为concurrent单辟一章。虽然在实际的工作中还没有机会编写多线程应用,但一直对它十分感兴趣。早前在参加SCJD考试时,做的一个C/S应用就使用了多线程。但那时是使用JDK 1.4,没能用到concurrent包。而且整个多线程机制也十分简单:由RMI分派线程,自己写一个Lock管理器,再加上同步。已经买了一本"JAVE CONCURRENCY IN PRACTICE"中文版,将会继续研究多线程应用。
Garbage Collector。我不得不关注的Java Coding基本功,该主题也是今年JavaOne的session之一(看来世界上的Guru、牛X、高手们都是很重视基础的,I love :-)。(如果有Exception Handle方面的session就好了,这也是Java的关键基础之一)。
JSF。不得不说,我在Java Web表现层开发方面的"造诣"颇小。因为我认为Web表现层应用并不是纯Java的(如前所述,我喜欢Swing的原因之一就是它的纯Java性),做Web表现层开发,不是完全在做Java开发(JSP,JavaScript,HTML,CSS,...)。在主流的几种Java Web表现层框架中,JSF也不是最常用的。不过,由于JCP把JSF作为Java EE 5规范的一部分,那么所有要兼容Java EE 5规范的应用服务器就必须提供自己的JSF实现。既然主流的应用服务器都已经(如WebLogic 10,Kingdee Apusic 4--关注一下国货撒)或将要(如JBoss 5)默认提供JSF框架,那么我们也许可以想当然的认为,使用JSF的比率将来肯定会有所提升。大厂商们的这种做法,还真有点"霸权主义"、"强权政治"的意味。不过,公道自在人心,还是要相信群众哦。
Java FX。M$ Silverlight的"杀手"?但我似乎没必要去做那些炫目的RIA。
...
为STD打了一次广告,但是免费的。个人认为多参加一些此类技术活动,对自己的技术发展是十分有利的。
在参加完今年的STD和Netbeans Day之后,我会为每一天的活动写一篇随笔,以飧众友。
See you at Sun Tech Days 2007!