this post was submitted on 09 Aug 2023
11 points (100.0% liked)

TechTakes

1385 readers
109 users here now

Big brain tech dude got yet another clueless take over at HackerNews etc? Here's the place to vent. Orange site, VC foolishness, all welcome.

This is not debate club. Unless it’s amusing debate.

For actually-good tech, you want our NotAwfulTech community

founded 1 year ago
MODERATORS
 

no excerpts yet cause work destroyed me, but this just got posted on the orange site. apparently a couple of urbit devs realized urbit sucks actually. interestingly they correctly call out some of urbit’s worst points (like its incredibly high degree of centralization), but I get the strong feeling that this whole thing is an attempt to launder urbit’s reputation while swapping out the fascists in charge

e: I also have to point out that this is written from the insane perspective that anyone uses urbit for anything at all other than an incredibly inefficient message board and a set of interlocking crypto scams

e2: I didn’t link it initially, but the orange site thread where I found this has heated up significantly since then

all 31 comments
sorted by: hot top controversial new old
[–] [email protected] 10 points 1 year ago (1 children)

PLAN is an evaluation model for a purely-functional database.

Actually, this "purely-functional database" phrase is a bit misleading, it's an attempt to describe a novel programming paradigm for which we don't yet have good vocabulary.

this novel programming paradigm is just urbit’s badly plagiarized Nix store combined with Nix’s lazy evaluation semantics and large parts of Nix’s syntax (with pointless extra bits stuck on, as is tradition). not one citation in the whole thing, of course

and these fucking doofuses still use Nix to build their shit! they’re gonna claim with a straight face this bullshit is so novel they can barely describe it?

[–] [email protected] 9 points 1 year ago* (last edited 1 year ago) (2 children)

but also, y’all wanna see what Lisp s-expressions look like on urbit brain?

holy fuck this one is just painful

e: imagine if Lisp looked like this fucking cacophony (a basic HTTP hello world that uses a bunch of library functions for the difficult parts)

[–] [email protected] 7 points 1 year ago

Just visually, that looks like some unholy forth dsl, rather than lisp.

[–] [email protected] 4 points 1 year ago

lol, Plunder the coherent version of Urbit, eh

[–] [email protected] 10 points 1 year ago

Tired of dealing with shitcoins from the crypto currency world? Too bad, because we're making shit-urbits now.

At least "Plunder" is an honest name.

[–] [email protected] 9 points 1 year ago

I am really very pleased to see that the hackernewses are starting to react to Urbit the way they've already been reacting to crypto

[–] [email protected] 9 points 1 year ago

Urbit is a ball of mud

Can’t say I disagree.

[–] [email protected] 9 points 1 year ago

@self Why don't they just double-down on evil and market it as the OS for supervillains? There's a perfectly good bacronym for it already—SPECTRE, the Software Executive for Cryptocurrency, Intrusion, Terrorism, Revenge and Extortion. (Maintainer: Ernst Stavro Blofeld. And he doesn't use git, he uses sccs—collaborators get the shark tank.)

[–] [email protected] 8 points 1 year ago (1 children)

I think Urbit exists not because it's actually meant to work or do anything, but because Yarvin wanted the aesthetic of being a hacker founder tech guy. Proximity to tech folks was his bread and butter, right? Otherwise he'd need to get a real job and couldn't spend all his time generating bullshit.

[–] [email protected] 8 points 1 year ago

the use case for Urbit is as a techfash identifier. Only one sort of person has an Urbit ID in their bio. For this use case, it works perfectly.

[–] [email protected] 7 points 1 year ago

Tuple<"Do you expect these chucklefucks to ever release a full stable 1.0 let alone 2.0?", "Perhaps one day Urbitals will release a text I'm simultaneously drunk enough and not too drunk to read.">

BTW the latter string in English evaluates to false.

[–] [email protected] 5 points 1 year ago (1 children)

Omfg I have a coworker who writes stuff like this it's actually uncanny

[–] [email protected] 6 points 1 year ago (2 children)

I am just now learning about Urbit 🤔

[–] [email protected] 12 points 1 year ago

That's the downside of the XKCD unlucky ten thousand.

[–] [email protected] 10 points 1 year ago

I am sorry.

[–] [email protected] 5 points 1 year ago (1 children)

There have actually been multiple attempts at doing actual computer science from a starting point of Urbit.

Here's one I wrote up in 2017, whose proponents were so outraged at the Ethereum plan that they forked, and wrote their fork's constitution in Lojban.

[–] [email protected] 5 points 1 year ago (2 children)

Oh hey, small world; I operated a star for that fork. However, I no longer think that Urbit's codebase is worth reusing, and I've stopped participating. Instead, I developed a Hoon alternative (Cammy) and decided not to pursue Arvo compatibility.

[–] [email protected] 6 points 1 year ago* (last edited 1 year ago) (1 children)

I just want to say, as someone who's pretty well-versed in functional programming and has a decent grasp of category theory, that wiki article is absolutely impenetrable to me. I get that it's an esolang so the goal isn't a broad audience, just thought I'd share my perception. It looks very cool still, and I do want to understand it.

[–] [email protected] 5 points 1 year ago

Thanks! For an esolang, that is a compliment. Cammy does a lot of things differently, but it's okay to just look at it as an alternative syntax for expressing diagrams. Bring your own Cartesian-closed category, etc.

[–] [email protected] 5 points 1 year ago (1 children)

how is the experience of developing for an Urbit-like ecosystem? everything I’ve seen as an outsider indicates it’s fairly painful, but from an esolang perspective I suppose the pain is the point

[–] [email protected] 7 points 1 year ago (1 children)

Not just development, but even just basic maintenance of a star is onerous. Worse, there's no guide on how to do it: no notion of security and privacy, no data-integrity recommendations, no backups or testing, and almost no information on key management.

It's so bad that, if you look at Cammy, you won't see any sign of Urbit. You'll just see a language which designates total functions, provably halting, with basic toolchains for compiling and running. No Arvo whatsoever. I did reuse the word "jet", but I've provided an entire theory of jets and holes so that every Cammy jet is implementable in raw Cammy; there's no C code.

Also, although it isn't obvious from the esolang wiki, Cammy is designed to subvert copyright and punish folks who build up private repositories of Cammy code. I figure that if we can have fascist toolchains, then we can also have antifa toolchains.

Sorry for going NSFW, but I figure that my candor in the present will save somebody time and effort in the future.

[–] [email protected] 6 points 1 year ago

this is really interesting! thank you for sharing; doing deep dives into urbit can be fairly mentally punishing so I appreciate the first-hand account

it sounds like nobody with experience running any kind of service in prod has had hands on urbit — the administrative bits you mentioned are all the basics you’d want to run a system at any scale, and it’s embarrassing that urbit has none of them after all these years

from what I’ve skimmed so far, Cammy is impressive! notably its wiki article explains everything in standard computer science terms (including explaining things in terms of lambda expressions, which I appreciate) and I get the impression a lot of work went into making it fairly comprehensible for an esolang (as opposed to Urbit, with the opposite goal). I’ll definitely take a closer look at this later tonight, as having a reference “hoon’s non-evil little brother” is definitely useful for understanding Urbit by contrast

there really should be more antifa software licenses in the world. I’ve been exploring options myself to represent similar ideas in the code I release

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (2 children)

I didn't find the thread you are talking about, but I found this instead, which is probably much worse.

(Edit: I did eventually find the thread!)

[–] [email protected] 5 points 1 year ago
[–] [email protected] 4 points 1 year ago (1 children)

oh christ, that’s worth its own thread if you’d like to post one

the original thread for this one had 4 points and 0 comments at the time so I didn’t link it, but I probably should have in case it picked up. I’ll try and find it again

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (3 children)

my mistake, there’s gold in the orange site thread

e: ah, we found it around the same time!

[–] [email protected] 6 points 1 year ago (1 children)

The power here is supposedly that no authority can override your desires on your plunder system because it will eventually be a frozen spec, and so virtual machine runtime implementations that are correct must run any program from any time after the freeze. That means a vm I make today will run programs a thousand years from now (probably inefficiently) and a vm created in a thousand years must run programs from today. Theoretically speaking.

Yes that's what a spec means. Like wow I can write puts("Hello, world!") and it does the same thing on every ANSI C compiler, how novel!

[–] [email protected] 4 points 1 year ago

this is an incredibly bad idea for security of course, and is in any case is a garbage version of what javascript VMs already do successfully (much to javascript’s detriment, in some cases)

[–] [email protected] 4 points 1 year ago (1 children)

Dev is asked why it's called "Plunder"

Think of it as being a Scheme implementation: Racket, Stalin, Larceny, Plunder.

TBH this is the first time I've heard of a Scheme named after the notorious Soviet dictator. What's next, a Lisp called Hitler?

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago)

it’s weird that they omitted the historical MIT projects that led to scheme (PLANNER, Conniver, SCHEME(r, they ran into a filename length limit when implementing)) but found time to mention an obscure Lisp with no impact that stopped updating 16 years ago

maybe cause in the actual historical context of Lisp-1 names, “plunder” doesn’t even fit the pattern