r/SneerClub archives
newest
bestest
longest
TIL Yudkowsky proposed a programming language based on XML. Contains concepts like "innocence". [2001] (http://flarelang.sourceforge.net/prog-overview.html)
70

I’m aware that during the time Yud was writing XML was frequently abused in similar ways, but just thinking about trying to represent programming logic with XML makes me nauseous. Why?

At least he recognized how clunky it would be to type it all out, but his solution is to bolt Python-but-worse onto the language and then translate that into XML? This is genuinely amazing, I can’t believe I haven’t seen it before. The docs have bizarre ideas like allowing mp3 files and HTML in comments???

EDIT: Goals of Flare probably displays peak Yud best. It reminds me of Pepsi’s infamous redesign doc.

Foreword: Earth needs Flare

Well, we’re going to be up-front about this: Flare is really good. There are concepts in Flare that have never been seen before. We expect to be able to solve problems in Flare that cannot realistically be solved in any other language. We expect that people who learn to read Flare will think about programming differently and solve problems in new ways, even if they never write a single line of Flare.

>Pepsi's infamous [redesign doc](https://www.goldennumber.net/wp-content/uploads/pepsi-arnell-021109.pdf) This is amazing. How had I never seen this before?
And now you can properly appreciate this: https://youtu.be/qImHuiYnVQ0
It starts off as fairly basic design agency fluff, and gets so much worse.
> We expect to be able to solve problems in Flare that cannot realistically be solved in any other language. I mean "realistically" is doing a hell of a lot of heavy lifting here, or Yud is just casually rejecting the Church Turing thesis.
Remember, he’s basically untrained and rejects the idea of using prior techniques and knowledge. There’s a damn good chance that he has no idea what that means.
looking at that doc + the Idioms of Flare page, this language has truly fascinating semantics. - dynamic multiple prototypal inheritance - atomic reference counting for all objects (but also there's a linked list of referees attached to every object??) - structured and unstructured concurrency - setjmp/longjmp (not clear how this interacts with structured concurrency) - implicit construction of a dynamic context data structure that's threaded through all function calls via thread-locals. (again, not clear how this interacts with structured concurrency) - Cobol-style PROCEDURE DIVISION declarations, but for every function it reminds me a lot of modern Javascript or PHP. Lots of poorly-justified features that interact in strange ways. I think it would be a nightmare to program in because other functions could do so much wacky stuff to the implicit context. (Ironic, since the language is supposedly supposed to promote "innocence", which as far as I care to try and understand just means "modularity".) Honestly of all the implementation choices here I think XML for representing compiler-internal data is one of the more reasonable ones. The user's never supposed to read it, they see python syntax. And XML is actually not a bad choice for an IR serialization format. (Idk why you'd tell your users about it, but then again, it *was* 2001.)
Classic case of a language designed by someone who’s never actually done any serious coding. Amateurs think that the real thing holding coders back is language features. Pros know that the real issue is opening up a project and saying “Christ, what the fuck is all of this stuff here?” This is why the really powerful languages regularly lose out to like Java and Python.
I'm thinking this doc was something one of cultists came up with at a much later date, just to make it look like there was something to it. There's no way Yudkowsky even knew what atomic operations were in 2001 or even cared. I distinctly remember older docs being just absolute BS without even the right buzzwords.
[http://web.archive.org/web/20010822110925/http://flarelang.sourceforge.net/goals.html](http://web.archive.org/web/20010822110925/http://flarelang.sourceforge.net/goals.html)
Right... so by 2001 he already had SIAI and had someone else involved, some Dmitriy Myshkin. Plus the doc (the goals of flare page) talks in first person about some experience that doesn't seem to match his bio. (Apple 2 programming edit: mac plus apparently). I didn't realize the expansion to have other people involved happened quite that early. There was a doc before SIAI was a thing, I think on his old website where he also had the premature autobiography. edit: ahh, hypertalk he mentions wasn't actually anything smalltalk related but a short lived scripting language. Okay, could be him to some extent; still the lack of run on multi paragraph parables (as e.g. in TDT paper) is very unlike him.
I now have to my hand up as someone who has writren production code in hypertalk...
Welcome to the very real world of XSLT, where you can have all the fun of escaping comparison operators! ( > ; instead of > )
I once worked with a guy who wrote the whole frontend of an asset management system in XSLT 1.0. I forget exactly which common operation I had to write a recursive function in XSLT to accomplish. I think it was string concatenation or something stupid like that.
> Pepsi's infamous redesign doc. Holy cow, it's like a smoothed-out, genteel version of Timecube.
> bizarre ideas like allowing mp3 files and HTML in comments??? This was clearly added to compete with [HolyC](https://en.wikipedia.org/wiki/TempleOS)!
As soon as I saw this I hit google groups search for the terms “Erik Naggum Flare” (he was a fairly well-regarded and feared flamer on both sgml and lisp Usenet back in the day, known for his takedowns of trolls and xml-based mental masturbation) and unfortunately, no direct takedowns. But! [This post](https://groups.google.com/g/comp.ai.philosophy/c/nh-ZgI6xyZ8/m/Cki5VbycnFQJ), with this great paragraph: > From the Latin word "imponere", base of the obsolete English "impone" and translated as "impress" in modern English, Nordic hackers have coined the terms "imponator" (a device that does nothing but impress bystanders, referred to as the "imponator effect") and "imponade" (that "goo" that fills you as you get impressed with something -- from "marmelade", often referred as "full of imponade", always ironic).
Innocence was always a stupid concept to encode into a programming language, no matter what syntax you used.
It says a lot about Yuds life trajectory, first wanting innocence, then being afraid of malicious AI, and then trying to teach people how to think, and ... well not sure what he is doing now, apart from denying he ever was an ai researcher.
The trajectory started with being paid to make some sort of a trading bot (without delivering), then the programming language, then AI singularity, then being the AI safety guy. So basically you start with a way over ambitious project (a trading bot that actually outperforms index funds), which isn't bad per se. But when it fails instead of doing something more attainable, hop onto something that he would be even less equipped to do. Again and again until he reached the point where it is not possible to be confronted by reality. The thing about programming, particularly something as large and complex as a compiler particularly with a lot of silly features, is that it's like cleaning a toilet with a toothpick, with a microscope glued to your face (so you can't even see the whole toilet at once) - it is an extreme amount of man hours to accomplish seemingly very little.
> just thinking about trying to represent programming logic with XML makes me nauseous I have actually done this, when I had to write actual code in ant. the curse of accidental Turing completeness.
XML makes some sense f you are into metaprogramming, because it can be transfer by existing tools.

Flare will be the first annotative programming language.  Annotative programming, if done properly, has the potential to be the successor to object-oriented programming, in the same way that object-oriented programming succeeded procedural programming, procedural programming succeeded assembly language, and assembly language succeeded raw hexadecimal numbers.  (This is a big claim, but it may sound more plausible after reading Idioms of Flare.)

Creating the successor de facto programming paradigm that will become the standard for developing software around the world does sound like a very lofty goal, that is until you compare it to designing a Friendly AI system that will save the world and everything in its future light cone!

EDIT: TBH, I don’t really mind this outside of his hubris (he was young at that age too so that can get excused as well). At least he’s trying to actually make something there and failing at it is no reason to fault him, I applaud it. It’s just, you don’t have to aim for “saving the world” with every project you attempt brother.

Doesn’t sound that different from declarative programming, instantiated by something like Angular, which has superseded object oriented programming in certain places, and has a similar xml-like syntax. That being said, Angular sucks lol

lol OF COURSE he likes xml

presumably xslt was involved too

Good to know that he’s deeply incompetent in every way and not just philosophy.

I would at least have the self reflection to take that shit down when I realized how idiotic it was

And that is why you would suck as a cult leader. ;)
I can’t even get my cat to follow me
Cats are hardmode, start with something easer, try ~~toddlers~~ (no wait really bad idea) tech enthusiasts. E: also don't worry about turning people off, you only need to worry about converting people, if only 1 in 10k people follows you and the others all hate your guts you have a country of potential followers.

My first impression wasn’t that bad – I mean using XML is dumb, but adding metadata to all objects isn’t a bad idea for 2001 (some form of annotation is pretty common these days), but reading around the rest of that site is hilarious. I’m not sure anyone had the faintest inkling of how to implement half of the features they describe, or even how they would really work, let alone be efficient enough to be usable.

social status = 19

"Look at my shiny new programming language, it's really cool. See how easy it makes modelling technocratic dystopias?"
goddamn the emperor of the third imperium is only soc 18

Please post this to r/programmingcirclejerk.

3: What is the current status of Flare?

We’re working on the design and language specification. We hope to write our first line of code in late August.

It would be really hard to code an AI in a non-object-oriented language and it probably won’t be easy to build AI in a non-annotative language either. Flare, an extensible language easily modifiable by Flare programs, will let us write more powerful tools, and will let the AI introspect and tinker with its own source code, without our needing to become compiler and interpreter specialists.

If there’s no production-quality Flare language by the time the Singularity Institute begins writing code on the AI project, as seems likely, then we’ll probably be forced to write pseudo-Flare programs in Python, at least for the prototype. But we won’t have to like it, and we’ll still want to switch to Flare as soon as possible.

The Singularity Institute has embarked on a long-term quest to develop real AI. They don’t want to stop there, either; they want to develop recursively self-improving AI, Friendly AI, and transhuman AI. The Singularity - the technological creation of greater-than-human intelligence - is a quest of such mind-boggling importance and earthshaking impact that our words cannot even begin to describe it. (You should go read their website.) Even if you’ve never heard of the Singularity Institute and you’re getting involved in Flare solely because you love annotative programming, we still hope that you get a warm fuzzy feeling from helping to bring about a swifter and safer Singularity.

cool

Soooo... write something which achieves incredible feats of computation in the slowest major language around, and plan to replace it with a language guaranteed to be even slower? Hmm.

The big question is: has anybody used it for blockchains/cryptocurrency/smart contracts yet?

[deleted]

I’d have to check dates, but PG floated this ridiculous idea that “hackers” subconsciously evaluate languages based on how many letters they have to type, so if you want to make a successful language, things in it have to be short. Maybe that’s where this comes from?

I don’t think the linked document was substantially written by Yudkowsky. If you go back to the homepage a lot of other people are listed, plus the “goals of flare” talks in first person about programming on apple 2 (edit: mac plus) and such which doesn’t seem to match the ‘autobiography’. As silly as it is I don’t think its him.

Edit: or if it is him, unedited, then what the hell happened? Choosing the life of grift rots the mind, apparently.

His original TDT “paper” or the sequences are a good example of his style; he writes with parables and analogies.

Yudkowsky had some other writings about flare at some earlier point, which did read like him.

Ah the 2001s. I remember people being all hype about XML and then finally learning what it was and going ‘wait this is it?’.

Today, s/XML/NFT/ .

This looks fine to me. People in 2040 will hopefully make fun of us for using YAML.

Representing an AST in a tree-based language like XML is fine. It wasn’t meant for humans to write anyway.

Flare was intended as the foundation of a new, AI sector of the IT industry, where AI would not mean (as it does today) machine learning, but rather programs more akin to Mitchell and Hofstadter’s Copycat, intended to engage in creativity and analogy-making, and which would apply those capabilities to their own re-design. One attraction of using XML to represent program elements and objects, as I understand it, is that it would facilitate this last process.

That's a lot of buzzwords and no understanding in there
It's a summary. If you want more details about some aspect, feel free to ask and I will answer as best I can.
The amount of buzzwords in there is just obnoxious.
>One attraction of using XML to represent program elements and objects, as I understand it, is that it would facilitate this last process. yeah but how tho
[http://flarelang.sourceforge.net/goals.html#introspection\_self](http://flarelang.sourceforge.net/goals.html#introspection_self) gives a few reasons - a tree is more robust against modification than a list (the comparison being with LISP); more facts about the code are stored explicitly; and it's easy to add new ones as they are discovered.
Virtually every compiler builds an AST, or at least traverses one as it goes (if we are talking of very old one pass compilers). Keeping one in XML, well that's a low level implementation choice; this kind of confusion between a high level concept (AST) and a low level representation (XML) is what you get when you learn the high level concept by the way of exposure to one specific instance of such. Generally if you need to store an AST you would choose a more optimized representation because you don't want longer compilation times for large codebases.