I agree - browser differences are what brings the whole client-side development experience down. 99% of the problems are with IE, though thankfully that has improved a lot since IE8.
Regarding type safety, type inference allows you to have strongly-typed languages that look weakly-typed. In University, I fell in love with a language called ML which is like a strongly-typed version of lisp. I remember writing a 30 line piece of ML code that was a fully functional ML type checker - pass any ML program in as input, and it will return whether the program type-checks ok or not. It was as close to magic as I've felt in software development.
Happily, they're starting to introduce similar ideas in .NET (sorry, I'm a C# guy, never did much java) with lambdas and var declarations. It's nice to be able to write:
var x = new Dictionary<string,MyObject>();
and have the IDE know what x's type is, and provide intellisense on its properties/methods.
|