[Scheme'22] Programming is (should be) fun!
Вставка
- Опубліковано 27 сер 2024
- Programming is (should be) fun!
Gerald Jay Sussman (MIT)
Programming is not coding! Programming a medium for creative expression. Composing a good program can be an esthetic experience similar to writing a story, a piece of music, or poetry,
A good programming experience is an exploration of abstract design. A successful design requires careful choice of the levels of detail for each layer of a programming project. Some of these choices involve classical issues of philosophy, such as the status of referents of expressions, the meaning of quotation, the problems with negation, the power of self-reference, and the use (and danger) of abstraction. Well-composed programs can be effective at expressing emotional content as well. There are the beauties of symmetrical design, and the horrors of ugly kludges.
All programs have bugs, even ones that meet given specs (because the specs are always incomplete or inconsistent). Bugs are inevitable because the creation of buggy approximations is a crucial part of the design process. Thus, it is more effective to make systems that are debuggable than to try to make systems that are correct by construction.
In any case, we must keep the fun in programming and not allow it to become a tedious job.
"It's hard to avoid thoughts of violence when I see something like this" has to be the best line in the entire slide deck and is something we can probably all relate to 😂
Emotional Damage
Fascinated with a sharpness of your mind and your joy of programming
Deeply inspiring. Makes me want to watch the 6.001 lessons again
Mind blowing! What a brilliant human being
04:52 "That is the job of compilers."
Brilliant!
I wish we had the Q&A !
Great to mention the philosophical stuff and the fun.
I thought I'm just the unworldly freak, who sees philosophical problems, when coding.
Seeing Sussman talking about this, and also explaining the type-errors of math (which you can also find in Linear Algebra, even in some so called proofs), was really relief for me.
When even the math profs tell you BS, and you think you maybe are just too stupid (imposter?), and then comes along Sussman and says: Well, yes, the math teaching is crap! 🙂
Sussman, a great personality!
His rants are exhilarant.
And... the free software thing at the end of the talk was quite unexpected.
Great, he mentioned it!
Sussman hahahahahah sussman sussy baka hahahah sussy sussy brainrot sus amogus sussy dude
Well, then you can stop abusing the poor ZFC and join the glorious Type-theoretic family. It turns out that I actually learned how to do formal induction(i.e. proof) from Sussman's 1986 lecture videos where he taught me how to use fixed points to express infinite admissibilty using finite expression, but Sussman himself seems stuck to Mathematics of Riemann's era if not Gauss's era, 2 centuries ago, and is totally innocent to the development of modern mathematics of Grothendieck's algebraic geometry, or categorical universal algebra, not to mention the lesser known constructive line of Kolmogorov, Brouwer, Church, Turing, and all the way to MLTT/HoTT. No you can't stablize Gauss's infinite infinity with a Turing machine, you can't even do the marginal combinatorial enumeration cases. What you need to do is to find the finite recursive generator to prove the finte number of properties you need in the context of infinite possibility, and this is the best judgement you can possibly make.
Lots of great stuff here but I love the dual numbers at 38:00. Seems like they might have an application to control systems.
I had an Intro to Quantum prof like him. We rode a cloud of psyched the whole semester.
I try and dynamically respond to as many as a I can. I regretfully inform those whom I cannot dynamically respond to, that in the future there would be more response of the dynamic nature. Ohhhyouuuuu oboy!
Beautiful, is there a link to the presentation slides?
You are my idol. Hi5 dear fellow Aquarius 🖖
GJS is a Great Explainer
31:53 I'm not sure what Sussman is proposing for the behavior of the set constructor
If it behaved differently for set arguments, that would be less consistent
His point stands, but it's an odd example
he wants the arguments to be the items: set('foo', 'bar') => {'foo', 'bar'}. I'll point out that dict(foo=5, bar=3) does the right thing. For set arguments it would be a set of sets: set({'foo'}) => {{'foo'}}.
How do You Make Games in Scheme Programming Language?
For example with Guile Chickadee - search for it.
There are languages called Fennel and Urn that compile to Lua, And Lua is used a ton in games.
Have you heard of the Itch Lisp Game Jam? The spring lisp game jam is running now! I am using Guile Hoot.
The folks at Bit Twiddle Games made a scheme based game. I didn't know if any of it is open source yet though.
@@cyanuranus6456 Guile Hoot compiles into webassembly. Cheekadee will support that in the future.
Free software is very laudable, but only an academic with a guaranteed salary could be this purist about it. Regretfully until we reach the post scarcity society, some people will still need to earn their living by selling their creativity even though I admit that is a bit sordid. 🙂
Free as in freedom, not necessarily gratis. These days you have tons of company making a living through foss, even when the code is gratis.
How and by who do you think GNU/linux is developed ?
We need more GPL and less MIT or BSD, gpl+dual_Licensing is the only way that today we could ensure a good future for open source
@@pragmaticmero686 Use AGPL because GPL is effectively like BSD or MIT in a world of software as a service. You are not compelled to release GPL software running on your servers, but must release AGPL software running on your server.
@@heroe1486 You misunderstood. Point is code IS gratis but idea how to come up with that solution written in code is expensive, so that solution(output of creativity) should be awarded price. You pay for Kafkas thoughts not for his letters(typeface, symbols).
Suss man? Omg sussy baka
@33:35 what? I see no problem