P
Phlip
Tor said:Less of an issue now than back in the horrid days of applets.
Ooh, I love it when they fight back.
They are. But they're not C/C++ "syntactic sugar for pointers".
There is no language C/C++.
Arrays in C++ convert to pointers very easily, but they are still
first-class objects. They have a complete type, including a length, and all
these can be manipulated by ... generics.
Noone prevents you from using vi to write Java. Well, maybe the Emacs
tribalists do.
You missed the point. If an editor can parse your code and predict what you
are trying to do, then the language could too. The language itself could
finish these lines, and all I'd have to do is start them.
Read:
http://c2.com/cgi/wiki?RubyVsJava
log4j's src folder has 31,764 lines of code.
log4r's src folder has 2,071 lines of code.
That's not just fewer lines; it's an order of magnitude fewer, for the exact
same feature set.
Please don't say "that's because Java programmers write more professional
comments..."
Language defines what is virtual or not. It's up to the (virtual)
hardware to comply.
Again you missed the point. 'virtual' is a weak, primitive keyword that I
can use to assemble a class or an interface. I can control how concrete and
how abstract the class is. Just because I _should_ create interfaces doesn't
mean the language should _force_ me to.
You cannot legislate morality. (You _can_, however, legislate immorality!)
Is that the "let's pretend this block of memory is something else"
stuff "inherited" from C's union and void*?
Write an Any or Variant class in Java.
Whatever for? I've written GUIs in Java, and the Swing MVC system is
decent enough to use. Where do you need either of those?
You have insufficient experience with block closures.
A GUI should be event-driven. Block closures make those as easy as falling
off a log. Most of the code you write in a static-typing OO language, for a
GUI, is excess plumbing to route events to handlers, and then excess
plumbing to convey state variables into handlers. Block closures simply turn
that problem inside out. The language does the plumbing, and all you need to
do is add the custom behaviors.