>>JavaScript Sucks. ... Microsoft's announcement of TypeScript got me thinking today. Is this a step in the right direction?

probably not, but since when does a hacker let that stop him?

>> But is it really just duct tape and super glue for a programming model that needs to be replaced?

In my opinion, no. But I can understand why some people do not like the looseness provided in javascript.

>> Now people are even trying to use it on the server side via node.js.

Historical note - Netscape released server side javascript in Netscape Enterprise Server back in December of 1994. There has been many server-side implementations since then, before and after node. Node is just the first that has a strong culture.

>>Ever try to use different JavaScript tools with conflicting jQuery versions? Yeah, that sucks.

Why would you do that? Sure there are certain situations where you may have conflicting versions due to widgets or something, but I don't see why it would ever be required to have two versions, let alone having to architect around that need. On top of that - this is a complaint against a library, not a framework.

>>Performance? Let me just point to the old Facebook mobile app made with JS & HTML5. It sucked. Enough said.

How about iTunes? Or the LinkedIn App? You don't notice apps made with html/js unless they suck - because when it is well done it feels natural and native.

>>How about unit testing JavaScript? I've never tried it, but it sure sounds like fun.

It is. Seriously. Assuming you like the confidence of coding against tests.

>>My biggest problem with JavaScript is code security. If I make some awesome product, there is no way to protect my code. How can we expect game makers to write apps in 100% JavaScript and HTML5 if they can't protect their intellectual property?

Not sure what you mean by this. If this were true we would have a million gmail clones.

>>There are compiling tools like Closure, unit test frameworks, minify, coffee script, TypeScript and a bunch of other tools. But to me, they all try to make up for the weaknesses and problems with JavaScript.

Closure and similar minifing tools are not to make up for issues in the language, but to address the fundamental fact that browser code goes over the wire, and as a result, should be made to be as compact as possible. You do the same thing with swf's in flash, or java applets. You want to send down the smallest possible version to make it as fast as possible.

I have no idea how unit test frameworks make up for weaknesses/problems. They test your code, and nothing more. They exist in every mainstream language, and honestly has only recently started to catch on in the javascript community. I would really like to hear your issue with them in more detail.

Coffee script is the only thing in this list really is trying to make up for weaknesses in the language - but a lot of that has less to do with the language having problems as it does with its uniqueness. There are a lot of 'features' in javascript that are not obvious, and backwards compared to other languages (a lack of block scoping comes to mind), that coffee script tries to smooth over.

>> JavaScript is a mess and we spend a lot of time trying to work around all of it's problems.

It is also, by far, the most installed programming language in the world, as well as one of the easiest to get started learning. While it may not be ideal, I do believe it is a beautiful language with a ton of underrated features.

At the end of this, I really don't understand the argument. You aren't really saying much at all. If you could go into more detail, I would really like to hear hat features specifically you feel are misguided or wrong in javascript.