How did software development end up dominated by web dev?
πŸ‘€aks2161989πŸ•‘3yπŸ”Ό54πŸ—¨οΈ39

(Replying to PARENT post)

For many kinds of application software the web is clearly superior.

(1) You can tell people to go to a URL and it almost always "just works". Contrast that to considerable work to develop a Windows installer, Mac DMG file, RPM/DEB/other packages for Linux, etc.

(2) Once you put installers and packages in the field you will discover some people have machines in an odd state and your software won't work on them. Some people will give up (either your competitor wins or indifference wins), others will lead you into a rabbit hole solving their problems.

(3) Something will go wrong with your software. For a low risk change, say fixing a typo, you can deploy a change to a web app in minutes even with the discipline of version control, automated tests, and cache invalidation in place. For other platforms the process of building and testing installers, wait for/fight with the app store, then getting the people to really upgrade is a huge hassle that could stretch on for days or weeks.

(4) If you don't have the software versions synchronized, client/server protocol mismatch will complicate your efforts to fix bugs and add features.

(5) Data is safer in a data center or a cloud than it is for a client device that could can be lost, stolen or destroyed in a opportunistic or targeted way

(6) No cross-platform UI framework is better than the web browser in terms of (a) UI quality (b) ease of development or (c) range of devices supported.

(7) Any system for e-commerce, internet of things, digital twins, machine learning, space travel, compilers, data structures, weapons systems, etc. has a user interface on the critical path

My heroes right now are people like Walt Disney and Jim Henson who built seductive systems and spaces to enchant people. I find that opportunity meaningful in U.I. work.

πŸ‘€PaulHouleπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

This thread tells you all you need to know. People have literally forgotten that non-web programming makes up 1% of jobs and yet 99% of actual software that powers society is non-web software.
πŸ‘€user10874967111πŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Distribution.

You develop software. How do you get it in the hands of users? Shrink-wrap, on-premises, downloadable executables and installers, SaaS (through the browser in one environment, or supporting lower browser cardinality than user environments').

Once you choose SaaS as distribution mode, you're writing for the web. Therefore a part of your problem, an important one, becomes web development.

πŸ‘€JugurthaπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Why wouldn't it have come to this? Every revolution in communications (printing, radio, telephones, TV) came with an explosion of consumer demand and industries/jobs to serve it. The internet revolution is no different. If anything, it's more profound since coupling a more capable communications medium with the ability to execute logic against the information received is really two revolutions in one (three if you count the concurrent rise of wireless data over cellular networks).

That being said, if you prefer not to work in web technologies, those jobs certainly exist: middleware/platforms, embedded systems/IOT, some of the stuff FAANG does, etc. Remember, all those people writing web stuff rely on a very tall stack of layers and platforms to do what they do. You can find these jobs, with a little patience and persistence.

πŸ‘€ThrowawayR2πŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

The barrier to entry was low early on. Developers openly shared information as the Internet gained adoption. View source meant an inquisitive person could teach themselves new tricks.

Web development in its infancy was simple so a whole generation of developers could learn as the technology improved.

As a developer in the 90s and early 00s it wasn't cheap or easy for everyone to get Visual Studio/Delphi/Borland C++ Builder, not to mention obtaining the knowledge to drive those tools effectively.

Web development might be more difficult today but for a decade or two it massively smashed barriers to entry.

πŸ‘€thevagrantπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Not directly the answer to your question, but if I may comment on the background to your question:

- There's a place for backend focused development for the web. So you don't have to be an expert in frontend. But it helps to understand frontend concerns so you can speak a frontend dev's language to build interfaces that work for their needs. Be it server-side or APIs.

- there are fun technicalities of frontend - state management, asynchrony, software architecture for these problem spaces - lots of things that turn out to be technically interesting where you might be able to carve out a niche for yourself so you don't have to spend most of your time pushing pixels

- like desktop and probably mobile app development has gui frameworks where you can assemble UIs with components with largely existing styling that just needs configuration, the web frontend space has component libraries with style plugins like bootstrap and material ui, where a lot of styling is done for you, and you can focus on assembling the application rather than visual design or pixel pushing. It's not perfect for all cases, but it's effective for many. Which means if you don't want to be designing and building websites, you can still build good looking applications for the web and focus most of your time on functionality.

πŸ‘€jbothmaπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

A lot of the work in bigger companies is "backend." You work on APIs that are probably invoked somewhere in the service of a web request, but may not be directly web facing. And if they are web facing, you have a mobile or frontend developer colleague who implements the client.

You don't have to do frontend if you don't want to. Obviously if you want to work in startups and build a product from scratch it'll be pretty important. If you want to work in big companies, the backend path has less skills churn (we don't throw out our framework every 6 months) and higher growth potential (it is easier to have a big impact on the org vs. churning out features, which is a low to mid level position).

πŸ‘€closeparenπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Ask yourself how much time a user spends in various apps. I would get that other than old productivity apps and games most users spend almost all of their time in browsers.

Also, it’s the solution we wanted for decades for true portability, but most people just haven’t accepted that fact.

πŸ‘€garbagecoderπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Mobile development (for iOS or Android) is very big too. But, more relevant for you, both web and mobile development require a lot of back-end development where you don't need to have any contact with UI/UX.
πŸ‘€danmaz74πŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

"Client/Server" killed off desktop and workgroup apps. With it came all that consultancy driven enterprisey crap: n+1 tiered architectures, execrable design patterns (MVC v MVP v MVCC), meta markup languages, schemas and mappings, yadda yadda.

Web development is just the opportunistic parasite that snuck in after enterprisey dev blew apart the industry.

Everything that sucks about enterprisey dev also sucks about web dev.

Then pile on top the insanity of HTML, CSS, JavaScript... Almost makes one wistful for X-Windows.

Web dev didn't have to suck. It could have just been an update to time sharing and smart terminals.

But every generation has to reinvent everything from scratch every time. It's some kind of natural law.

Lather, rinse, repeat.

--

There are precisely two good parts that "the web" bequeathed onto the world: HTTP and URLs (URIs). Those really were game changers.

For one, both are "open".

All of the alternatives were in the same idea space as Xanadu. Closed gardens, proprietary.

At the moment, I don't recall any other contenders for the use cases HTTP and URI solve.

The only close analogs I can think of are the SNMP stack based on ASN.1 and MIBs (OIDs). And omg that stuff sucked.

Oh, some of it's coming back to me. X.500 (for addressing) and CORBA (for RPC) and the like.

We are SO LUCKY HTTP and URIs showed up.

πŸ‘€specialistπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Fewer gatekeepers, more users, lower development costs, tighter feedback loops.
πŸ‘€epcπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

The users have a job to do, they want to be able to do it via their laptop, tablet or phone. The tools exist to make it happen, as cobbled together as they are, so they don't care about UI anywhere near as much as a power user on a desktop connected via Gigabit to the servers in an office environment.

We were able to cobble together enough things via the web to make it possible for the user to get things done, with very rough edges, which have been sanded off a bit in the past decade. It is still light years less productive than the desktop power user, but the corporations and end users don't care.

Eventually we'll have programs that run on the end user's machine inside a VM, talking to the servers hiding behind web servers, doing a crude imitation of IBM 3270 terminals used in the 1970s for data entry. Everyone will herald it as success.

πŸ‘€mikewarotπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

The "how" is really that computers just got powerful enough and internet speed got fast enough to a point where there is no longer a need to have a native app for most companies

Users already have to go to your website: why even bother having an extra step of downloading your app if they don't need to?

πŸ‘€arduinomancerπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

πŸ‘€aristofunπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

The killer feature is web dev is: people can see your stuff. Instantly.

That's so powerful that, over time, it ends up sucking a lot of devs in, who do great work which struggles with visibility.

Like I could probably look up a Haskell library right now which is a monumental feat of software engineering, that has like 1k users, total. Then I could look up some web dev app that's piss poor compared to that, which has like 1 million users.

That ends up exerting a gravitational pull over time, and that's why web dev dominates the software development discourse.

πŸ‘€julianeonπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Almost all responses state distribution as the main advantage of the web, and I certainly agree.

I just wanted to add that what we really need is a form of distributed operating system, and the web is the closest implementation of that, albeit a painfully poor one.

So, follow up questions might be: how come we have been unable to agree on some shared abstraction of a user and an app at the OS level? And are we now stuck forever in a world where software is grown organically rather than engineered? (as per Dijkstra's famous analogy)

πŸ‘€rixedπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Because write once, run anywhere is a compelling concept.
πŸ‘€dyejeπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

One word: Monetization.

If I can get you to use my hardware to do computations you were perfectly capable of doing on your own hardware given the same code, you're more liable to be comfortable paying me rent. Throw in that web apps have a lower barrier to entry in terms of grokking libraries written in a systems programming language, and you have the "Software Engineering world being dominated by Web Dev".

Sad, isn't it?

πŸ‘€salawatπŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

It's the easiest way to get software out to a user.
πŸ‘€polishdude20πŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Building and packaging desktop apps is a huge pain, and a maintenance nightmare.

Ask anyone who does it. Fixpack releases, bug fixes, packaging and dependency management over N operating systems... it's a special he'll. Now, do it in the browser and you can update the page without notifying anyone, making a formal release or jumping thru many flaming hoops

πŸ‘€throwawaygal7πŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

This isn't something that has happened to software development as a field, nor is it a problem in any way. It's just that the web is a really big deal so there are many jobs working on web stuff.
πŸ‘€jstx1πŸ•‘3yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Largest hardware platform and with built in multi-user access.
πŸ‘€scotty79πŸ•‘3yπŸ”Ό0πŸ—¨οΈ0