Programming technologies abundance

Today, there are more programming languages, libraries and frameworks than ever (feels so cliche say so). We also have many tools enabling instantaneous code execution, to name a few: interactive Python notebooks, interactive C# window in Visual Studio and an obvious one – a developer’s console in every desktop web browser, which enables executing JavaScript. There is so much possibilities to create code without paying for the development software that it is truly astonishing.

Consequences of abundance

When having such easy access to free development tools, experimenting, playing and prototyping is incredibly easy. Also, there are tons of tutorials, text ones and video ones, free and commercial. If you lack knowledge in some field and want to do something about it – go ahead, nothing is on your way.

Thanks to such ecosystem, entry barrier for new apps is very low. And we see it. Every day, each app store gets new products (I’d speculate that many of them are useless and/or copies of existing, but still, there is tremendous amount of apps available for all platforms, mobile ones especially). Because of this, creating successful apps is getting more difficult – competition is fierce.

With so much free resources, it comes as no surprise that more and more people are getting into software development. People from other fields switch to IT world, because it seems so compelling – almost constantly there are job vacancies with nice paychecks. It’s only natural that people migrate.

But the abundance of available technologies may also have a downside. I will explain shortly.

Choice paralysis

Or, more scientifically analysis paralysis. With so much paradigms and tools to explore, it may become for one to choose, what he should learn. If you choose a corporate technology, you may soon be out of job. Silverlight, Windows Phone – Microsoft didn’t succeed in keeping them relevent for very long. Also, project.json instead of .csproj files, which was at first positively recognized, got deprecated.

Myself, I haven’t worked commercially on aforementioned technologies. But I was working on a project utilizing Angular 1.x for over a year. I’ve learnt it to some degree, but at the moment it is also deprecated. Skill I’ve learnt quickly became obsolete. I do not consider developing that app using Angular a waste though. Sure, I won’t be ever using Angular 1.x, but I also learned other things along the way – mostly TypeScript in that case. But it still can feel frustrating, that many hours of your work kind of “dissipated”, in a sense that they won’t pay off in the future. But life’s like this.

What I want to stress is the fact, that you can’t be 100% sure which technology or paradigm will pay off the future. Sure, JavaScript won’t get obsolete very soon, but should you learn React.js, Angular, Vue or something else? Java will probably also be around, it’s in too many places to quickly vanish.

I know that there are signs that technology may be “dying”. Less jobs offers around, people switching from the technology to others. When you see it, you probably should switch. But how you decide what’s worth it in long term? I don’t have a magic formula, but keeping your skills diverse rather than similiar, give you more oppotunities in the future.

Conclusion

New technologies will arise every now and then, that’s for sure. It’s up to us, to choose what and when will trendy – by contributing to open source, by advocating or ostracizing them. Remember – unless you are developing alone, your choices of frameworks and other technologies shape what is popular.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s