Over a million developers have joined DZone.

Dev of the Week: Johan den Haan

DZone 's Guide to

Dev of the Week: Johan den Haan

· Cloud Zone ·
Free Resource

Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're talking to Johan den Haan, CTO at Mendix, where he leads the company’s overall technical strategy and research and product development teams. Most recently, Johan was featured in DZone's 2014 Cloud Platform Research Report.

1. What have you been working on lately?

At Mendix we are focused on rapid development and the productivity of developers in collaboration with users and business stakeholders. Our “Model-Driven PaaS” is a layer on top of the more foundational PaaS approaches such as Cloud Foundry. Our users can build web and mobile applications using modeling languages that lead to productivity that often is 10 times the productivity of traditional coding using Java or .NET.

We are working on some very innovative stuff that will add a completely new dimension to the PaaS and app dev world. I can’t quite yet share details, as we will launch it in the first week of April at our Mendix World conference. I can give you a hint: if you look at my model for classifying the cloud landscape my view is that the layers below Model-Driven PaaS will become a commodity quickly (with clear open source winners like OpenStack for IaaS and Cloud Foundry for PaaS). The next battle, and our focus, is on providing an additional, differentiating service layer for developers, business engineers, citizen developers, and end-users.

2. How and why did you come up with your model for classifying cloud solutions?

The SPI-model (SaaS, PaaS, IaaS) was pretty straightforward a few years ago when there was basically nothing more than IaaS in the market. Over the last years however almost every software vendor entered the “cloud space” by providing an “as-a-service” offering. They felt the need to put either an IaaS or a PaaS sticker on their product, if it fit or not, just to be part of the “cloud movement”. Therefore I started to create an overview of the landscape that looked one level deeper. I started by looking at the IaaS space, where you clearly see three parts: compute, networking, and storage. By generalizing this to compute, communicate, and store I had a second dimension that can be used in any layer to classify the different approaches that are in the market nowadays. You can follow my though process in the article that introduced the cloud model.

As with every model, there are limitations, and not all offerings in the market easily fit into it. However, I think it helps in taking the next step in a better understanding of the landscape and I hope it helps to make conversations more specific.

3. What are some of the nuances that people don't usually recognize when comparing cloud platforms?

I think the main confusion at the moment is in the grey area between IaaS and PaaS. IaaS providers are adding higher-level services to diversify their offering. PaaS providers are adding features that offer more in-depth control of the underlying infrastructure. Without a clear classification of the different services, people will debate PaaS and IaaS technologies, while they might not even talk about the same things. The ongoing fire in the OpenStack community is just one of the most recent examples.

4. Are there any particular developer tools or resources you couldn't live without?

One of the most interesting recent new “tools” is Docker, in my opinion. It’s lightweight, runs everywhere, and thereby helps with development for the cloud, setting up continuous integration, etc.

5. Do you have a favorite open source project (or projects) that you've contributed to recently?

I mentioned Docker before as an interesting project. I’m also closely following the Cloud Foundry project, especially after the recent announcement of the Cloud Foundry Foundation which makes it an “independent” open source project (and luckily there are current efforts to combine Cloud Foundry and Docker). Some engineers in the Mendix team recently contributed to keepalived (which provides simple and robust facilities for load balancing and high-availability to Linux system and Linux based infrastructures).

6. Do you follow any blogs or Twitter feeds that you would recommend to developers?

I would recommend to follow @CloudFoundry. It basically is the new middleware. Forget the application server that your are currently deploying your code on.

7. Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?

I started out in Pascal and later on moved to Delphi. The latter was a great way to build some “real” applications as a kid. I sold an application successfully, and a second one that I got money for but the end-users never used it. I also lost a competition for delivering the best app. It was the best app from a technical perspective, but I didn’t know the domain well enough. These two failures influenced my career because I learned that a) you need to iterate with actual users to make a useful product and b) you need to understand the domain and/or involve domain experts. I ended up building a platform that helps a lot in achieving both.

8. Is there anything else you'd like to mention?

I can’t wait to see what’s next – application development is gearing up for its biggest changes in decades.

Thanks, Johan!

Be sure to check out Johan's blog and Twitter, as well as his work in the 2014 Cloud Platform Research Report!

2014 Cloud Platform Research Report

The 2014 DZone Cloud Platform Research Report covers 39 cloud platforms in one free, exclusive report complete with:

  • Key product and vendor differentiators
  • Survey results of 600 IT professionals
  • Checklist of what to ask potential providers
  • And much more!



Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}