On Monday, 8 September 2014 at 08:50:54 UTC, Chris wrote:
On Saturday, 6 September 2014 at 02:24:35 UTC, Mike Parker wrote:
On 9/6/2014 12:32 AM, Chris wrote:


"I don't find it restrictive at all (I actually enjoy it; I also enjoy C). As long as you work within its boundaries and use it as it's meant
to be used, it works perfectly well."

Isn't this statement a bit contradictory :) It's not restrictive as long as you stay within its boundaries. In D you can stretch the boundaries a
bit.

Not contradictory, no. Every language has boundaries and you can stretch them in any language. My point is that when you do so you are then in the wild frontier and are more likely to be frustrated in your efforts.

But in D you have to walk quite a bit to reach the boundaries. In Java they're around every corner. It's like a lunatic asylum where you're allowed to do anything you want, except for going out into the real world.

The most frustrating thing is that programmers have to wait for years to get this or that feature. Then there are weird things like auto-boxing etc. that are down to OOP ideology. If people increasingly use static methods to work around OO, well, then why not get rid of the rigid OOP regime altogether? OO is a pattern that helps to deal with certain problems, not a cure for everything. It should never have become a religion, a belief one would base a whole language on. The hello world program shows how absurd this is, and one absurdity begets another one ...

public class MyClass {

    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }

}

1. Write a class
2. Use a static method to work around OO.
3. Hm. WTF?


1. Write a class
2. Use a class method in OO terminology
3. Just like any other pure OOP language (Smalltalk, Eiffel, Sather, ...)

This is not Java specific.

Autoboxing is already present in Lisp and Smalltalk with their type tagging.

--
Paulo

Reply via email to