4 ms·
It's possibly an unpopular take, but it's not completely clear to me what community-driven programming languages gain from a standards process anyway. (At least
by codeflo 3y ago
It's possibly an unpopular take, but it's not completely clear to me what community-driven programming languages gain from a standards process anyway. (At least if the intention is to really standardize the complete thing, bells and whistles included, not just some tiny core, as R5RS did.)
If you have multiple adversarial commercial implementers for something, a standard makes perfect sense. It's still a lot of work, but necessary because otherwise, you wouldn't get things to interoperate at all. That's true for things like HTTP, or Bluetooth, or JavaScript, or C++.
But for a community project, having one blessed implementation and iterating quickly has proven to be the most successful model, in my opinion. I can point towards Python, Rust, even PHP for examples. Even Haskell, which started out with a written specification, has at this point de facto been forked into the much richer language called "whatever GHC understands".
- deleted 3y ago[deleted]
- _ph_ 3y agoScheme isn't "a community project". It is an universe of many implementations. Having an agreed standard for this is very valuable. It gives a reference, which everyone will want to follow for interoperability. But by creating the standard, things are discussed, so flaws might be discovered and avoided and of course, it gives a clear definition.
- xedrac 3y agoIn practice, Scheme isn't interoperable - you pick a Scheme implementation and pretty much stick with it. Different schemes implement different subsets of SFRIs, and many bring their own non-standard batteries to the table. I think having r7rs large would eventually make the language more interoperable.
- rollcat 3y ago> But for a community project, having one blessed implementation and iterating quickly has proven to be the most successful model, in my opinion. That's not how Scheme works, and I think it's important for both Scheme and PL research/design groups in general that they move the way they do. Each Scheme implementation is in fact its own language, with its own goals, focus, community, etc. E.g. Racket has very different goals (like PL research, education) from Stalin (aggressive optimization), Guile (ease of embedding), or Chicken ("real world" usage). Both the RnRS and SRFI processes are more like guidelines for the implementations to follow, to enable at least some of the code (usually libraries) to be portable. When you're writing your Scheme program, you're usually not targeting "R7RS" or "R5RS + SRFI-1" or whatnot; you're writing and running your program using Chicken, it's a Chicken program much more often than it is a R5RS program. If you later decide to port it to Racket, you will usually have much less porting work to do, but you'll still need to figure out how to do many of the mundane things omitted by the standard, like OS threads or FFI. It's much more useful to think of Scheme as a loosely-tied family of languages, pretty much the same way you can think of UNIX-like OS's. Your average UNIX will surely give you a /bin/sh and a printf and a malloc, but the really interesting stuff (like kqueue, io_uring, DTrace, etc) is why you choose to stick with one over the other, and what motivates different groups to experiment / innovate / contribute.
- lucas_membrane 3y agoHow much of the problem is academianic? Scheme has been taught in renowned universities, but may be in decline thereabouts. How to get new blood into the pipeline without universities in the movement? How to get universities to teach the thing without intro to programming textbooks with examples that just work everywhere with reckless disregard of the local dialect and local implementation? Fortran and COBOL are about twice as old as Scheme and nowhere near as Balkanized and sectarian.
- chromoblob 3y ago> When you're writing your Scheme program, you're usually not targeting "R7RS" or "R5RS + SRFI-1" or whatnot Why? > the really interesting stuff To me, the common standard is what is really interesting.
- rollcat 3y ago> To me, the common standard is what is really interesting. It's exactly what I meant ;) Scheme is different things to different people, I've shared my PoV and (to me) it doesn't seem like it disagrees with yours.