You too may fall victim to developer paralysis

Original author: Jon Evans (@rezendi)
  • Transfer
Dear developers, do you feel uncomfortable because you only write quickly in eight languages ​​for the three device families? Are you startled when you barely hear about the transition to the next framework? Have you put off your favorite project because you couldn’t determine which cloud platform would work best?
Perhaps you also have developer paralysis. Be afraid! It is not treated.

The wealth of options available to programmers today is simply monstrous. We choked under what spews a cornucopia. Over the past few years, I have made money writing in Java, Objective-C, C, C ++, Python, Ruby, JavaScript, PHP (sorry) with different versions of SQL / databases (MySQL, PostgreSQL, MongoDB, BigTable, Redis, Memcached and others). Do I like it? Damn it, no. For the most part, I just feel guilty for not doing anything on Erlang, Clojure, Rust, Go, C #, Scala, Haskell, Julia, Scheme, Swift or OCaml.

I am a victim of developer paralysis: feelings of inferiority due to the fact that the software industry is developing faster than one person can do.

Take any of these programming languages, delve into a variety of frameworks, and toolkits, and accessible libraries ... And try not to let your head explode. Months will be taken only to seriously evaluate all of today's JavaScript frameworks and libraries. What do you know about the number of versions of Ruby available? Or iOS frameworks? Or NewSQL / NoSQL databases? And do not even stutter about Hadoop vs Spark vs Google Dataflow, or Avro vs Thrift vs protocol buffers, or-or-or ...

At the very least, the mobile world has shrunk to the Android / iOS duopoly - although there are overlapping alternatives behind it, such as Xamarin or cross-platform HTML on PhoneGap or Sencha - but just try to figure out where and how to deploy the backend. I worked for Heroku, Amazon Web Services, Google App Engine, Google Compute Engine and Parse ... which only makes me shy about how little I know about the internals of OpenStack,, Azure, AppFog, which I have never used many AWS services and others.

Today, programmers are faced with a ton of opportunities available, so we even use a bunch of tools that exist only to help us manage other tools: Bundler, Bower, CocoaPods, Pip and others. They are great! I would not want to live without them. But nonetheless. Then you begin to use other tools, and half the time is taken up by sifting out any garbage, then you begin to understand that the configuration is not enough, you really want to rewrite them a bit ... a bit ... or replace it with another alternative ...

The number and variety of languages, tools, frameworks The platforms available to the developer are incredibly disheartening. Of course, no one wants to admit it. Everyone wants to be a jack of all trades. But the truth is that we all suffer from a complex of programmatic paralysis.

Even gathering the necessary information to make an informed decision almost certainly leads to the opposite. If you took the time to analyze all the possibilities before starting the project, and then climbed to the top of the learning curve, some teenager using PHP and Swift with emoji in variable names can instantly knock you down.
But on the other hand, if you focus on Swift and PHP, you will live in constant fear that some C # / Haskell ninja programmer will put you in a belt just like Paul Graham did with Lisp before:
When you choose technology, you have to ignore everything that others do and take into account only what works best ... In fact, we have a secret weapon ... We could just develop software faster than anyone could imagine ... We wrote our software is crazy Al with weird syntax and lots of brackets.

So: developer paralysis. Do we choose what we already know, because now we can move forward without climbing the learning curve, and we are afraid that someone will do it better, faster, more elegantly - and our knowledge will become obsolete and will not be competitive next year? Or do we want to constantly expand our horizons, because we like to learn the best tools - both more fun and more competitive ... but take more time, effort and load on the brain?

Tricky question! There is no right answer. That's why every month is a month for exploring developer paralysis. I will send you flashing kaleidoscopic ribbons (so that everyone wears) as soon as I understand which 3D printer, microcontroller, LED-software and OS for the drone are best suited for this purpose. Do not hold your breath.

Also popular now: