News for hackers. Stuff that matters.
Re:Why is modern web development so complicated? by thaumaturgy on Wednesday August 07, 2019 @06:23PM (#20639839)
This is fundamentally because our industry is built on opinions, not standards.

You talk to one software engineer, and they'll say, "that's built in PHP, so it sucks; it should have been built with npm, obviously." Then you talk to another and they say, "I can't believe they built that with npm, the package management system is just terrible and the whole mess is bloated and there have been a ton of security issues. They should have used a static generator instead." And on, and on, and on.

Now compare this to a mature industry with real engineers who are able to say things like, "sure, that material might not be the most durable on the market, but unobtainium would have added $35 million to the project cost and ongoing maintenance costs would have gone up by another $5 million / year."

That right there is a comparison that developers can never, ever offer anyone that's writing the checks for a project. Nobody's bothered to do that work. We can't even accurately estimate the cost of a complex project given our choice of tools, let alone talk about costs and ROI with different toolchains for the same projects.

This is absolutely shameful IMO, and the reason why I cringe a little inside whenever I see the words "software engineer".

Re:Why is modern web development so complicated? by jacobsenscott on Wednesday August 07, 2019 @07:58PM (#20640492)
Likely in that other industry the engineer built 100+ other basically identical items that are two or three orders of magnitude less complex and where all the costs and techniques are pretty well known.

Also, those mature industries routinely overrun by millions of dollars and months or years, event though they are dealing with a fraction of the complexity and the costs and techniques are well known.

Software is the only industry where you are asked to build systems that have never been built before but that are more complex than anything ever built in the history of "mature industries", on top of astronomically complex systems, and estimate it with an accuracy of 5 to 10 days and a few thousand dollars.

Re:Why is modern web development so complicated? by pjmlp on Thursday August 08, 2019 @01:16AM (#20642038)
90% of Web applications are database frontends.

What they do to the end user might be different, how the pieces come together, it is always the same, unless one is doing curriculum driven development.

Re:Why is modern web development so complicated? by collyw on Thursday August 08, 2019 @07:09AM (#20643398)
I wish we could get away from the fashion show in this industry. Currently we have a React frontend, which just adds extra complexity for no real benefit. But its fashionable.
Re:Why is modern web development so complicated? by eropple on Thursday August 08, 2019 @12:48PM (#20646136)
React (and other SPAs) may be fashionable, but I generally contend that--when written well or even passably, which obviously requires an asterisk lest the Scotsmen come by but I don't think is a very high bar--if nothing else it requires developers to treat a web application as a client of an API rather than tightly integrating it. It enforces a level of separation of concerns that, IME, tends to encourage loose coupling and better design.

Forget everything about responsiveness or whatever (which I find way more valuable than the tradeoffs one makes)--the lack of tight coupling is the real win of React and similar. I mean, if you'd like you can pretty easily build a server-side React app with NextJS and still get a lot of these benefits while using React purely as a pretty-dang-good templating language.

Re:Why is modern web development so complicated? by collyw on Friday August 09, 2019 @03:13AM (#20651973)
SPA apps will decouple the backend from the front end, but the front end will always be specific to a backend in the vast majority of cases. I don't see how that is so different from templates being rendered on the server.

Old school server side rendered apps are underrated and its perfectly possible to make something that looks and behaves as well as a SPA app for most things.

Re:Why is modern web development so complicated? by eropple on Friday August 09, 2019 @09:46AM (#20654246)
I disagree that the frontend will be specific in even a "vast" majority of cases--if only because of the obvious proliferation of mobile. And while I agree that you can often make a good-looking server-side-rendered, templated application, I will contest that you can ever make a server-side-rendered, templated application feel correctly on a mobile device.

Even in the case where you do have a specific frontend, I contend that there's still value in the separation because it very strongly encourages (coupled with tools like, shameless plug, nestjs-data-sec[0]) the writing of very clear viewmodels where thought must be put into what exactly should be exposed over the wire in a way that commingling database objects and template logic doesn't allow.

I think server-side rendered pages are properly rated at this point, not underrated; there are places to use them but they're shrinking as other tooling get better. As an example, even I write React almost exclusively because I write React faster and with fewer errors than any templating language I see in common use except maybe Razor (and Razor implies buying into ASP.NET, which, no). React/TypeScript are hard to get wrong and easy to burn through quickly. And I would call a React page rendered through NextJS a "server-side rendered app"--but I get the feeling you would not. ;)

[0] - https://github.com/eropple/nestjs-data-sec

Re:Why is modern web development so complicated? by I_complete_me on Thursday August 08, 2019 @01:42PM (#20646693)
Off topic this but your phrase "lest the Scotsmen come by" intrigued me. It sounds vaguely idiomatic but I don't know the reference. Any enlightenment available?
Re:Why is modern web development so complicated? by steve_g on Thursday August 08, 2019 @03:05PM (#20647522)
Re:Why is modern web development so complicated? by I_complete_me on Friday August 09, 2019 @04:25PM (#20657989)
Thanks for the link. No true Scotsman would have been so kind!
Re:Why is modern web development so complicated? by jacobsenscott on Friday August 09, 2019 @10:33AM (#20654692)
90% of apps use databases, but that doesn't mean they are just database frontends. If you zoom in there is always specialized domain logic that is custom to that app. If there isn't it shouldn't have been built.
Re:Why is modern web development so complicated? by Xelbair on Thursday August 08, 2019 @07:42AM (#20643570)
>Software is the only industry where you are asked to build systems that have never been built before but that are more complex than anything ever built in the history of "mature industries", on top of astronomically complex systems, and estimate it with an accuracy of 5 to 10 days and a few thousand dollars.

You are seriously overestimating complexity and novelty of most software development, while underestimating engineering in other industries. I work currently as software developer and previously in a branch of a civil engineering.

Do you seriously think that other engineering disciplines to not have those small little problems that plague us all the time in software development? They do, but they can offer their solutions based on data, not just whim. They do also have codified standards, and guidelines and certification exams.

On the other hand software development is relatively new discipline - other fields had hundred of years to mature.

EDIT: and they are catching up with rapid prototyping - it is getting cheaper and faster.

Re:Why is modern web development so complicated? by kjsthree on Thursday August 08, 2019 @12:41AM (#20641902)
> Software is the only industry where you are asked to build systems that have never been built before but that are more complex than anything ever built in the history of "mature industries"

I have a feeling that some SpaceX engineers would have something to say about this after one of their rockets lands on a floating barge.

Re:Why is modern web development so complicated? by shkkmo on Thursday August 08, 2019 @02:03AM (#20642231)
> I have a feeling that some SpaceX engineers would have something to say about this after one of their rockets lands on a floating barge.

That is because you are ignoring/left out the critical last part of the phrase you quoted: "and estimate it with an accuracy of 5 to 10 days and a few thousand dollars."

This is particularly relevant because this is a direct response to the following:

> We can't even accurately estimate the cost of a complex project given our choice of tools, let alone talk about costs and ROI with different toolchains for the same projects.

Re:Why is modern web development so complicated? by jacobsenscott on Friday August 09, 2019 @10:13AM (#20654487)
Software landed the rocket on on a floating barge. The hardware is just holes for hot gas to come out.
Re:Why is modern web development so complicated? by newen on Thursday August 08, 2019 @05:52PM (#20649206)
It's especially hilarious because he is comparing projects done by bootcamp graduates to projects done by highly trained PhDs. Some people just don't have a clue about the massive difference involved in webdev type projects and complex engineering projects.
Re:Why is modern web development so complicated? by lexs on Thursday August 08, 2019 @06:03AM (#20643115)
Some McDonnell Douglas DC-X engineers would probably have something to say about your comment too.
Re:Why is modern web development so complicated? by CapricornNoble on Thursday August 08, 2019 @08:21AM (#20643797)
>>>>Software is the only industry where you are asked to build systems that have never been built before but that are more complex than anything ever built in the history of "mature industries"

Anyone engineering hypersonic missiles would easily dispute that.[1] Or submarine-capable quantum communication systems.[2] [1]https://www.nytimes.com/2019/06/19/magazine/hypersonic-missi... [2]https://www.realcleardefense.com/2017/11/04/quantum_communic...

Re:Why is modern web development so complicated? by jacobsenscott on Friday August 09, 2019 @10:25AM (#20654609)
There are occasionally novel engineering projects. These will be millions of dollars and years over budget, and then will fail. All their "mature industry standards and procedures and certifications" wont' save them.
Re:Why is modern web development so complicated? by CapricornNoble on Saturday August 10, 2019 @06:59AM (#20661373)
It's unwise to extrapolate the US defense industry's procurement problems onto the Russians and Chinese. There's reasonable evidence to suggest the Russian Kinzhal and Zircon hypersonic missiles are already Working As Designed, or fairly close to it.[1][2]

[1]https://www.scmp.com/news/world/russia-central-asia/article/...

[2]https://en.wikipedia.org/wiki/3M22_Zircon

Re:Why is modern web development so complicated? by saiya-jin on Thursday August 08, 2019 @07:28AM (#20643499)
Yeah, I used to hold similar naive views fresh out of school. Reality is, at least 98% of the software out there is just redoing what has been done, copy paste for slightly different purposes, integrating libs in slightly different ways.

But maybe its hard to admit it, lower down your ego and be a bit humble. Yes, software development is a creative work, but so are all other engineering branches. And yes, we have massive issues with code, process and people quality across whole business.

Re:Why is modern web development so complicated? by nostrademons on Wednesday August 07, 2019 @07:21PM (#20640261)
> "sure, that material might not be the most durable on the market, but unobtainium would have added $35 million to the project cost and ongoing maintenance costs would have gone up by another $5 million / year."

> That right there is a comparison that developers can never, ever offer anyone that's writing the checks for a project.

Sure they can. At Google there was an internal cheat sheet of "numbers every engineer should know" which included the cost in dollar terms of trading off engineer time vs. memory vs. CPU vs. network vs. user-perceived latency etc. (Actually there were two of them - the more famous one is the Jeff Dean version that traded off CPU cycles vs. L1-L3 cache misses vs. RAM latency vs. sending data over the network vs. compression vs. disk latency etc, measured in nanoseconds) If you had any moderately complex new system, you'd prototype a few different approaches on a small set of sampled data, do some multiplication to figure out how much it'll actually cost in production, then compare that against the engineer time needed for various optimizations. If you were in a revenue-generating area like Search, somebody (usually at the executive level) would also be calculating how much the project was likely to make or lose for the company and ensuring that's acceptable. Not all that unlike any traditional engineering field.

The thing is that the overhead for this process really only makes sense at Google scale. For the vast majority of new software projects, revenues on success >>> developer time >>> hardware cost. So you just assume that if you can get the job done in a way that satisfies the customer, it'll be wildly profitable, and the primary factor to optimize for is developer time. And if the developer can build it, the hardware costs needed to run it will be negligible, so just buy more hardware.

This is an artifact of the software industry essentially being a gold rush, where it's rapidly eating the rest of the world and replacing non-computerized processes that are millions of times slower. When you have 6 orders of magnitude to play with, you can play fast and loose with estimates, because any acceptable solution at all will make you a lot of money. When software has eaten the rest of the world and new systems are competing with existing computerized systems, then it's worth it to start paying attention to things like efficiency, security, TCO. There's some evidence we're approaching that point, but we're not there yet, and it's still more advisable for an entrepreneur to tackle an old-school non-computerized industry than to try and improve on existing software solutions.

Re:Why is modern web development so complicated? by TeMPOraL on Thursday August 08, 2019 @03:20AM (#20642494)
> At Google there was an internal cheat sheet of "numbers every engineer should know" which included the cost in dollar terms of trading off engineer time vs. memory vs. CPU vs. network vs. user-perceived latency etc.

Could someone alert Google's web developer teams (in particular the GMail frontend team) about that cheat sheet? If released products are considered as evidence, it doesn't seem like this cheat sheet is used.

Re:Why is modern web development so complicated? by nostrademons on Thursday August 08, 2019 @12:55PM (#20646206)
I left 5 years ago, but a friend of mine who stayed said that Google's basically given up on trying to hold the line on latency, and recent projects don't care. Which is kinda a damn shame - when we were Nooglers we fought for bytes - but I get the sense that the institutional knowledge about how much latency affects revenue left when Marissa, Amit, Craig, et al departed and Larry & Sergey moved upstairs to Alphabet. Sundar's background is Google Toolbar, Chrome, and Android, all of which are product areas where latency doesn't matter because it's installed desktop software.
Re:Why is modern web development so complicated? by aswanson on Wednesday August 07, 2019 @08:57PM (#20640856)
Ugh. You've basically made the case for me doing my next project in c++ 17 instead of using it as an excuse to learn Rust. Im morally opposed to c++....
Re:Why is modern web development so complicated? by iamwil on Wednesday August 07, 2019 @10:11PM (#20641205)
isn't protection against de-referencing null pointers a good reason?
Re:Why is modern web development so complicated? by MaxBarraclough on Monday August 12, 2019 @05:31PM (#20680248)
In C++'s defence, the language itself doesn't mandate any protections here (the famous 'undefined behaviour'), but there's no reason your compiler can't add automatic runtime checking against illegal use of null. GCC supports it with "-fsanitize=null" [0]

[0] https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.h...

Re:Why is modern web development so complicated? by aswanson on Thursday August 08, 2019 @07:17AM (#20643441)
Yeah, but I've been around the block enough times to avoid those types of bugs.
Re:Why is modern web development so complicated? by apta on Thursday August 08, 2019 @01:21PM (#20646460)
It's much more than just null pointer dereferencing. Time and time again, it's been proven that Rust protects even very experienced C++ programmers from bugs they didn't realize they're even making.
Re:Why is modern web development so complicated? by MaxBarraclough on Monday August 12, 2019 @05:40PM (#20680329)
This is a good point. Personal assurances count for little. No-one is above writing buggy code. Even C/C++ codebases written by very expert programmers, often have pointer-based bugs, especially if large and complex. Operating systems and drivers, for instance.

As well as having free-form pointers, C/C++ also have many, many dark corners.

What proportion of C++ programmers know that comparison = (c == c++); causes undefined behaviour?

Re:Why is modern web development so complicated? by thaumaturgy on Wednesday August 07, 2019 @08:29PM (#20640697)
It's awesome that Google did that. This is the first I've heard of it. But:

> The thing is that the overhead for this process really only makes sense at Google scale.

The software industry is far larger than Google. If we want to claim that software is a discipline of engineering, we all need to have access to that kind of reference data, rather than trying to feel our way around in the dark in comment threads about blog posts about somebody's personal experiences.

I won't go so far as to say there's no such thing as software engineering -- a number of people working for companies with large budgets have well earned that title, I'm sure -- but the extent to which the term is traded like currency in our industry is disrespectful to the discipline.

> So you just assume that if you can get the job done in a way that satisfies the customer, it'll be wildly profitable, and the primary factor to optimize for is developer time.

The fetishization of developer time is one of the problems slowing the maturation of our industry. It ignores end-user time, it ignores management time; it often focuses solely on the initial development time of a project and ignores entirely the ongoing maintenance time for a project.

How many codebases are there out there that are gigantic balls of mud? How much developer time has been wasted on trying to maintain or refactor those codebases? How many really dumb security issues have negatively impacted companies or end users? How many comments has tptacek left on one little forum in one musty corner of the internet over the years trying to explain cryptographic and security-related best practices to an infinite legion of under-trained developers?

How many people have lost their lives to software defects? Not even the really tricky CS stuff, I mean the kind of defects that any other engineering discipline uses as case studies in their introductory courses.

Which case study would you choose for our Galloping Gertie?

Certainly software has done an incalculable amount of good in the world, and its impact is far and away net positive.

But while software has been busy "eating the world", it has rarely paused to also consider the cost and damage it has wrought and whether there are practices that could be standardized to reduce those negative effects. So I disagree wholeheartedly that we're not yet at the point that these things are important. Depending on who you ask, computer programming is between 60 and 180 years old. That's well long enough for us to begin asking questions like, "what data do we have to support this approach or that approach?"

There is still plenty of room for experimentation and research. There is still plenty of room for hobbyists and tinkerers. This isn't an exclusive-or thing.

As much as I really do appreciate blog posts like this one, and the discussion they tend to generate, and especially that there's a new one to read every single day (he said, wryly), I can't help but see every one of them as another indicator of the immaturity of our profession.

Re:Why is modern web development so complicated? by james-mcelwain on Wednesday August 07, 2019 @09:49PM (#20641100)
I’d argue that the multiplicity of different programming languages and programming language paradigms suggests there likely isn't a teleological trajectory towards some single standard for programming.

Part of this is because many systems are evolving, because business needs have human inputs and are not always "logical." At the edges where this human interaction happens, we expand the domain of programming to that of human psychology. There definitely are empirical claims we can make human-computer interfaces, but it begins to get a bit messy.

To be clear, I am personally interested in becoming more rigorous about empirically justifying claims I make about the code I write. But I’m also interested in code because many of the problems it attempts to solve map the very complexity of the real world. In many ways, abstraction is a properly philosophical exercise, and I think it’s impossible to separate a pure engineering discipline from this broader context.

Programming is multi-disciplinary, and I think that’s a strength.

Re:Why is modern web development so complicated? by unimployed on Thursday August 08, 2019 @12:18AM (#20641815)
Physical constraints are more restrictive than information constraints. Physical constraints keep physical engineering from fragmenting into thousands of different but similar frameworks because the physical constraints rarely allow more than a few solutions to be competitive as best solutions. In information, the bounds/constraints are something more of a constructed popularity contest who the largest players are (Google, Amazon, Microsoft, Facebook, Apple, etc.) which carries as much or more weight than rigorously empirical comparisons.
Re:Why is modern web development so complicated? by kd0amg on Thursday August 08, 2019 @11:39AM (#20645519)
I’d argue that the multiplicity of different programming languages and programming language paradigms suggests there likely isn't a teleological trajectory towards some single standard for programming.

We also have a multiplicity of building materials, tools, fabrication processes, etc. What's the standard way to make a steel object? Do you cast, forge, stamp, mill, sinter, roll, weld? I would expect engineering as a discipline to have more solid arguments for choosing which (combination) of those processes to use for a particular task than what is typically thrown around in discussions about choosing a programming language or paradigm.

Re:Why is modern web development so complicated? by pingyong on Thursday August 08, 2019 @10:21AM (#20644836)
>The fetishization of developer time is one of the problems slowing the maturation of our industry. It ignores end-user time, it ignores management time; it often focuses solely on the initial development time of a project and ignores entirely the ongoing maintenance time for a project.

The problem is that in many projects, especially small web-dev or simple automation projects, you simply don't know if they're going to be profitable. The margins are huge, since the upfront development cost is almost constant, you might lose $50,000, or you might make $500,000, or anything in-between, but you just don't really know beforehand. So obviously in this situation you want to become at least somewhat profitable as fast as possible, and then think about "doing things right" later. Is this horrible practice? Sure. But it's also the most logical thing to do here, because "doing things right" at the start is simply a huge risk that only pays off if you're successful anyway. And people would rather minimize losses than maximize gains.

On the other hand more traditional engineering tasks tend to require big up-front investments anyway, and "failing is not an option". I mean it really kind of isn't, if you need more money and/or more time you'll get that much more often here because the initial investment was so big already. So doing things right from the start makes complete sense.

Re:Why is modern web development so complicated? by dhruvkar on Wednesday August 07, 2019 @07:42PM (#20640398)
>> internal cheat sheet of "numbers every engineer should know" which included the cost in dollar terms

Would love to see that. For companies determining what's worth what, this would be great to see, even just for the format.

Re:Why is modern web development so complicated? by nostrademons on Thursday August 08, 2019 @01:04PM (#20646288)
The format is IIRC something like:

  1 engineer-hour =
     W ms/search of latency
     X GB-year of RAM
     Y CPU-years of processing time
     Z TB-year of hard disk space
     etc.
The actual numbers are very confidential, I've forgotten them, and they're probably different from when I was there. Basically, everything is computed in dollar terms and normalized to engineer time. You assume your code will live for a certain lifetime (a year seemed reasonable when I was there), and you know how many queries your service currently gets (that's another number-you-should-know: usage data for the product you're working on). Multiply out the CPU usage increase by number of queries to get total CPU increase (you need this for capacity planning anyway), and you can compare that to the number of engineer-hours spent working on it to get cost effectiveness.
Re:Why is modern web development so complicated? by SquishyPanda23 on Wednesday August 07, 2019 @10:07PM (#20641183)
The Jeff Dean version is public, but does not include cost in dollars

https://youtu.be/modXC5IWTJI?t=3548

Re:Why is modern web development so complicated? by pfraze on Wednesday August 07, 2019 @07:05PM (#20640135)
Not that software can't improve on this front, but I'm pretty sure that every engineering profession has its fair share of opinions and disagreements around them. Heck, my dad's a general surgeon and he's constantly debating with other surgeons over things like whether a procedure should be out-patient or which procedure has the best outcomes. They have a better concept of outcomes, which helps them make data-driven decisions, but they also have a higher risk profile which slows down the innovation process.

I agree with most of your premise, but I think you overstate it a bit. Like the GP's point above, it seems like you're describing bad engineers. In the good web dev agencies I've worked at, they work pretty hard to make informed decisions which stay within budget and timeline. It doesn't always happen, but that's not just due to poor practice.

Re:Why is modern web development so complicated? by hvidgaard on Thursday August 08, 2019 @02:24AM (#20642303)
> We can't even accurately estimate the cost of a complex project given our choice of tools, let alone talk about costs and ROI with different toolchains for the same projects.

No industry can, unless it's something that has been done repeatedly before. If you ask a frontend designer specializing in WordPress to make a theme for WordPress and implement it, they can estimate it accurately.

What is thoroughly missing from this debate is the age old project management terms of scope and risks. As soon as you enter unknown land, the risk goes up. And risk means uncertainty and probably expenses. And if the people writing the checks change the scope, the original estimates goes out the window. If you're making a building, it's easier to understand that you cannot just change the scope after the blueprint is made. You have to get an architect to remake it, and everything done and ordered so far may or may not be salvageable. It happens in all industries, but just more so in software development.

Re:Why is modern web development so complicated? by testy3 on Wednesday August 07, 2019 @07:18PM (#20640240)
There are reasons why other industries are more mature, like:

they've been waaaaaaaaay longer than CS/SE

they do not change so robustly & fast in short peroids of time.

>We can't even accurately estimate the cost of a complex project given our choice of tools

Let's do not pretend as if that was limited to our industry.

Re:Why is modern web development so complicated? by Frost1x on Wednesday August 07, 2019 @07:39PM (#20640381)
I think OP's point, or at least my agreement, is how many often pretend the software industry is like other engineering industries and make such implications in their job titles.

There is still a lot of creative art and the more we stop pretending this isn't the case, the more people will be reasonable. There is still an high degree of technicality in the profession, but that doesn't mean its "engineering" -- you can be technical, not an engineer, and still respectable (heck, look at science in general). It's still a complex skill and makes lots of money for many businesses.

Re:Why is modern web development so complicated? by Xelbair on Thursday August 08, 2019 @08:41AM (#20643952)
>they do not change so robustly & fast in short peroids of time.

Not really, rapid prototyping - especially due to 3d printing - is a thing now - you can iterate on a model as fast as you can in CS/CE.

Also - a lot of engineering disciplines use simulations - civil engineering, avionics etc - so they too can iterate quickly.

We are absolutely horrible at estimating. I had article somewhere that analyzed plenty of CS/CE projects and found that we are good at estimating median, and if something goes wrong in most complex part - the time to delivery can skyrocket 100x.

Re:Why is modern web development so complicated? by goatinaboat on Thursday August 08, 2019 @09:21AM (#20644239)
they've been waaaaaaaaay longer than CS/SE

Nah, this isn’t really true. Consider all the technology that came out of WW2: digital computers are contemporaneous with jet engines for example.

Re:Why is modern web development so complicated? by icxa on Wednesday August 07, 2019 @09:45PM (#20641078)
I think a more eloquent way is to say fundamentally creating long lasting software structures is more of an art rather than a science, and you can't just tell someone "go practice these 5 things and you'll be the next Picasso" you just have to do it a lot of times, over and over, learning from your mistakes.

There are no shortcuts. You have to build a ton of software, and make a lot of mistakes, and most importantly, learn from them. Then there's the other half of the equation and some people just have the creative mind to imagine the right framework, or tool or library or abstraction or architecture for the problem at hand.

Re:Why is modern web development so complicated? by sgift on Thursday August 08, 2019 @12:32AM (#20641878)
The important thing is: Picasso knew what to study. Over time art had established a canon of things which helped people to get better at classical arts. Only after he studied that canon in depth and for a long time he could then break into new territories and start breaking rules intentionally to develop his own style/school.

Our craft is very bad at providing such a canon. It is even anti-intellectual in parts ("what do you mean you cannot be a master after x weeks? You are a gatekeeper! you suck"). That and we are still not sure what is important and what isn't (i.e. what should be part of the canon). Our medium of study changes all the time. Arts medium of study is reality and reality, for all our advances, doesn't really change.

Re:Why is modern web development so complicated? by icxa on Thursday August 08, 2019 @09:52AM (#20644540)
We absolutely have a canon. You show me someone who has studied Dikjstra, Turing, Hoare, who has taken the time to pour over the Art of Computer Programming and Structures and Interpretations of Computer Programs, and poured over Ivan Sutherland, is familiar with the early days of IBM, Fairchild, Xerox PARC, and hundreds of other classics we consider to be "canon" that I am surely missing (just shooting from the hip here), and you'' be showing me, more likely than not, a damn good programmer. We have a canon, we just don't have the same studios, detail-oriented attention spans we once had, and the technology we have built is partly to blame.

Maybe related, you were once considered an ignorant brut in this country and others if you haven't read a library of literary classics, now we have kids growing up who barely know Shakespeare, or the rich body of the writing of the abolitionists or slave narratives (how many people you think in this country that even know 1/100th of what Henry Louis Gates Jr knows?) Do you think W.E.B Du Bois and Booker T Washington are common names anymore? I remember when everyone had the preamble of the Constitution and the Gettysburg Address burned into their minds, now we can't be expected to remember questions for a simple AWS Certification Exam, it's pathetic.

Re:Why is modern web development so complicated? by eropple on Thursday August 08, 2019 @12:50PM (#20646160)
I think it is worth considering whether you may have the arrow of causality backwards. For tech specifically; your second paragraph is right on point. The folks I know who've got a fundamental grounding in the stuff you listed (and I count myself among them) all seemed to have an understanding of What Makes Systems Good before doing so. In many ways it becomes the naming of parts along with elaboration upon fairly basic ideas.

I do not believe in the idea of a bimodal distribution of software development (not just programming) aptitude, but I sometimes wonder.

(Regardless, I don't call myself an engineer. Engineers get sued if their stuff doesn't work. I'm a software developer, no matter how good and careful I might be.)

Re:Why is modern web development so complicated? by siruncledrew on Thursday August 08, 2019 @02:12AM (#20642256)
The "opinions" part is true, and has implications on whoever is paying for the software and whoever is maintaining it (with their own opinions, of course).

A company/client will often make decisions based on "opinions" too. "We need a website, what should we use to make it?" It's a bit of a blank canvas situation at first where a developer/engineer could come in and say "We should do it X way with Y libraries because <some opinion on why it's the best stack>". Devs could have totally different takes on the same canvas by a matter of opinion.

If I were to ask people "What type of car should I buy?", I would likely get a whole variety of answers from hybrids to SUVs to European and Japanese cars based on who I asked and what their own preferences and tendencies are. I may end up happy or I may end up unhappy depending on which opinion I'm swayed by and how much rigor I put into investigating the different opinions.

Software can be very similar when people providing the "opinions" are caught up in looking to use specific tools over trying to figure out an appropriate solution. When developers/engineers/designers/managers immediate choose tools as a blanket solution over understanding the scope and use-case for context, it's a sign to heavily question the authority of their opinions.

Re:Why is modern web development so complicated? by quickthrower2 on Thursday August 08, 2019 @12:22AM (#20641829)
Software is an interesting animal because what PHP and NodeJS have in common is they were created as hobbies, as were a lot of the frameworks and software tech the world relies on. Maybe there is a bit of us software engineers liking the shiny new thing?

There are a lot of dynamics going on. One is programmer's curiosity but then there is a financial incentive to be on the latest tech. If you see React jobs paying more than Angular jobs, it might be a sign to jump ship which has nothing to do with technical merits. Then there is things like Blockchain that excites investors and techies alike, even when it's a useless solution for something.

People sitting in a room deciding the genuine best thing to do is going to be hard with all these dynamics going on.

Re:Why is modern web development so complicated? by dagw on Friday August 09, 2019 @05:08AM (#20652542)
We can't even accurately estimate the cost of a complex project given our choice of tools

We've been building bridges for thousands of years, and still the relatively simple bridge they built down the road from me took 2.5 years to complete instead of the estimated 9-12 month.

Re:Why is modern web development so complicated? by robertAngst on Wednesday August 07, 2019 @09:03PM (#20640885)
This is good that you are calling this out.

I've seen non-science in Healthcare, and I've spoke out against it. I don't really understand why people are stubborn when there is data, and the data is solid.

If I could wish anything in software engineering- follow the data.