The Best Programming Language, Tool, and Technology is Here!

I think one of the biggest challenges that developers face – especially new developers – is this feeling of having the keep up with the newest, latest, and greatest technologies that come out almost monthly (if not weekly), and the guilt that follows when peers attempt to “hold them accountable” (for lack of a much better phrase) for not knowing or not using something.

Now, for the record, when it comes to the technologies that people opt to use for their projects, I don’t really care – to each his or her own. Whatever makes you more productive and gets you solving problems faster, then awesome.

Sure, there’s something to be said for a team using a unified set of tools, but that’s content for another post.

Generally speaking, can’t we stop with espousing every latest-and-greatest language, tool, framework, whatever as the next best thing?

Because it’s probably not.

The Best Programming Language is Here

In recent years, there has been a very interesting shift in the culture of programming such that every time a new technology comes out, there’s a mad dash for other people to learn it quickly, to claim how much they love it, to swear it’s the best thing since a compiler, and … then what?

Move on to the next thing that comes along in a few weeks

1. We’re Speed Dating

" So Whatcha Up To This Week?"
” So Whatcha Up To This Week?”

It wasn’t that long ago that we didn’t have libraries like jQuery (or Prototype before it) to help us with writing JavaScript.

In fact, it’s only been within the past few years that JavaScript has surged in popularity among developers so much so that we’re now not only writing code on the client-side in JavaScript, but on the server-side, as well.

And now, we’ve got a variety of different build tools cropping up all of which are based on JavaScript that are meant to help us automate certain tasks for our web-based projects.

But just as soon as one takes hold and gets anywhere close to something resembling something such as mass-adoption, something new comes along and is espoused as the best thing ever.

2. Inversion of Thinking

We've got it upside down.
We’ve got it upside down.

The thing is, it wasn’t that long ago that people appreciated certain languages and tools that had been around for years – decades, even – because they knew they would be robust.

Developers had been building software, hacking away at compilers, and basically continually iterating to work out the kinks in their languages and tools such that they became extremely powerful – so much so that they could predict errors before you even compiled the program (think about background compilation for VB.NET which isn’t even that old – that is, if you can get past the acronym “VB”).

Now, we’ve got this weird inverted perspective that goes something like this: If something new comes along that can replace something I’ve been using for a while, then it’s probably better.

Maybe it is, maybe it isn’t, but it’s weird how quickly our perspectives have shifted.

3. “Kids Today…”

"I remember writing code up hill both ways in the snow."
“I remember writing code up hill both ways in the snow.”

At this point, I can’t help but wonder what the previous generation thinks about the current generation of programmers.

These are guys who ended up having to do a lot more “manual labor” in terms of writing lower-level code, memory management, etc. to build their programs, and here we are doing a significant portion of our work in, say, browsers or in these incredibly polished environments that give us simulators for our computers, phones, tablets, and so on.

And rather than working diligently to get incredibly good at solving problems for a certain platform, we’ve fallen prey to some sort of programming ADD where we just look for the next thing that’s available and trust that it’s going to be the best thing to use.

4. Ah, The Irony

Isn't it ironic? Don't you think?
Isn’t it ironic?

But there’s a bit of irony in all of this:

This is coming from a generation who wants everyone to be able to code, yet shuns people when they don’t use the language, framework, platform, toolset, database system, or whatever other programmed-related term fits that they deem to be the best for the job.

And if you think the latter part of that statement is false, then read nearly any blog post, Hacker News thread, or random Twitter discussion on a given language, framework, or set of tools, and you’ll find people literally insulting a persons intelligence or personality for not using a particular technology.

For those who are in the WordPress world, you likely experience this on a monthly – sometimes weekly – basis.

How often have we heard:

  • The WordPress codebase is a mess. OMG it makes my eyes bleed.
  • WordPress has a low barrier to entry – that’s why so many people are using it.
  • It uses PHP? Nasty.
  • …and so on.

And you know what? All of those arguments can be validated for the person who is saying them, but that doesn’t mean that it’s all 100% correct, or that it’s a purely objective truth.

Somethings, perhaps, but all of them? Hardly.

Replace ‘WordPress’ for whatever is your platform of choice, and I’m sure you’ve at least witnessed some type of religious war or crusade as to why it’s the end-all-be-all of development. Some of you may have even participated.

You’re Not Guilty

Whatever the case may be, I remember a time in my career when fellow developers would ask me if I knew a certain library, language, or whatever and if I said “I don’t know,” then they’d gush about how much they loved it, and then I’d be left feeling guilty – like I was doing something wrong – because I wasn’t an expert in it.

But that goes away (and I hope it does for everyone) because you can’t take a deep dive into an area of technology without investing years before becoming an expert, and I find it highly unlikely that you “love” something after spending a few hours with it.

Or maybe you can – and if so, more power to you – but I can’t.

As programmers, how can we – in good conscious – invite other people to learn to code, and to step into our field and then chastise them when they don’t use whatever we think they should be using, or deem them less-than-capable because they aren’t using something that was made available last week?

Whatever the case may be, at least be consistent in something and pick a side: Do you want people to learn to code and to solve problems, or do you want people to skip along the surface of technologies as they appear spending more time learning how to use the technology rather than actually getting stuff done?

15 Replies to “The Best Programming Language, Tool, and Technology is Here!”

  1. I love this, especially now.

    A year or so ago I didn’t know much Obj-C. I taught myself. It wasn’t that I was overly-talented but because I had, over the years, learned what it meant to be an engineer rather than a code-monkey. And now I’ve parlayed that into building a OS X app…

    The point is that it’s more about being able to think properly about development and have all languages in an open palm instead of being so tight-gripped and fundamental about it all.

    Choose the one that makes the most sense for the problem at hand and leave the pundits to do their “punditting” (that isn’t a real word, i just made that up).

    1. I totally agree!
      I love when someone shows me something new (whether it’s in a derogatory context or not) because then I have a new “tool” to learn and apply in the appropriate situation.
      I don’t think there is an end-all-be-all language or platform for every circumstance, best to just be as knowledgeable as possible in the technology you enjoy using the most… then your creations will be richer.

      1. I don’t think there is an end-all-be-all language or platform for every circumstance, best to just be as knowledgeable as possible in the technology you enjoy using the most… then your creations will be richer.

        Agreed. No silver bullet exists, and a lot of people will say that, but their actions kind of contradict it.

    2. Choose the one that makes the most sense for the problem at hand and leave the pundits to do their “punditting” (that isn’t a real word, i just made that up).

      Exactly.

      And I think we’ve gotta accept that pundits will, ahem, be pundutting for as long as the Internet exists. Some of us have grown up watching it happen (and it still irks us).

      But what sucks is that newbie developers get into the fray, and then some of them feel guilty or discouraged because of it, and that simply sucks.

  2. I think the heart to this one is that a talented craftsman can take any technology and make something great with it and the system they use is nothing more than a tool to get there. Languages and systems are not what’s on display in the final product. A talented craftsman will pull out the right chisel when the task calls for it and similarly should a developer. People inherently want to be included in a group and I believe that is why you see such passionate arguments defending their choices of tool. I have my preferences of tools but I definitely don’t shy away from learning an older one if it’s right for the job and I sure don’t care if others don’t agree with my choices. Look at the final product and not the means to it. Then we can talk. That being said, Rails is the best!!! :P

    1. People inherently want to be included in a group and I believe that is why you see such passionate arguments defending their choices of tool.

      Sometimes, I think this is the case, for sure. But not all the time. Sometimes, people are defensive about things for illogical reasons – it’s akin to liking a band until they become popular, then blame them for selling out (which, if you’re a fan, you should be proud that they grew in their success).

      That being said, Rails is the best!!! :P

      Yes it is! For you on whatever you’re working on right now ;).

  3. It’s odd to watch coding communities take on less-desirable parts of social interaction. Exclusivity was always a problem, but in “solving” it (by making coding a more common thing), we’ve simply shifted the focus to a different form of exclusion (ignoring anything but the latest & greatest).

    Sadly it’s human-normal to behave like this (exclusivity is a powerful tool for manipulating others), so the problem won’t solve itself. IMO, the people that matter are those who ship products. Everyone else is just bragging around the water cooler.

    1. It’s odd to watch coding communities take on less-desirable parts of social interaction.

      Seriously. It’s a bit of a paradox, IMHO especially given that it’s only grown (or gotten worse or more pervasive or whatever term you want to use) over time.

      IMO, the people that matter are those who ship products. Everyone else is just bragging around the water cooler.

      Well said. Exactly this.

  4. I love these post.i heard so many times that bullet about using PHP and being it nasty. Because of that I have apent some times thibking about starting using another language but at the end I have realized that you should use the one that makes you happy and I love php and im feeling so happy when im coding with it. Maybe because at work im using asp.net and c#. Everybody should use a language that best suits their needs and with which they feel “at home”:)

    1. Everybody should use a language that best suits their needs and with which they feel “at home”:)

      Sure – whatever helps you to bridge that gap of getting stuff done and being happy while doing is worth pursuing.

  5. Great points, Tom. One concept of programming and working on the web I’ve been really trying to drill back into my head is doing work with intent. As developers, we do our jobs with the intention of delivering results.

    Because we’re the ones trusted with that, we need to make sure we find the “right” tools for our job. That’s too subjective to really help the decision-making process though, so it becomes vital that we shop around with our own needs in mind; to build a toolbox around our comfort zones, philosophies, and workflow. Not just because a “well known” person in the community swears by a certain tool.

    We love flaunting our tools around. We take pride in using a great tool, and can learn a lot from the way other’s use theirs. How this all became so personal — I don’t know. I just know that we’re all here to build something. Anything else is a distraction.

    1. Your comment is great, and I love everything you’ve shared, but this especially stood out to me:

      We love flaunting our tools around. We take pride in using a great tool, and can learn a lot from the way other’s use theirs. How this all became so personal — I don’t know.

      I don’t know either, but I suspect that it has to do with the same thing inside of us that gets us allegiant to certain things (political, or whatever else) and makes it difficult for us to try to make objective decisions based on information rather than subjective feelings based on emotion.

      This isn’t to say that emotions don’t matter or are less important – I don’t believe that, and that’s grounds for an entirely different post – but when it comes to defending something, people often rely on weaker arguments at the risk of losing ground on something they’ve believed or liked for so long, and that’s how I think part of it came to be.

      That, or people just get bored ;).

  6. Great article as always, and timely for me. I’m learning node.js, and have appreciated Grunt, and it’s fun to use. Then I come across articles by highly esteemed developers, saying how Gulp and Browserify are in, Grunt is out. As someone who is right in the middle of learning all of this, I have to make a decision: do I stay the course, start using Gulp, etc…, learn it ALL, or just abandon all the tools and focus on doing it the old-fashioned way? That’s how I learned other languages, and I’m better for it. However, using tools to enhance efficiency is important to me, since my time is money as a freelancer. But there’s a point where it becomes inefficient and distracting from the goal.

    1. Then I come across articles by highly esteemed developers, saying how Gulp and Browserify are in, Grunt is out.

      I know which article you’re talking about, and I – like many – have my opinions on this, but I’m not a huge fan of pushing too hard against something without calling it out explicitly so I digress.

      Suffice it to say that I think that’s a generalization and a link bait headline. You can replace “Grunt,” “Gulp,” and “Browserify” with any three words in the programming industry and come up with the exact same headline.

      However, using tools to enhance efficiency is important to me, since my time is money as a freelancer. But there’s a point where it becomes inefficient and distracting from the goal.

      Exactly – that’s the balance we’ve gotta maintain.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.