1. An Elm-like programming language that lives in .db files
2. A compiler from this language to strongly-typed database procedures in a target backend language
This has more in common with a semantic layer than an ORM.
What you gain is a shared language that connects the table definitions (say a SQL migrations folder) and your API language (often handwritten SQL). This can be type checked and optimized for you.
But for me the big question is what functionality do you lose? Can I express everything that PostgreSQL can?
Converting natural language steps to a formal language isn't too challenging. But basically none of those steps will follow directly from the previous steps by any primitive deduction rule of any formal system. From the perspective of formal logic, there are massive gaps in the reasoning, and these need to be filled to pass the verifier. And they are absolutely massive, so massive that it would be completely intractable to fill them in manually.
That's where most of the tech in a theorem prover exists: its tooling to automatically fill in the gaps so your proof can pass the verifier. The tools and automation here are genuinely great, but you still end up having to write way more steps and inferences than you'd see in any maths textbook, and the details are far more fiddly because the formal verification is not very forgiving.
As an illustration, consider how you get from:
X = (x + y)(z + w)
to
X = xz + xw + yz + yw
The second equation doesn't follow directly from the first in any logical system. Instead, it follows by the distributive law, commutativity and associativity of addition, commutativity of multiplication, symmetry and transitivity of equality, and you'll need to have some means to specialise these universal statements and reason about term substitution.
A modern prover will do simple algebra like this for you, but the tooling had to be built to do it. In other domains, the tooling just dies trying to connect what an average working mathematician or even a mathematics undergraduate would consider obvious, and you're stuck either having to elaborate massive tedium, manually guiding the automation, or having to write new bespoke tooling to fill the gaps.
I think it would have been because it was a technically impressive OS with a beautiful UI created by at-the-time biggest smartphone maker in the world. iOS was first but that doesn't show it would win. Android now has marketshare and Android wasn't as good as MeeGo when it came out.
I believe if Nokia continued to invest, MeeGo would have even gotten better and they would have survived (note I worked at Nokia's subsidiary HERE maps at the time and saw early version of MeeGo. Also the hardware of the N9 was beautiful. It would have been a hit and in fact outsold the Lumia in the few countries it was delivered before they axed it).
It wouldn't have been. I had an N9, it was amazing, but even before the "burning platform", it was clearly too late to the market share and app races. Consider that it didn't really have much of a head start over the Windows phone, which MS poured so much money into, and even they couldn't get their foot in the door.
Nokia had active developer relations; at WhatsApp we were planning to build for the N9, but ended up not doing it, because the platform was cancelled before the retail release and the retail release was limited.
I'm sure some of the gushing praise it got was because it was a last hurrah, but if Nokia had actually supported it, I'm sure it would have sold tens of millions of units. Nokia sold ~100 million smart phones in 2010 and ~ 77 million smart phones in 2011 [1], Apple sold ~ 72 million iPhones in 2011 [2]. While the trend was going the wrong way, tens of millions of mobile users would be hard to ignore.
> Nokia had active developer relations; at WhatsApp we were planning to build for the N9, but ended up not doing it, because the platform was cancelled before the retail release and the retail release was limited.
WhatsApp was on Windows Phone though.
Instagram was not on Windows Phone, which hurt it, but there is no indication it would have come to MeeGo either.
Because they cannot comprehend the factors that meant it took the Android team 3 to 5 years working flat out to even vaguely approximate technical parity with the iPhone OS of the time.
Even given that the Android team actually did understand what they needed to do to achieve that. Nobody else in the industry did. They thought that if you just ported an OS the job was done. That’s barely even the start.
IIRC the N9 did have approximate technical parity (not business parity) with the iPhone and it did take Nokia 3-4 years (2007-2011). As other commenters have said, they lost out due to timing and lack of platform strategy.
> Yes, Steam Machine is optimized for gaming, but it's still your PC. Install your own apps, or even another operating system. Who are we to tell you how to use your computer?
I'll second the recommendation for `mise`, and add: I typically use Homebrew for things I want everywhere, and if I want something everywhere then the latest version is _probably_ OK. I typically use mise en place for versions which are project-specific.
So I have a system Python (largely unused), a Homebrew python (pulled in as a dependency, I won't use it), and as many different mise/uv Pythons as I need for different projects. Similarly NodeJS and Java. I'd given up on nvm a while back, no longer use pyenv, and mise and uv work together really nicely.
reply