I don't think OpenAI have a moat in the traditional sense. Other players offer the exact same API so OpenAI can only win with permanent technical leadership. They may indeed be able to attain that but this is no Coca-Cola.
I does feel like we are having the petfood.com moment in B2B AI. Bespoke solutions, bespoke offerings for very narrow B2B needs. Of course waiting around for AI to get so good that no bespoke solution is needed might be a bad strategy as well. I'm not sure how it will play out but I am certain there will be significant consolidation in the B2B agent space.
In the UK I bought most of my pet food from zooplus.co.uk. I don't think there's anything inherently wrong with the petfood.com idea, it's just that the best executing company will win as usual.
Correction, I meant pets.com. Liquidated in 2002 for $125K, while Amazon is worth $2T. My point, generally, is the market doesn't want overly specialized products.
I think in practice it is much more complicated than that. While org charts largely a tree, the influence graph is often very different. It isn't like the immediate manager can just fire anyone they feel like without consequences in most orgs.
Yea but your immediate manager can easily set a person up for complete failure and broadcast only the failings. I've seen it happen to different people on many occasions. Basically the old "balance these 12 things 1 of them, the 1 you drop will end up being me and my buddy bosses most important item and the other 11 are worthless". Or "no need to attend that meeting" and if you don't show oh boy strike one. Positions of influence are super easy to game.
This is an interesting (and correct) perspective. Global variables scare us in software but we are ok with it when it comes to application state stored in a db.
There have been proposals to have global state in programming languages which function like databases with the advantages of monitoring/persistence/naming etc, but also retain the modularity of local state.
Global variables can definitely be overused, but in the right situations, they’re generally fine. After all, the filesystem is a big global variable too. So is any database. But people don’t complain too much about that.
The strongest argument against global variables is that they don’t show up in the parameter lists of functions. In that way, they’re sort of “spooky action at a distance”. And they encourage functions to be impure. But if this bothers you, you can always pass your database connection as an explicit parameter to any function which interacts with it.
Usually we are using package managers and just referencing packages. However, even in the hypothetical where I am downloading binaries and checking them in, I still don't see the relationship to the monorepo. I can have a monorepo with 100 folders representing 100 programs, each of these can have completely separate dependencies, languages, etc.
Dependency versions matter when they are all part of the same program or library. Then you have the diamond dependency issue and related problems. However, none of this is related maintaining code in a monorepo. One program can be maintain in 10 different repos (impractical but possible) and still have the diamond dependency issue.
I’ve done monorepo, separate compilation units before. It has its own set of issues but it cuts down on circular dependencies and makes more sense than having sixty repositories checked out. Those are hell.
reply