@yogthos that's just bad code.

I used to be super annoyed not having lisp-like macros, but the obsession with s-expressions escapes me.

... It's gunna be a tree regardless how you write it. Might aswel use whitespace(like Python) and infix notation, it's perfectly understandable and looks better...

I also do not understand people wanting static typing by the way. It only stops really shallow bugs as far as i can see.

@jasper there are a number of advantage to using s-expressions. A couple of big ones for me are:

Having a single syntax for logic and data. You can take any piece of code and transform it using the same language you're already using. I wrote about the benefits of that in detail here

yogthos.net/posts/2017-10-03-M

S-expressions also allow much better editors where you're manipulating blocks of logic as opposed to lines of code as seen here

danmidwood.com/content/2014/11

@yogthos @jasper Big fan of Forth here, but I definitely want to get more involved with Lisp eventually as well. Common Lisp in particular, mainly because it is the common benchmark against which other languages are referenced against. I did play around with Shen Lisp for some time, and really enjoyed the experience.

@vertigo @jasper @yogthos Scheme is a lot leaner and easier to learn though.

Also forth and scheme are really about minimalism (although there's a lot of code that shows the opposite), and I have found stimulating effects in using both...

But then I also think that of Smalltalk....

@ckeen @jasper @yogthos I love Smalltalk too, as a language. I just can't wrap my head around the library it's expected to be used with. ;)

@vertigo @yogthos @jasper

Yes, it's huge. But there's stuff like Cuis which has just 500 classes and has minimalism as a design goal. Or 'A little smalltalk' a non graphical implementation of smalltalk based on the blue book...

@ckeen @yogthos @jasper Where can I learn more about these? The last time I looked up "Little Smalltalk," I got a bunch of references to code which is incomplete or otherwise doesn't work for some reason.

@ckeen @vertigo @jasper @yogthos I've not used these in a while. v3 or v4 are the best bets. v5 added a lot, but was pretty buggy IIRC.

@ckeen Doing ok. I spent a while being offline, starting to get back into things now.

@crc @ckeen @jasper @yogthos I've honestly not even gotten v3 or v4 to work on my systems in the past.

@vertigo @ckeen @jasper @yogthos What OS and CPU? It has historically had issues on 64-bit systems, my repo has had some contributed patches in the last couple of years that should help on v2, v4, and v5. (mostly updates to v4)

@crc @ckeen @jasper @yogthos This was some years ago, so it might work now. I haven't checked in a while.

@vertigo @ckeen @jasper @yogthos It won't hurt to check and verify that it does. I should also try it on my BSD systems...

@vertigo @ckeen @yogthos @jasper

github.com/crcx/littlesmalltal has a bunch of them. Itโ€™s maintained by @crc, I believe.

(I also have a partial cleanup of it on Github; lemme know if you want a link.)

FWIW, in the 25-ish years Iโ€™ve dabbled with it, Iโ€™ve never managed to get it to do anything useful or interesting. If you want to learn about Smalltalk, Squeak is a much better introduction.

@ckeen @jasper @yogthos Scheme is nice, but feels very incomplete to me -- the kind of language you'd write as a scripting tool. With Forth, the expectation is for you to write everything you need yourself, but Scheme seems to deter that way of thinking, and so feels at-odds with its own minimalism.

That said, given a Scheme and support for non-hygienic macros (because I just can't understand wtf hygienic macros are actually *doing*), I'd probably be quite happy.

@vertigo @yogthos @jasper

That's maybe due to a lot of 'undefined behaviour' in the scheme spec. but in any scheme system the basics are all there, and maybe more.

Yet, yes there's more of a struggle between a minimalistic system and minimalistic language.

Forth has no system to speak of, so apart from the commercial Forths noone thought of them in that way.... Not even chuck I dare say.

@vertigo

@ckeen @jasper @yogthos

How does Scheme deter a "build it yourself" mentality? There are multiple textbooks using it as a basis for wholely different kinds of computation (Reasoned and Little Typer come to mind).

@endomain @ckeen @jasper @yogthos I think your interpretation of build-it-yourself and my interpretation are very different.

I'm taking the Chuck Moore interpretation, where Chuck discourages libraries, opting instead for the programmer to write their own primitives.

Scheme systems all have a packaging standard at the very least, which encourages exactly the opposite philosophy.

@vertigo

@ckeen @jasper @yogthos

My take is that Scheme encourages you to build and combine novel languages to solve a problem. When used that way, it's a lot like Factor.

It's packaging system is primarily an affordance for it's use as a teaching medium. It bears little resemblance in most expressions to, say, Maven or NPM. It's there to help students get an environment to do homework in.

@vertigo @jasper personally I'm a Clojure fan, I find that the literal syntax for different data structures greatly helps readability, and I really like that Clojure defaults to immutability.

I find it's also one of the more practical Lisps as it has access to both the JVM and Js ecosystems with tons of mature existing libraries for pretty much any task imaginable.

Sign in to participate in the conversation
Mastodon

Follow friends and discover new ones. Publish anything you want: links, pictures, text, video. This server is run by the main developers of the Mastodon project. Everyone is welcome as long as you follow our code of conduct!