5 ms·
I think your on the money here. Also, I believe that you need to learn more than one language to full appreciate those concepts. There is some irony in the fa
by iovrthoughtthis 9y ago
I think your on the money here.
Also, I believe that you need to learn more than one language to full appreciate those concepts.
There is some irony in the fact that i developed my own indepth, initiative understanding of these concepts while learning JS.
- charlysl 9y agoYou can certainly learn many concepts and techniques using js, but it is still a severily limited language for general programming. You could learn using many different languages for sure, but I believe it would be more efficient with one language that is truly multiparadigm, where no paradigm is favoured and there are primitives for all core concepts. With all these general concepts, techniques and design principles under your belt, learning the core of a new language is a breeze, almost just like translating the syntax. Maybe it has all the primitives, or you have to use a lib or build your own, or apply a design pattern, it might be more or less verbose, but you would be just implementing the crucial thing, the design. Of course, then you have to learn the idioms too to become proficient.
- iovrthoughtthis 9y ago> but it is still a severily limited language for general programming. I don't understand where this concept comes from? It is as turing complete as any other language. From a "General Programming" perspective, it is also one of the most prevalent run time environments. > You could learn using many different languages for sure, but I believe it would be more efficient with one language that is truly multiparadigm, where no paradigm is favoured and there are primitives for all core concepts. I find being in a single language can lead you to associate the abstract concepts with the syntax too much. In moving the concepts between different syntax and forms the abstract notion becomes clearer, for me at least. I appreciate that learning everything in a single would likely be more "efficient". > With all these general concepts, techniques and design principles under your belt, learning the core of a new language is a breeze, almost just like translating the syntax. Absolutely! :)
- charlysl 9y agoIts just that its domain is mostly restricted to the web. As you pointed out this is not so terrible at all, at the end of the day that's where the bulk of the jobs are for instance. Actually, I am amazed that a language that was originally designed for such a narrow domain is where it is today (thank XMLHttpRequest and V8 for that). I totally agree that learning several languages is extremely enlightening, exactly for the very reasons that you have listed. One big reason for one teaching language is that there seems to be a bit of a FP vs OO religious war of sorts. If you think in concepts, such disputes look shallow; in fact, the whole idea of paradigms becomes irrelevant. This is why I believe that to learn both FP and OO in the same language (together with many other paradigms) is much more enriching, because then you will learn which one to choose for a given situation, based on relevant techniques, and when and how to combine them, rather than being stuck with whatever is available in a language that favours one paradigm (or just one form of concurrency, or of inheritance etc). You will learn how to let the problem drive the design, rather than the language. Pure languages like Haskell or Smalltalk, for instance, can be optimized and super concise precisely because they are restricted to one paradigm. But, for the reason above, I don't think they would be good for teaching general programming and only entrench that FP vs OO view (in fact, I think js would be better than these). But once you know, learning such languages is a pleasure.