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

Pages: 1-4041-8081-

Abstraction considered harmful

Name: Anonymous 2008-04-27 19:31

From SICP:

We control complexity by building abstractions that hide details when appropriate

Which means that with abstraction the whole system will grow and bloat without the programmer noticing it.

Discuss

Name: Anonymous 2008-04-27 19:40

we should code everything in assembly to avoid abstract bullshit

Name: Anonymous 2008-04-27 20:10

>>1
IHBT

Abstraction is the key to computer science.

Discuss

Name: Anonymous 2008-04-27 21:05

Abstraction is the key to late binding, which is the key to computer programming.

Name: HAX MY ANUS MEME FAN 2008-04-27 21:09

>>4
Which is the key to anii haxing amirite?

Name: Anonymous 2008-04-27 21:11

Abstraction was always a way to keep the less educated programmers from knowing what really happens, by hiding things in the complexity. Have we deliberately limited the full capabilities of programmers in this fashion? You bring up an interesting topic.

Name: HAX MY ANUS MEME FAN 2008-04-27 21:13

More importantly though, abstraction means you don't have to fiddle with the details when doing the higher-order stuff. Hiding also means, in a way, making something automatic.

Also HAX MY ANUS

Name: Anonymous 2008-04-27 21:28

>>7
If you put the spoiler tag inside the sup tag, it won't show through like that.

HAX MY ANUS

Name: Anonymous 2008-04-27 21:31

/prog/

Name: HAX MY ANUS MEME FAN 2008-04-27 21:44

>>8
I didn't really mind but thanks. Good to know.

Name: Anonymous 2008-04-27 22:06

>>5
Anuses NOT anii.

learn2 latin

Name: Anonymous 2008-04-27 22:11

>>11
learn2 hax anii

Name: Anonymous 2008-04-27 22:14

abstract my anus

Name: Anonymous 2008-04-27 22:21

>>6
>Have we deliberately limited the full capabilities of programmers in this fashion?

I know you are trolling, but abstraction is not just a crutch for weak programmers. Notation in mathematics is another form of abstraction -- are you going to say that every mathematician who invented a suitable notation was not an EXPERT?

Name: Anonymous 2008-04-27 22:44

>>1
when appropriate

Name: Anonymous 2008-04-27 23:11

Computer software is built on many layers of abstraction.

These abstractions make the modern computer possible.

Name: Anonymous 2008-04-28 1:07

Abstraction in practice is too heavily tied to black boxes.  Building things up in layers is fine, but not letting programmers look at what inside the layer below is not.  Just because the code doesn't need to know the implementation details doesn't mean I don't.

Name: Anonymous 2008-04-28 2:25

>>17
gdb / ollydbg
Thread over.

Name: Anonymous 2008-04-28 4:32

>>2-19
WHBT.

Name: Anonymous 2008-04-28 6:47

MY ANUS WAS HACKED AND I ABSTRACTED MYSELF VIGOUROUSLY

Name: Anonymous 2008-04-28 8:28

Abstraction allows for much more useful optimization than trying to hand-squeeze every line of code.  If all code uses a matrix library, or IO library, and that library is made faster, a shitload of programs become faster.  Plus, the eyes of optimizing programmers can be focused in one place, combining ideas and efforts instead of everybody having a half-assed fairly quick attempt bolted in to their shit.

Name: Anonymous 2008-04-28 8:41

From SICP:

We conjure the spirits of the computer with our spells

Which means that as wizards we are immune to the failings of feebler minds.

Name: Anonymous 2008-04-28 9:07

Name: Anonymous 2008-04-28 9:25

We hax the anuses of the computer with our spells

Name: Anonymous 2008-04-28 10:09

Abstraction makes the implementation indepedent of the usage. So you can change your matrix class to store the information differently, and it won't matter to the program that uses it.

Name: Anonymous 2008-04-28 10:20

You might want to read SICP again.

Name: Anonymous 2008-04-28 11:40

Abstraction can in some cases make systems much more complex.  Layers of Abstractions insulate you from the whole system which can be bad in a lot of cases.  In learning especially I believe that abstract bullshite should be layered on after the underlying systems are understood.  SICP is a good example of fundamental programming being taught then more layers added on as the book progresses.  A lot of modern textbooks, especially OO ones, do not do a good job of this.   

Name: Anonymous 2008-04-28 11:41

>>27
Continued.

Hell A lot of modern OO textbooks are basically how to fit abstract pieces together without understanding what the fuck is going on.

Name: Anonymous 2008-04-28 11:47

>>28
You get abstractions all through the complexity stack. Even assembly language is an abstraction of machine code. But sometimes you need to break the abstraction because it doesn't do what it should do, or what you expect, or what you need.

Name: Anonymous 2008-04-28 12:06

abstract ur anus

Name: Anonymous 2008-04-28 13:48

Every programmer should take the time to know each layer of abstraction he is standing on, but to go back to assembly... lol

Name: Anonymous 2008-04-28 16:34

I like standing on the penises of past programmers and using the power of their abstraction to hax anii at an ever higher level.

Name: Anonymous 2008-04-28 18:11

>>27
Why the fuck are all you kiddie shits so afraid of complexity?  Caches are complex, but add a hell of a lot of speed.  So do JIT compilers, load balancers, prefetchers, threading on multicore, and all the other shit you're so fucking afraid of because of OMG CoMpexity.

Get the fuck off my /prog/.

Name: Anonymous 2008-04-28 18:15

>>33
also, yeah lol "COMPEXITY" whatever, fuck you too.

Name: Anonymous 2008-04-28 18:19

>>33
Why the fuck are all you kiddie shits so afraid of complexity?

My parents read me this post once when I was younger:

http://steve-yegge.blogspot.com/2007/12/codes-worst-enemy.html

(not sure who's that guy. found it through links from a friend's blog, and since I knew too little about java or systems programming, I probably gave it too much importance. bleh, anyway it's a good post)

Name: Anonymous 2008-04-28 18:29

>>35
Holy shit, what a load of horse shit.  The problem with that idiot is that he looks at all the fine-grained details and NEVER gets a big picture.  He doesn't understand architecture nor organization at all.  The only thing he knows is function-level algorithms and trying to peephole optimize.  Managing complexity is NOT a difficult task if you've got your shit together.

Many systems NEED to provide a ton of functionality, monitor and report on itself, be runtime flexible and interchangeable without restarting, and all sorts of stuff that requires the addition of complex systems.  Fuck, even on a hardware level, mainframe chips easily dedicate 30% of their silicon to monitoring and error conditions.  But complexity can be easily managed if you simply develop your code from a big picture instead of trying to collide a mish-mash of shitty "optimized" low-level leaves-before-the-forest algorithms together and pretend it's a working system.

Name: Anonymous 2008-04-28 18:31

>>36
Are you trying to troll >>1?

Name: Anonymous 2008-04-28 18:33

>>36
BTW, everything I've said applies as much to MMO servers as it does to banking systems and the like.  It's not just ENTERPRISE FAGGOTRY that needs to manage complexity, bedroom hackers need to learn it as well as his shitty handling of his game shows.

Name: Anonymous 2008-04-28 18:34

>>37
Are you trying to troll >>36 ?

Name: Anonymous 2008-04-28 18:39

>>35
Why did I bother reading that?  It doesn't matter at all how many lines of code a program is.  Say a 3000-line piece of Java code is equivalent to a 150-line Lisp package.  If they have the same features and the same granularity of use and processing, it's the _exact same_ amount of organization and maintenance.

You don't maintain lines of code, you maintain code modules, APIs, data stores, features, etc.  It simply doesn't matter how many lines each of those parts are, each "part" is one item in terms of complexity.

Name: Anonymous 2008-04-28 19:42

Stratification in THE ALGORITHMIC LANGUAGE LISP by the Sussman

http://dspace.mit.edu/bitstream/1721.1/6064/2/AIM-986.pdf

Name: Anonymous 2008-04-28 20:55

What if when the Sussman dies, we find in his office that he plagiarized all of his books and papers from someone from China?

Name: Anonymous 2008-04-28 21:50

The title should be Excessive Abstraction Considered Harmful.

Name: Anonymous 2008-04-28 23:22

Name: Anonymous 2008-04-28 23:43

>>42
The chinese sure can conjure the spirits of their ancestors with their spells, but they don't know shit about computers.

Name: Anonymous 2008-04-29 2:13

Abstraction is never harmful.  Prove me wrong.

Even if shit is behind the abstractions, the very fact that it is abstracted means you can replace it.

Name: Anonymous 2008-04-29 2:27

>>46

It can prolong the development process.  Abstraction should be used intelligently.  If you want something simple that does exactly one thing.  You could abstract this out to a more general case.  In the event this general case will never be needed you are adding unneeded layers of abstraction. 

A good example I got is certain types of creatures are immune to lava.  You could abstract this out to a heat resistance property, and a function that gets the temperature around the creature.  Then you could have say warm water that some creatures don't like and others like.  Or even cold water that those fire immune creatures will react differently to.  Abstracting out temperature effects on creatures can create a more involved system.  Unfortunately what if the only wierd temperature environment you have is lava.  It would be much simpler just to check for that simple case and react than to build layers of abstraction.

While the layers of abstraction are good from many perspectives with a time deadline and practical restriction on features sometimes it is better to just go the simpler and direct way.

Name: Anonymous 2008-04-29 6:27

>>47
Until you make a simple change, e.g. you split lava into hot lava and really hot lava. Then you have to rewrite everything, unless you properly abstracted it.

``In order to make a system that's robust, it has to be insensitve to small changes. That is, a small change in the problem should lead to only a small change in the solution.'' --Sussman, at the start of SICP lecture 3b

Name: Anonymous 2008-04-29 6:46

>>48

nar u just set a temperature threshold for each creature in the lava lol

Name: Anonymous 2008-04-29 7:09

>>48
I cannot understand why anyone who's not a faggot would want "really hot lava" in addition to normal lava in his game.

Name: Anonymous 2008-04-29 7:30

Why not just make all lava "really hot", it's fucking lava for chrissake.

Name: Anonymous 2008-04-29 8:00

>>51 speaks the truth.
>>48 is just wrong

Name: Anonymous 2008-04-29 8:11

>>50-52
It's not about the fucking lava, idiots.

Name: Anonymous 2008-04-29 8:45

>>50
Because the party of characters may be required to throw down two switches that will cause the mysterious guardian statues to cast a freezing spell over the lava, however, the first spell will not be enough to allow the heroes to walk over the lava safely, thereby justifying the necessity for a "hot lava" and "really hot lava" status.
Problem solved.

Name: Anonymous 2008-04-29 9:00

really hot java

Name: Anonymous 2008-04-29 9:19

>>54
u raise a good point sir

Name: Anonymous 2008-04-29 11:13

>>56
Unless there is no mysterious guardian statues and lava is only needed in a simple way.

Name: Anonymous 2008-04-29 18:26

>>57
That's now how PROFESSIONAL J-RPG are done. Once they realize that their game will only waste 50 hours of the player's life, they throw in guardian status and lava of variable temperature in the game to match the 80 hours announced on the cover.
That's the true meaning of SCALABLE SOLUTIONS.

Name: Anonymous 2008-04-30 0:01

>>54
Or it can be special-cased, because duh.

Name: Anonymous 2008-04-30 5:13

on this subject of this lava, i guess it depends just how much effort you want to put in and if it's worth it...
you could have a liquid object that has temperature, color, and whatever other properties u need that would cover the lava and really hot lava problem, but if u write a game that only needs one pool of lava, and the only time u see it is when chuck norris one-inch punches a man into it, whats the point?

the answer to all this abstraction nonsense is to write what is appropriate to meet the requirement in the specification you have been given.

Name: Anonymous 2008-04-30 5:51

>>60
What, you mean my ObjectFactoryFactory class is useless?

Name: Anonymous 2008-04-30 6:02

>>61
perhaps, but UrMumIsFat class still applicable

Name: Anonymous 2008-04-30 8:14

>>60
Abstracting "you" considered harmful

Name: Anonymous 2008-04-30 12:22

>>61
Has anyone built LISP factories? Like a factory that spews out (((((, another that shits )))))), and a last one to spam LISP LISP LISP objects?

Name: Anonymous 2008-04-30 13:48

>>64
Those could all be abstracted from SpamFactory.

Name: Anonymous 2008-04-30 22:27

>>64
This is posible in Croma Lisp ENTERPRISE edition

Name: Anonymous 2008-04-30 22:53

NO EXCEPTION

Name: Anonymous 2008-04-30 23:05

>>67
Every thread must end in a meme.

NO EXCEPTION

Name: Anonymous 2008-04-30 23:55

>>64
Your parens are unbalanced. Balance them.

Name: Anonymous 2008-05-01 0:24

>>69
It's too late, it has arrived: the final parenthesis.

Name: Anonymous 2008-05-01 0:29

Now to return to >>1

Look at the sentence quoated from sicp and notice

when appropriate

then be enlightened

Name: Anonymous 2008-05-01 1:53

At that moment, the novice was enlightened.

Name: Anonymous 2008-05-11 12:02

This thread needs more haxing of anuses.

Name: Anonymous 2008-05-11 12:09

im one of the sussmans graduate students, found this page searching google ...

Name: Anonymous 2008-05-11 12:14

>>74
And are you enlightened?

Name: Anonymous 2008-05-11 12:22

>>75
im like a child to the sussman

Name: Anonymous 2008-05-11 16:46

>>76
bro‽

Name: Anonymous 2008-05-11 19:52

>>74
i don't believe you ever went to college

back to /b/ please

Name: Anonymous 2009-03-06 12:16

it would be selling computers without using   some new alternative   could never keep   up with windows   underneath it does   make sense to   have reusable chunks   of logic you   can pass about   I know you   were an anonix.

Name: Sgt.Kabukiman㨎䧱 2012-05-23 0:18

weew

Name: I Am Constant 2013-04-09 9:26

Daily reminder that sure, you may be good, but you'll never be Lambda Arthur Calculus good.

http://dis.4chan.org/read/prog/1365286976/21

Name: Anonymous 2013-04-09 15:43

>>81
Way to bump a five year old thread, dude.

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