If you want to get to a higher level compiler, prompt fondling will not suffice; you need to master formal specification. Then machine learning algorithms can do the program synthesis to implement the spec. But just talking out your vague software requirements with a chatbot is not analogous to programming.
Also, like others said, even once you have your formal spec, C is a particularly bad choice (unless you want to specify quite a bit more). You want the program implemented in a language with as many safety constraints on it as possible, not one where you have to mentally track memory.
> In June 2025, WBD announced plans to separate its Streaming & Studios and Global Networks divisions into two separate publicly traded companies. This separation is now expected to be completed in Q3 2026, prior to the closing of this transaction. The newly separated publicly traded company holding the Global Networks division, Discovery Global, will include premier entertainment, sports and news television brands around the world including CNN, TNT Sports in the U.S., and Discovery, free-to-air channels across Europe, and digital products such as Discovery+ and Bleacher Report.
So no, I don't think this gets in the way of Ellison taking over the rest of TV news; if anything it seems like it smooths the path.
Yeah post 3.10 you don't need Union, Optional, List, Duct, Tuple. Any still necessary when you want to be permissive, and I'm still hoping for an Unknown someday...
By default, Mypy warns you if try to reassign a method of any object[1]. It will also warn you when you access non-existent attributes[2]. So if you have a variable typed as `object`, the only attributes you can manipulate without the type checker nagging are `__doc__`, `__dict__`, `__module__`, and `__annotations__`. Since there are very few reasons to ever reassign or manipulate these attributes on an instance, I think the `object` type gets us pretty darn close to an "unknown" type in practice.
There was a proposal[3] for an unknown type in the Python typing repository, but it was rejected on the grounds that `object` is close enough.
In my opinion the sheer volume of "close enough" choices is what ruins Python's type system.
It's "close enough" to a usable type system that it's worth using, but it's full of so many edge cases and so many situations where they decided that it would be easier if they forced programmers to try and make reality match the type system rather than the type system match reality.
No wonder a lot of people in the comments here say they don't use it...
I think they can get away with the "close enough" solutions since Python's type annotations don't have any runtime contracts by default. Might be off-putting to people who are more familiar with statically typed languages (though not always, in my experience).
I would buy that argument more if Typescript didn't exist.
You can live with the "close enough" if you're writing a brand new greenfield project and you prevent anyone from ever checking in code mypy doesn't like and also don't use any libraries that mypy doesn't like (and also don't make web requests to APIs that return dictionary data that mypy doesn't like)
Retrofitting an existing project however is like eating glass.
I am glad they improved this but I still like Optional[], and to a lesser extent, Union[]. It's much more readable to have Optional[str] compared to str | None.
I disagree with `Optional`. It can cause confusion in function signatures, since an argument typed as "optional" might still be required if there is no default value. Basically I think the name is bad, it should be `Nullable` or something.
I believe Python's own documentation also recommends the shorthand syntax over `Union`. Linters like Pylint and Ruff also warn if you use the imported `Union`/`Optional` types. The latter even auto-fixes it for you by switching to the shorthand syntax.
Would you like to count the number of spaces that various items in your manifests are indented and then pass that as an argument to a structure-unaware text file templating engine? Would you like to discover your inevitable yaml file templating errors after submitting those manifests to the cluster? Then yes, you are really missing out!
A couple of years ago I was using https://kapitan.dev/ which I found really good at the time when using jsonnet files to generate the configs. I haven't used it for some time though.
I never understood why people didn’t serialize from JSON if they run a transformation step on the YAML anyway. Read JSON, alter in your favorite language, dump YAML as the last step, deploy. Instant prevention of a lot of sadness.
This advice is missing something crucial which is how to discover new creators sans feeds. Not saying it's impossible, but it's something they excel at and they've extinguished a lot of the old ways.
Yeah this is super key. I think it's still possible to highlight new creators without algos, one way is to just involve more (only) humans in the process. This is what we're doing at Twigg, effectively letting users decide what gets highlighted and elevated to the rest of our members. - Too early to say how it'll play out, but it seems to be working well soo far...
What's the contribution model moving forward? I see the repository is still active, but is it not still under the Eleven's control? How will it evolve when they stop accepting pull requests?
It won’t be under Elevens control, part of the deal I believe. They’re allowed to remain opensource. Not folded into ElevenLabs.
As for contribution model, it’s still something I’m trying to figure out. For the moment, it was just trying to get a self host build ready and working.
But I have admin rights to the repo, and am not working for ElevenLabs, nor officially Omnivore. I was just a contributor before.
Also, like others said, even once you have your formal spec, C is a particularly bad choice (unless you want to specify quite a bit more). You want the program implemented in a language with as many safety constraints on it as possible, not one where you have to mentally track memory.
reply