ThoughtWorks Technology Radar: Say yes to Kotlin and Kubernetes
The latest edition of ThoughtWorks’ Technology Radar has highlighted what most of us already know: you absolutely need to adopt Kotlin and Kubernetes but generic cloud usage should be avoided at all costs.
The latest edition of the biannual Technology Radar from ThoughtWorks assesses the major trends in software development. Central themes this time around include:
- Reduced complexity in back-end logic. “The search for better user experiences encourages the trend toward pushing functionality into the browser, and many back-end services become thinner and less complex as a result.”
- Cloud complexity. While cloud resources continue to mature within organizations, an inevitable creeping complexity always accompanies building real solutions with these new pieces.
- Security. “We see a shift in the traditional ‘lock everything down globally’ approach to a more nuanced, localized approach.”
- The IoT ecosystem continues to grow. “We see growth across the entire IoT ecosystem, from on-device operating systems to connectivity standards and most strongly in cloud-based device management and data processing.”
As with every issue, the technologies, platforms, tools and languages are classified into one of four categories: The “Hold” category means that you should proceed with caution, whereas technologies falling under the “Assess” tag should go through a more detailed evaluation. Every technology, platform, tool and language that’s in the “Trial” category can or should be sampled in the corporate sector. Finally, when you see “Adopt,” you know that technology can and should be adopted.
Platforms: Say yes to Kubernetes
.NET CORE has reached maturity and, according to the Technology Advisory Board members, it’s safe to say that it has become “the default for .NET server applications.” The “adopt” list also includes Kubernetes and we’re certainly happy to see it there. People’s love affair with Kubernetes started quite a while ago but it only intensified in the last years. A lot of people we got in contact with this year have said that Kubernetes is their No.1 choice, and then there’s last year’s GitHub Octoverse which showed that three Kubernetes-based projects appear at the top of the charts for the most-discussed repositories and projects with most reviews.
You should have a look at the report to check if your favorite platform has made it to the list; there are a lot of new platforms out there that are worth exploring, including Cloud Spanner, which seems to offer the best of both worlds: traditional databases and NoSQL databases. You should stay away from overambitious API gateways but if you can’t, you are advised to proceed with caution.
Tools: Nothing in the “Adopt” category this time around
It’s not Kubernetes per se but it’s related to it; Helm is a package manager for Kubernetes which promises to simplify the application lifecycle management in Kubernetes. Jupyter is also on the “trial” list but this is no coincidence; this is just further proof that people are “finding creative uses for Jupyter beyond a simple analytics tool.”
You should have a closer look to see if your favorite tool has made it to the list.
Languages and frameworks: Kotlin is a must
There aren’t any languages in the “Hold” category this time around, but there sure are a few superstars: you need to adopt AssertJ, a Java library which promises to simplify the writing of assert statements in tests, Enzyme, which has become “the defacto standard for unit testing React UI components” and/or Kotlin, which keeps on rising, according to RedMonk’s latest report.
Kotlin was also one of TIOBE’s finalists for “the programming language of 2017” but it lost to C. We still think it should have won; here’s why.
Speaking of Kotlin, our survey results show that this young padawan has stepped up its game and has traded places with Scala. Unlike last year, when Scala occupied the fifth position and Kotlin the sixth, these languages have gone through a “Freaky Friday” type of situation; shooting star Kotlin is officially in the top 5 most interesting programming languages.
You might want to give Flutter a chance – even if it’s still in beta, ThoughtWorks will keep an eye on it to see how its ecosystem matures and so will we. TensorFlow Lite is worth exploring if you need to deploy ML models on mobile and embedded devices.
Also, if you want to build smart contracts, Solidity is the “currently unrivaled programming language,” according to Alfred Shaffir, co-founder at iOlite Foundation. He might be right since ThoughtWorks has placed this language on the “assess” list.
Friendly reminder: You should have a closer look to see if your favorite language/framework has made it to the list.
Techniques: Beware of generic cloud usage!
ThoughtWorks suggest that you should put lightweight architecture decision records on your “adopt” list and try to steer away from recreating ESB antipatterns with Kafka. Since the problem of lock-in is still a struggle, you might want to step up your research game and check out the benefits of using cloud-specific features, as well as the exit costs. Beware of generic cloud usage!