Jaroslav Tulach


Jaroslav Tulach is the founder and initial architect of NetBeans, which is not just a well known IDE, but also the first modular desktop application framework written in Java. Maintaining NetBeans Platform, its architecture and APIs has always been the primary focus of Jaroslav. During more than fifteen years of participating in the NetBeans.org project, Jaroslav has seen, made and helped to recover from many design mistakes. Such experience obligated Jaroslav to sit down and summarize it in his Practical API Book. The GeekOut tutorial is going to be based on Jaroslav’s recent experience with making NetBeans APIs better with the help of compile time annotations.

More details at: http://wiki.apidesign.org/wiki/GeekOut

Presentation 1:

20 API Paradoxes

Language: EN

One can face a Paradox when one hits something unexpected. However there is nothing paradoxial on seeing a paradox. Paradoxes happen naturally. Why?

Knowledge of every individual is limited by some horizon, just like our vision. What is closer to us, can be seen more sharply. What is farer, is more fuzzy. What is almost on the horizon is unclear, not well understood. What is behind the horizon is unknown. Still, our experience tells us that there is something behind the horizon. Because from time to time every individual, or mankind manages to enlarge the known world and shift the horizon further. Then, things that have been unseen get in front of the horizon and we may start to explore them.

It is natural for humans to make expectation about the things behind the horizon. To envision how the things behind the horizon are about to look like. There are basically two (extreme) ways to handle this envisioning. Either we can fear the unknown and envision that the world behind the horizon is dangerous (full of lions). In this mode we however are not encouraged to explore such places. It is much easier if we (in contrast to previous attitude) imagine that the unknown world is almost the same as the known one. Just things may be a bit bigger, with higher velocities, but otherwise similar to what we know. With attitude like this it is much easier to undertake a journey behind horizon and explore new creatures.

Often our expectations are matched. Especially when we cross the horizon just slightly. However sometimes, when we discover something really new (like the Michelson experiment), it may contradict our pre-made expectations. It may look like a paradox. However that does not mean the world went insane. It only means that our interpretation of the world is not accurate and we need to create new one (just like Einstein did in response to the experiment).

There is nothing unnatural in seeing paradoxes. Usually that only means we managed to significantly enlarge our horizons. The newer a topic is the more paradoxes one can expect. As such it is of no surprise that there is a lot of unexpected Paradoxes of API Design.

Are you asking now why some API design advices feel so unnatural? Why they are so different compared to the best practices that we learned while working on our small projects or on in-house projects of any size? The reason is that even a small shift in the initial conditions may result in completely opposite advice which may seem paradoxical. However that does not mean such advice is not useful and the chapter 14 describes some of them and explains why adhering to them may be beneficial for any software project.

Presentation 2:

Introduction to bck2brwsr project.

Language: EN

A year ago I started to play with the idea of small Java that would fit into any modern browser and run without any plugins. After a year I managed to reach several milestones. I have special, slim API for controlling an HTML page front end from Java. I can run the system on desktop, some mobile phones/platforms and also directly in a browser. I have IDE tooling that makes creating such clients real fun. Overall I am starting to believe that coding in my Java/HTML mixture is more effective, compact and more errorprone than using JavaScript instead.

The work is not finished, but I believe there is a lot to show. Stop by, I’ll be glad share the direction to get Java bck2brwsr…

  • jdd


Platynowy Sponsor

  • Luxoft

Złoci sponsorzy

Srebrni sponsorzy


Sponsor Afterparty

Patroni medialni

  • Teetbee
  • Kariera PLUS
  • Programosy
  • KSUG
  • helion
  • Polish JUG
  • Poznan JUG
  • SDJ
  • naukaJavy.pl
  • pcfoster
  • pcfoster
  • pcfoster