What scripting languages actually do have proper specs that aren't ignored (therefore no Ruby)?
@lispi314 java 25
@travisfw Scripting extensions don't count, otherwise I'd count Common Lisp.
@travisfw I'm not counting Scheme mostly because making it usable requires considerable non-standardized surface.
@lispi314 in Java 25 you can run a .java file, no scripting extension. See JEP 512: Compact Source Files and Instance Main Methods, or just try `java source.java`
https://www.javaguides.net/2025/10/compact-source-files-and-instance-main-method-in-java25.html#example-3-using-a-field
Compact Source Files and Instance Main Method in Java 25

In Java 25, the introduction of compact source files and instance main methods aims to simplify the learning experience.

@travisfw Well yes but that's the same thing as Common Lisp.

That doesn't make them languages designed for scripting though.

@lispi314 how is that in any way "the same thing as Common Lisp"?

But you are right it is not technically scripting. Java compact source files are still compiled first.

@travisfw Compilation is orthogonal & incidental, SBCL also compiles before execution.

It's much more about language design and the kind of amenities it provides.

One could argue ECL means Common Lisp is a scripting language because it fulfills both standalone and embedded scripting roles but it's pretty clear it's meant more for a general programming use.

The Build is Always Broken

Programmers are always talking about broken builds: "The build is broken", "I broke the build" etc. However, the real problem is that the ...

@lispi314 You mean the spec isn't ignored or the language itself?
@aslakr The spec is not ignored.

Ruby has it to work around Japanese regulations iirc.

Python is implementation defined.

Common Lisp is not a scripting language (regardless of its usability as such).
@lispi314 R7RS? It's not perfect but it adds a bunch of extras for standardizing POSIX interfaces, making it a lot more usable for writing glue scripts around your system than pure R5RS.

Other than that, it's basically just shell scripts. Most languages don't even bother with a spec, instead you just have a reference implementation and the "spec" is what that reference implementation does (like Python, Lua, Squirrel, etc)
@reiddragon Well that's saddening to hear but I guess I'll take a second look at R7RS.

Part of why specs are so relevant right now is that they provide a clear path to alternatives if ensloppification strikes.
@lispi314 most languages made post 2000 don't really bother with that; it's just languages from the old millennium like C, CL, Scheme, shell script etc that have formal specs with several, equally valid implementations.

R7RS isn't exactly perfect for scripting (it's still meant to be a general purpose programming language), but with the standardized POSIX interfaces and it being Scheme which means easy extensions for any given task, it's probably your best bet besides hacking together your own DSL on top of CL.
@reiddragon RIP over half of the scripting ecosystem when the implementations ensloppify I guess.
@lispi314 as if they haven't already; Python has been breaking shit all over the stdlib for years now, and the adjacent tooling has only been getting worse and worse with every release
@reiddragon Yeah Python's shenanigans make me somewhat angry.
@lispi314 posix shell :3
@navi If only it was more pleasant for nontrivial stuff.

(Basically when most people would resort to moving to Python or Perl.)

Some libraries would also be nice.
@lispi314 oh yeah

it's weird that "scripting language" is so broad

shell to me lives in pure scripting, it's job is to control other tools that do the heavy lifting logic

meanwhile python or perl are more often used as programming-lite, they're not as good managing other processes but they can implement a lot more internally

usually when shell is not enough for a task, i try to split things into c utilities and call those, but often that's not applicable and i just gotta drop the shell scripts bits as a whole
@lispi314 is tcl an option?
@zardoz03 I guess? Does it have a spec?

Other than knowing it drives Tk I know next to nothing about it.
@lispi314 i tried but no cigar.
@lispi314 does this count? https://www.magicsplat.com/ttpl/index.html, not an ISO/ANSI standard but
The Tcl Programming Language: A Comprehensive Guide | Magicsplat

Official page for the book The Tcl Programming Language

@zardoz03 Well, even just an open spec/standard works.

I don't have much respect for ISO & ANSI as a result of their paygating standards. It defeats most of the point of having them in the first place. Especially safety standards for various things (battery safety & medical safety have both been very relevant in the last few years and basically everything is paygated to absurd levels).

Unfortunately this looks more like documenting the implementation. It could work in a pinch, but it's not explicitly an implementation target either which suggests future instability if one relies specifically on that.

@lispi314 tcl or lua ?
@SRAZKVT Lua isn't implementation defined?
@SRAZKVT @lispi314 pretty sure both of those are implementation-defined
@lispi314 posix sh also ? but it's very messy if you try to do things that aren't what you'd do in a shell script anyway
@lispi314 JavaScript has a spec (ECMAScript), and the spec is relevant. But also, 
@lizzy Yeah they're kind of the primary pushers of the ensloppification as far as I can tell.

So while the spec is there I don't have very high hopes of it remaining usable.
@humm Indeed.

I think it isn't quite suited to generalist scripting but it is nevertheless nice to consider that in its typical role, it will remain replaceable & available.
@lispi314 @humm really seems that the tl;dr is that if it's not Scheme or something standardized in POSIX, it's probably implementation-defined
@reiddragon @humm With some notable exceptions but yes. Not entirely unexpected as I'd given things a cursory look in the past, but now it has become uniquely relevant.