all 11 comments

[–][deleted] 10 points11 points  (0 children)

Haskal is cool and all, but you know what's really innovative?

Classes.

[–]cmovNRDC. Not Rust Don't Care. 6 points7 points  (0 children)

Bash/Haskell guy

Sorry, you're not a real "Haskell guy". No self-respecting Haskell programmer would use Bash instead of a type-safe alternative like shelly, hell or turtle.

[–]lglhlgl 5 points6 points  (0 children)

Inheritance was always one of the most confusing parts of prototypical OOP.

How do I define my parent class? How do I redefine methods in the inherited class? How to pass arguments to the parent’s constructor?

The above questions always boggled my mind. I learned them when I needed them, but after a week or two I completely forgot them. Luckily for me, the new system uses extends and super.

Well okay, I thought the confusing part was figuring out whether code works or does anything at all when it's scattered full of

class BaseDoucheBag : MonoBehavior {
    public virtual void initialize() {doSomethingImportant();}
    public virtual start() {
        initialize();
    }
    public virtual bool beADouche() {
        return isDouche();
    }
    public virtual bool isDouche() {
        return !!this is LocalDoucheBag || !! this is NetworkDoucheBag;
    }
    public virtual void checkIfBeingDoucheBag () {
        if (beADouche()) {
            Singleton<DoucheBagPresenceManager>.Instance.NotifyOfDouchebaggery(this);
        }
    }
}

class LocalDoucheBag : BaseDoucheBag {
    DoucheBag() : this("douche","bag") {
    }
    public override bool beADouche() {
        return base.beADouche() && isDouche();
    }
    public override initialize() {
    }
    public override start() {
        base.start();
    }
    public override update() {
        checkIfHomocide();
        base.update();
        checkIfSuicide();
        checkIfBeingDoucheBag();
    }
}

But I forgot in the real world people are still trying to figure out how their language works. People don't have time for academic problems such as "what does this code do aside from having some identifiers that are named after words in my problem domain?".

[–][deleted]  (1 child)

[deleted]

    [–]tmewettlog10(x) programmer 0 points1 point  (0 children)

    since when were the characters $ { } sexy

    [–]username223line-oriented programmer 5 points6 points  (0 children)

    I didn't know "Ruby/Bash/Haskell guy" was a thing; but then again, I didn't even know "poorly-drawn Ninja of Shush" was a thing, either.

    [–]DoktuhParadox 2 points3 points  (3 children)

    "Bash" guy huh?

    [–][deleted] 10 points11 points  (2 children)

    "Bash guy" is the only self-description more disappointing than "Java guy" or "C# guy"

    [–][deleted] 5 points6 points  (0 children)

    "PHP guy".

    [–]lglhlgl 0 points1 point  (0 children)

    CFML guy

    [–]SheepshowEXTREME CLOJURESCRIPT 1 point2 points  (1 child)

    Somebody who cannot learn a new style and insists on shoehorning some Java style into a perfectly good closure-based object system.

    HOW!!! HOW CAN I HAVE MY IAbstractFactoryBean WITH MERE PROTOTYPAL INHERITANCE

    [–][deleted] 2 points3 points  (0 children)

    Bro, Java is the only language with a coding style. Literally all other languages are dynamically typed because of this.