It's hard to unpack without knowing more about the use case, but adding discriminant properties (e.g. "user_type") to all the types in the union can make it easier to handle the general and specific case.
E.g.
if (user.user_type === 'authenticated') {
// do something with user.name because the type system knows we have that now
}
The dot com boom is an apt analogy: the internet took off, we understood it had potential, but the innovation didn't all come in the first wave. It took time for the internet to bake, and then we saw another boom with the advent of mobile phones, higher bandwidth, and more compute per user.
It is still simply too early to tell exactly what the new steady state is, but I can tell you that where we're at _today_ is already a massive paradigm shift from what my day-to-day looked like 3 years ago, at least as a SWE.
There will be lots of things thrown at the wall and the things that stick will have a big impact.
Having used the latest models regularly, it does feel like we're at diminishing returns in terms of raw performance from GenAI / LLMs.
...but now it'll be exciting to let them bake. We need some time to really explore what we can do with them. We're still mostly operating in back-and-forth chats, I think there's going to be lots of experimentation with different modalities of interaction here.
It's like we've just gotten past the `Pets.com` era of GenAI and are getting ready to transition to the app era.
I’ve never been able to put it into words, but when we think about engineering in almost any discipline, a significant amount of effort goes into making things buildable by different groups of people. We modularize components or code so that different groups can specialize in isolated segments.
I always imagined if you could have some super mind build an entire complex system, it would find better solutions that got around limitations introduced by the need to make engineering accessible to humans.
The "iPhone moment" gets used a lot, but maybe it's more analogous to the early internet: we have the basics, but we're still learning what we can do with this new protocol and building the infrastructure around it to be truly useful. And as you've pointed out, our "bandwidth" is increasing exponentially at the same time.
If nothing else, my workflows as a software developer have changed significantly in these past two years with just what's available today, and there is so much work going into making that workflow far more productive.
You posted on X a while back asking for a crowdsourced definition of what an "agent" was and I regularly cite that thread as an example of the fact that this word is so blurry right now.
This discounts a lot of failures and products without real success:
- Facebook Apps
- Facebook Home
- Facebook Workplace
- Facebook Portal
- Facebook Essentials
What he's done well: found promising competition and subsumed them.
I think AR is going to be a huge part of the future. I don't think Facebook is going to lead that effort, not because I don't want them to (though I don't), but because they don't have a track record of building anything worthwhile outside of their core offering (ie, the Facebook product).
https://www.anthropic.com/jobs?team=4050633008