|
Re: Will Closures Make Java Less Verbose?
|
Posted: Apr 10, 2008 8:57 AM
|
|
"His point is that Java has gone so overboard into "everything is an object" that it prevents simple and clear expressions of ideas. "
OTOH Javascript is messed up with its support for closures too. Closures in Javascript are used to fake up private attributes and methods, but when overused by newbies it makes a mess of garbage collection (specially on MSIE, where it leads to rampant memory leaks). And using in-place definitions of closures makes the code look like utter heck.
Rather than closures, it would be better to give Java the ability to refer to a function directly (as Javascript and C++ do) without having to use a string for lookup, or requiring a runtime check with a possible throw of an exception (compile time checking is much better for this).
eg. Method aMethod = MyClass.myMethod;
"We might have come to the conclusion that backward compatibility is being maintained primarily to serve companies that have no intention of upgrading to newer versions of Java anyway."
Actually, the reason I maintain backward compatibility is because
1) I can (Java fortunately allows this, and if they didn't - I would be looking elsewhere)
2) I didn't like the introduction of templates in C++ and I don't like them in Java 1.5+ either (they are an ill-considered hack to get around the problem of primitive variables - they also make the code look like heck) Coding in Java 1.4 guarantees I avoid all templates.
3) from a business point of view, not all OS'es may yet have ported the later versions of Java yet (e.g. mainframe OS'es are usually consistently behind) and older, unsupported OS'es may not have ports of later Java versions (e.g. the old WinNT box that I can't upgrade, but still has the power to be used as a developer station) If I want to hit the absolutely largest market, coding to the lowest version I can use is better for me (remember the "write once - run anywhere" promise?)
4) Java 1.4.2 is already good enough for most development. It doesn't need to be "improved" with a lot of additional bloat. Language developers really need to learn when to stop adding stuff just for the sake of adding stuff.
If Sun seriously wants to give developers a reason to "upgrade", then they should instead spend the bulk of their time rethinking their thoroughly ill-conceived Swing UI framework and replace it with something a little closer to SWT (but more cross-platform).
Why is it that developing a UI for a Java application has to be so messy and complicated, and produce such unappealing results? (only marginally mitigated by bringing in a Swing guru) Most companies I've been in usually give their UI work to newbies - and that mess is what their customers will see.
Why do you think WebUI's took off so quickly with Java, while MFC resisted it for much longer?
|
|