Are You a ”Leading Edge” Java Developer?

There is clearly some differences on opinions out there and not all of them are positive for the JVM community. What does it mean to be a “leading edge” developer on the JVM. On the JVM, there are many languages like Scala, Kotlin and Clojure to name languages with real forward momentum.

Are All Languages Welcome on the JVM?

So can you program in two (or more) languages at the same time? Comments like this one give me pause.

Refactoring Uncommon Design Smells

We started working on design smells many years earlier than when we started writing our book “Refactoring for Software Design Smells” (see I was digging through some of the old documents and remembered that we did not cove…

Using the Play Framework to Create a Java Web Application on Top of a .NET Back-End

Java web applications have come a long way since the days of servlets and Java Server Pages (JSPs). There are now many Java web frameworks for a developer to choose from, including Spring MVC, Java Server Faces, Struts, GWT, Play, and Grails.  As with many other emerging technologies, an abundance of choices of web frameworks will lead to developer fatigue, the feeling of being overwhelmed by the need to keep up with the modern development world’s rapidly multiplying set of options. Interoperability tools like JNBridgePro are an ideal way to deal with many kinds of developer fatigue, particularly when the new technologies are based on Java or .NET. With JNBridgePro, you can learn a small piece of a new technology, while bridging back to other parts of your project, which use the old, familiar technology.

For example, let’s say that you’re a .NET developer maintaining an all-.NET web application using ASP.NET as the web framework. If you’re tasked with updating the application to use a modern Java web framework, you can simplify your task and avoid developer fatigue by reimplementing only the front end, while preserving the familiar .NET code in the back end.

Java 8 – ZonedDateTime examples

Few java.time.ZonedDateTime examples to show you how to convert a time zone between different countries. 1. Malaysia (KUL) -> Japan (HND) Review a flight information from Malaysia Kuala Lumpur (UTC+08:00) to Japan Tokyo Haneda (UTC+09:00) —Flight Detail— Kuala Lumpur (KUL) -> Tokyo Haneda (HND) Flight Duration : 7 hours (KUL-Depart) 1430, 22 Aug 2016 -> […]

When Web Companies Grow Up They Turn Into Java Shops [Video]

Earlier this month I attended Pivotal’s SpringOne platform conference in Las Vegas.  In case you’re not familiar with it, Spring is a Java Framework “that helps development teams everywhere build simple, portable, fast and flexible JVM-based systems and applications.”

For some of you out there you may be thinking Java is old school and not relevant in in today’s modern world of digital business.  Au contraire mon frere.  James Governor, the D’artagnan of the analyst world,  countered this belief of irrelevance in his SpringOne talk entitled, “When Web Companies grow up, the become Java Shops.”

JVM Debugger Memory View for IntelliJ IDEA

Every day we try to find new ways to improve developer experience with IntelliJ IDEA. It may be a bugfix, a performance improvement, or a new feature (usually in this order). Today we’d like to introduce a new plugin called JVM Debugger Memory View.

The plugin extends the built-in debugger with capabilities to explore objects in the JVM heap during a debug session. The Memory View shows you the total number of objects in the heap grouped by their class name.

Plugging Leaky Abstractions

In 2002, Joel Spolsky coined something he called “The Law of Leaky Abstractions.”  In software, an “abstraction” hides complexity of an underlying system from those using the abstraction.  Examples abound, but for a quick understanding, think of an ORM hiding from you the details of database interaction.

The Law of Leaky Abstractions states that “all non-trivial abstractions, to some degree, are leaky.”  “Leaky” indicates that the abstraction fails to adequately hide its internal details.  Imagine, for instance, that while modifying the objects generated by your ORM, you suddenly needed to manage the particulars of some SQL query.  The abstraction leaked, forcing you to understand the details that it was supposed to hide.

The Benefits of Coding Offline: On Encapsulated Codebases and Headspaces

Last weekend I spent an afternoon at a coffee shop with no wifi in order to solve a problem that I thought should have been simple (automatic de-duping) but which had stumped me for weeks. (I was getting false positives in a pattern I couldn’t figure o…