Python in the browser would ultimately lead to all the same problems as Javascript in the browser. In a few years, we'll be hearing: Clojure in the browser, Scala in the browser, Haskell in the browser. I've been programming in Python full-time for the past 6 months, and it's main deficiency are the same as JavaScript's: no (optional) static typing - I'm really sick of writing checks whether my function got values of…
-Write statically-typed code
-Maintain large projects using packages and OOP
-Use unit testing, code generation, and refactoring tools
-Use many Java libraries out-of-the-box or with minor modifications (this part I often find mind-boggling)
-Write code that works on server and client (also mind-boggling)
-Ignore the DOM, just use widgets
-Ignore the vast majority of cross-browser issues
-Get great IDE support
-Readily deploy apps in servlet containers like GAE or Elastic Beanstalk
-Get very performant, minimized production code
-Get help implementing best practices such as safehtml
-Interleave with JavaScript
Main drawbacks are that there are few well-maintained widget libraries, compiler takes forever, Google has been a bit reluctant to expand JRE emulation, and the script format is a bit annoying. Java is also not a great asynchronous language since it lacks anonymous functions. However, if slightly uglier looking code really concerns you, you probably don't have your priorities straight.
I don't really know what the point of Dart is. I suspect it is being promoted more out of legal concerns over Oracle than out of technical merit.