4 ms·
I haven't worked with enough programmers to either agree or disagree, but I personally try to become really fluent in the languages that I use. For example, par
by nathan_f77 14y ago
I haven't worked with enough programmers to either agree or disagree, but I personally try to become really fluent in the languages that I use. For example, participating in the ruby-core mailing list has really increased my knowledge of Ruby methods and internals.
It also really pays to know a language when you're using something that compiles into it. You're going to have a bad time with Coffeescript if you're not already fluent in Javascript, and you need to be able to understand the patterns and conventions in the compiled code.
- ajross 14y agoThe last bit is sort of true and not. Obviously you don't have to know Javascript to write Coffeescript any more than you have to know C to write Javascript (or how your machine architecture works to write C). But it certainly helps. And you'll never write good code without a solid understanding of the runtime your syntax is sitting on. But I don't think that's any more true of CS/JS than it is for any other environment. Java progammers need to understand the JVM, C people want some ability to read disassembly and understand calling conventions, people writing code generators need to understand the hardware pipeline they are optimizing for. It's turtles all the way down.
- benaiah 14y agoIt is more true for Coffeescript, because Coffeescript is so closely tied to specific Javascript problems and idioms that it makes it more of JS shorthand than an actual new language. It's very different than understanding .NET (or Mono, for that matter) to write C#, or understanding the JVM to write Clojure.
- pfisch 14y agoWouldn't it be better if you instead knew a good bit of c++/obj-c, c#/java, php, matlab, python, etc. It's just like investing, you are putting all your eggs in one basket. I don't think Ruby's future is especially in trouble, but it is certainly not as secure as the basket of languages I included above. Also ruby is only really used for a small subset of tasks. With the basket of languages I included you could really do anything from microcontroller programming to making video games to website dev.