buc.ci is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
On FOSDEM and Guix Days we were discussing an absence of REPL in Arei/Ares.
One of the concerns was: with in-buffer evaluation workflow in contrast to REPL/jupyter notebook we don't see the correspondence between an expression and the value of its evaluation. It can negatively impact user experience and also makes Arei harder for learning/exploring.
I mentioned that this can be addressed by eval-and-print-to-comment.
Here is the demo of how it works:
https://youtu.be/lPVpYzqXNEY?t=215
abandoned my frankenstein deno-github-fedify resume site and starting fresh with just a #Scheme script generating basic HTML from JSON
playing around with generating html in gauche #scheme
https://practical-scheme.net/gauche/man/gauche-refe-draft/Simple-HTML-document-construction.html
Saw it on one mailing list that a #Lisp style guide recommended s-expression comments and listed #Scheme ‘s now standard #; syntax. And #CommonLisp counterpart: #+(or) that looks quite horrible, but is the shortest _correct_ way to comment out s-expressions. A lot to type though. So I sometimes use a shorter #++ that’s unlikely to get me in trouble, but still worries me somewhat.
To unpack: Common Lisp has conditional reading constructs. Think #ifdef-s, but acting on syntactic trees. This feature is mainly accessed through #+ (include if true/enabled) and #- (include if missing/disabled) and these can have quite complex logical expressions in them: #+(and sbcl (not lem-sdl)) (read-this-on-SBCL-but-not-in-Lem.) Including empty ones: #+(or) (include if either… nothing, never) And now mine #++ means “include if feature/implementation flad + is declared” and no one advertises plus in compiler flags, right? I’m totally safe.
It might sound somewhat unexpected from the person that’s just gone through a gargantuan effort of converting a (“small” yet still sizeable) #Scheme standard to #HTML, but… I’m still not sold on Scheme. True, it’s a
• Modern language.
• That gets Unicode and UTF-8 right.
• That has just enough operators to potentially do anything. (Any less ops and it’d become quite hard to accomplish some things.)
• That has reasonable semantics not tied to any machine. With sane memory model that works both in embedded and general programming!
• That is a Lisp. And that’s modernizing some things about family’s handling of… everything!
But still, I’m indecisive. #CommonLisp, exposed by this Scheme comparison as quite crusty with historic accidents, is still a better language in many ways:
• Typing (albeit quite simple) included in the core language.
• eval, read, and write heavily tunable for interpreter building, the very case Scheme should’ve excelled in.
• REPL and debugger behavior specified beyond probably what any language does in this regard.
• Extreme stability and portability of even non-trivial programs; “Triviality as a Virtue” library ethos as I call it.
• The ability to go full stateful and low-level, down to raw bits (not many languages actually can do that without bit masks etc.!) and GOTOs; huge/endless optimization opportunities.
Aaaaaargh. As someone in search of a universal and collapse/shit/future-proof basis for my computation, I’m extremely annoyed. Need to write some things in Scheme to make up my mind. Maybe make an SRFI or two (covering the CL areas above, typing is already covered!), possibly about meta-PL things like parsers and interpreters. Maybe that will expose me to real (yeah, I know, PLs are not “real” programming, but they well are for me!) Scheme and whether I want to commit to it.
50 years of Scheming! 100 more! Everything will be a Scheme! Look inside your Cisco router? Scheme. Your toaster? Scheme. Your mom? SCHEME.
When I say passable: in graduate school I wrote a Prolog interpreter in java (including parsing source code or REPL input), within which I could run the classic examples like append or (very simple) symbolic differentiation/integration. As an undergraduate I wrote a Mathematica program to solve the word recognition problem for context-free formal languages. But I'd need some study time to be able to write these languages again.
I don't know what the hell prompted me to reminisce about programming languages. I hope it doesn't come off as a humblebrag but rather like old guy spinning yarns. I think I've been through so many because I'm never quite happy with any one of them and because I've had a varied career that started when I was pretty young.
I guess I'm also half hoping to find people on here who have similar interests so I'm going to riddle this post with hashtags:
#Coding #SoftwareDevelopment #ProgrammingLanguages #8086Assembly #BASIC #C #Pascal #perl #java #scala #LISP #Scheme #Prolog #Mathematica #ObjectiveC #matlab #octave #R #Python #Fortran #COBOL #Haskell #Clean #Flix #Curry #Factor #Unison #Joy #Idris #Agda #Lean #6502Assembly