Hacker News new | comments | show | ask | jobs | submit login

JavaScript has consistently beaten out any other language as the client-side language of choice in both my personal and professional projects. Clearly, it deserves the top spot.

I believe the grandparent is attempting to make a distinction between a tool and (for lack of a better term) a material. With the idea being you use tools to shape your materials to create your end product. You carry the tools with you from project to project but the materials stay in place.

To use the normal house-building analogy, I would say that the Tools are obviously saws, drills, etc. Things that you use on every house you build but that are not part of the house itself. These represent notepad, visual studio, git, etc.

The Materials are wood, nails, etc. Things that make up the house and are not removed when the builder leaves. These represent the actual code (ie, lines/libraries of javascript) you build with your tools.

e: So it's like saying the #1 carpenter's tool is wood.

Sure, but that's ultimately irrelevant. The survey should be demonstrating choices made by developers, but (web) developers don't have much of a choice when it comes to using JS. Unless you want static HTML, JS is in your stack. In that sense, including JS is rather moot, unless it's exclusively about NodeJS.

If it is about Node, then I retract my point.

I don't think that is a good analogy. The end product (app/house) is what the code actually does. What you use to make that product is a tool, including what language you use.

I disagree. It makes more sense to me to consider the language the material or medium (that is shaped by a tool) rather than a tool itself.

To examine another simple example, consider a potter who crafts a vase from clay. The potter's wheel and his hands are the tools he uses to form the clay medium. I do not consider the clay itself to be a tool.

I think that the analogy fits. Javascript is more accurately represented by the clay than by the wheel. If your final product is "function foo(bar){...};" you are forming that function from javascript using a text editor. The same way a vase is formaed from clay using a wheel.

Also worth noting, the same way that vase can become a tool used by some other craftsman on some other project, that javascript could be packaged in a way that lets you take it with you to other projects. But just like the original clay is not a tool, the javascript isn't a tool. But the package you make with it might be.

I agree. It's just like how a carpenter's best tools are English, arithmetic, and blueprints.

All those things do help, but a carpenter can do the same job with an axe, a saw, a chisel, a knife, or a froe but in the end what they are doing is cutting wood. If you're a programmer and you don't look at languages as a tool you are doing yourself a disservice. In the end you just need something to turn some data into a different kind of data, everything else is a tool to do that one thing.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact