6 ms·
Of course SICP is brilliant in Scheme. But hello? There is no such thing as a “blub language.” Your comment misrepresents the entire point of the original PG es
by braythwayt 7y ago
Of course SICP is brilliant in Scheme. But hello? There is no such thing as a “blub language.” Your comment misrepresents the entire point of the original PG essay!
The point is that givens some fictional language called “Blub” for the sake of the essay, some programmers believe that their language has everything that could possibly be useful, productive, expressive, &c.
But PG’s contention that languages exist on a continuum of power (a gross oversimplification), and when a programmer believes that their “Blub” is as powerful as possible, they have closed their mind to more powerful/useful/expressive ideas.
But that’s as true of Scheme as it is of JS: If someone believes that LISP was the zenith of programming, and everything else since then has just been wankery, if they think we have nothing to learn from Haskell, or Julia, or Joy... Then for them, Scheme is Blub.
Blub is a mindset, not a language. Sure, some communities might be infested with Blub programmers, but nevertheless, languages themselves are not Blub.
Now, if someone says that SICP in JS proves that Scheme is no better than JS, well... That person has a Blub mindset. But teaching some of the same principles as SICP using JS is not in and of itself the Blub mindset.
Summary:
Blub is a mindset, not a language.
All languages are Blub languages if someone has the Blub mindset.
SICP in JS in-and-of-itself is not Blub.
JS in-and-of-itself is not Blub.
- projektfu 7y agoThe nadir is the low point, the antonym of zenith.
- braythwayt 7y agoThanks!
- throwawaybbb 7y agoSimple question: do you know enough lisp to write a self hosting interpreter in it? People talk up their language until they learn lisp then this happens: https://www.draketo.de/proj/py2guile/ https://www.draketo.de/proj/py2guile/
- jessaustin 7y agoSomeone who has written so much [0] about functional programming, I would suspect has written an interpreter before. [0] http://raganwald.com/ http://raganwald.com/
- throwawaybbb 7y agoI have written interpreters in python and god help me lex and yacc. The point is that writing one in scheme is so easy you almost think that the language was designed with that in mind, it was in case the sarcasm doesn't get through the text.
- jcora 7y agoCan lisps place arbitrary code in types and formally verify complex properties of stateful systems--all in the same language? Doubt it. Lisp isn't the epitome of power.
- throwawaybbb 7y agoYes. That's the point, you will write the dsl to do that in scheme. Then use that to solve the original problem. Abstractions on top of abstractions.
- jcora 7y agoNo. You can write a compiler for any language in Scheme, but it's disingenuous to say that Scheme has that language's features. There are many languages with way more powerful features than Scheme if you're comparing type systems.
- shakna 7y ago... Yes. Of course they can. Lisp is usually an academic language, which means research into type systems and type safety frequently takes place in it. ACL2 is a theorum prover written in Common Lisp [0]. And not just a random project either, but something AMD, ARM, IBM, etc. have used. [0] https://en.wikipedia.org/wiki/ACL2 https://en.wikipedia.org/wiki/ACL2
- austincummings 7y ago> original PG essay Which essay is that? I'd be interested in reading it.
- iNate2000 7y agohttp://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html
- austincummings 7y agoThanks!
- superdisk 7y agoConsidering everything is being shoved into the web paradigm and written in JS even when it's wildly wrong for the job, I think it fits the description perfectly.
- viklove 7y ago> even when it's wildly wrong for the job Oh, are you the great decider who decrees what we can and can't use certain programming languages for?
- superdisk 7y agoNo, but JS certainly wasn't designed for what it's been retooled into doing now. Neither is HTML.
- braythwayt 7y agoIf you really want a blog post to describe how JavaScript is eating the world, I suggest it isn’t “Beating the Averages” by Paul Graham. It’s actually “Worse is Better” by Richard Gabriel. I don’t think people are writing JavaScript tooling while saying that JS is just as powerful as Haskell or Lisp. What they’re saying is that its ubiquity is valuable and for their use case, ubiquity and network effects trump productivity and/or “power” however we might want to define them.