Helping you drive digital innovation
Subscribe
RSS Feed of the Mendix Blog
Thanks for Subscribing

Keep an eye out for Mendix resources coming straight to your inbox.

Mendix vs. Code: See Which Delivered the Best App Fastest

on October 17, 2014

Share:

I was recently talking with a friend about Mendix, specifically about the benefits of model-driven development and how easy it is to build applications through modeling instead of writing code. Being a hard core programmer, he was quite skeptical of the capabilities of model-driven development and my claim that new features can be implemented within minutes, not days or weeks.

RevisedQSMWhen he didn’t believe me, I showed him data from external parties who have studied and reviewed the Mendix App Platform. Both Capgemini and Quantitative Software Management (QSM) have evaluated the platform. In the most recent evaluation, QSM analyzed application delivery speed in Mendix versus traditional development methods, and found that Mendix delivers a 6x productivity advantage.

Unfortunately, my friend was still skeptical, having never used the platform himself. We decided to challenge each other to a friendly race. What we found was awesome and I had to share.

The Challenge

We wanted to create something that would be quick to program in Java and allow us to compare notes – something simple that would not take hours to develop. We decided to build a BMI calculator and had another person time us and judge how we developed the application.

While my friend was writing and declaring his values at the beginning of the code (i.e. float height = 0 etc.), I was defining them on the Domain Modeler. What that means is that I was building the underlying variables and data structure.

In this example, we are calculating the BMI for a person. Therefore, we will have a PatientInfo Or Person entity and attributes to track the BMI information. We want to enter the patient weight, height, measurement type (such as kg versus lbs) and for this simple example, we’ll add the calculated BMI value within the same entity.

Mendix Domain Model versus Java declaration of variables

Figure 1 Domain Model Entity Called PatientInfo capturing all the information we need:

Figure 2 Java “equivalent” of defining the variables needed in the program:

While my friend was writing print statements for the users such as System.out.println(“Please enter your weight”), I was designing my UI and ‘Googling’ fun BMI graphs. With Mendix, you can design the user interface and display static or dynamic information to the end users by creating pages.

For this example, we would just need a simple page that allows the patients to enter their weight/height and choose the unit type. Then they can intuitively click on the “What’s my BMI?” button and a pop up of their BMI will appear.

Figure 3 Screenshot of what the users will see when they try to calculate their BMI:

The figure above shows the page that the user will see. What does the developer see? Almost the exact same thing.

Figure 4 Screenshot of the developer’s view within the Mendix Modeler:

In Java, when you have only a couple of minutes to develop, the best you can do for the users is have something like the interface below.

Figure 5 Screenshot of my friend’s Java print out:

Figure5

The best part of development in Mendix – besides its intuitiveness – is the Microflow visualization. While my friend was busy writing all his calculations and troubleshooting for syntax errors, I was building my logic and visually seeing all the calculations I needed to do.

Figure 6 The Microflow behind the BMI calculation – when the user clicks on “What’s my BMI?” this Microflow is triggered:

Figure6

The only code I really wrote was the calculation for BMI. And it was fairly simple, requiring one line of code:

Code

The action above takes the patient’s weight and divides it by height squared (it also multiplies it by 703 if it’s in displayed in feet and inches).

Results

It goes without saying that I won the competition, both in time taken to develop (2 minutes vs 10 minutes) and in the end result (a nice UI for users to enter their weight/height and calculate their BMI vs simple print statements).

In addition to speed, I had an easier approach to developing this application. While I focused on the business logic of the application, I was also spared a variety of traditional programming headaches.

For starters, I didn’t need to write any catch statements; the Business Modeler automatically checks if you enter an invalid value. The minute you define an attribute as an integer or float, it checks and gives an error if you try and enter a different value.

Figure 7 Out of the box functionality evaluating the data type integer making sure the user enters a valid integer:

Figure7

Furthermore, I didn’t have to worry about syntax errors. The Modeler tells you if you are doing anything wrong or if anything is missing. Therefore, I could focus on solving the business problem. The beauty of Mendix is that you spend your time designing the solution and understanding the needs of the user instead of looking at lines of code and trying to decipher the logic or determine the syntactical errors.

I’ve managed to convince my friend – and I work with a variety of customers who are equally as impressed. But what do you think? Have you tried building apps through the Mendix model-driven development platform? If so, tell us what you’ve built! If not, why not start today? Run a test and see what’s possible for yourself.

Download eBook: 7 Keys To Better Business and IT Collaboration – Through Effective IT/Business Collaboration

Subscribe to Our Blog

Receive Mendix platform tips, tricks, and other resources straight to your inbox every two weeks.

RSS Feed of the Mendix Blog
Daniela Field

About Daniela Field

Daniela has 7+ years of experience as a technology professional. She enjoys working with clients, understanding their business needs and offering solutions that move clients towards efficiency, productivity and profitability. She has worked with various Fortune 500 companies as well as privately held organizations. Her previous work was focused on enterprise data search, eDiscovery, document assembly and contract management. Currently, she is a Senior Solutions Consultant for the Mendix's Boston office. Daniela firmly believes that the use of Agile methodologies is the future in application development and enjoys the flexibility and speed with which applications can be developed and deployed using the Mendix Platform.

| Twitter
  • Suneet

    Good article but it seems the poor java developer has been setup for the failure here. In today’s day and age if you are not using ORM, Bootstrap and IDE (e.g. Eclipse) then this is not the real comparison in my view, it is flawed. Most of the tedious work your java developer was working on is much more streamlined and automated using tools and frameworks available e.g. Eclipse will allow you see the webpage in the same way as you would see in the browser, ORM will remove the need to writing the JDBC code manually. How fair is this?

  • Daniela

    Probably not very fair since he was going against Mendix! 😉 Thanks for the feedback Suneet! My friend used Eclipse and we gave each other only 10 min to complete the challenge, within the 10 min mark he didn’t have enough time to use all the other helpful tools you mentioned…

  • Suneet

    Yeah Mendix can do wonders, innit ;). May be next time it will be worth doing this exercise against the industry standard java development setup/practices. I will be looking forward to that.