In this article, I want to share some analysis and suggestion for you about the software trend, taste, hype, and factors influencing the software technology and industry in general.
“I’m a fan of GraphQL, I’m a Node.js/Golang/Java enthusiast, I love blockchain, Bitcoin, machine learning as they bring (you name them!)”. They are common words in software world and other professions may have similar discussion like that as well.
Trend and community
Through years working in software industry and discussion with many engineers at different levels, I notice that technology trend (E.g. programming language, framework,…) is heavily influenced by community in general, it varies from discussion on stackoverflow, github, reddit,… to even the “power of the press”.
If you notice blockchain, cryptocurrency, and NFT, they’re the hype of recent years and why people pay attention to them a lot?: there’re many reasons, one of them is that it starts with the potential and problems they can solve, then more and more people see and accept the potential, the community talks about (or even accept) them, and eventually more and more people want to learn and try the new tech.
However, not all technology can remain on top or last forever and new technology will appear and rise to take its place. Clear example of this is Adobe Flash, which is considered deprecated now; C/C++, Pascal, Cobol,.. aren’t as common as before and not at the top of the list for community to choose when building something new, but they’re still widely used in old system. There’s a famous sentence “Modern problem requires modern solution” , you can see the example of this in blockchain, new language like Golang and Rust and the functional programming way of them, Docker, K8S, machine learning,… and compare with the past.
Overall, technology trend and all the hype are defined by the community in general, and therefore not all technology can last or stay on top forever. That’s why, as a software engineer, we have to continuously learn and adapt to new knowledge, tech (not every engineer will love this) or we’ll fall behind.
Taste
Well, this can be a sensitive topic for some people. No matter the direction technology will move, taste for tech will always exist in an engineer’s mindset and a company’s leadership team.
For instance, enterprise still prefers Java, .NET,… and startup may choose tech stack that it’s common, quick to learn, or the majority of members are familiar to. Even an engineer who is capable of writing program in many languages may not have a strong taste of all of them (or even hate some).
For me, I have gone through Java, Python, C#, RoR, Javascript, Typescript, and more, but my favorite ones are just around 30% of my list.
Because of taste, argument always occurs in the community. To be honest from my perspective, there’s no right or wrong answer regarding taste. It’s better to read/listen to get reference and (if you want to contribute) join in discussion to share your opinion but respect other’s. The rest is up to you and you should consider dropping out of a conversation if your ideas aren’t respected, conversation is getting longer and longer without any useful output, or it becomes aggressive.