• +43 660 1453541
  • contact@germaniumhq.com

Writing Software in 2019


Writing Software in 2019

As we enter 2019, I am using clouds a lot - the Germanium infrastructure is on Kubernetes, my last project was on AWS, I stopped using Java in my personal projects, and started learning Cobol for work. Here’s why.

Software doesn’t live in a vacuum. It doesn’t just pops into existence. It gets built over years. We need tooling to get the ideas into source code, (think IDEs), and the code to do something actionable, that the computer interprets. As our understanding of how things are supposed to be created increases, we change our ways in developing software. Or at least, we should change our ways.

Security in particular changed a lot in the last 10 years. Same goes with REST services. Or storage. Or scaling. Or…​ any non-functional requirement out there, the ities like I like to call them: Security, Scalability, Availability, Performancity (:D) …​

Some still think it’s a good idea to manually route paths in whatever code annotations, so when v2 of the REST API is released they have a panic attack. Because it’s hard having 2 versions of the same thing in the same application.

Or to implement their own security library, then have a nightmare time with every integration point. I’m not even going to mention the security blackhole they’re creating.

Or to use a platform that just preallocates memory, fires up 50 threads, thinking it still runs alone on the computer, and it’s the main thing. Yeah, I’m talking about you Java.

Because if all you have it’s a hammer, everything starts looking like a nail. If all you know is your Java, the natural solution domain is Java. Looking for a solution outside of the box, needs knowing what other boxes are out there. The solution space is not infinite. There is a finite number of boxes. They offer us tooling that might or might not fit our problem domain.

Same goes with testing. If all you know is Selenium, then you can’t select elements by position, and can’t type with ease. You’ll need to keep fighting with the DOM. I do believe, that Germanium is the best API for having integration tests that use the browser. It’s easy to start with, and to maintain it.

At the end of the day, I am still going to use Java at work. A lot of software is written in Java. Useful software. Important software. As a fact, I even started learning Cobol. A lot of core software is written in Cobol, and it’s not going to magically disappear just because we learned we can do things better. That’s not how it works.

But in our craft, we are meant to build better software, to the best of our abilities.

Not get comfy.