Report from the “Java Developer Day 2008” in Athens

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.

javatechday2008_nokia_037.jpg

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 🙂

javatechday2008_nokia_025.jpg

Of course there were some issues that might need to be addressed for future similar events like the fact that:

  1. 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.
  2. 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.
  3. 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.

javatechday2008_nokia_039.jpg

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
  • JRuby
    • 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

“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/

javatechday2008_nokia_030.jpg

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:

  1. …Sabotaged Doorbell
  2. …Distracted Spear fisherman
  3. …Overstocked Haberdashery
  4. …Blind Spot
  5. …Leaked Memo
  6. …Corrupt Politician
  7. …Micromanager
  8. …Greek Driving (!)
  9. …Sudden Riches
  10. …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.

javatechday2008_nokia_031.jpg
  • The Java Language characteristics
  • 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
      • Closures for Java: Simon tried to give an explanation on closures with artifacts from the Java ecology, but IMHO this is not a good way to explain closures. You need to enter the world of dynamic languages where this paradigm is heavily used, for example talk about closures in JavaScript.
      • 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

javatechday2008_nokia_032.jpg

My friend Panagiotis has pointed out and interesting post that is introduced as a “fair and balanced” look at the static vs. dynamic typing schism. Reading this is a prerequisite in order to understand how much of the faith that Sun puts in Ruby (and other dynamic languages) is justified and how much is hype. While I like dynamic languages and I code in them almost every single day, you should know that they were not invented yesterday and there are several things you have to consider when you are comparing them with Java. There has been much ”static vs. dynamic” debate on the web. You even have guys from Ruby debating on why the strong dynamic typing of their language is so much better than the weak dynamic typing of languages like PHP or JavaScript. For the later two languages, as far as I know in the new versions there are suggestions to include optional type declarations.

So Doris (with an exotic accent):

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
    • Functions
    • 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
    • Classes
    • Attributes
    • Triggers
  • 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
  • Demos
    • 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.

javatechday2008_nokia_036.jpg

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.

In summary:

  • “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
  • 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)
  • GlassFish:
    • 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.
  • Grizzly
    • Uses NIO primitives
    • Non-blocking sockets to the HTTP processing layer (!!!)
    • Some benchmarks (…)
    • Demo with Comet: A Flikcr-based chat
  • GlassFish v3:

“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…

Epilogue

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.

Advertisement

8 thoughts on “Report from the “Java Developer Day 2008” in Athens

  1. I enjoyed very much Simon’s presentations, and especially, duh, the one for Solaris, ZFS, and all that. – it was great! And Simon is a great speaker.

    I was a bit disappointed with Doris though. I didn’t like the way she treated the audience as complete…hmm…how to put it…”clueless”. No, Ruby as a calculator is not really show-casing the power of the language! And a web service through annotations? Ok, who was really impressed with those “news” in 2008?? The code was even broken (she forgot to add the @WebMethod annotation…).

    I also enjoyed the slide with all the technologies working together with Glassfish. I noticed PostgreSQL, Oracle, even Derby, but MySQL? Nowhere! A coincidence?

    I also hoped Heinz showing something newer :-/.
    Indeed, a Q/A session was much needed. A couple of points:
    – Using “this” as a monitor is *not* bad practice. It allows for extending the locking protocol, and it was the way to go to implement a “putIfAbsent” method in Java 1.4 with Collections.unmodifiableMap, which indeed uses “this”.
    – Making doubles/longs volatile just not to get strange “split” values, because updating them is not atomic, is pointless. The code that showcases the problem (in theory at least) is already broken for multi-threaded access anyway – it showed updating a long value from two threads with no synchronization whatsoever.

    Damn, I missed the food, we thought there weren’t any and went outside!

  2. Many thanks to Dionysios for this – very – detailed report..The notes are very informative for each presentation and of course the links next to them can save a lot of – precious while at work – time…
    Really precious for those who couldn’t make it !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s