You can adopt a centralized system. And it's fashionable to do so. Lots of people here and other places advocate doing everything you can on the server.
But it's not required. Additionally, there are plenty of good incentives not to, including cost. Client CPUs are fast, free to use, and don't require a high latency network hop. Local ram, disk, and network transfer are also available in abundance. You can totally reverse the architecture where the client is doing the heavy lifting and provide the user a good experience.
Intel CPUs are inefficient when pegged, but more efficient at idle. On AMD your using the same cores the cloud is. Without the massive IO attached on the server side the client CPUs are more efficient for a unit of work. Apple is more efficient than the PC side presently, and Qualcomm is entering the fray and appears to be quite efficient.
So I'm really not certain where you're efficiency claim about client hardware comes from. All that hardware is just sitting there and sales vary, but they are not cratering for high performance local compute.
You have a point about GPUs, but only a very few very specialized applications need those.
Definitely a better solution than the brick wall he hit. Complicated beastie. I can see the appeal if you just love, eat, and breath SQL.
But a query language within a query language feels bolted onto something alien to do something pretty basic. Pass. If I'm teaching this to new engineers, pass also.
Might I suggest you actually use mongo on a project before engaging further on the topic. It clearly has had a lot more thought put into it in the context of json documents.
If postgres works great for your use cases, great, go be happy with the tool.
All you do is poop all over the story about postgres. I'm convinced that no use cases will convince you of anything. I'm not really looking to involve myself in a database holy war.
Nosql is a fun target to beat up on of late. But there are good, even infamous, reasons to avoid SQL. Particular if you want to accomplish flexible record queries from untrusted clients.
> True, but SaaS still runs on cloud infrastructure so the costs are still there
You can bring the costs way down. Their margins include a pretty insane amount of features that not everyone needs. There is a lot of meat there if you have skills in the area.
Making/saving money via DIY compute is an area ripe for improvement via better vertical integration.
The big cloud providers simply do not have this market cornered even with this mind share that prevents perfectly good engineers from seeing the path plain before them.
There is a place for religion. Something that pushes you to be better than you are. Along with the happiness and fulfillment that comes from that effort. Selflessness, love, compassion, truth.
Plenty of bad religions telling you that you are perfect the way that you are. Just give me money, fame, or influence and I will flatter you and pump your ego.
Another form of this is flattery in exchange for hating something. Many doomsday cults fit this category. All your life problems are because of 'insert target X'. But I, I have the answers you need.
Religion is more attuned with purpose, where your heart is, than the belief in God. Though the two are often paired.
The project sounds successful overall to me. Yes, they had to do more than they thought going in. That describes most engineering efforts.
Does the author think that operating system API churn just won't affect native somehow? Or be improved when even more of your application surface area is in the native space?
So, my state has laws on the books to explicitly protect reasonable solo outdoor play.
I still get reported by random people if my kids are outside, in our own front yard, without a visible parent watching. They call the cops, sometimes other agencies.
The police come and lecture me with a tone that I shouldn't do anything that might cause someone to call. That they shouldn't be in our own yard without direct supervision.
The agencies will sometimes come do a "wellness check" when you have enough reports against you. It's really creepy having state agencies looking for problems at your place that have nothing to do with the reports.
If you fail they can haul off your kids. Lots of rumors that they can be capricious and don't require any court proceedings.
So I don't let my kids play much outside. Nobody seems to care what is reasonable or legal.
It does slow some of us down. It's not really about terseness. I can write code that works on all primitives that might be sent down pretty easily. That code, sometimes is longer than limiting the inputs by types would be. I can also write code such that it only runs if the structure of the data is as required for that code to run, allowing for nulls or missing nested objects.
These two patterns allow you to write most code, type free, that gracefully handles anything you throw at it while always doing the right thing.
Making changes to such a system is easy and friction free.
Not many type advocates speak of the downsides of type systems, always pitching the net win and ignoring the actual cons.
When you refactor, make a change, or try to add new functionality, and end up fighting the type checker. That's friction to change you are experiencing and that experience is optional.
I get that having discipline in code patterns and the required robustness is a difficult ask at some organizations and some devs. In that circumstance it's better to have a minder in a type system that enforces base the conventions for everyone.
But it's not required. Additionally, there are plenty of good incentives not to, including cost. Client CPUs are fast, free to use, and don't require a high latency network hop. Local ram, disk, and network transfer are also available in abundance. You can totally reverse the architecture where the client is doing the heavy lifting and provide the user a good experience.
Intel CPUs are inefficient when pegged, but more efficient at idle. On AMD your using the same cores the cloud is. Without the massive IO attached on the server side the client CPUs are more efficient for a unit of work. Apple is more efficient than the PC side presently, and Qualcomm is entering the fray and appears to be quite efficient.
So I'm really not certain where you're efficiency claim about client hardware comes from. All that hardware is just sitting there and sales vary, but they are not cratering for high performance local compute.
You have a point about GPUs, but only a very few very specialized applications need those.