Live data from Hacker News

A Friendly Introduction to Racket

geometridae.bearblog.dev

161–170 of 195 posts

Re: A Friendly Introduction to Racket

#161
post #16

While the language is interesting, sadly, nobody is using it in the wild. Maybe due to cumbersome deployment options? The ability to produce native standalone executables would boost its usage I believe.

It is not due to deployment options. People put all sorts of stuff in docker containers every day. It is rather that few people make an effort to learn a lisp, and fewer still who choose to learn Racket. The few universities teaching good computer programming basics using Racket don't really make a dent. You simply don't have coworkers who know this stuff. Are you going to be the one person making a decision at the c…

Would love to get coffee or kölsch sometime.

Re: A Friendly Introduction to Racket

#162
post #16

While the language is interesting, sadly, nobody is using it in the wild. Maybe due to cumbersome deployment options? The ability to produce native standalone executables would boost its usage I believe.

Naughty Dog uses Racket for all their scripting...

Naughty Dog was a great example of how productive Scheme can be in the hands of a few expert programmers. Founders attended MIT and CMU.

GOAL and GOOL were used in Jak and Dexter, Crash Bandicoot, and apparently brought back in The Last of Us:

https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp

Unsynced: The Last of Us Melee System

https://www.youtube.com/watch?v=Ox2H3kUQByo&t=2260s

In this 2014 GDC session, Naughty Dog's Anthony Newman shares an overview of the design and implementation of the melee system for The Last of Us.

Re: A Friendly Introduction to Racket

#163
post #16

While the language is interesting, sadly, nobody is using it in the wild. Maybe due to cumbersome deployment options? The ability to produce native standalone executables would boost its usage I believe.

Naughty Dog uses Racket for all their scripting...

Here is a project started in 2020 to reverse engineer the runtime and language which has playable games now:

https://opengoal.dev/

https://opengoal.dev/blog/progress-report-sept-2020

The OpenGOAL project is a project to reverse engineer the Jak and Daxter video games and the custom programming language they were developed in: GOAL.

The long-term objective of the project is to make Jak and Daxter run natively on a PC by decompiling and recompiling it with OpenGOAL, our reverse engineered version of GOAL for x86-64 PCs. We do not host any game assets or copyrighted material from the game – we only host tools for reverse engineering and porting the game. The user must provide a copy of the game to use our tools.

Re: A Friendly Introduction to Racket

#164

Earlier quoted context omitted.

I've helped such people with their configs. They just know it as "commands" they put in the init file - they don't think of it as a programming language. It's rare for simple init.el files to have things like functions, loops, etc. And, to be frank, most of them don't customize the init.el file. They just want a text editor - not an IDE. The defaults are ugly , but they're perfectly functional. None of these people c…

Why are they then even setting up vanilla Emacs in particular? Not impossible, of course, but it seems like a strange choice to make when not wanting to engage with its configuration. Or maybe another question would be who set them up with vanilla, unconfigured Emacs, if they are not so technical users? Even discovering tramp is not trivial or automatic and for working on a remote machine, isn't Vim much more common?

Emacs is just there in their environment. They didn't set anything up.

> Even discovering tramp is not trivial or automatic and for working on a remote machine, isn't Vim much more common?

Full confession: I, as a power Emacs user don't use tramp. It's ok not to.

I know people disagree with me, but for the most basic editing Emacs has virtually no learning curve compared to Vim. You just open the file and start typing like you would any other editor.

Re: A Friendly Introduction to Racket

#165

I've been designing my own small language runtime in Rust (VM + JIT + AOT backends) mostly as a way to actually understand tradeoffs compiler authors make instead of just reading about them. Racket's approach to macros and language-oriented programming is one of the things I keep coming back to as a reference curious how much of that flexibility comes at a real runtime cost vs. being mostly a compile-time abstraction…

[deleted]

Re: A Friendly Introduction to Racket

#166

I've been designing my own small language runtime in Rust (VM + JIT + AOT backends) mostly as a way to actually understand tradeoffs compiler authors make instead of just reading about them. Racket's approach to macros and language-oriented programming is one of the things I keep coming back to as a reference curious how much of that flexibility comes at a real runtime cost vs. being mostly a compile-time abstraction…

Some resources on implementing Scheme and variations:

Essentials of Programming Languages 3e

https://news.ycombinator.com/item?id=24324653

Essentials of Compilation: An Incremental Approach in Racket

https://github.com/IUCompilerCourse/Essentials-of-Compilatio...

Lisp in Small Pieces

https://news.ycombinator.com/item?id=8600048

Re: A Friendly Introduction to Racket

#167

I have tried racket and it was fun enough but man those parens. But racket is a really nice language to play with.

There are tools, particularly packages in Emacs, but also for VS Code and other IDEs, that make navigating nested s-expressions a breeze. And other tools for balancing parens automatically, and for syntax highlighting. You can just dim them if they are too visually jarring.

Re: A Friendly Introduction to Racket

#168

Earlier quoted context omitted.

I actually wrote an audio sequencer in HP RPL as a kid. It was far less complex to code, and human readable. Unicon was pretty cool also, but never became popular. Erlang/Elixir will probably become more relevant as people move into massively parallel constraint solvers. The monolith centric languages are simply no longer appropriate for many classes of problems. =3

Unicon was pretty cool also, but never became popular. Like it or not, popularity is a significant attribute if you have to work with others.

>popularity is a significant attribute if you have to work with others

Not sure why people buried your comment, but there is a good argument for long term support.

NodeJS is probably the worst to maintain if you cater to the lowest common denominator. Easy to show quick results with a low skill team, but generally anyone that can't be bothered to use other languages is going to cause reliability problems sooner or later. Ecosystems like pip/Cargo/Go-flavor-of-the-year/npm that run out-of-band dependency management will have deferred perpetual IT costs. =3

Re: A Friendly Introduction to Racket

#169
post #2

any time the topic of racket comes up, i wonder if there are any interesting apps i could explore. but all i find is libraries and dev tools: https://awesome-racket.com/

Some games to play:

https://spritely.institute/arcade/

The underlying tech might be more fun:

https://spritely.institute/hoot/

Hoot is a Spritely project for running Scheme programs on the web, featuring a Scheme to Wasm compiler and a general-purpose Wasm toolchain.

https://spritely.institute/goblins/

https://files.spritely.institute/papers/spritely-core.html

At the heart of Spritely is Goblins, its distributed object programming environment. Goblins provides an intuitive security model, automatic local transactions for locally synchronous operations, and an easy to use and efficient asynchronous programming interface for encapsulated objects which can live anywhere on the network. Its networking model abstracts away these details so the programmer can focus on object programming rather than protocol architecture.

Goblins also integrates powerful distributed debugging tools, and a process persistence and upgrade model which respects its security fundamentals.

Re: A Friendly Introduction to Racket

#170
post #54
post #2

any time the topic of racket comes up, i wonder if there are any interesting apps i could explore. but all i find is libraries and dev tools: https://awesome-racket.com/

One of the more notable apps originally written in Racket is https://news.ycombinator.com . See: https://en.wikipedia.org/wiki/Arc_(programming_language)#His...

And for the uninitiated:

https://paulgraham.com/avg.html

In the summer of 1995, my friend Robert Morris and I started a startup called Viaweb. Our plan was to write software that would let end users build online stores. What was novel about this software, at the time, was that it ran on our server, using ordinary Web pages as the interface.

A lot of people could have been having this idea at the same time, of course, but as far as I know, Viaweb was the first Web-based application. It seemed such a novel idea to us that we named the company after it: Viaweb, because our software worked via the Web, instead of running on your desktop computer.

Another unusual thing about this software was that it was written primarily in a programming language called Lisp. It was one of the first big end-user applications to be written in Lisp, which up till then had been used mostly in universities and research labs. ...

Post reply on HN