I’ve come to believe that developers who do not continue to learn end up stagnant and dead. So it’s obviously very important to continue to try and learn new things if I’m to keep relevant. What I see other people learning is interesting, and I’m anxious to try a lot of the new techniques that I see come across my desk from day to day; However, I wonder about the proficiency of those developers with those tools.
A lot of the appeal of Ruby, for example, is that there is a robust architecture already in place (via things like Rails) to rapidly create applications without too steep of a learning curve. That sounds great, but I wonder if the loss of that initial learning curve ultimately affects proficiency with the language.
For example, if you had toiled for years to learn the nuances of PHP, and then you jump to Ruby and decide it’s the panacea for web development, did you really suffer through enough trial and error to learn about your language? So many times I’ve seen developers come at a language from a high level, without really understanding what’s going on beneath. Sure, they are able to accomplish certain tasks, but often are stymied by things that require a bit deeper thinking or understanding of how things work.
Obviously, I’m not an advocate for staying stagnant, but I think there is some advantage to keeping trusted tools ready for use. Ruby, Python, Dart… These technologies might be newer and more fascinating, but I wouldn’t have nearly the trust in them in my ability to “do the right thing” to get a job done as I would with PHP. Having some experience with developers who use PHP and never “get it”, I worry about the quality of solutions provided by developers who migrate directly to the new hotness without the growing pains of having learned their language fully, the hard way.