2 ms·
In my opinion there are two main reasons: 1. Parallel programming is hard: Everybody programs for multiple cores now, but this makes the program architecture m
by jonathanstrange 5y ago
In my opinion there are two main reasons:
1. Parallel programming is hard: Everybody programs for multiple cores now, but this makes the program architecture much more complicated and dealing with errors much harder. You have all kinds of threads or green threads doing things in the background, each of which may fail in various ways, and you to deal with this asynchronous command execution somehow. The indeterminacy of such processes is the cause of unexpected behavior that makes an application look unprofessional. As a drastic example, you press a button, it starts doing something, and then shows a spinning wheel of death until an automated timeout is met after 2 minutes.
2. GUI frameworks are much worse today than twenty years ago: For example, web application frameworks consist of layers of different programming languages and document formats (JS, HTML, CSSS, frameworks on top of that, and maybe another programming language connecting with all this mess) running in web browser (or some kind of half-baked emulation of a web browser!). It's a wonder these work at all. Desktop and mobile frameworks not based on web technology are often thin layers on top of SDL nowadays. This means they reinvent everything, and it's very, very hard to do this correctly. Even native OS controls/widgets often have problems, and these have been fine-tuned by Apple and Microsoft for decades. Your multiline edit field behaves weird? That's the reason why. Write your own multiline rich text editor with image support and you'll see why this is hard.
In terms of QA, it seems that once native user interfaces are given up, an "anything goes" mentality becomes prevalent. Maybe it's because companies think they compete with web apps (=even worse user interface) rather than native apps.
Tl;dr Programmers have been piling crap on top of crap for two decades now, and if you combine that with parallel programming and connections between multiple layers, it's going to be fragile and error-prone.
- jll29 5y ago> GUI frameworks are much worse today than twenty years ago GUI and Web frameworks seem to change too quickly to make it worth the while to study them. Despite advances in software engineering elsewhere, frameworks in these two areas have become more complex instead of more simple. Rapid pace of change, technical debt, proliferation of options even for one language. The good news is there's plenty of work to be done here to clean things up. The bad news is this isn't something that one can do alone (as much as I like Linux, on the desktop applications lack uniformity much more than on MacOS X or Windows). The solution? Smart app developers build the business logic as API and try to maximally decouple the UI from the business logic. But this doesn't work well for all kinds of applications: e.g. it's hard to do for a WYSIWYG word processor, whereas it may be very easy for an image format converter.