Live data from Hacker News

Racket v9.0

blog.racket-lang.org

91–100 of 129 posts

Re: Racket v9.0

#91

Delimited continuations as a programming construct were somewhat of interest when I learned about them, but not even my university discussed them. I don't think I ever had a colleague that even ever heard of the concept, let alone applied it. Of the "smart people", they typically only have heard of plain continuations, if you are lucky. The debugger in Racket was useful when I used it years ago. Unfortunately, it's k…

> I don't think I ever had a colleague that even ever heard of the concept, let alone applied it. Of the "smart people", they typically only have heard of plain continuations, if you are lucky.

I have a similar picture so far in my work experience. Basically, none of my coworkers ever touched a lispy language. If I said words like "continuation", "environment of a closure", "continuation-passing style" or "macros and metaprogramming", I would get blank stares. Or if I complained about that lambdas in Python are stunted things, they would not understand, because they were only familiar with mainstream OOP and every noun a class paradigm and wouldn't get the ideas where to use lambdas or even inner/nested functions.

This kind of stuff is definitely not part of the usual CS curriculum at universities here (Germany). And of course even more pure fantasy to imagine that to be taught in any boot camps or other higher schools than universities.

Well, maybe some day I will work with people, who have this knowledge, and maaaaybe together we can make something happen employing the ideas and such a language, that implements these concepts well. Or even just work with people, who know FP and have explored building things with it, like I did.

Re: Racket v9.0

#92

Earlier quoted context omitted.

How rewriting something internally makes Racket not mature? Sounds like refactoring to me and with an extensive test suite there's nothing to be hysterical about.

Maybe I just have a different working definition of these words. To me "mature" means "fully developed" and "polished" means "achieved a high level of refinement". To me, rewriting it all to introduce a major feature that fills in a longstanding hole in the language doesn't say "mature and polished". Because often times many bugs are introduced into a codebase on a major rewrite despite extensive test suites, especia…

Nobody would consider Chrome or Firefox to be immature or lacking polish because they have replaced entire compilers several times over the past few years? I don't have an exact count, but they probably do this every 3-5 years which puts them way ahead of Racket.

I'd also note that Chez Scheme was a commercial implementation bought and open-sourced by Cisco. It wasn't something they threw together. Because it is a complete scheme v6 implementation they are building on instead of rolling their own implementation in C. Coding against a stable Scheme API has to be easier and less buggy than what they had before (not to mention Chez being much faster at a lot of stuff).

Re: Racket v9.0

#94
post #17

Earlier quoted context omitted.

I suppose, Racket is for CS grads / post-grads / researchers / professors. That is, not for those who just learn CS basics, but for those learnèd enough. Students might use some simplified or customized languages produced with Racket. The syntax needs not be lispy; #lang algol60 is built in :)

You list only academic positions. Has no popular software been written in it yet?

Naughty Dog used Racket and their own in house lisp (prior to that) to write their games.

Could be mistaken but IIRC Jak and Daxter was the first console game to have a fully streaming world and they achieved it using a technique inspired by their hot reloading dev setups

Re: Racket v9.0

#96
post #52

Earlier quoted context omitted.

What was the name of the class?

Might have been Waterloo's Introduction to Functional Programming (CS 135). I have TA'd (technically ISA'd) that course several times and helped countless students in office hours. The struggling students didn't just hate Racket, they hated the whole HTDP philosophy of following a "design recipe" and writing documentation prior to implementing a function. Most of those struggling students essentially waited till the…

I loved that course so much. I remember some seemed to hate it because "when are we ever going to use Scheme in real life?"

Re: Racket v9.0

#98
post #28

Earlier quoted context omitted.

I've often heard this, but I don't really know of many people in the PL dev community who build their language in Racket. Also, I've taught a PL course and I tried to use Racket as a component, but students mostly just struggled with the LISP-y ness of it all, as they were primarily used to Java and Python. In all, I'm not really sure who Racket is for.

fyi https://blog.cloudflare.com/topaz-policy-engine-design/

That was a great read from Cloudflare.

Re: Racket v9.0

#99
post #16
post #10

Earlier quoted context omitted.

Agree? Or maybe none of them graduate into a role where they get to decide what language to use?

Everyone gets to choose which language they use for their personal projects. Where are all the Racket personal projects? N.B. I say this as someone who personally contributed small fixes to Racket in the 90s (when it was called mzscheme) and 00s (when it was called PLT-Scheme).

https://defn.io/page/projects/

https://joeldueck.com/projects.html

Re: Racket v9.0

#100
post #97

I want to thank Go for popularizing coroutines. Seems like every language now has adopted it and I love that.

Go definitely popularized concurrency for the modern era, but coroutines themselves are ancient tech. Melvin Conway coined the term in 1963 and Simula had them by '67.

It’s also worth noting that the specific 'coroutine' model most languages are adding today (JS, Rust, Python) is based on C#'s async/await.

Go actually rejected that approach in favor of Green Threads (Goroutines, not coroutines), so technically it popularized the alternative to what everyone else is doing.

Post reply on HN