That's a fair point. Model prices can increase. This raises the next question.
Doesn't this mean that any company that depends on headcount growth (every SaaS), loses?
100 SWE -> 10 SWE, 100 slack/gmail/notion/zoom/etc. subscriptions become 10.
And now let's recurse.
These SaaS companies that use AI and dropped 90% of engineering headcount lose revenue because their customers also drop headcount.
Let's say AI costs 89% more than it did before, so the SaaS companies still get 10x productivity from the 10 engineers, but now all their customers headcount is 90% smaller too. So what now? Does every company make a pact to grow headcount ;)
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.
Could be, I've seen a weird trend of using AI to write content when it doesn't make sense. Sure, using it to write a blog post about a topic is "slop" but I can see arguments for it. Using it to improve thoughts you have in your head, by making up details and add emojis however, I can't understand.
For example as a heavy FB Market place user I see a lot of stuff like:
[picture of an iPhone 12]
- iphone 14
- new battery
- delivers to [enter your state here]
- comes with [enter accessories it comes with]
Like they were too lazy to even fill in the brackets or ensure some level of accuracy. What's the point?
That's a problem that was solved in the 1980s with the introduction of "mail merge" functionality in word processors. Using an LLM to do this is like using a sledgehammer to swat a fly.
"Independent" does not really change anything about the advisory/governance thing.
And tech companies are very well known for breaking laws, especially privacy related ones, so I don't see the point either, yes.