The Eschatology of Java

I published an article titled “The Eschatology of Java” on the August 2013 issue of JAX Magazine

image

The Full-Text Version

“What is the future of Java?” is a question that comes up quite often, and every time it does, the blogosphere gets riled up with everyone putting in their two-cents worth. Amateurs and the experts alike engage in never-ending polemics that often go off on tangents and get nowhere. The answer, if there actually is one, is lost in the overload of infobesity and the haze of conflicting emotions.

I take no issue with the question being asked as it is cer- tainly a legitimate one, if not of extreme importance. In fact, it should be given serious thought, whether you are a veteran with a lot invested into Java, a noob trying to figure out what is worthwhile, or just a self-proclaimed Java hater.

Read More

Conference: JAXconf 2013

When: 4-5 June, 2013

Where: Santa Clara, California, USA

Title: The Economies of Scaling Software

Abstract:

You spend your precious time building the perfect application. You do everything right. You carefully craft every piece of code and rigorously follow the best practices and design patterns, you apply the most successful methodologies software engineering has to offer with discipline, and you pay attention to the most minuscule of details to produce the best user experience possible. It all pays off eventually, and you end up with a beautiful code base that is not only reliable but also performs well. You proudly watch your baby grow, as new users come in bringing more traffic your way and craving new features. You keep them happy and they keep coming back. One morning, you wake up to servers crashing under load, and data stores failing to keep up with all the demand. You panic. You throw in more hardware and try optimize, but the hungry crowd that was once your happy user base catches up to you. Your success is slipping through your fingers. You find yourself stuck between having to rewrite the whole application and a hard place. It’s frustrating, dreadful, and painful to say the least. Don’t be that guy! Save your soul before it’s too late, and come to learn how to build, deploy, and maintain enterprise-grade Java applications that scale from day one. Topics covered include: parallelism, load distribution, state management, caching, big data, asynchronous processing, and static content delivery. Leveraging cloud computing, scaling teams and DevOps will also be discuss. P.S. This session is more technical than you might think.

Feedback:

I am so glad that the talk was well-received. Thank you for voting :-)

Conference: Øredev 2012

When: 5-9 November, 2012

Where: Malmö, Sweden

Title: The Art of Metaprogrammig

Abstract: 

Metaprogramming is the dirty little secret behind the success of many Java frameworks such as Spring and Struts2, and constitutes the backbone of many of the most fundamental APIs across the JEE technology stack.

This session aims introduce the topic and highlight, with code examples, the different mechanisms and techniques to take advantage of this underused feature of the Java Programming Language. This session will adopt a learn-by-example approach that combines the philosophy and theory behind metaprogramming with concrete code examples. The audience will be walked real-life scenarios to highlight the benefits of this technique such as minimizing the number of lines of code, reduced development time, and greater flexibility, etc… Design patterns, and best practices will be picked up along the way.

No previous knowledge or exposure to the topic is required, but an intermediate understanding of Java SE is expected.

Video: http://bit.ly/17w17hz

Conference: Øredev 2012

When: 5-9 November, 2012

Where: Malmö, Sweden

Title: How RESTful is Your REST?

Abstract: 

The rise of Mobile and the diversity its technologies make exposing a RESTfull API the most crucial capability of any application and the key to its success. In the absence of widely adopted best practices and well-defined conventions, designing such an API is nothing but trivial. This presentation introduces the fundamentals of REST architecture, and discusses the principles of RESTfull design. Among the topics covered: resource modeling (URI design, and HTTP verbs/status code canonical usage), multiple representation support, testing, cache control, security (Http and OAuth), and API versioning. HATEOAS and REST maturity model are also discussed. No prior knowledge REST is required.

Video: http://bit.ly/172sEDm

Conference: JAXconf 2012

When: 9-12 July, 2012

Where: San Fransisco, USA

Title: The Art of Metaprogrammig

Abstract:

Metaprogramming is the dirty little secret behind the success of many Java frameworks such as Spring and Struts2, and constitutes the backbone of many of the most fundamental APIs across the JEE technology stack.

This session aims introduce the topic and highlight, with code examples, the different mechanisms and techniques to take advantage of this underused feature of the Java Programming Language. This session will adopt a learn-by-example approach that combines the philosophy and theory behind metaprogramming with concrete code examples. The audience will be walked real-life scenarios to highlight the benefits of this technique such as minimizing the number of lines of code, reduced development time, and greater flexibility, etc… Design patterns, and best practices will be picked up along the way.

No previous knowledge or exposure to the topic is required, but an intermediate understanding of Java SE is expected.

Video: http://bit.ly/12X2BOK

Conference: JAXconf 2012

When: 9-12 July, 2012

Where: San Fransisco, USA

Title: The Rise of NoSQL abd Polyglot Persistence

Abstract:

The rise of NoSQL is characterized with confusion and ambiguity; very much like any fast-emerging organic movement in the absence of well-defined standards and adequate software solutions. Whether you are a developer or an architect, many questions come to mind when faced with the decision of where your data should be stored and how it should be managed. This talk will address many of these questions, as well as survey the most popular NoSQL technologies.

Video: http://bit.ly/PCWtWi

Slides: http://slidesha.re/11Uo3Oq

Conference: OsCon 2012

When: 5-9 November, 2012

Where: Portland, Oregon

Title: The Art of Metaprogrammig

Abstract: 

Metaprogramming is the dirty little secret behind the success of many Java frameworks such as Spring and Struts2, and constitutes the backbone of many of the most fundamental APIs across the JEE technology stack.

This session aims introduce the topic and highlight, with code examples, the different mechanisms and techniques to take advantage of this underused feature of the Java Programming Language. This session will adopt a learn-by-example approach that combines the philosophy and theory behind metaprogramming with concrete code examples. The audience will be walked real-life scenarios to highlight the benefits of this technique such as minimizing the number of lines of code, reduced development time, and greater flexibility, etc… Design patterns, and best practices will be picked up along the way.

No previous knowledge or exposure to the topic is required, but an intermediate understanding of Java SE is expected.

Video: http://slidesha.re/11X8Kp1

Oracle/Sun Merger: A Community Prospective

Throughout the years, Sun Microsystems, the godfather of Java, has been committed to supporting the community through its contribution to open source projects and managing the user groups. Now that Oracle is taking over, it is extremely important to define the relationship the Java User Groups are going to have with its new corporate sponsor. For this reason, I decided to attend Oracle Open World this year with a few other JUG Leaders and Champions namely Cay Horstmann, Stephen Chin and Bert Ertman. Mary Lou Dopart from Oracle, Senior Director of Global Customer Programs, with the coordination of Nichole Scott, Program Manager, from Sun, organized a couple of meeting to socialize and discuss the future JUG involvement and integration in the Oracle community. I must express my appreciation for including us in the conversation.

The Oracle/Sun merger announcement left the impression that the former is more interested in later’s hardware only, its prime completive advantage, and doesn’t care much about the rest of its technologies. This caused a panic and started rumors in the community about the future of Java. One of the questions that is lurking around in the forums was “What is gonna happen to Java?” Honestly I find it quite naïve to think that way for simple reasons. Java is not in the hands of Sun; it is not one of their products anymore, and Oracle does not get to discontinue it and just shut it down. Java, the platform and the language, is established, mature, and bigger than Sun and Oracle. A more valid question would be “What is gonna happen to Glassfish or MySQL?” or “What’s gonna happen to JRockit?” In the key note, Larry Ellison, the CEO of Oracle, hit the bull’s eye when he was quoted as saying that “Java speaks for itself”. I have to admit that many people didn’t like his answer and considered it ambiguous and unclear, but a deeper look would reveal that it is, indeed, a well-thought-of statement. Java has truly become in the hand of its community; be it the JCP or the contributors to the OpenJDK project. The decisions about the future of the platform are now made uniformly by literally whoever is interested developing it. Doesn’t that mean that it speaks for itself? This establishes the fact that the concern is Oracle’s future involvement and relationship with the community rather done anything else.

My first impressions about Oracle Open World were quite interesting. I have to admit that they are at times opinionated, but I feel that I am as entitled as anybody else in the community to have strong points of views and voice them. This only encourages healthy debates and steers the conversation in the right direction. From day one, I felt “out of water” as a developer. I came with the expectation of attending technical sessions, and found myself stuck in marketing presentations that highlight the impressive features of Oracle products and solutions. To be fair, a more technical track for software developers was available with a considerable number of sessions; consequently, I decided to attend a couple of hands-on labs. Unfortunately, it wasn’t as I expected either. I have to admit that I learned a lot; mostly about tools, but not much about the technology itself. Van Riper, a Java Champion and the Co-leader of the SV Web JUG, felt the same way in an overview lab about Oracle ADF ( Oracle Application Development Framework). To sum it up, Oracle Open World with all its sessions seemed to me like a giant JavaOne pavilion.

To run away from all the sales and marketing folks disguised in technical costumes, I looked for the oracle user group leaders. To my surprise most of the groups (with the exception of ODTUG) fit the literal sense of the term. They are no more than users of Oracle products. They meet and talk about the features and bugs of the current release, report them, and hope that Oracle fixes them in the next one. It is like a well organized customer feedback community.

On Sunday, the Oracle folks were kind enough to invite us to dinner to meet the people who run the most technical of their user groups, ODTUG (Oracle Development Tools User Group), namely Kathleen McCasland, John Jay King, and Jerry Irland. Based on the conversations I had with the community managers at Oracle and the leaders of their affiliated user group, I noticed major differences between the way they operate and the way thing are in the JUG community. These differences are at the core of the relationship between the user groups and their corporate sponsor, and some of them are so significant that I could see causing tension or problems in the future.

The oracle community is highly structured and organized geographically under umbrella groups. Group affiliation is mandatory and costs a fee most of the time. This shouldn’t be a problem for small JUG like the one I lead (The Chico Java User Group). It actually could be a good thing. On the other hand, I could see it becoming an issue with the big ones. Some of our JUGs are well-established, run million-dollar-budget conferences, and managed to create recognizable brands for themselves. Why would they want to get affiliated, dilute their brand, and share their success with somebody else that was not a part of it in the first place? We can clearly see that in the JUG-USA experience that showed that the big ones are much harder to get inline than the small ones.

The other point is that, in my opinion, Oracle controls, to an extent, what is going on in the user group meetings. This is based on my inferences from a conversation I had with Tina Weiss, the Americas Local User Group Relationship Manager from Oracle. If you ask the members themselves or the leaders, they will tell you that they are independent. My opinion again is that their independence is no more than not being an Oracle employee. May be they feel that way because they enjoy the freedom of publicly discussing bugs and deficiencies of the Oracle products.

This being said, I think both communities are very different and have a lot to learn from each other. The ODTUG have already extended their hand by inviting us to their annual conference on June 27-July 1 in Washington, D.C., the ODTUG Kaleidoscope 2010, and that is much appreciated. 

On a final note, Oracle needs to realize the benefits it could reap from supporting our communities and understand that the Java community, in particular, is not a burden or a step child it is going to inherit from Sun.

On behalf of the JUG community and myself, I would like to thank all the people from both Sun and Oracle for their tireless efforts to listen to us and respond to our needs especially the names mentioned in this article.