5 ms·
YMMV. A cognitive load and inherent complexity can vary dramatically between industries. Compare web frontend development with, say, a mission critical CPU desi
by sklogic 11y ago
YMMV. A cognitive load and inherent complexity can vary dramatically between industries. Compare web frontend development with, say, a mission critical CPU design.
- sanderjd 11y agoI'm always curious when I see comments like this: have you done both things professionally at scale, or are you guessing based on how things seem to you from the outside?
- sklogic 11y agoI have to admit that I did not do any web development, but I have a pretty good idea of what kind of complexity and challenges it does involve. I also know about it from interaction with the frontend developers themselves and from toying around it. I know what kind of tools are available, I know how dead easy debugging is. There is nothing nearly comparable in complexity with a hardware design.
- aeharding 11y agoIt seems like you're being a little biased. Writing the architecture for a new Intel CPU is much more difficult than writing a calculator on an FPGA or designing a circuit board. Similarly, designing and maintaining the UX of Amazon.com is a lot more difficult than a personal website. Is Physics 'harder' than Psychology just because it's 'more hardcore' or 'more pure'? Apples to oranges. You cannot really make comparisons like that.
- sklogic 11y ago> designing and maintaining the UX I did not say a word about design, I was talking about development. UX design is probably among the most complex problems out there, since it is not solved yet and there is even no glimpse of a distant hope. > Amazon.com Well, this one was obviously designed by a drunk cobbler, and he could not have spent more than half an hour overall, judging by how miserable the user experience is. > Is Physics 'harder' than Psychology just because it's 'more hardcore' or 'more pure'? Physics is solvable, Psychology is not, the latter is in an early phenomenological state of development. So, on this scale, it is harder to apply it (because one have to operate with a much bigger amount of information), but it is much easier in terms of models. > You cannot really make comparisons like that. Of course you can. Complexity is a very well-defined and objective thing.
- olalonde 11y agoYou state this as if the answer was obvious... I recently switched back to front end development after months of developing a Bitcoin node from scratch as well as a custom BitTorrent server. I'd say among those three, modern front end is what I find most complex. The amount of technologies, protocols, tools and leaky abstractions to know about is just staggering and by the time you finally caught up, you are already behind.
- sklogic 11y agoOf course, if you're doing things the wrong way, you can create any amount of complexity out of nothing. I'm not considering this case. Why would anyone care about the amount of "technologies, protocols, tools and leaky abstractions" when the smart thing to do is to avoid them altogether and just pick the lowest common denominator?
- jmagoon 11y agoAnd what would that be for web development? Or are you just saying "don't develop for the web"? I've seen people who are great at diving deeply into a narrow field struggle greatly with the broad, changing knowledge needed for web dev, especially at scale. It's not clear to me that one is intellectually more challenging than the other. They often seem like different types of intelligence.
- sklogic 11y agoSame as with any other crappy set of APIs and standards - hide the complexity underneath a thin layer of DSLs. I do not consider any area where this is possible to do (i.e., any area where complexity is artificial, not inherent) to be really complex and challenging, unlike the domains where complexity cannot be eliminated by simply removing the stupidity.
- jmagoon 11y agoAre you really saying that the internet and web applications (and all their various components) are artificially complex? Or is it just whatever reification of "web dev" that you have in mind?
- lmm 11y agoEven then I'd say there's not a lot of difference - you naturally adjust your defect rate to what you're working on (even within a single codebase). I mean sure, when doing something like CPU design it's easy to feel like you're not using your full intellectual capacity the way you would in web frontend development, but you just need to step it up a level - the safety requirements justify putting a fair amount of time and effort into techniques like automatically generated testcases, maybe even formal methods. One thing that can be harder to overcome is being trapped by processes that you're not allowed to change (and the kind of institutions that make CPUs are particularly prone to that kind of failure, IME). But even then, it just becomes a case of adding as much value as you can within those restrictions, and that can be fulfilling in its own way. But yeah, some organizations (in any industry) are really badly managed and if you can't live with that then your only recourse is to leave.
- sklogic 11y agoWell, formal verification is exactly what I find the most intellectually challenging and enjoyable. There is no way you can apply any advanced math in something like frontend development, and you're very unlikely to be able to do anything anywhere near any formal methods outside of the hardware design.
- lmm 11y agoYou absolutely can. PureScript is one of the most interesting things going on in programming at the moment. In web dev the cost of confirming things empirically is orders of magnitude lower than in hardware, but the complexity of what you're working on can eat that margin up surprisingly quickly; on large codebases a bit of formality is well worth it.
- sklogic 11y agoAnd where do you think this "complexity" is coming from? There are ill designed standards - but you can leverage that. There are tons of frameworks - you can ignore them. There are broken protocols - wrap them into something sane. PureScript is the right thing indeed, I like the approach, but what exactly makes PureScript so special? I quickly skimmed through, expecting something cool and innovative like, say, gradual typing, but it looks like something fairly standard, I could not find any particularly new ideas there. What did I miss?