This is the first entry in DZone's series that will revisit the top articles of 2011 throughout the month of January 2012.
So… What do Java developers hate?
- Variables are global in scope
- “this” has different meaning based on the invocation type (learn this for your own sake)
- Braces do NOT guarantee scope
- Functions are first class citizens, not classes (avoid classes, you will set yourself up for disappointment)
- Functions are objects, not simply methods to a class
- Variables are dynamically typed objects
- Difficult to debug (use FireFox & Firebug addon)
- Semicolons are optional (bad idea, put them where you want them)
- Functions always return values, a value or “undefined”
- “new” has some specific assumptions, not simply creating an Object
- Cross browser compatibility (use jQuery or GWT to address most issues)
- prototype system – Object.prototoype, object linkage, delegation, hasOwnProperty() method, etc.
- the 4 invocation types: method, function, constructor & apply
- dynamic languages such as groovy, ruby, etc. they share many similarities
- Scope using braces
- Strong typing