Live data from Hacker News

Racket: Lisp for Learning

lwn.net

61–70 of 154 posts

Re: Racket: Lisp for Learning

#61
post #33

Who are the current major users of Racket? Are there any large commercial codebases written in it?

Naughty Dog, the company behind the Uncharted series and The Last of Us, uses Racket (or so I was told ~4-5 years ago)

The storytelling effectiveness of TLoU -- I was all misty-eyed at the end, and I realized I cared about the character I was protecting, not just playing a stealth shooter game -- is a credit to the entire holistic project. IIUC, they used an in-house narrative/scripting DSL that's written in Racket.

Re: Racket: Lisp for Learning

#62

Earlier quoted context omitted.

But where will the culture of Racket go? How will the educational texts, documentation, and general conversations go?

Why does the same conversation not come up when discussing typed racket? Is the introduction of a static type system really less culture-shaking than surface syntax?

The name "racket2" is too strong.

Re: Racket: Lisp for Learning

#63

I really like Racket, but the potential breaking massive syntax change in Racket2 makes me really uncomfortable in using or recommending Racket to other people, at least until the situation is clarified.

What?! parenthesis are a feature not a bug. Parenthesis is part of what makes lisps so nice to use. Such a stupid decision. Makes no sense at all. Maybe they are on drugs or something or just bored.

what about parentheses has turned you into such a fan?

Re: Racket: Lisp for Learning

#65
post #48

Well, I'm pretty sure this is going to go badly for me in the end, but I might as well leave this here: https://ihateracket.com

If I understand correctly, you're making scholarly CS Education arguments relative to PbD and HtDP, correct? Like, before you, the professors behind HtDP did relative to SICP (though they chose a playful academic article title, rather than a domain name :)? On that, I'll to defer to you CSE people, to investigate and debate, in the onward progress of science.

You're not, however, objecting to Racket itself, the practical programming language platform that enabled building the HtDP progessively-powerful teaching languages and their beginner IDE?

Re: Racket: Lisp for Learning

#66
post #2

Carmack is a huge fan of Racket. He was going to use it as the scripting language for VR until the Oculus execs made him use JavaScript instead (boooooo) https://twitter.com/id_aa_carmack/status/807797812700348416

Last week I tried writing a new Love2d mode for Emacs in Emacs Lisp, but it was on Windows so my muscle memory for Paredit wasn't helpful. Editing s-expressions is a nightmare without some kind of automatic help. Last night I wrote the same plugin for VS Code which used JavaScript, and naturally it was effortless. It got me thinking about how s-expressions are inherently hostile to non-customized setups, whereas Java…

I've also came upon Clojure after investing much time in Lua/Love2d, but my takeaways are different from yours.

I enjoyed Lua's simplicity, portability and execution speed. It shares much of JS strengths, with fewer quirks. I was productive after a weekend of reading Programming in Lua book.

Clojure took some more time because I had to unlearn some habits. It's for the best, I think. It's not just about homoiconicity and REPL. In Clojure it's hard to do the wrong thing, compared to JS or Lua. The language makes it easy to isolate a small piece of functionality, develop and test it, and then and put it together into coherent whole. Clojure may be harder to learn, but the cognitive load is smaller and it scales better for large projects.

Persistent data structures are also huge step forward. They eliminate whole class of errors and allow for traceability and reproducibility.

As for s-expressions, yes, they can be a nuisance in editor without proper support. I'm getting by with SublimeText + zprint auto-formater. For REPL I found no better than Atom's proto-repl. Also I hated Lua's "if..then..else..end" and other verbose constructs. I'd say s-expressions are more consistent and compose better. Still, your frustration is familiar to me.

Re: Racket: Lisp for Learning

#67
post #48

Well, I'm pretty sure this is going to go badly for me in the end, but I might as well leave this here: https://ihateracket.com

The opening does leave a sour taste. You ack that there is little research, and then claim a pragmatic position.

Your data section is compelling. Though, it reads close to the same arguments for why kids shouldn't learn calculus in grade school.

So the questions I would have to counter this would be:

  * How stable has racket been compared to the alternatives?
Specifically, how many texts in Java and python taught methods that are actually not good for user in industry? This is ironic, as the argument is they would be using an industry language. But they aren't, really. They are likely using an ancient dialect of an industry one. Heaven help you if you picked JavaScript.

  * Is there any data about how well the students do following each language choice?
In particular, this should be easier to get. Do kids that skip the racket course generally do better than those that don't?

Re: Racket: Lisp for Learning

#68
post #51
post #48

Well, I'm pretty sure this is going to go badly for me in the end, but I might as well leave this here: https://ihateracket.com

And before any says it, yes, I do love the idea of students EVENTUALLY learning a Lisp/Racket kind of language before they graduate. I would even be happy with an entire course dedicated to it. But I don't want that to be the CS1. I've just seen it go so wrong for so long now.

I actually really enjoyed 61A with Scheme at Berkeley. I think the benefit of learning Scheme to start is the flexibility of learning how more complex features like OOP, can be built off a simpler language.

> Pascal is for building pyramids imposing, breathtaking, static structures built by armies pushing heavy blocks into place. Lisp is for building organisms--imposing, breathtaking, dynamic structures built by squads fitting fluctuating myriads of simpler organisms into place. - Structure and Interpretations of Computer Programs

Re: Racket: Lisp for Learning

#69
post #67
post #48

Well, I'm pretty sure this is going to go badly for me in the end, but I might as well leave this here: https://ihateracket.com

The opening does leave a sour taste. You ack that there is little research, and then claim a pragmatic position. Your data section is compelling. Though, it reads close to the same arguments for why kids shouldn't learn calculus in grade school. So the questions I would have to counter this would be: * How stable has racket been compared to the alternatives? Specifically, how many texts in Java and python taught meth…

Do kids that skip the racket course generally do better than those that don't?

This is likely to have some confounding factors, considering the usual mechanics of skipping a university course.

Re: Racket: Lisp for Learning

#70
post #67
post #48

Well, I'm pretty sure this is going to go badly for me in the end, but I might as well leave this here: https://ihateracket.com

The opening does leave a sour taste. You ack that there is little research, and then claim a pragmatic position. Your data section is compelling. Though, it reads close to the same arguments for why kids shouldn't learn calculus in grade school. So the questions I would have to counter this would be: * How stable has racket been compared to the alternatives? Specifically, how many texts in Java and python taught meth…

What do you mean by “ancient dialect” of Java and Python? Even if they taught Java 7 and Python 2.5, it’s not a huge leap to comprehend modern language features. I’d argue that Racket is even more fast moving than either of them. I don’t think the goal is to teach “methods that are usable in industry” as much as it is to teach computer science. It’s probably easier to learn modern Python coming from old Python than it is coming from Racket anyway, but that’s completely irrelevant.

I think your second question is sound, even though it might be difficult to test. I’d be interested in the answer to it (or better, the answer to the related question of whether the students taking the Python version fare better than those taking the Racket version).

Post reply on HN