The advantage of web applications is that you do not have to install and update them, that they are inherently sandboxed, and that they are not operating system depended. And even those are not universally good things - server down or no internet connection, no application, feature removed in new version, good luck trying to run an old version, and operating system dependencies give way to browser dependencies. And you have turned even the simplest application into a distribute one unless you put in the effort to make it work offline from the browser cache.<p>Everything else is worse because you are forced to use this single technology stack that the browser offers you. And people are trying to break free of those limitations, WebAssembly, WebUSB, or doing their own rendering into a canvas instead of having a DOM. One size fits all was, is, and will never be true. Are there certain applications that benefit from being web applications? Sure. But is this a panacea? Certainly not.<p>At some point you browser will just turn into another operating system running on top of your operating system. The success of the current situation is, I think, mostly due to the fact that the web browser was a universally adopted least common denominator for running arbitrary code. You could get all the benefits of web applications without the browser, you could have platform independent binaries, you could download them on demand, you could sandbox them. But you probably would have a hard time to invent those standards and get them universally adopted by all platforms and operating systems.
It's interesting. 12 years have passed, and I still prefer a native (not Electron) desktop app to its web equivalent for practically any task, from writing code to working with spreadsheets to PCB design. Even for such a basic task like word processing I prefer to use a local program rather than a web app.
I never get why CRUD work is looked down upon by many on this site amongst others. Most applications are a variation on CRUD. A well done CRUD app should be pretty simple, but simplicity is not something that our industry encourages, the interview process often selects for the ability to produce complexity. As a result most CRUD apps (certainly the ones I have inherited) are an over engineered mess.
> Sorry Jeff, but your post from today is simply stupid.<p>> Think only about the embedded programming… do you really think that you can create a web app to control your washer?<p>> Or do you want a web interface to drive your car?!?<p>> Get out of your cubicle and look around… you’ll see that there is something else running outside your server and browser.<p>> By the way, are you planning to create a web app for the BIOS of your computer?<p>Yes, to all :D<p>Those comments are golden.
Huh, if the C guys were laughed at by the assemblies, the pythonistas by the C guys, I can't wait until the day that something emerges that Starbucks-chugging hipster 'React code-artisans' will be able to laugh at.<p>"Oh, you think you could adequately program a neural interface using Scratch? How <i>quaint</i>"
Wow this is a super hostile sentiment, either web or gtfo.<p>A much less hostile statement that is easier to defend would be "All Programming is Network Programming" - could do an interesting syntax comparison based on what kind of network is in question, but I guess people do that all the time with "monads in other programming languages (than haskell)" kind of posts.
There was a time back not so long ago when there was a craze to rewrite every desktop app as a webapp because the web was going to eat everything. It was the hype cycle of web 2.0. Those days are gone imho. Instead it was mobile that ate everything.<p>The OP that Jeff is commenting on isn't wrong. I see it everyday with junior devs that have very little practical experience with real engineering but they know a little python, maybe a javascript framework and can figure out AWS well enough to deploy it all using serverless.<p>This has been going on in multiple tech stacks - not just desktop programming. There was a time, for example, when people didn't use ORMs or nosql. Working with a real database is becoming a lost skill. One of the dirty secrets of the success of nosql is frankly because new developers are just bad at databases and don't understand fundamental skills. Ditto for AWS and application architecture.<p>I see it as somewhat inevitable that the next gen of developers want to do easier development. The logical conclusion of this will be 'point and click' (LCARS from Star Trek?). 30 years from now we'll be complaining that our kids dont know the 'complexities' of python/javascript development and do nothing but 'low code' development.
I read the interview of Philip Greenspun in Founders at Work recently and in it he says that he realized applications will be written for the web in the future because you don't have to deal with different operating systems. This was early 90s. It's really amazing that this had actually happened by 2009, and the author of the quoted blog did not yet get it.<p>It could be that "web programmers" are not smart enough to understand all of what was listed. It could also be that the listed stuff does not actually matter, as it's just one way of doing things. I don't think that having a job that is difficult to do is something that you should wear as a badge of honor, if it can be done in an easier way. The important thing is what you're able to do with the skills and tools you do have, and how much the people that use it like it.<p>The cynic in me thinks some people spend a long time to understand difficult things and concepts, and therefore don't want to let them go because it will effectively mean that they'd wasted their time.
What's worth nothing, nowadays most of the concepts "that are too hard for web developers" In the quote are already part of frontend programming.<p>Concurrency - web workers<p>Compilers - technically you can write compiler, but it's a very specific use case and I think that web is simply not a proper platform for writing them usually<p>3d - webgl<p>Class inheritance - classes in js (they're not identical to i.e. Java classes but they provide a very similar abstraction on the first glance)<p>Abstract classes - Typescript has it<p>Pass by value vs pass by reference - something that js programmers had to always understand in the past for the sake of handling primitives and objects in js<p>Garbage collection - weak references in js<p>Software development methodologies depend highly on team
Not sure about Atwood's Law.<p>JavaScript has pride of place in browsers for now. But as WebAssembly gains traction, I look forward to avoiding the ungainly JS syntax in favor of pretty much anything else.