8 ms·
Gerald Sussman: Programming is (should be) fun (2022) [video]
- bonitafredo 2y ago[flagged]
- bonitafredo9393 2y ago[flagged]
- bonitafredo9393 2y ago[flagged]
- deleted 2y ago[deleted]
- BoiledCabbage 2y agoGreat to hear the views on programming from one of the authors of SICP. The anecdotes in the first few mins are nice as well.
- TacticalCoder 2y ago> Great to hear the views on programming from one of the authors of SICP. I'll blog about it one day (I know it's been five years I've been saying that but hey) but... Sussman invited me for tea in his office so I ran to the MIT co-op but couldn't find SICP there so I told the person there I really needed that book for I'd see Sussman the next day: he called the Harvard co-op and they told me they had one copy in stock. So I uber'ed to the Harvard bookstore and bought SICP. Next day I went to Sussman's office at the MIT and when I arrived Abelson was there, by chance (he was leaving) so they both dedicated me my copy of SICP. And Sussman added "had you been there 15 minutes earlier my wife would have signed it too!". I had no idea his wife was the proofreader for SICP. Fun story. Probably rambling by now but all this really happened. I've got a cool picture of these two wizards and me holding the purple book they just signed!
- code_biologist 2y agoThat is so cool. Watching those SICP lecture videos as a teenager was incredibly formative for me. I still consider myself a knight of the lambda calculus.
- freilanzer 2y agoA Knight of the Higher Order?
- bitwize 2y agoI coined an AI koan that goes something like this: A novice travelled to the East to learn at the feet of Sussman. As Sussman lectured on writing device drivers with low-level Lisp code, the novice interrupted: "But Master, is Lisp not a high-level language?" To which Sussman replied: "There was once a fisherman who spotted an eagle on the shore. 'Brother Eagle,' said the fisherman, 'how impossibly distant is the sky!' The eagle said nothing, and flew off." With that, the novice was enlightened. It's fictional, but it's based on a real-life Sussman encounter I had. A hacker (it may have been Dimitris Vyzovitis) was telling me about things he'd done in "low-level languages like C and Lisp". Then I said "But Lisp is high-level!" at which point the hacker paused and said "Let me get Jerry." "Jerry" turned out to be Gerald Sussman, who explained to me, in the most nerdy-enthusiastic Sussman-like way, that Lisp was the low-level language of a virtual machine which he had actually implemented in hardware[0]. And it was profoundly enlightening. [0] See Steele, G.L. and Sussman, G.J., AI Memo 514, "Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode", https://dspace.mit.edu/handle/1721.1/5731 https://dspace.mit.edu/handle/1721.1/5731
- selimthegrim 2y agoTIL where Lambda The Ultimate came from.
- 082349872349872 2y agoJust in case you only learned about that one: there's a whole subseries of 'em. My current favourite is https://www2.cs.sfu.ca/CourseCentral/383/havens/pubs/lambda-the-ultimate-goto.pdf https://www2.cs.sfu.ca/CourseCentral/383/havens/pubs/lambda-... Debunking the "Expensive Procedure Call Myth or, Procedure Call Implementations Considered Harmful or, LAMBDA: The Ultimate GOTO But I see some recent authors have gotten into the game, so it could be one of them updates that slot.
- neilv 2y agoSussman is one of the great ones.
- BeetleB 2y ago[flagged]
- deleted 2y ago[deleted]
- bryancoxwell 2y agoSussman and Rich Hickey are two people whose talks I never stop enjoying.
- floobertoober 2y agoThe only person I'd add to that list is Simon Peyton Jones. I could watch them talk all day!
- vaylian 2y agoI don't know him yet. Are there some talks you can recommend that would be a good starting point?
- ReleaseCandidat 2y agoThat must of course be "Haskell is useless" https://youtu.be/iSmkqocn0oQ?si=IkTHHdH1423tOVvz https://youtu.be/iSmkqocn0oQ?si=IkTHHdH1423tOVvz But apart from that, his enthusiasm can even make the mseemingly most boring topic interesting. I'd personally start either at "the story of Haskell" Escape from the Ivory Tower https://youtu.be/cOqxiS-WN1w?si=1iXpGE7cJZa4tbbJ https://youtu.be/cOqxiS-WN1w?si=1iXpGE7cJZa4tbbJ Or something more recent, about Epic's Verse https://youtu.be/OJv8rFap0Nw?si=OE2mUllQfLmV29Bk https://youtu.be/OJv8rFap0Nw?si=OE2mUllQfLmV29Bk
- dualogy 2y ago> But apart from that, his enthusiasm can even make the seemingly most boring topic interesting. Totally, his ever-fresh, ever-genuine excitement with all this stuff is so contagious (for the duration, and then some =)
- endgame 2y agoAnd if Haskell isn't your jam, maybe Excel is more to your taste? https://www.youtube.com/watch?v=jH2Je6wUvPs https://www.youtube.com/watch?v=jH2Je6wUvPs
- xyzwave 2y agoI haven’t watched the video yet, but I was instantly reminded of the Alan J. Perlis quote he and Abelson used for SICP’s dedication: > I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don’t think we are. I think we’re responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don’t become missionaries. Don’t feel as if you’re Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don’t feel as if the key to successful computing is only in your hands. What’s in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.
- ozim 2y agoOof hits hard when I think about agile coaches, clean code ambassadors and whole cottage industry of how to make your code and team perfect.
- schneems 2y agoI’ve learned that aiming for perfection is how some people have fun. I think the tragedy is when fun, energy, and mental health aren’t part of the conversation about how work gets done.
- HansardExpert 2y agoAs a support engineer... "Hey Mr Customer... don't worry that all your data is corrupt or you lost access to your disks ... you have been set in a new direction and we're just making your day job 'fun'" They're not Bugs ... what you have here are little balls of 'fun' /s ;)
- nequo 2y ago
- Duanemclemore 2y agoI can't wait to watch this. I haven't gotten to do SICP yet but have it checked out and did get to listen to the classes while doing home renovations. The Sussman quote from the SICP classes about understanding complicated things makes it in to a lot of my presentations (in architecture of all things) and it's the slide that ALWAYS gets people frantically taking a note.
- herodoturtle 2y agoWould you kindly share that quote here?
- hydrox24 2y agoUntil OP delivers (and in case OP does not); I suspect it's the following quote: > "The key to understanding complicated things is knowing what not to look at, not to compute, not to think" —Sussman.
- Duanemclemore 2y agoThat's it, and thanks. Somehow I missed the request to post the comment. (facepalm)
- rramadass 2y agoThe Software Industry needs to take notes from this. They are the ones who have beaten the fun out of Programming and turned it into a drudgery/chore and have caused many Programmers who loved their craft to quit the field entirely. It is possible to meet customer/business needs and still create/maintain a work environment where the programming activity itself is fun for the developers. The way to do it is to abandon Taylorism Management and approach Software Development as a "Human-first" activity akin to that of a poet/painter/artist. Promote Autonomy, challenges compatible with competence, encourage novelty/learning/training and focus less on schedules, micromanagement and detailed processes.
- _hcuq 2y agoSecond that. I have been in the industry for 37 years. The Taylorism didn't exist until "Agile" came along around the year 2000. Every programmer was a craftsman before that. These days, I wouldn't take (or get)a job in most software companies. I suspect that in quite a few non software companies there are software craftspeople working away quietly.
- dualogy 2y ago> The Taylorism didn't exist until "Agile" came along around the year 2000. Its widespread adoption (and usually counter to the spirit of the original Manifest itself) took years however — years where most places, the craftfulness was still prevalent. Myself I haven't encountered that in teams until the mid-2010s, less than a decade ago. Might have been earlier in SV, of course, though. And the bigger Java/.NET/Enterprise shops.
- AnimalMuppet 2y ago> The Taylorism didn't exist until "Agile" came along around the year 2000. There was plenty of that before 2000, but it was more in the mainframe world. "Data processing". Government contracts. Business applications. "Software analysts" who broke the problem down into small chunks, and gave those to programmers. I have been in the industry for 39 years, and I avoided almost all of that, but it was there...
- 2y ago
- dreamcompiler 2y agoThe news of Lynn Conway's death hit me hard because I learned a lot from her but I never got to meet her and thank her. I learned a lot from Sussman too and I'm very glad I've gotten the chance to buttonhole him in the hallway several times and ask him a question and let him talk. I always learn something much more interesting than the answer to my original question. I highly recommend stopping by and saying hi to Sussman if you find yourself at CSAIL.
- KingOfCoders 2y agoTo me, I always feel this disconnect when people from academia talk about programming. I guess this is just me because of my personal experiences as a coder though, andothers don't have this.
- xbar 2y agoHm. I feel it differently. As a software engineering entrepreneur for some decades, I feel keenly the urgency of getting features implemented, bugs fixed, and teams motivated. It is usually a grind. But when I want to feel a spiritual connection to the fundamental principles of my work effort, academia is one of several places I turn to.
- danybittel 2y agoOh I love this: "I use programs as a way of remembering stuff. My memory is the programs I write. If I learn something math or physics or some other maybe biology and I write a program that represent that so I can read the program later it's not ambiguous, easy to read and that way I sort of store my knowledge."
- dgb23 2y agoThen you will likely enjoy this talk as well: "Programming for the Expression of Ideas" https://www.infoq.com/presentations/Expression-of-Ideas/ https://www.infoq.com/presentations/Expression-of-Ideas/ Very adjacent to the quote above. He talks about how programming helps to understand things (mathematics, physics...) in a deeper way.
- BoiledCabbage 2y agoGreat link - that's really nice. This bit on mathematical notation and the clarity provided by programming is awesome to see: "Newtons equation is really a macro, with untyped and undeclared parameters"
- dazzawazza 2y agoWhen I was a child I often explored problems using BASIC. It was a really powerful way for me to creatively learn. I tend to think in pictures and find maths hard to truly understand. Coding allows me to create pictures and relationships in my head. I was lucky to find this out when I was young. I'd be lost without it.
- lynx23 2y agoI use programming exactly for that, to get rid of ambiguity in notes and make them execut/verifyable. Actually, that was my biggest issue with math: I dont trust myself to make no errors and neither can I trust myself to see them. A compiler/interpreter will make me notice.
- kaycebasques 2y agoReminds me of my favorite quote from Living Documentation by Cyrille Martraire: > Software development is all about knowledge and decision-making based on that knowledge, which in turn creates additional knowledge. The given problem, the decision that was made, the reason it was made that way, the facts that led to that decision, and the considered alternatives are all knowledge... each instruction typed in a programming language is a decision... Software design can last a long time. It can last long enough to forget about previous decisions made, as well as their contexts. It can last long enough for people to leave, taking with them their knowledge, and for new people to join, lacking knowledge. Knowledge is central to a design activity like software development. Most of the time this design activity is, for many good reasons, a team effort involving more than one person. Working together means making decisions together or making decisions based on someone else's knowledge. Something unique with software development is that the design involves not only people but also machines... Using a formal language like a programming language, we pass knowledge and decisions to a computer in a form it can understand. Having a computer understand source code is not the hard part... The hardest part is for other people to understand what has been done so that they can then do better and faster work. The greater the ambition, the more documentation becomes necessary to enable a cumulative process of knowledge management that scales beyond what fits in our heads. When our brains and memories are not enough, we need assistance from technologies such as writing, printing, and software to help remember and organize larger sets of knowledge.
- saltserv 2y ago[dead]
- librasteve 2y agoraku is still -Ofun
- fuzztester 2y agoSure is. Just saw this a few days ago: Raku -Ofun for Everyone - Daniel Sockwell https://youtu.be/waHAGThlRH8?si=a_Jvt6jf5aQpjC-Y https://youtu.be/waHAGThlRH8?si=a_Jvt6jf5aQpjC-Y
- omoikane 2y agoThis presentation seem to be mostly about the community aspects of Raku in how they made the language approachable. Is there a presentation that focuses more on the technical aspects of how Raku's syntax and libraries would make it more fun relative to Perl or Ruby?
- fuzztester 2y agoThe presentation is about a few different topics related to learning Raku, IIRC, such as books and docs for learning it, community, code of conduct, etc. After watching the full video, I agree that the title could be more descriptive of the content. You can check out these videos, they may be something like what you are looking for: Raku: The Programming Language You Didn't Know You Needed (It is by Curtis Poe, a Perl veteran.) https://youtu.be/LEFVQaSgJ60?si=WqQvJw4ly-1voKgJ https://youtu.be/LEFVQaSgJ60?si=WqQvJw4ly-1voKgJ Raku syntax I miss in other languages - Leon Timmermans https://www.youtube.com/live/elalwvf https://www.youtube.com/live/elalwvf mYgk?si=65QAF_CP07lVUT5O I got both of these from a search for "raku language talks" in YouTube, IIRC. HTH.
- fire_lake 2y agoTragic that they replaced Lisp with Python in universities. We’re suppose to be learning about computation, not corporate duct taping.
- epolanski 2y agoPlenty of universities teach Lisp, Haskell, Scala, Reason, etc..
- fredrikholm 2y agoThe SICP course as it is taught today at MIT had Scheme replaced with Python some years ago. I'm assuming that's what OP was referring to.
- kkylin 2y agoI don't think the new course is "SICP with Python"; my impression (from talking to GJS!) is it's a different course that now uses Python. But maybe someone here has experience with it & can speak up.
- armitron 2y agoThat's not accurate. They retired SICP and added a new introductory course [1] based on Python to placate the suits. Neither Sussman nor any of the other SICP folk is involved with that. Sussman created a follow-up course to SICP [2] which is still based on Lisp and still being offered today. [1] https://irreal.org/blog/?p=11127 https://irreal.org/blog/?p=11127 [2] https://groups.csail.mit.edu/mac/users/gjs/6.945/ https://groups.csail.mit.edu/mac/users/gjs/6.945/
- lerax 2y agoMy academic life would be complete after cursing the neo-SICP course.
- systems 2y agobut then again lisp got replaced in practice and is only really a niche language nowadays so the move away from lisp is not bad and while i dont like python purely as programming language (its not theoretically engaging or fun) python is top 3 or 5 in practice, people like it
- ducktective 2y agoRecommend to also watch: https://news.ycombinator.com/item?id=35945134 https://news.ycombinator.com/item?id=35945134
- epolanski 2y agoI can't lie, I loved programming for many years. It used to be my main hobby too. Trying any new language or software, reading programming books, contributing to many chats across libera/freenode and what not. But since I have become a freelancer and I started working in smaller contexts where the focus is to ship decent code at a higher rate this passion has vaned. I think this is overall good for me as an engineer, but has removed lots of fun and often learning from my daily job.
- systems 2y agothat probably has more to do with freelancing and consulting in general, rather than something inherit in programming freelancing and consulting, is usually about problem solving, and even problem shooting (get rid of the problem as soon as possible, elegance not required) you want to be a builder a tool maker, with freelancing, i dont see this happening, if you move to a consultant role maybe for me consultant are a bit more into longer term relationship , so maybe this should be your next step
- epolanski 2y agoI use the term freelancer too freely maybe, I'm mostly a full time consultant and I often have very long clients (years). Still, I tend to choose high pressure small environments (I honestly get bored in low productive corporate environments).
- progx 2y agoChatGPT says "But for many, the rewards outweigh the challenges, making programming a fun and fulfilling activity." After 36 years i can say "i only wanna get the sht done" :)
- lerax 2y agoI think it's a reasoning like "math is fun", but for some people math is useless until become useful in some sense. Programming is something similar in that regard. For the problems I like, programming is fun, for those I don't like, I prefer only get shit done too (like part of my job).
- submeta 2y agoSussman‘s and Abelson‘s SICP forever changed the way I think about code, abstraction, modularity, in a time where my peers were hacking in Pascal or C. Where I used Lisps/Scheme to create a mental model of the problem, they had to do the abstraction in their head and then implement it in a language that demanded low level focus. So I am forever thankful for having been exposed to SICP early on.
- davikr 2y agoOn that note, I find that programming in certain languages is more fun, or can be more comfortable, than in others. I don't think I'll ever be comfortable with C++.
- clbrmbr 2y agoI once saw Sussman speak in a group of about 20 neuroscience PhD candidates in an NYU basement. He was talking about AI interpretability long before it was in vougue. Anyways I asked one question and he immediately sensed there was an EE in the room and went to the side blackboard and showed how we can figure out how an opamp works through first principles. So much energy and intelligence in that man. Left an impression for sure.
- sharas- 2y agoI wonder does Gerald Sussman do TDD :D:D (for TDD'ers: the tone of this comment is ironic)
- sharas- 2y agoThe more he talks about fun, the more seriously he should be taken
- Mohamedrila0418 2y agoYouTube
- myth_drannon 2y agoBefore I even get into Python vs Scheme vs Others, programming for fun is out of the window when deadlines, agile, story points are involved.
- whartung 2y agoCoding is fun. When you have Stuff to Do, and momentum and a clear path to do it. You have a ditch to dig and you just get into it. Stack of simple web pages to knock out. Bunch of business rules to code up. Couple of routine CRUD screens. Architecting is fun. Whiteboard, pens, couple folks in the same groove around the table. Sussing it out. Waving off the 0.01% edge case “what ifs”. Fighting frameworks? Fighting tools? Wiring together badly behaving black boxes? That’s not fun. Neck deep in bad documentation. Heated discussions talking past each other on a forum. Negotiating with the dumber than rocks AI that had a flash of competence. I like to say if I wanted to wire together badly documented black boxes, I’d have become an EE. I’ve always said: “I love programming, but I hate computers.” All the fiddling. Software going stupid. Updates frustrating new UX. “Honey, the printer isn’t working.” Coding is fun. The rest of it, not so much.
- richrichie 2y agoFeynman called it the computer disease. I think that is understudied danger of computers - addictive play/fidget machines that stunt intellectual and personal growth.
- me_me_me 2y agothis is a deep cut. Remember the days when you just 'make and run' to test your programs? Now I need pipelines, helm charts, and other 5 tools +20 mins of busy nothing work to see if a small change fixed something.
- dr-smooth 2y agoYak Shaving: https://www.hanselman.com/blog/yak-shaving-defined-ill-get-that-done-as-soon-as-i-shave-this-yak https://www.hanselman.com/blog/yak-shaving-defined-ill-get-t...
- darkerside 2y agoAgree! But, coding is not (all of) software development. Said another way, maybe some people like the idea of software development more than they actually like software development.
- carapace 2y agoNo. Not any more. Programming should be as dull as operating a sawmill. I knew a guy, his construction company built half of Lake Tahoe back in the day. When he retired he built himself a work shop in the basement and made furniture until the day he died. It's incredible furniture. I'm sitting at one of his desks, on one of his chairs. 40 years old and still in excellent condition, and beautiful! Helical legs. You cannot buy furniture like this in the store. Handmade by a master craftsman at the height of his skill and knowledge. Made solely for the love of the craft and the joy of giving gifts. That kind of person has fun working. Computer programming IS fun to the kind of person who enjoys computer programming. Those people can do what they like. The rest of us want "boring" software: machines that get the job done, that don't break, that don't spew private data into the cloud willy-nilly, etc. If making that kind of software isn't intrinsically fun for you then maybe don't be a computer programmer? (We made a huge mistake making the normals think that learning a bit of JS was a viable career path.) Industrial software shouldn't be fun (except of course to the people who already find it fun to deliver solid working software!) - - - - In re: bugs being fun little learning opportunities... Margaret Hamilton worked out how to write bug-free software during the Apollo 11 project. The IT industry collectively went, "meh." We need a serious attitude adjustment.
- jcgrillo 2y agoCorrollary: people who build bridges don't think it's fun when bridges collapse, but bridge builders have had millenia of accumulated experience that inform the codes and practices of bridge building. That's what we lack in software. If you do electrical work that isn't up to code, you as the electrician are liable. That means literally that if you touch a system, and you were the last one to touch it, you're liable. So it better be up to code when you're done. It should be the same for computerers.
- dualogy 2y ago> Margaret Hamilton worked out how to write bug-free software during the Apollo 11 project. Since search engines suck so bad lately: anyone know a good complete summary of that method of hers?
- 2y ago
- photochemsyn 2y agoA better title: "Academic omputer science is (should be) fun". The main points are that discovering analogies, philosophical contemplation, debugging problems, coming up with good ideas and gaining clarity are all fun activities - but this is mostly the luxury of the academic professor, who is paid to engage in such activities, and doesn't seem applicable to 'the customer wants this at the end of the week!' world, other than the debatable joys of debugging. The majority of "programming" should probably be thought of like "welding" - essentially a vocational school subject. If you want to develop a new welding technology, sure that's a graduate school-level academic/research undertaking, but the vast majority of welders - like programmers - will work with well-characterized tools and fairly simple systems. A vocational student doesn't want to waste any time learning MIT/GNU Scheme and then never use it again in their professional career - but an academic student might find it rewarding, rather like learning to read and write in Linear B as a linguistics major. Certainly any work can be 'fun' - I worked in biotech labs for years, some were fun and some were terrible, but that had little to do with the nature of the work - it came down to quality and emotional stability of co-workers and managers, whether the workspace was well-designed and adequately supplied and safe to work in (sloppy labs are dangerous and unhealthy), if the pay was high enough to live a decent life outside of work, whether there was a corporate culture of cutting corners and letting shoddy work slip by (assuming you want to take some pride in doing a job right) - and it's the same in any other professional situation like programming industrial control systems and so on.
- jcgrillo 2y agoHave you ever worked as a welder? I think you'll find that people who are curious, thoughtful, and educated (whether autodidactically or otherwise) do better work than those who aren't across all professions. When I worked as a welder a long time ago the people who were smart, motivated, and curious did better work than those who were just punching a clock. So I do think that programming is like welding, but not in the way you meant it.
- photochemsyn 2y agoWhen I think 'welding' I'm thinking of high-tech welding systems, aluminum TIG welding, or the laser-welding assembly-line shop I worked in before going to college. The people running such shops are skilled professionals, certainly, even if they didn't hold graduate degrees in materials science or applied physics. Maybe your view of welding is that it's comparable to digging ditches? And one doesn't have to go into hundreds of thousands of dollars in debt to attend some exclusive college to be smart, motivated and curious.
- yazzku 2y ago"Programming is Abstract Engineering Design" "No physical limitations" Is this how you get Electron apps? Mike Acton would have a thing or two to say here.
- viraser 2y agoI agree.