
Building Fast and Resilient Web Applications - tim_sw
https://www.igvita.com/2016/05/20/building-fast-and-resilient-web-applications/?
======
simonw
You know what loads really fast and reliably on a cheap mobile phone with a
flaky cellular connection?

HTML with a little bit of CSS and a little bit of JavaScript.

I think it's crazy that web development trends continue to move in the
direction of MB+ JavaScript single page apps, while actual device trends are
moving towards inexpensive Android mobile phones on cellular connections. The
web is getting fatter while the devices are getting less powerful!

How much code do you really need to serve to power an interface that fits on a
mobile phone screen?

~~~
eng_monkey
Maybe for a simple Web site, "HTML with a little bit of CSS and a little bit
of JavaScript" is enough. It is certainly not the case for almost any Web
application.

~~~
regularfry
That's the point. Most web applications are unnecessary, and come with
significant downsides.

~~~
Klathmon
So your point is that developers should stop developing because that
functionality shouldn't exist?

~~~
regularfry
If that's all they have to work on, maybe. It's just broken windows if it's
not actually an improvement.

I like to think that they've got real problems to solve though.

~~~
Klathmon
That's so silly.

If people are happily using a site I create (and I some cases paying money for
use of that site) who are you to decide it's not worth it?

~~~
regularfry
_You_ might care if you can deliver the same functionality with a fraction of
the complexity and better performance.

 _I_ care because if you're interacting with other developers while building
that site, you might be leading credulous hype-followers down a path which
means I end up having to maintain yet _another_ pile of useless,
overcomplicated JS.

~~~
Klathmon
Well I'm sorry but I'm not going to care about what you like to maintain when
I'm making things.

Especially when people are paying me to make those things, you are literally
the last person I care about, right below those "hype-followers".

~~~
dragonwriter
The people paying you to make things probably are going to end up carrying
about maintenance down the road; if you don't care, you are providing the kind
of bad service that demonstrates the difference between much of what goes on
in software development and actual professionalism -- a doctor it later that
didn't concern themselves with, and proactively warn, a client/patient with
that kind of down the road consequence would be guilty of professional
malpractice.

~~~
Klathmon
You seem to think i'm advocating for sloppy and un-maintainable programming...

I'm advocating that the web is going to be the best platform for some
applications. Users aren't going to want to go through complicated installs to
install a program that they will only want to use a few times. They don't want
to spend minutes or sometimes hours installing a program that they will only
use every now and then. They want to be able to use the software from their
iOS/android mobile device, computer, laptop, tablet, friend's computer,
osx/window/linux/whogivesafuckOS. They want it to "install" in less than a
second, and they want to be able to use it and leave. They want it to be
secure, sandboxed, and know that it won't interfere with other programs they
are running on their device. They want to know that it is in it's own sandbox,
and they want it to be as easy as typing in an address or clicking a single
link from a search engine.

If you know of any other platform (even a single other platform) where that
amount of speed that the average person can install, use, and "uninstall" a
program with the security, ease of use, and sandboxing of the web, then by all
means please let me know.

But until then don't act like anyone writing software targeting the web as a
platform is doing some kind of disservice to society. It's not. The people
doing a disservice to society are people like you who "look down upon" those
who develop for or use the web to get shit done.

Calling it "bad service" because you don't like how it's used is juvenile, and
downright wrong.

~~~
nickpsecurity
"They want it to "install" in less than a second, and they want to be able to
use it and leave. They want it to be secure, sandboxed, and know that it won't
interfere with other programs they are running on their device. They want to
know that it is in it's own sandbox, and they want it to be as easy as typing
in an address or clicking a single link from a search engine."

I don't know why anyone would trust a web browser or app to do all that. They
fail to every day due to enormous complexity. Sounds like you need a https
link to a standalone exe that's written in portable, safe-by-default code
utilizing only necessary OS API's. Like us non-Web types build things past and
present. Interestingly, one of the old arguments was that even our micro-apps
would be too large vs web pages. The web app, framework, and JS craze mean
those are now bigger than many stand-alones. That's funny.

"They want to be able to use the software from their iOS/android mobile
device, computer, laptop, tablet, friend's computer,
osx/window/linux/whogivesafuckOS"

Only part that's tricky. Gotta compile the portable code into standalone for
all the common OS's. Many tools to make that easy. Then, perhaps a page or JS
that determines their platform then redirects to the right link. Problem
solved.

~~~
Klathmon
>I don't know why anyone would trust a web browser or app to do all that.

Because at the end of the day running code in a sandboxed browser is better
than running native code on the OS.

Yeah, they aren't perfect, but it's better than most alternatives.

~~~
nickpsecurity
Displaying some text and graphics on a browser with user's privileges is
better than printing some text and graphics to a window in a process with
little or no privileges? It wasn't better at any point in web development.
There were simpler things at each point. Just not widespread adoption. ;)

------
ben_jones
> Adapt application logic to match the device & network capabilities.

Yeah let me just build 4 apps real quick and serve different ones based of the
network performance of a given user. That's practical.

~~~
dualogy
"4 different apps" doesn't have to equate "4 separate codebases" obviously.
Behold the wizardry of #ifdefs! Just the old idea of graceful degradation.
What is done at the GUI level can be done at the feature/functionality level.
But you're still right in that it's a lot of extra effort and must be budgeted
for.

