Frameworks

Do Frameworks make a coders life easier?

Over 20 years ago I was working on a revolutionary (that was how the marketing teams spun it), world’s first integrated security system. Java was the new kid on the block and promised write once run everywhere so we jumped on the java bandwagon.

There weren’t many libraries and frameworks available yet, so we had to write the entire infrastructure ourselves. Database layer, UI layer, Communication Layers, Authentication and Authorization layers, etc, etc. It took a team of about 10 developers about 5 years to build the first version of the application.Seven years ago we started a similar type of project with a team of 5 people and we completed the first release in about a year. A year ago we developed a web application in a little over 6 months. Granted, not with the complexity of the two other systems, but with a much better looking UI.

So how did we go from 50 man years to 5 man years to 1 man year? Did we get so much smarter in 20 years? Yes, that too, but the biggest change was the emergence of a vast range of ready-to-use building blocks in the form of frameworks and libraries.

Where we wrote our own object-relational database layer 20 years ago, today we have choices like Hibernate, EclipseLink and OpenJPA. Instead of directly reading from and writing to TCP/IP network sockets we now use SOAP, REST, SIP, Websocket and other network protocol libraries. Instead of writing elaborate authentication and authorization code we use OAUTH and JWT libraries. Instead of writing tons of difficult to maintain HTML code for the browser interface we use frameworks like RAP, Angular and Vaadin. And of course the Apache Commons project which contains dozens and dozens of reusable libraries for common features and functions.

At a higher level, instead of writing the application as one big monolithic block of code we break the application up in functional modules and run them in frameworks like OSGi and containers such as Karaf and ServiceMix.

So, long story short, these days a systems architect’s job includes knowing what libraries and frameworks are available and how these libraries can be used to realize a customer’s vision as efficiently as possible.
It may seem that with all these ready-made building blocks available a software architect’s role has become a lot easier over the years but that is not entirely true. Instead of designing and coding solutions based on documented design patterns, the focus has shifted to keeping up-to-date on the available frameworks and understanding how to combine them into a coherent application.
But it is not just like selecting LEGO blocks. Although frameworks have made the work of a programmer easier, you still need knowledge to determine which framework is suitable for the work. And what if the chosen framework must be adjusted to specific wishes or requirements? A good programmer these days works with both solutions. He knows the available frameworks and can therefore come up with a solution more efficiently and at lower costs. But he also knows the basics of coding so that adjustments can be made within the standards that meet the requirements and wishes of the client.
At Seecago we stay up to date with the latest technologies to know how we can serve you best, so whatever happens in the next 20 years, we got you covered.