For example:
- Prototype object systems are great... except don't actually use this, it doesn't really work. Use our simulation of a classical object system instead.
- Lambdas are wonderful and powerful when combined with closures... except they leak memory. Don't use them, but declare named functions.
- The 'this' parameter was a stupid idea. Use it as little as possible, except when absolutely necessary.
- Be really conscious all the time, because of a stupid and misguided semi-colon insertion feature that will mess you up.
- Don't bother trying to use anything other than C style for loops over collections. They mess you up.
- The dynamic type system is nice... however experience shows us that what we really want is actually a static system, so JavaDoc types of everything with a cumbersome and extremely verbose syntax instead.
- Extending prototypes of existing objects is an amazing and powerful feature. Please don't ever use it.