You are viewing archived messages.
Go here to search the history.

Eli Mellen 2024-01-03 18:58:29

I ran across Cassette, a programming language today. I liked some of the stuff on the webpage and think it is interestingly aligned with the Future of Coding community.

I made Cassette as a simple language for “playful programming”. Playful programming is writing something for the sake of writing it. It’s making a software 3D renderer or a GIF reader, even though better implementations of those already exist. It’s making generative art programs and drawing them with a pen plotter. Cassette itself is playful programming—there are certainly other scripting languages that may be better for personal projects like these, but this one is mine.

Continuing,

In particular, I wanted Cassette to feel “essential”, where each aspect of the language reflects some fundamental aspect of computing (from a functional language perspective, at least). For example, I consider garbage collection, lexical scopes, and immutable types essential. The result is a little boring, but I hope it’s a good platform to play with other programming concepts.

Emphasis mine.

Joshua Horowitz 2024-01-03 20:11:49

I’m not sure what the bolded part means. It feels unhelpful as a design principle. I mean, every language designer thinks the things they’re putting into their language are essential; otherwise they wouldn’t be putting them in there. This leaves entirely unresolved how to determine what is and isn’t essential.

The one way I can see for this principle to be substantive is as a statement of minimalism – excluding conveniences in favor of radical simplicity. But given that the “future work” section of the page includes “Bignum support” and “Destructuring assignment”, it hardly seems that the author is eschewing conveniences! Is destructuring assignment a “fundamental aspect of computing”? If so, what in the world isn’t? If not, how does the bolded statement constrain or guide the design of the language?

Eli Mellen 2024-01-03 20:13:01

For me the essential bit was worth highlighting when taken as essence and accident

Jack Rusher 2024-01-04 08:02:33

image.png

Eli Mellen 2024-01-04 21:32:53
Eli Mellen 2024-01-04 21:33:05

Sure, you can write poetry and stories with large-language models like ChatGPT. But what about small-language models handcrafted by humans?! In this course you will discover the joys of working with small, bespoke language models that you create, which in turn “write” procedurally-generated texts of all sorts. In the process we’ll explore the long history of collaborating with computers to write poetry and narrative. By the end of the class, you’ll be able to use HTML, Javascript, and Twine to generate texts of your own devising. You’ll also get a handle on exactly why a humanist might want to play around with procedurally-generated texts or make their own. No programming experience is required. No experience is in fact preferred!

Nilesh Trivedi 2024-01-07 00:23:04

youtube.com/watch?v=UH0A2iujtY8 by @Katie Bell is 👍

Jason Morris 2024-01-07 02:58:36

Nice. I've been watching sploot, and it seems like she has made a lot of progress. I'm a little confused why she went with "wrap" instead of changing the order of nodes as a primary action. I also think deciding from the beginning that you don't want drag and drop for anything misses out on a lot of cool stuff that is easier to do in a structure-aware tool like TYLR than in any text editor. I also think there's difference between being able to drag and drop, and being required to. A block editor with keyboard editing and a touch screen is sort of where I think the sweet spot might be.