4 ms·
Programming computers is about creating abstractions, if you ignored the abstractions others have methodically thought out - well, then you'd still be programmi
by marshallp 17y ago
Programming computers is about creating abstractions, if you ignored the abstractions others have methodically thought out - well, then you'd still be programming in assembly.
The author, peter van roy, has written a book, ctm, that many consider the successor to sicp, and created a programming a programming language, mozart/oz, that is the most advanced and well thought ever (it's descrined as almost like magic on it's homepage).
- jasonkester 17y agoSure, but then most of Computer Science is common sense to anybody who's been doing it since they were a kid. I'm perfectly happy not knowing the CS terms for the things that I do or the design patterns that I use. In 1995, I was asked in an interview what it meant to "deference" a pointer. I hadn't the first clue what this guy was talking about, despite having 5 years of self-taught C and C++ under my belt at that point, much of that time spent deferencing away happily without a fancy term for it.
- marshallp 17y agoWell, Peter Van Roy's CTM is not an impenetrable and jargon filled, it's actually easier to read than SICP, I think all programmers should read it at least once (I don't know peter van roy personally, I'm not shilling for him or anything). Your point about c and c++ kind of illustrates my point, I think there are very few people who should ever be programming at such a low level, if more programmers were to thoroughly familiarize themselves with the 'abstractions' that have been discovered, that mistake wouldn't be made.
- jasonkester 17y ago> Your point about c and c++ kind of illustrates my point, > I think there are very few people who should ever be > programming at such a low level... Certainly, one can be excused for programming in C in 1995. You realize that there weren't many alternatives back then, right? Substitute "Factory Patterns" if it helps you understand what I'm talking about. Or CTM or SICP. I'm all about working at a nice high level of abstraction. I'm just not particularly bothered to know the technical term for whatever abstraction I happen to be using at the moment or its storied history. I see something like "Figure 2, Taxonomy of Programming Paradigms", and I can't for the life of me understand the mind of somebody who'd consider that chart essential learning for a programmer.
- ryanpetrich 17y agoKnowing the proper technical terms for abstractions you use is helpful when collaborating with others
- dkersten 17y agoThis cannot be emphasized enough.
- marshallp 17y ago"Certainly, one can be excused for programming in C in 1995. You realize that there weren't many alternatives back then, right?" I didn't mean to imply you directly, the question is why did the company you were applying to and the industry in general not 'see the light'. lisp,python,tcl,prolog,sql existed before 1995. Personally, I disagree with the pattern languages of object oriented design, they aren't necessary if you know the full range of abstractions of which CTM and SICP describe (functional, relational, logical, constraint etc). The proliferation of these difficult to use OO patterns is another symptom of programmers not knowing enough computer science.
- Hexstream 17y agoYou sound mildly anti-intellectual. Also, it's called "dereferencing".
- jasonkester 17y agoI hope not. I'm all about learning, provided it's useful and not just a bunch of definitions for common knowledge. And if I'm ever back in 1995, I'll ask that guy if that's what he meant by "deferencing." :)
- jerf 17y ago"I'm all about learning..." ... I just don't want other people to be doing it on my Internet, so I'm going to complain when I see others doing it. Seriously, what do you think you're adding to this conversation? That there are people who think they don't need that there fancy book learnins' is not news.
- jasonkester 17y agoYikes, why the attack? We're commenting on an article that somebody posted. I found it boring and said as much. That's all that has transpired here.
- derefr 17y agoI saw an article here a few months ago, about how there were three kinds of people—people who weren't really "interested" in anything per se; people who had one Thing that they spent all their time thinking about; and people who were interested in everything, and would readily consume information about any topic. Entrepreneurs tend to be the third type; that is one of the main reasons HN was renamed from its original title of "Startup News." (The term "Hacker" is, in usage, 99% similar to "someone who wants to know everything about everything, just for the sake of it.") Basically, the community is trying to reject you—a person who has explicitly stated that they are not of the third type—like a foreign body.
- scott_s 17y agoYou sound happy to be ignorant.