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

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.

Applications are open for YC Winter 2018

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