[HN Gopher] Why Structure and Interpretation of Computer Program...
___________________________________________________________________
Why Structure and Interpretation of Computer Programs Matters
Author : AlexeyBrin
Score : 62 points
Date : 2024-06-16 18:02 UTC (4 hours ago)
(HTM) web link (people.eecs.berkeley.edu)
(TXT) w3m dump (people.eecs.berkeley.edu)
| MeteorMarc wrote:
| I miss the structure in the layout of this read.
| patrickmay wrote:
| Every time I read about SICP, I get frustrated all over again
| about Javascript. It could have been Scheme and all web
| development would have benefited.
| fire_lake wrote:
| Hey, at least there's Clojurescript.
| snek_case wrote:
| JavaScript was originally developed in two weeks due to time
| constraints from Brendan Eich's employer. It would probably
| have just as many design mistakes if he had stuck with a
| scheme-like syntax instead. It's just hard to create a well-
| designed language in such a short amount of time.
| ralphc wrote:
| The only way it would have "benefited" would be that the web
| would only be developed by lisp programmers.
|
| To the vast majority of programmers, syntax matters. C-style
| with brackets, or python whitespace, or Ruby do/end, these fit
| better the brains of the majority of programmers. Perhaps not
| the majority of HN readers but the majority of corporate devs.
|
| Another example of this is Erlang and Elixir. Elixir adds a
| couple of features over Erlang, macros and protocols, but
| Erlang does everything else. What made Elixir take off where
| Erlang didn't, after decades, is that Elixir has a syntax that
| people are comfortable with. Erlang has a syntax that will
| summon Cthulu.
| sakras wrote:
| Is it an innate property of humans that the curly-brace style
| is more natural? I wonder if in an alternate universe where
| Lisp took off as the browser language people would find it
| more natural instead. It seems like somewhat of a chicken-egg
| problem.
| lmm wrote:
| I think it's innate that having differentiated syntax for
| different types of grouping is natural. Look at
| mathematical papers where people will introduce new
| brackets with new meanings. (Indeed look at the entirety of
| QM for a clear, simple case)
| lopatin wrote:
| Does decades of empirical evidence not prove that people
| are more comfortable with imperative, curly brace
| programming over s-expressions? It's not a chicken and egg
| problem. The egg has hatched and nested parentheses lost.
| ralphc wrote:
| I don't know if it's innate but it's what we have. Lisp has
| been around about as long as programming, it's had plenty
| of time to catch on, it hasn't.
|
| Maybe innate, maybe it's an offshoot of teaching math in an
| infix style, 1 + 2 vs. + 1 2.
| zarathustreal wrote:
| I agree with most of what you said here but I want to
| emphasize that this is not necessarily a good outcome.
| Fitting the brains of corporate devs is not a metric to
| measure if your goal is to make the best tool for the job -
| the majority of corporate devs are extremely mediocre at
| their job even with a language that they're not scared of.
|
| All that to say, I completely emphatically agree with the
| original comment. The world would have been so much better
| off with Scheme as the language of the web.
| ralphc wrote:
| If the "job" is to make lots and lots of software, even if
| most of it is mediocre, then the best tool is what will
| enable millions of mediocre developers to develop, not just
| thousands of elite developers.
| tejtm wrote:
| "The only way it would have "benefited" would be that the web
| would only be developed by lisp programmers."
|
| Considering the state of the web I do not think this is
| making the argument you intend.
| odyssey7 wrote:
| ECMAScript 2015: proper tail calls are now in the spec
|
| Chromium: we're not doing proper tail calls
| zeroCalories wrote:
| I always see people gush over this book, but is it still worth
| reading for someone that already has a ton of experience
| programming?
| lisper wrote:
| Yes. But instead of taking my word for it why don't you just
| start reading it and decide for yourself?
| vsuperpower2020 wrote:
| Do you really need this explained? It's a 600 page technical
| book and people have a limited amount of time to sort through
| everything that exists.
| exe34 wrote:
| > It's a 600 page technical book
|
| > why don't you just start reading it and decide for
| yourself?
|
| A journey of a thousand miles....
| lopatin wrote:
| Agree but you are replying to a user named "lisper".
| CoastalCoder wrote:
| Maybe he struggles with a speech impediment, you
| insensitive clod!
|
| <Slashdot_nostalgia/>
| Turing_Machine wrote:
| > It's a 600 page technical book
|
| You do understand that you don't have to read an entire
| book before forming an opinion, right?
|
| > sort through everything that exists
|
| "Book that has been considered a classic for forty years
| and was used as the intro text at MIT for decades" is a
| long, long way from "everything that exists".
| bowsamic wrote:
| No
| theshaper wrote:
| Because...
| Maxatar wrote:
| Experience in software development isn't linear so depending on
| which path your experience has taken it could be very
| insightful and useful, or it could be stuff you already know.
|
| I'd say for the vast majority of developers, experienced or
| otherwise, it's a good read.
| CuriousSkeptic wrote:
| Haven't actually done the book. Can vouch for the lectures[1]
| though. Very much worth it to get a different perspective on
| various language structures I had just taken for granted.
|
| Watching 2-3 of these will probably answer your question.
|
| [1] https://groups.csail.mit.edu/mac/classes/6.001/abelson-
| sussm...
| kikimora wrote:
| Yes, I bet it will give you new perspective on a number of
| things.
| omnicognate wrote:
| Whether it's worth reading isn't a question others can answer
| for you, but "a ton of experience programming" definitely
| doesn't imply it _isn 't_ worth reading as it's perfectly
| possible to get through an entire programming career without
| encountering the ideas and ways of thinking that you'll find in
| it.
| sakras wrote:
| I started reading it around a year ago with the personal goal
| of doing every exercise. I'm not done yet (almost done with
| chapter 4). It has definitely taken a lot of my time, but it
| really has changed my thinking about a lot of language
| constructs I find in other languages.
|
| For instance, the part about tagging objects with their type
| reshaped my thinking about static type systems in general.
| Static typing, for example in C, is essentially just moving the
| location of the type tag from existing at runtime within the
| struct, to the "analysis" phase of the compiler. It's a pretty
| simple idea, but it made the "degree of dynamism" tradeoff
| click in my head. All the information _has_ to exist somewhere,
| and the only question is where. And Scheme is just at an
| extreme where the _everything_ is stored dynamically.
| PheonixPharts wrote:
| "Don't cast your pearls before swine".
|
| When I was younger I used to passionately defend those things
| I've seen as beautiful, but after years experience talking with
| people passionate about their fields and learning and those who
| never will be: If you lack the innate curiosity to explore
| those things others have declared marvelous, then this book
| will offer you no value.
|
| Every time I crack this book open I get excited and I've read
| it multiple time and one most of the exercises. I can think of
| few other books that really expose the beauty and
| simultaneously strong engineering foundations of software.
|
| You have "tons of experience programming" and sound like you've
| already decided you know what needs to be known (otherwise why
| even ask rather than just read it _free_ online), I doubt this
| will offer you anything you haven 't already seen before.
| iungret wrote:
| I want a searchable resource where I give my inputs and desired
| output and brief description of the algorithm and it gives me the
| algorithm and code.
|
| Same with AOCP, but I greatly prefer scheme to MIX.
|
| Otherwise these works just seem like a doomsday rebuilding
| references rather than knowledge with any practical presentation.
| omnicognate wrote:
| SICP isn't an algorithms book or a reference. It's very unlike
| The Art of Computer Programming.
| dswilkerson wrote:
| I used to be a teaching assistant for CS 61A (intro to
| programming) at Berkeley teaching from this book with Brian as
| the instructor.
|
| One of Brian's primary points is the following:
|
| > Scheme ... has a very simple, uniform notation for everything.
| Other languages have one notation for variable assignment,
| another notation for conditional execution, two or three more for
| looping, and yet another for function calls. Courses that teach
| those languages spend at least half their time just on learning
| the notation. In my SICP-based course at Berkeley, we spend the
| first hour on notation and that's all we need; for the rest of
| the semester we're learning ideas, not syntax.
|
| Bullshit. Again, I was a TA for this course. You do not spend the
| rest of the semester on ideas, you spend the rest of the semester
| on the students being very confused.
|
| This "everything looks the same" property of Scheme and of all
| LISP-like languages is a bug, not a feature. When the semantics
| is different, humans need the syntax to be different. In
| contrast, LISP/Scheme make everything look the same. It is quite
| hard to even tell a noun from a verb. This makes learning it and
| teaching it hard, not easy.
|
| Brian is selling a fantasy here. If you think Scheme is so great,
| look at this nightmare of examples showing the various ways to
| implement the factorial function in Scheme:
| https://erkin.party/blog/200715/evolution/
|
| All of this "abstractions first, reality second" agenda is just a
| special case of what I call "The Pathology of the Modern": the
| pathological worship of the abstract over the concrete.
| Everything modernism touches turns into shit. I am done with
| living in modernist shit and I hope you are too.
| Turing_Machine wrote:
| > It is quite hard to even tell a noun from a verb
|
| What?
|
| Unless the list is quoted or something, the first item after
| the opening paren is always the "verb", yes?
| rscho wrote:
| People who complain about parentheses have never tried structural
| editing. Change my mind!
___________________________________________________________________
(page generated 2024-06-16 23:00 UTC)