What’s new in the programming world?


  1. Many companies are rightly shifting their platform from in-house infrastructure to cloud-based solutions like AWS or Azure, meaning software architecture also tends to be more Domain-Driven in order to benefit from such platforms.
  2. Rapid prototyping is seen as increasingly important in order to get a solution of out the door quickly but also to prove the viability of the projects, hence I have seen a shift into using more language-diverse systems (eg Python and Java and JavaScript), which is perfectly fine since most of them are based on Microservice architectures, where components can be replaced with a different implementation without impacting the overall system. You are more free to use the tool right for the job.
  3. Linked to the above points, Containerization is increasingly important, allowing to encapsulate applications into a container without worrying about system dependencies.
  4. Also Event Sourcing is becoming more popular, allowing the changes to application state to be stored as a sequence of events, which can be replayed on demand.
  5. Reactive programming is taking over the UI development approach where you want real-time information to be displayed, mainly, but also very commonly used in backed applications working with asynchronous data streams, and many backend frameworks are adapting to this.
  6. Security is still a huge problem for companies, mainly to do with exposing information to the world wide web, so I can see there is more awareness of OWASP vulnerabilities and some teams are taking actions to adapt their development practises, other don’t and are in danger of malicious attacks or exposing sensitive information. This is also linked to User Data Protection another huge topic to be aware of. There are also new techniques like Chaos Engineering.
  7. In the Testing development world, Visual Testing is getting more importance because of the multitude of devices with different screen sizes, from laptops to smartphones and tv monitors etc.
  8. Also Artificial Intelligence is getting applied to more and more fields, even the one mentioned above (Visual Testing).
  9. Modular programming is getting embraced by most programming languages (see JavaScript ES6 or Java 9 for example).
  10. Cross platform mobile app: it’s not very new, but it had reach a good level of maturity to make it a very good choice over native mobile development for most cases, since libraries like React Native make it easy to release good performance mobile apps for different platforms.
  11. CI tools, these days there seem to be more options than ever out there, no matter what programming language you use, there are very valid alternatives to the old fashion Jenkins for automated builds and Continuous Integration.