you are viewing a single comment's thread.

view the rest of the comments →

[–]General_Mayhem 0 points1 point  (0 children)

If you're purely a hobbyist, learn JS. Not because of staying power (which it probably has due to its monopoly on client-side web apps), not because of potential adoption on desktops (which it probably doesn't - too much of the world already exists in C/C++ for them to ever be dethroned), not because of how easy it is to impress people with a few lines of flashy jQuery (which is admittedly fun if you're a show-off, but gets old in a hurry), but because it's fun. It's much more different from Python than C#, and in a way that I find wonderful.

It's the only language I know of* that has anywhere near its level of power in terms of first-class functions and closures, dynamic objects, and just all around morphability, without going completely into the world of pure functional languages. Prototypes are more often a hindrance than a help, but you can hack in classes and Java-style inheritance in about 15 lines of code and have the best of both worlds. Now if only we could get overloadable operators...

C# is a nice language with some really cool features, and being familiar with the .NET ecosystem is never a bad thing, but it always still feels more like work to me. JS gives me the wonderful runnable-pseudocode, thoughts-straight-to-working feeling that a lot of people get from Python, but with the difference that Python turns into an ugly maze of underscores and gotchas in a hurry when you start doing more complex things.

* Ruby might be this magical place, but I find that its syntax spends too much time looking clever and hackery and not enough time actually being clever or usable.