Java / IntelliJ
I remember back in my first real development role a new language - with a cute logo - had just been released. It looked a lot like Pascal which I already knew. What a long strange trip it’s been …
IntelliJ Idea comes in two versions. The community version is pretty good, but I use the Ultimate edition as it has an excellent database tool, proper Spring support, as well as other features. I have previously used Eclipse, but found it clunky and awkward at the time.
I started using Java for servlets : working at a telco, we wrote a lot of small servlets to handle specific requests, which was much easier than managing a big monolithic server. I currently write mostly in Java 8, and use various frameworks heavily :
- Spring Boot for REST services : I do a lot of API work.
- Lombok remove all the boilerplate code, allowing me to focus on the important parts.
- Jackson JSON library, serialize/deserialize JSON for APIs.
- SpringFox Swagger documentation for the API
I’m current working with the Quarkus framework. Like Micronaut it’s a framework designed to make Java need less memory and less time to start : Spring Boot does a lot of work for you at a cost, and these new frameworks do more work up front, and can even be compiled into native images, for a much smaller footprint and a much faster startup time.
Javascript / Visual Studio Code
I write my front ends in Javascript : I started off in React, but since starting at The University of Auckland, I’ve been working in the stack they chose, Ionic and Angular. They are similar but different : a lot of the key concepts are the same, but their implementation can be quite different. (I’ve recently had the misfortune to support an old Grails front end app, so I’ve seen how bad it can be.)
React is far more popular and I’d like to get back into it : but it’s the usual story, you need to keep using a language or a framework to keep current, and my current role is Ionic/Angular. Ionic 5 has recently been released and comes with a nice set of basic features to get you up and running; there is a steep learning curve (services, directives, pipes, observables and behaviour subjects) to get past though.
I use VS Code as the front end, though IntelliJ Idea Ultimate also supports Javascript.
Python / Visual Studio Code
A previous role involved much data processing and analytics, done in AWS : Python was the natural choice for this, particularly with pandas and data tables. Python has a lot of pros … coming from a strongly typed Java background, the weak types of Python can be a bit frustrating, particularly if you’re passing numbers around as strings. However, over time I’m finding it more and more useful for doing things quickly, and new explorations into the Raspberry Pi world are bearing fruit.
Go / Visual Studio Code
I’ve built a couple of tools and some scripts in Go to get a feel for it. I think I’d like to work in it properly for a while, but need a decent project. This website is built using Hugo which is founded on Go, but that’s mostly under the covers.