For the second year in a row the “Java Developer Day” was held in Athens Information Technology (AIT), where the familiar team of Java Evangelists informed the Greek community about the latest and greatest from the world of Java.
The venue was very good, although packed and some people had to stand up, at least at the first 2-3 presentations. I was happy to see many familiar faces and meet friends that I never knew they were attending. Maybe because 3/4 of the participants were from the NTUA.
The organizers had prepared a comfortable environment in which you could listen to the presentations, get together with colleagues and share opinions with new people. After all one the great thing about these kind of events is that you not only have the opportunity to hear from the experts but also network with people from your own geographical region that share the same interest with you: Java
Of course there were some issues that might need to be addressed for future similar events like the fact that:
- The location was outside of the city and getting there was hard. I suppose if it was held somewhere closer to the center the attendance would have been much (!) greater.
There was no Wi-Fi in the auditorium. If you are going to hold an event from 9am till 5pm you have to give the participants some way to communicate with the outside world and their work.UPDATE: Aris informed me that there was a wireless internet access point in the auditorium and several people used it, but I didn’t hear it when they announced it.
- Since the schedule was packed there were no questions after each presentation. Don’t get me wrong, I like the fact that there was time to mention all these different and sometimes diverse subjects, but the interaction with the audience is a big part of the experience in similar events.
Since I have organized several events in the past I understand the many difficulties that characterize similar endeavors and I have to say that both this year and the last year, the organizations from Sun Microsystems Greece deserves two thumbs up!
A small outline of the event (as I witnessed it) follows. The structure you see is about how I as a participant perceived each presentation and doesn’t necessarily represent the actual structure of every single presentation.
So here it goes:
Welcome by Aris Pantazopoulos
Although I was a bit late and I missed the beginning it felt like a warm welcome that set the mood and the pace for the rest of the event.
“About AIT” by AIT Vice Chair
I didn’t get the name but I was surprised in a positive way to see the Vice Rector of AIT. He was much younger than what you would expect from a person in such a position, but I feel that for technological academic institutions it is crucial to tap in the energy and fresh ideas that younger people have. Many time the problems in this country come from people that have delayed their retirement for longer than they should have (…)
As for the actual presentation of AIT, it was quite impressive and will probably make several people consider it as an option for their postgraduate studies in Greece.
“View from the top” by Reginald Hutcherson
Regi is a very engaging speaker! He really makes you involved in the subject. He has visited our country on several occasions and as I learned there is a chance he’s coming back soon for a Solaris event.
Basically this presentation was about Sun’s software strategy:
- Business realities
- A global internet economy
- Massive scale
- Demand for enormous throughput
- Even more demand for flexibility
- The world was never so inter-connected
- We have free media
- As well as free software
- And free services
- He introduced the term “Webolution” (a bit tacky for my taste but…)
- Dynamic Languages = Productivity (Sun finally realizes that – better late than never)
- New opportunities
- New services
- New products
- A new mass market
- Sun came late to this game as opposed to M$ that has been supporting dynamic languages in its VM for a long time now – they have even rolled out a functional language on top of their CLR – F#. So since Sun joined late they are a bit more eager to “play”, hence the many times, unrealistic value that they place on Ruby.
- Ajax for the next generation of web apps
- JavaFX (more will follow on that)
- JavaFX mobile (again more will follow)
- The VM: a virtual machine of languages, not only Java
- NetBeans 6
- Solaris with emphasis on its many system virtualization solutions
- Open Source Java
- About a year old
- OpenJDK: An open source JDK!
- Will be adding closures (now there is a controversial topic!)
- Java 7 (looking forward)
- The GlassFish Application Server
- JavaME: Will be superseded by JavaFX or merged with it, but it will be probably still be supported for some time
- Java User Groups
- Visit the pages of the Java Hellenic User Group for more.
“Secrets of concurrency” by Dr. Heinz Kabutz
Heinz is a Java Champion living in Greece. He consults, holds courses, programs, and writes a weekly newsletter in which he shares some rather unconventional insights about Java. Things that push the envelope; make Java do things you thought it could not; dirty tricks and such. In other words, stuff you do not usually find in Java periodicals or newsletters.
You can find his newsletter at: http://www.javaspecialists.co.za/
Heinz suggested that writing multithreaded code will become more customary as multi-cored processors become ubiquitous.
Also informed us about a special course he is offering for Greek Residents only. It will have a 50% off discount and it will be named something like “Greek Geeks Masters Course” or something similar. It sounds interesting and you can find more info on http://www.javaspecialists.eu/courses/master.jsp
Heinz proceeded with his classification of typical concurrency issues into laws – “The Laws of Concurrency”. I will only give out their names without getting into a great detail since you can get this information from his newsletter. The names are actually quite intuitive:
The Law of:
- …Sabotaged Doorbell
- …Distracted Spear fisherman
- …Overstocked Haberdashery
- …Blind Spot
- …Leaked Memo
- …Corrupt Politician
- …Greek Driving (!)
- …Sudden Riches
- …Uneaten Spinach
“Java SE – Today and Tomorrow” by Simon Ritter
Simon had a cold and apologized for his voice but actually his British accent and tone was clearer that 90% of the speakers I’ve heard in my life.
- The Java Language characteristics
- General purpose language
- Supports concurrency, class based, OO, strongly-typed
- Designed for simplicity, readability and should not foster dialects
- (I would suggest taking a look at Gosling’s “The Feel of Java” presentation from back in ‘98)
- Community based (ok, not from the start maybe, but Sun has followed the stream)
- Java SE features
- On the desktop: Vista look ‘n’ feel, sub-pixel font rendering, splash screens, tray icon, java.awt.Desktop
- Web Services become easier with JAX-WS and NetBeans
- Added more scripting support
- Pluggable Annotations API
- jconsole improvements
- Pre-verification for class file updates
- Many minor improvements like classpath wildcard, java compiler interface, console API and more…
- Short intro on the basic concepts of the Consumer JRE
- Proposed features of Java SE 7
- Auto-generated getters and setter with the property keyword. Again this is a feature that comes from dynamic languages and for example is heavily used in PHP with __get() and __set().
- Swing Application Framework to simplify Swing development
- Bean binding (check out JSP 295)
- Separate parts compilation that supports compilation against an interface and not actually needing a concrete implementation.
- Super packages for sharing code in a more scalable way
- Changes to the VM to support dynamic languages
“Ruby, JRuby & Rails” by Dr. Doris Chen
So Doris (with an exotic accent):
- Gave a short intro of what is Ruby. Of course most features that were demonstrated as Ruby features are actually inherent features of most dynamic languages.
- Showed how you can leverage the NetBeans IDE Ruby support
- Demonstrated the use of the Interactive Ruby shell – irb
- JRuby: Why and how
- Short Rails demo on NetBeans: The “orthodox” blog in 15’ demo. Personally I find this demo quite misleading.
UPDATE: A reader pointed out that the link to the “orthodox” blog in 15’ demo linked to a RoR webcast and not to the actual NetBeans demo that Doris demonstrated. The reason I used the characterization “orthodox” and pointed to this link was because since the RoR team posted that exact webcast (“How to build a Blog in 15’”) some years ago, every framework developer in the world has made it his mission to copy this demo and apply it to his own language/framework. It has been used so much that it has become a cliché, to the point that people have created parodies like the one by B.V. Puttyngton: “SQL on Rails: Creating a search engine in 8’”. Besides the fact that it is not intuitive anymore, it fails to deal with many of the interesting aspects of RoR and even worst hides under the carpet, the many limitations. For example the Active Record Pattern and the respectful implementation from the RoR team is only one way to go when choosing an ORM solution. It is usually the choice of lighter frameworks like the ones build with dynamic languages like Ruby, PHP etc. This approach has its strengths and its limitations and someone should study this pattern as well as the Data Mapper pattern which is a more heavy-weight approach. A discussion about data access patterns is beyond the scope of this article. Finally I would like to mention that a presentation of a dynamic language to an audience coming from a statically-typed background is extremely difficult and would probably require at least a day. Doris is an appealing speaker but she had an impossible task. Stuff like dynamic typing, higher-order functions, object runtime alteration, closures even continuations are not only new to most java developers but alien! I could almost sense the difficulty that Simon had (in another presentation) when trying to explain closures using artifacts from the Java space. If there was one person in the audience that got closures with the example of inner classes he deserved a t-shirt
Ta-daaaa: Lunch Break
Excellent, both in quality and quantity.
“JavaFX” by Simon Ritter
- Basic Idea: Scripting an application for cross-platform deployment. Even though Java is innately all about that, JavaFX tries to make it a little bit simpler.
- The original name was F3 = “Form Follows Function”
- Language Basics
- OO, declarative, statically-typed, automatic data-binding, etc.
- Tooling with NetBeans and Eclipse
- The “Ugly Java GUI Stereotype”: Essentially GUIs with AWT or Swing are not aesthetically pleasing
- May try to extend basic AWT/Swing with Java 2D
- Gave some hints on the syntax:
- Variable declarations
- Operations (procedures) which are almost like functions but (if I got it right) if you bind to an operation it binds once and won’t be updated (as in the case of binding to a function).
- Arrays (only one dimension!)
- Expressions: very similar to Java’s; a double for-loop (nice!)
- do-block: for avoiding the Swing blocking
- JavaFX Widget usage
- Animation with the dur operator
- Direct DB access with JDBC or direct calls to enterprise components (maybe even calls to remote services?)
- Script deployment:
- The runtime is a 1,5MB jar
- Can be deployed as a standalone java application (jar), applet, with Java Web Start
- Future of JavaFX
- A (native?) script compiler
- More tooling
- Integration with the consumer JRE
- Mobile device’s support
- The Consumer JRE
- Quick starter
- Deployment toolkit
- Installer improvements
- Graphics performance
- New cross-platform look ‘n’ feel
- Basic shapes, rotation, transparencies, etc.
If you have checked out JavaFX in the past and have though that it seems similar to Adobe’s Flash/Flex stack well… you were right: it is competing with the later stack in a direct way. While Abode has a lead start, I feel that with the native power of the Java platform, JavaFX has the potential to easily outshine Flash/Flex (and Silverlight)!
“Java developer @ Work” by Paris Paris Apostolopoulos
Paris is the leader of the Hellenic Java User Group (JHUG) in Athens, Greece. He has been working in a series of JUG-sponsored developer events held in Athens to build-up the Java developer community in Greece.
Paris gave a talk that aimed mostly on junior developers and contained valuable information that when I started out, I had to try really hard and make many mistakes in the process in order to attain it.
- “What makes a good developer?”
- The “Passion” of development
- Staying up to date
- Top Java Publishers
- Java News Sites
- Other Useful Resources: tutorials, blogs, etc.
- Tools: IDEs, build tools, quality tools, testing, versioning
You can find the slides from his presentation here.
“Solaris & OpenSolaris” by Simon Ritter
Simon is quite appealing as a presenter but OSs is not really my field so I had an early coffee break
“Java EE & GlassFish” by Dr. Doris Chen
- Java EE Overview: Differences from J2EE 1.4 like POJOs, annotations, dependency injection, etc.
- Spec changes
- JAX-WS & JAXB 2.0
- EJB 3
- JSF and JSP (unification)
- An example of how “easier” are web services with JAX-WS than they were with JAX-RPC
- How easier are EJB references with resource injection
- JAXB 1.0 -> 2.0 (less LOC)
- A Java EE 5 compliant Application Server
- Open Source License (choose from CDDL or GPLv2)
- Strong community
- Time line: v3 2008/2009
- Showed a diagram of the GlassFish ecosystem
- Mentioned some adoption stories
- Main features: the Metro stack, clustering, JBI (OpenESb 2.0), Performance (…), etc.
- Ajax Support: jMaki, DynaFaces, JRuby
- jMaki demo with NetBeans.
- GlassFish v3:
- Smaller, faster
- Modular (good old Microkernel Pattern)
“Sun SPOTs” by Simon Ritter
- What is a a Sun SPOT: basically a little device running some sort of Java and supporting some kind of wireless network
Sorry Simon but at this time I had to leave so I missed the virtual-glove-minority-report-style demo which gets the crowd going…
Finishing up I would like to thank all the people that worked to make this event possible. Even though they make it look simple because they are talented, it is quite hard.
Having said that, I’d also like to see more efforts like that from Sun and even events that go beyond basic introductions and delve into the inner-workings of specific technologies. Events more focused on senior developers that have further technical depth.
At the time of this writing the only open Java events I have participated in Greece and where focused on more experienced developers were events organized by the JHUG.