Devoxx is the most visited software development conference in western Europe. Having its beginning in the Java user groups communities, it’s organized by developers for developers.
I had the opportunity to attend Devoxx on behalf of Anchormen and follow-up on the progress of the industry. Besides having a fun time with former colleagues in the beautiful city of Antwerpen, it was also fascinating to see the inspiring talks. Small companies, Fortune 500’s, startups and PhD students alike gave their contribution to the ever-growing field.
My general impression was that it’s less about hackers sitting cross-legged on the floor, showing what beautiful things they have made as I expected. And more about high-functioning architects and developers trying to shift the sense out of nonsense as well as junior developers visiting all the “hello world” talks.
Beforehand I was excited about the open source project announcements; and there were some nice ones like Microprofile, Docker, and Hibernate. Unfortunately, I was left wanting, because they weren’t offering as many practical examples as I had expected.
Surprisingly, my favorite topic was about the development culture; I loved the talk by Jonas Bonér from Lightbend. Furthermore, the talks relating to distributed computing as AWS Lambda and other serverless platforms took my attention.
Climbing the abstraction tree
Since the existence of the processor, advancements in technology have made it way more affordable. Considering the kind of assistance development environments give us, coding should become increasingly more accessible across organizations as well. But the other side of the coin is that businesses will choose to distribute software outside your network boundaries because of their cost-benefit.
So nowadays, organizations move with incredible speed towards these distributed solutions. But development speed is increasingly falling behind. Why is that?
In my opinion it’s for two main reasons:
- The cutting edge is indeed painful, be aware that over-engineering is a thing!
- Hardware footprint is still a thing as well; performance problems occurring on-premise can occur remotely in the same way.
The leading solution I’m interested in right now is event-driven programming.
Thinking about events and what they can enable us to do as developers in architecture and the way we think about the software in general sort of an architectural serve.
Events drive autonomy in autonomous teams and the components help us to reduce risks and reach milestones faster. When we try to shift from legacy to more modern architecture, it helps to increase
- loose couplings
- stability in system scalability
- resilience and
Event-driven is as old as Rome, as the saying goes. I’ve always had the romantic idea that developers were sick of waiting and therefore built the non-blocking applications.
First, working one single thread per request all down to the database towards building a system of entirely taking advantage of multiple cores, nodes and eventually even data centers takes thinking at different software abstraction level.
Second, we need event-driven streaming data for the feed of machine learning systems. We must recognize that software starts to act increasingly more unsupervised. As I’ve seen, machine Learning, cognitive features and artificial intelligence moves quickly to software development territory. We’d better be prepared for it!