4 ms·
I'm not sure I agree. The essential complexity usually isn't that hard. From a high level view - most apps are basic. Even a second order articulation of fun
by alexasmyths 9y ago
I'm not sure I agree.
The essential complexity usually isn't that hard.
From a high level view - most apps are basic.
Even a second order articulation of function i.e. 'screen here, buttons here, images here, button does this' etc. is not that hard.
Below that, it's kind of a mess.
The byzantine tools we have (I'm talking to you HTML/CSS/JS), to complete the task engender a massive amount of 'arbitrary complexity' and make doing anything really quite hard.
Which is why, by the way - once you have a Dev that becomes 'really familiar' with a 'specific stack' - they can move really quite quickly.
But most of the tools we have are a mess, and they keep changing, hence, all the complexity in our systems - which grows exponentially across more and more developers until you have any number of very smart people all trying to paint a Picasso at the same time.
FYI - I believe that making an app shouldn't be that-that much more complicated than making an FB page.
There isn't really a lot of 'essential complexity' in most apps, I think.
- jstimpfle 9y agoI agree to some extent, but I wonder if you actually tackled a web project of more-than-trivial complexity? I did, and tried to find a number of good abstractions (for example, generating UI / ORM according to data structures), but in the end didn't come up with something satisfying. It's too easy to paint yourself into a corner. In my opinion one of the big sources of essential complexity is the layering. You have representations of your data in the DOM, in Javascript objects, in HTTP bodies / URLs, in server-side plain text representations, in the server-side language's objects, in the database... And strictly speaking you have to make sure (de)serialization works and data integrity holds at each of these boundaries. Also, many functional parts need to be present in more than one of these domains.
- alexasmyths 9y agoI've worked on big and small. Even for the 'big ones' the (there were network management apps) - the 'business logic' (networking logic in this case) - was not rocket science in the end. As you indicated, not only is the 'layering' a pain, but often there's a whole set of technologies and toolchains at each layer! Even just starting with 'identity' for a web app, i.e. Facebook and Twitter integration along with basic credentials - can be a big pain.
- edanm 9y agoPartially I think this is a question of what you mean when you say "app". There are millions of websites running Wordpress, plus maybe a specific plugin to do e-commerce or something. They are very close to the ideal you are describing. There are also millions running on things like Shopify, Wix, etc. Usually these kinds of things are not really made by developers, or at least only require a very small amount of development time. It's only when we get to the more complex 20% of applications that we start having a "problem". So I think when you talk about most apps being basic, you're right. Excel allows people to do in 10 minutes something that would've required dedicated applications built by trained professionals 30 years ago. We're just not stopping there.