> What application and system developers care about in modern architectures is application level correctness
Meme template: You guys care about correctness?
Also, please don't lump together application and system developers. In terms of software quality these are worlds apart. It's a lot more common in system world to care about correctness than it is in the application world. Of course, there are always exceptions, but a typical example of either camp goes about quality control very differently.
In my experience, outside of a very small sector of application development, where correctness helps sales (eg. medicine, or other fields where software mistakes come with serious repercussions) the goal is to make the "good path" work in favorable conditions. It is also permissible to have "excusing circumstances" (a.k.a. documented defects) that render software inoperable.
To contrast this, system developers typically have to deal with systems that are expected to work hell or high water. Well, again, outside of cases when failures are forgivable, like, management software / UI to the system rather than system itself. Same reason how you'd expect library code to be better tested and more robust in the face of edge cases than any individual application using the library.
---
So, as you mentioned "as soon as the application spans multiple stores", application developers will give up all hope because there are too many layers, too many components, too much opaque third-party code. Whereas in systems, this is typically still all under your control. I.e. think about products like Ceph or Etcd -- they are designed to span multiple stores and still be correct.
I had to go back and forth between application development and systems. And, for me, the world of application development is very unappealing specifically because of the attitude to quality. From my key-hole perspective, I wish people made fewer applications and concentrated on making systems more robust, because I feel like this would make computers more reliable, faster and cheaper... but there's a strong financial incentive to make applications, even though they are less reliable, slower and more expensive in the long term, because initial development is faster and cheaper.
Meme template: You guys care about correctness?
Also, please don't lump together application and system developers. In terms of software quality these are worlds apart. It's a lot more common in system world to care about correctness than it is in the application world. Of course, there are always exceptions, but a typical example of either camp goes about quality control very differently.
In my experience, outside of a very small sector of application development, where correctness helps sales (eg. medicine, or other fields where software mistakes come with serious repercussions) the goal is to make the "good path" work in favorable conditions. It is also permissible to have "excusing circumstances" (a.k.a. documented defects) that render software inoperable.
To contrast this, system developers typically have to deal with systems that are expected to work hell or high water. Well, again, outside of cases when failures are forgivable, like, management software / UI to the system rather than system itself. Same reason how you'd expect library code to be better tested and more robust in the face of edge cases than any individual application using the library.
---
So, as you mentioned "as soon as the application spans multiple stores", application developers will give up all hope because there are too many layers, too many components, too much opaque third-party code. Whereas in systems, this is typically still all under your control. I.e. think about products like Ceph or Etcd -- they are designed to span multiple stores and still be correct.
I had to go back and forth between application development and systems. And, for me, the world of application development is very unappealing specifically because of the attitude to quality. From my key-hole perspective, I wish people made fewer applications and concentrated on making systems more robust, because I feel like this would make computers more reliable, faster and cheaper... but there's a strong financial incentive to make applications, even though they are less reliable, slower and more expensive in the long term, because initial development is faster and cheaper.