Paleo-FoC is: 1. Text-scripted ^ 2. Solo * 3. Offl...
# thinking-together
c
Paleo-FoC is: 1. Text-scripted ^ 2. Solo * 3. Offline * 4. Ready to run / No toolchain required / Batteries included 5. Save & Share via single file 6. (what else?) BASIC is the exemplar. Unix script and .BAT. Many lisps. HTML/CSS, js (works fine offline). See notes how HyperCard and VB fall in. Smalltalk, sure. (Thoughts on typical /bin languages like perl, python, ruby below - they start paleo but can easily become programmer-only.)
❤️ 3
🤔 1
^ Alternatively: behavior via text, or text-driven. HyperCard and Visual BASIC are def paleo - those do enable functionality via properties, but primarily via text scripting. * Not exclusively, but first & primarily Candidates: • Can learn strictly by example / cut-paste / modifying • Important state is global • External data is still a readable file This is mainly just thinking up why it was that certain eras and certain tools worked so well for so many of us, back before we were programmers. Having this conversation not to be definitionally pedantic, but to just keep thinking of qualities that made computers "at the ready" for non-professionals to go deeper into.
s
Pico-8 definitely fits here also
❤️ 1
and Processing
1
any specific reason why text-scripted is a requirement? I'm not against it, just curious about the reasoning
👇 2
d
Here are some additional properties that I like to see in a "paleo" style programming language: • There is a complete and unambiguous language specification, which is less than 50 pages long. • It is feasible for a single person to implement the language from the specification in a reasonable amount of time.
❤️ 3
s
I like those constraints but they remove some of the languages on the list (arguably)
👍 1
Making a (modern) compliant HTML\CSS\js engine is not doable by one person in a reasonable amount of time, etc.
so you start to limit yourself to small-ish languages and environments (lisp variants, forth, lua, basic)
k
Sounds like it's pointing to a certain notion of paleo. But it's just a fun game so alternatives are certainly possible. If I'm understanding right.
👍 2
d
If a language has a spec and is small/simple enough that it can be implemented by a single person, then that means that a non-professional (Christopher's word) has a hope of fully learning and understanding the entire language (going deeper, in Christopher's terms). I would rather use the term "postmodern" for some vast and/or vaguely specified language that you can never fully master.
c
I think paleo/text is just more of a historical artifact, present in such a vast majority - there are certainly parallel timelines where something graphical/symbolic was at the genesis of computing
@Doug Moen I would love to see a pomo-computing thread, heck even channel ❤️ The brave avant garde is always a source of head-spinning excitement
g
can be adapted (even, or maybe especially if a huge hack) to whatever use case you have personally, no matter how persnickety or otherwise specific
pomo computing feels like orca honestly... an almost alien language that’s nevertheless clearly consistent and intentional even if its aims are so ethereal that discovering them becomes a source of creativity
👍 1
s
yes I thought of ORCA with this
It feel visual instead of textual though because it's ascii on a 2D grid
k
I'd add Forth to the Paleo-FoC category, even though it doesn't have all the features. In particular, no files but "screens". It's so paleo that it pre-dates files!
❤️ 2
😄 2
k
Upon rereading, I'm surprised to see perl/python/ruby included. Now @Scott Anderson's comment makes more sense that the constraints don't match the examples. What's an example of a language that wouldn't be Paleo?
s
Java, C#, Scratch, most no-code\low code tools, C, C++, Rust
Many languages require large and complex build systems or toolchains to get anything done
or a package manager (not offline only)
c
ruby is a late comer, maybe python, too - I guess the reason they match is that they're "right there", and it's quick and easy to run a one liner or build a script file and send it around - non-build languages are sort of at a "paleo advantage" that way
k
Perhaps Python and Ruby belong right up until you use a package manager?
c
Yeah - dependencies are the "unfortunate problem" that turn programming into a harder effort
k
But that caveat does dilute the category for me. It's not just about whether a tool belongs or not, but the way you use it that affects the answer. Too much nuance for me 😄
c
I agree - I'll update above
❤️ 2