Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

Unlearning Object-Orientation

Name: Anonymous 2011-11-21 9:22

Does anyone have any good resources on unlearning object-oriented design and programming?

I'm trying to build a software system and my mind keeps thinking in terms of polymorphic classes and virtual methods, and I can see how just writing a few simple procedural modules for each concrete implementation of the system would probably end up with far less code and more performance, but I'm having a hard time moving forward with anything.

Object-orientation has paralyzed my analysis skills and I need something to get me out of this rut.

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-21 9:27

>>1
Get an old program you wrote and rewrite it step-by-step to imperative style.
Note every step and improve it again, until you removed most abstraction and cruft, so it can be optimized and tweaked

Name: Anonymous 2011-11-21 9:37

Start programming non-gui apps in Racket.

Name: Anonymous 2011-11-21 10:24

resources
The Linux and *BSD kernel source.

Just write as little code as you need to get things done. Writing in C also helps.

Name: Anonymous 2011-11-21 14:30

>>3
Lisp is shit.

Name: Anonymous 2011-11-21 15:25

>>5
Racket isn't lisp.

Name: Anonymous 2011-11-21 15:37

>>6
But if it ain't Lisp, it's crap.  So Racket is crap.

Name: Anonymous 2011-11-21 15:49

>>7
oh shit, taking it from all sides

Name: Anonymous 2011-11-21 16:32

ENTERPRISE PROGRAMMERS would have you belive that OO is what it's all about. It sure has brought upon us the curse of inheritance, which leads to rigid, horrible class hierarchies that doesn't help in the least.

But OO does use some good things: modularity, composition, interface/implementation, instansiation and procedures with a local variable environment.

But guess what? You don't need classes for any of that. Modularity has been fundamental since at least the criteria paper. A module interface is just a set of functions. You don't need language support to define which ones a module exposes publicly. If you have a plug-in module you could always pass it a virtual table and pass along the necessary state. But all linkage and environment issues goes away with a language that has first class procedures.

Name: Anonymous 2011-11-21 17:44

>>9
tl;dr: USE GO.

Name: Anonymous 2011-11-21 17:56

Dubs

Name: Anonymous 2011-11-21 18:18

>>11
Dubs are terrible, I prefer listing to the original audio.

Name: Anonymous 2011-11-21 18:26

>>10
Go where?

Name: Anonymous 2011-11-21 18:43

>>4
I don't know about BSD, but Linux is full with object-oriented parts.

Name: Anonymous 2011-11-21 18:48

use python

Name: Anonymous 2011-11-21 19:34

>>14
If by "object-oriented parts" you mean concepts like data structures and linked lists that predate the term.

Name: Anonymous 2011-11-21 20:07

learn how to model things with lambda.

Name: Anonymous 2011-11-21 20:55

learn how to model things with GRUNNUR.

Name: Anonymous 2011-11-21 22:23

>>1

write a program that uses statistical techniques to break repeating xor keys, and do it in brainfuck.

Name: Anonymous 2011-11-21 23:14

Faggots. >>5 and >>7 proved that every programming language is crap or shit. Just give up already.

Name: Anonymous 2011-11-22 3:11


1 ?- assert(lang(lisp,shit)).
true.

2 ?- assert(lang(L,crap) :- \+ L = lisp).
true.

3 ?- lang(prolog,Is).
Is = crap.

;_;

Don't change these.
Name: Email:
Entire Thread Thread List