I learned basic JASS in one hour. It is not hard. It was my first programming language too, so you can't say I had any advantage. (Previous experience helps when learning new languages.) (Actually HTML was my first, but I only knew <i>, <b>, <u> and some more basic tags back then, so it doesn't count. And HTML is not a real programming language, its just markup.)

Knowing JASS so well helped me learn over 20 additional programming languages very quickly. I am still learning new ones, and one day I will switch to Assembly (or ASM for short). I believe every programming language is different, and each and every one has it's own purpose, something they are the best at. It is a generally accepted fact that every task has a best suited programming language for it's solution.

One of the first languages I learned after JASS is vJASS, which I don't use, but can read. It is useful to know vJASS when so many people develop spells and systems in it. Lots of hard-to-do tasks in JASS are simplified in vJASS. Many programming concepts missing from JASS were added through vJASS. And I use tools developed for vJASS when writing JASS code, so that alone is enough reason to know vJASS.

My dream is programming directly in machine code by creating exe files in a hex editor, but I would be alone then, as even the most brave programmers need to use compilers. People say it is a waste of time to use low level programming languages, but I am willing to pay that price for two things: total control over the computer and perfectly optimized code.

Another dream of mine is merging every programming language into one superprogramming language. Many people have tried this, and nobody succeeded so far. I am not going to try it until much later. I don't think I have enough experience now. I will keep learning.

A third dream is writing programs that can run outside of Windows and even DOS, directly at Operating System level. The main problem here is that one CPU brand doesn't understand code written for an other CPU brand. Instruction Set Architectures differ greatly.

But you are right, it would be quite hard to merge functional programming languages such as Haskell with object oriented ones like C#. (Because functional programming languages don't allow variables to change.) But but it could be done, if we dropped the whole "variables may not change" rule of Haskell. Yes, I'd quite like that.

You can compress a 20 lines long C# code into 1 line of Haskell, all the while improving your code's readability. (To programmers that understand Haskell, that is...)

I dont, well I dont like the compiler that I have to use, it has a few errors that are quite annoying, like sometimes when you try to start up IDLE it comes up with 'Sub process can't be found' which makes me have to restart the computer, then other times it just fails to read my code properly then I spend ages trying to find out whats wrong, I run the code again exactly how it was and it runs perfectly fine RAWR!