Remix.run Logo
leobuskin a day ago

A few problems with this Fable's project:

1. It's not Python by any means, it's a subset with its own runtime, its own quirks and nuances;

2. It will be impossible to maintain parity with CPython without AI assistance;

3. It will die the same way as dozens of similar (even non-AI projects) died before, and reasons will be the same: (1) and (2).

subarctic a day ago | parent | next [-]

"Without ai assistance" - ok, but what about with ai assistance?

zahlman a day ago | parent | next [-]

For a project like this, relying on AI assistance also makes it effectively dead in the water.

minimaxir a day ago | parent | next [-]

Why?

all2 a day ago | parent | next [-]

Time-cost for machines instead of willing knowledgeable humans. The former requires money, the latter requires passion.

Arguably, passion for a project is without price.

zero1009 a day ago | parent | next [-]

Someone pays for the AI? That's the new human maintainer.

nozzlegear a day ago | parent | next [-]

Who will pay if someone, somewhere is not passionate about it?

throw1234567891 a day ago | parent [-]

You can spin up a model locally and pay yourself. Who will maintain the project if the passionate sole maintainer burns out?

nozzlegear 13 hours ago | parent | next [-]

I strictly use only local models, so I agree, but the project was built with Fable so my argument hinges on the assumption that the maintainer is going to continue using Fable and needs to pay for it.

inigyou 20 hours ago | parent | prev [-]

Which model works well?

all2 15 hours ago | parent [-]

Qwen 3.6 27b at q6 works decently well on 24GB of VRAM

bloppe a day ago | parent | prev [-]

Hypothetically, maybe. In practice, probably not.

CookieCrisp a day ago | parent [-]

If it's valuable enough to someone, and it isn't keeping up, someone will pay. If it's not valuable enough for someone to pay, then who cares?

jpfromlondon a day ago | parent [-]

Plenty of important things have been born of passion without necessity.

jack_pp a day ago | parent | prev [-]

Humans have time-cost too, much higher than machines. Considering SOTA right now, for a project like this it would make more sense for the community to contribute and verify tests, sponsor updates with $.

wild_pointer a day ago | parent | prev | next [-]

Trust

bt1a a day ago | parent | prev [-]

[flagged]

chomp a day ago | parent [-]

I don’t want to be mean, but try to run a large project and you’ll realize there’s more to it than “can I find some bodies to crank out code”

frollogaston a day ago | parent | prev | next [-]

Not convinced. I was looking for an answer like "it doesn't actually have parity with CPython." If it does, that's a decent indication that it can be sustained.

simonw a day ago | parent | prev [-]

Good luck implementing and then maintaining a project of this size and complexity at ~100 lines of verified code per human developer per day.

leobuskin a day ago | parent | prev | next [-]

It's possible, but we're at the moment when most of us can ask Fable to implement a custom compiler to a custom target for our favorite language, and even use it as a part of custom solution. Why do I need someone else's implementation? Where's the magic in this project? What's the secret sauce?

coldtea a day ago | parent [-]

>Where's the magic in this project? What's the secret sauce?

Someone else paying for the tokens.

Also someone seeing it through (should that come). Obviously we're not "at the moment when most of us can ask Fable to implement a custom compiler to a custom target for our favorite language, and even use it as a part of custom solution", without thousands to spare and lots of time to shape the solution.

hannasanarion a day ago | parent | next [-]

Even if it does cost thousands (does it? I genuinely have no idea how to scope such a thing) that might be a good price if a custom compiler to your custom target is something you really want. People have paid far more for far less.

If you're a hobbyist trying to compile python to your weird little arduino based thing, then that's a lot of money and you would want to use somebody else's solution, no doubt.

But if you're an aerospace company trying to compile for a flight control computer (and I guess you really want to use python for some reason), spending thousands of dollars on tokens to make and maintain a custom compiler could represent serious savings.

The big picture impact of AI that I see/anticipate the most is SAAS dying out because AI coding makes this kind of enablement and support software easier to make in-house, and this feels like an example of that, but maybe I'm seeing what I expect to see.

coldtea a day ago | parent | next [-]

>Even if it does cost thousands (does it? I genuinely have no idea how to scope such a thing) that might be a good price if a custom compiler to your custom target is something you really want. People have paid far more for far less.

I wouldn't spend $100K in tokens to get a custom bare metal Python. Or even $10K.

And I'd guess that most devs wouldn't either, unless they spend $10K like it's nothing.

People that have "paid far more for far less" are people who have the money to buy $10K watches, or fancy multi $1000 clothes.

jack_pp a day ago | parent [-]

your first mistake is thinking this would cost that much. with DS4 this might cost far less than 1k imo

int_19h a day ago | parent [-]

With DS4 it would have a lot more bugs, too.

imtringued a day ago | parent | prev [-]

Just eight years ago basically nobody wanted to pay for compilers and developer tooling, and now you're suggesting people will spend a thousand dollars for a compiler they'll have to maintain themselves just because they're willing to pay for AI generated tokens but not for finished tools?

>But if you're an aerospace company trying to compile for a flight control computer (and I guess you really want to use python for some reason), spending thousands of dollars on tokens to make and maintain a custom compiler could represent serious savings.

If you're an aerospace company you're willing to pay thousands of dollars for a compiler, because you need a DO-178C certified toolchain so that you can DO-178C certify the whole airframe. Suggesting AI here tells me you have no clue about the realities of aerospace, because you've just thrown out the entire value proposition of the commercial toolchains.

cyanydeez a day ago | parent | prev [-]

It's like we invented a worse github.

dotancohen a day ago | parent | next [-]

To be fair, most of the training data likely came from GitHub.

a day ago | parent [-]
[deleted]
coldtea a day ago | parent | prev [-]

Gimphub.

bt1a a day ago | parent | prev | next [-]

it will be impossible to maintain parity with wetware

up2isomorphism a day ago | parent | prev [-]

Then the question is why? Because that is an another way of saying donating tokens.

TZubiri a day ago | parent | prev | next [-]

>1. It's not Python by any means, it's a subset with its own runtime, its own quirks and nuances;

A subset of python is python. Half a tomato is still tomato

>2. It will be impossible to maintain parity with CPython without AI assistance

What does that even mean? If you would have said that it's impossible to update to python 3.15 of further, I'd get it.

geraneum a day ago | parent | next [-]

> A subset of python is python. Half a tomato is still tomato

The funny thing about this is not that the first sentence is wrong, which it is. It’s the failed reductio ad absurdum.

skeledrew a day ago | parent | prev | next [-]

> A subset of python is python. Half a tomato is still tomato

A subset of a calculator is still a calculator, but that subset definitely can't do everything the full version can.

cwillu a day ago | parent [-]

Most subsets of a physical calculator are properly called “a broken calculator”.

skeledrew a day ago | parent [-]

This isn't about the shell of a calculator though, but the functionality. Like if the only operations are addition and subtraction, theoretically you could derive the effects of other operations but it's extremely limiting.

bunderbunder a day ago | parent [-]

So yeah, half of Python might still be Turing-complete, but it wouldn’t really be Python for any practical purpose.

Just like how a device that can’t multiply or divide is not a 4-function calculator; it’s more like an adding machine. Many of which did multiply by serial addition.

TZubiri 11 hours ago | parent [-]

If you write a program in python, say a hello world:

'

def hello_world():

  print("hello, world")
'

Is that not python? Yet it uses a subset of python?

That program can be run by either a python runtime, or a python subset runtime.

Now if you were to run a python subset program, like a hello world, you would get:

'

def hello_world():

  print("hello, world")
'

Whoah, it's the same thing.

Turns out every program you write with a subset of a language, is valid for the super language.

Subjectively also, if the subset is big enough, it feels like that language, if it uses 'def' for functions, that's python. 'I know it when I see it' kinda deal.

I think the confusion comes from the mathematical folk reading "subset of X is X", and implying that "subset of X=X". But this is natural language, not mathematical language, when I say that "dog is mammal", I'm not saying that "dog = mammal" I'm saying that "dog ∈ mammal", and "subset of python ∈ python"

Archit3ch a day ago | parent | prev [-]

> A subset of python is python.

Mojo folks (rightly) disagree.

leobuskin a day ago | parent [-]

Mojo folks created a new language, officially called it "superset", and trying to sell to enterprise. And it's not a superset by definition, because it can't run it's "subset" (the original Python) without CPython (which was used as libcpython under the hood, iirc). It's a travesty.

rurban a day ago | parent | prev [-]

Reading is hard.

It runs and passes the full cpython testsuite, just 5x faster.

With AI it's 100x easier to maintain than by hand.

It reminds my on pperl. same approach using crane lift. Looks good

bunderbunder a day ago | parent | next [-]

The “status” section of the project’s readme explicitly says that it is not passing the full test suite, and that the AOT compiler passes fewer tests than the JIT one.

It also explicitly says that they’re still working on building out the standard library.

I’m maybe not as pessimistic as leobuskin, but they are absolutely right that this is not the first time someone has tried to build an alternative Python implementation, and that all previous ones have failed because they weren’t able to get close enough to 100% parity to be acceptable to most users. Python is an unusually quirky language. I kind of wonder if “written in Rust” adds an extra headwind here because there’s nothing even remotely memory-safe about Python’s extension mechanism. I don’t know enough to know, but I have read about the death of a few of these projects in the past and a common theme of the post-mortem seems to be, “It went so smoothly at the start that we were caught off guard how much of a brick wall the last 5% was going to be.”

leobuskin a day ago | parent | prev | next [-]

It passes only curated corpus (snippets), not the full CPython test suite. So, yes, reading is hard. Nothing against AI, btw.

anitil a day ago | parent | prev | next [-]

Your reply would have been much better without the first line [0]

> Please don't comment on whether someone read an article. "Did you even read the article? It mentions that" can be shortened to "The article mentions that"

[0] https://news.ycombinator.com/newsguidelines.html

imtringued a day ago | parent [-]

No, it wouldn't, because he didn't actually read the readme which clearly states that they are still working on passing the CPython test suite and that 5x performance is an aspirational goal, not something they accomplished yet.

>What is explicitly not done yet — this is the active roadmap, in order:

>CPython test suite (cpython-full): the standing grind; failures are clustered and burned down per wave.

>Stdlib build-out: _io/os, math/struct/random, collections/itertools/json, datetime, importlib parity — each lands as a native module plus a differential corpus module.

>Performance ratchets: tagged small-int flip, TLAB allocation, dict fast paths, float unboxing, call/attribute specialization, generator tiering — toward the ≥5× CPython geomean target (numerics ≥20×).

>AoT parity growth toward the full corpus, plus single-binary product polish.

>No-GIL/free-threaded runtime hardening: thread/GC/signal stress is now on the default runtime path, with remaining gaps tracked by the ratcheted suites.

Overall the substantial parts of his comment are completely wrong and the subjective parts are not much better

>With AI it's 100x easier to maintain than by hand.

This is an unsubstantiated opinion. In practice AI has a limit well below 100x.

>It reminds my on pperl. same approach using crane lift. Looks good

The only thing I can find on the internet that mentions "pperl" is this https://metacpan.org/pod/PPerl

>This program turns ordinary perl scripts into long running daemons, making subsequent executions extremely fast. It forks several processes for each script, allowing many proceses to call the script at once.

Which sounds nothing like pon, which is heavily inspired by bun. Meanwhile if it's this: https://perl.petamem.com/ which took quite a while to find, then I'm wondering why that would have precedence over bun?

Once you add the first sentence, it basically turns into a negative value comment that shouldn't have been posted.

anitil 17 hours ago | parent [-]

I noticed that it wasn't the best comment, I was only concerned with the tone, and I feel like dang has enough going on that we also need to help elevate the conversation. I admit there's some delicious irony in the accuser committing the same crime, but it doesn't improve the discussion to revel in that.

cwillu a day ago | parent | prev | next [-]

> Reading is hard.

The irony…

ubercore a day ago | parent | prev [-]

How am I misreading this part of the readme?

> What is explicitly not done yet — this is the active roadmap, in order: > CPython test suite (cpython-full): the standing grind; failures are clustered and burned down per wave.