Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

For about a year now, I've been doing full stack web development. I am doing about 66% backend stuff (in Python), but from a time to time, I need to write HTML, CSS and JavaScript. I really want to learn more JavaScript, but I can't find the time or passion to learn it. On the other hand, I would definitely happily learn fay-lang or purescript. But before I dive in, I am asking: do programmers who use these languages have to master JavaScript?
If I already master Python, would I benefit from using stuff like skulpt or brython before I master JavaScript?

share|improve this question

closed as off-topic by Justin Cave, MainMa, MichaelT, DeadMG, Thomas Owens Feb 15 at 13:05

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – Justin Cave, MainMa, MichaelT, DeadMG, Thomas Owens
If this question can be reworded to fit the rules in the help center, please edit the question.

1  
Programming languages are defined by some specification (usually a technical document in English). They can have one or several implementations (usually, some free software). So a programming language does not compile to another (but may have an implementation which generate code in some other language). –  Basile Starynkevitch Feb 15 at 13:12

2 Answers 2

Let me cite from your own question:

  • "… more JavaScript, but I can't find the time or passion …"
  • "I would definitely happily learn fay-lang or purescript …"

It seems obvious to me what is the more likely course of action. You obviously don't enjoy JavaScript as much as the other languages you mention. Having fun while learning and feeling passionate about the subject are great ways to stay motivated. So even if you might benefit from knowing JavaScript before you learn these other languages — and that's an if —, at the same time you will perhaps enjoy the overall journey less, or even give up before you reach the interesting part.

Why don't you start studying what you actually want to study with passion — and if you find yourself in trouble because you really require that JavaScript knowledge, then go and study JavaScript. You just might discover that once you see why you should learn it, and how your JavaScript skills will help you with the other languages, you'll feel more motivated and it'll be a lot easier because you now study it with a very specific goal... perhaps you will even enjoy it.

But then I don't know for sure. The above is just some bit of popular psychology.

share|improve this answer

There's certainly a case to be made for it. All high-level languages that aren't purely interpreted "compile to another language", and most developers manage to be successful without ever learning (or learning very much of) ASM/CIL/JVM bytecode/whatever else.

However, it's important to keep in mind the law of leaky abstractions. When you work on something high-level that translates to something lower-level, there will always be some case where something gets lost in translation. Software can and does have bugs in it, and cross-compilers are software. When things go wrong for whatever reason, because there are bugs or simply because there are concepts in your original high-level language that don't map well to the destination language, it really, really helps to know the destination language well enough that you can examine the output and figure out what's going on.

This is particularly true for JavaScript, because you'll generally end up in there anyway for debugging. If you go to debug a webpage, it's not going to display your original-language code in the debugger, afterall!

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.