A Rant Against Splash Screens 477
An anonymous reader writes "This controversial post by Adobe's Kas Thomas asks if splash screens are just a sign of program bloat and callous disregard for users. It suggests that big programs should launch instantly (or appear to), perhaps by running against an instance in the cloud while the local instance finishes loading. Users of cell phones and tablets are accustomed to apps being instantly available. This is the new standard for performance, the author argues. Nothing short of it will do, any more."
I'm an iPad user (Score:4, Insightful)
And most of the apps I use on it have splash screens...
Re:Adobe complaining about bloat? (Score:5, Insightful)
Notes? (Score:5, Insightful)
I have always been annoyed by splash screens (Score:4, Insightful)
I have a similar complaint about web pages (Score:5, Insightful)
It really bugs me when a webpage take forever to load because it's waiting on ad servers to dish up a new ad
Why can't they write there pages to load the ads last so you can read the page while the ads load?
The Added Infrastructure (Score:5, Insightful)
You can e-mail the CEO of Adobe at snarayen@adobe.com (to tell him to keep me or fire me).
But on the other hand, I wonder if he was aware of the network problems some of his proposed solutions represent. Surely, he must realize that "Run my gestures against an image in the cloud" amounts to increased network traffic. Don't even get me started on the privacy of those "gestures." Let's say you open up Photoshop to edit some 12 megapixel family pictures immediately. Are they transferred to the cloud in the process? And transferred back? Who has the network to do that faster than just loading to main memory with CPU cache? This increases what Adobe must now host as far as server farms and will, probably, raise the price of Photoshop in doing so. And, you know, it's already too expensive for me. Furthermore his post rails against "bloatware" but it's not like hosting this out on the cloud is going to make the application any less bloated. On the contrary, it can only make software more intricate, bloated, buggy, susceptible to attack, expensive, etc. Furthermore are there any users out there that are stationed on top of an internet backbone on Google's campus that could even take advantage of this additional functionality? Perhaps decades into the future this will be reality but until the infrastructure catches up to your consumers, this is a logistical headache.
..." ad infinitum while we're still concentrating on minimizing highway deaths. He's probably sitting there with the latest iPhone asking why everything doesn't run like this but I have coworkers that are complaining about the latest iOS 5 updates to their older iPhones and all the problems associated with it. Good luck with pushing that "instant on" standard to all hardware out there man, I really will be amazed if you pull it off.
As a developer, this all sounds very much like a two year old prattling off "and then I want a hover board, and then I want a flying car, and then
Welcome to the real world, Kas. (Score:5, Insightful)
Four things:
1) Launching an app from the cloud isn't going to be faster. Hell, many of those apps already use a modal web dialog that essentially acts as a splash screen while all the Javascript bloat sent down to the client gets its defecations together.
2) Angry Birds has some of the worst launch time that I've ever seen - and it's a top tablet and phone app.
3) Adobe, you want disregard for users? Try your stupid EULA clickthrough every time a new version of your PDF reader comes out.
4) Try a usability test in an app without a splash screen some time. What you get is poor end users clicking (launching) the app multiple times because it looks like "nothing's happening". The splash screen is an "ack" at the usability level - "yep, we're launching the app!" As long as it's not modal and the wait isn't long (e.g., the user can go finish surfing on his browser during the 10-15 seconds the apps loads) then there's usually no problem.
Instant Gratification (Score:5, Insightful)
What kind of... (Score:5, Insightful)
How about - now call me kooky - using some of the massive parallelism that desktops have been shipping with for the last half-decade? Launch background threads to do your resource loading; ensure that your main UI thread is doing as little blocking work as possible? You know, all the "tricks" that have been around for ages, but fell into disuse until mobile platforms became mainstream?
What kind of diseased mind thinks that the answer to a slow-loading client-side app is to connect it to a cloud instance, thus introducing external dependencies and unpredictable network latency?
Re:I have always been annoyed by splash screens (Score:5, Insightful)
They are good for really long processes (OS or window-system startup, game loading), because they give confirmation that something is really happening. However, they have to have progress bars or at least something (I like KDE's system with icons) by which you can tell how far it is.
However, I have noticed a recent trend towards splash screens with an endless loop and no connection to what's actualy happening. Window 7 has such a screen, so does Ubuntu. This is something I'm very annoyed by, because I always think it's complete before it actually is.
Re:Adobe complaining about bloat? (Score:5, Insightful)
1999: Five years ago, this would have been totally unworkable. But now we can use The Internet !
2001: Why the fuck did we think that was gonna work?
2012: Five years ago, this would have been totally unworkable. But now we can use The Cloud !
2014:
Inconsistent Premise (Score:5, Insightful)
Re:Adobe complaining about bloat? (Score:5, Insightful)
Forget that, what crazy-ass world does this guy live in where your Internet connection is faster than local disk access!?!?
Re:I'm an iPad user (Score:5, Insightful)
Remember when most minor websites had splash screens? Usually flash animation. Was particularly true for gaming clans and other small sites. Splash screens are so 2002.....
I don't mind a splash while it loads drivers, etc. for a few seconds, like Photoshop does, but a splash that stays there until you click to start using the program, well that is just excessive. I already bought the damn program, you don't need to keep advertising it to me, and I already KNOW what the name of the program is, I just started it....
Re:I'm an iPad user (Score:5, Insightful)
Splash screens are a nearly-mandatory part of any iOS app. The thing is, you're supposed to supply a bitmap of the unchanging parts of the screen to display while the actual app is loading. I'm annoyed every time I open iBooks or Mint. It makes no sense, it's just absolutely useless. Since it's a static picture it adds no more information than a splash screen would, so it's not even like it gives you something to process while you're waiting for the app to become responsive--the only purpose is to fool people into thinking it's fast, but they'll only be fooled until they're familiar enough with the initial static image that they've already planned their next move. The first time they try to "buffer" that next move, they'll realize just how worthless the image is.
Show me something worthwhile, like a progress bar, so I can estimate how long I have to wait. Or, better yet, don't load every damn thing when you start up. Load up the UI, whose libraries are typically loaded into the OS already, and then spawn a low-priority thread to do all that other loading in the background.
It's really stupid that we're locked into splash screens now. Because lazy-loading wasn't added at the very beginning of a project, when it would be easy, it's now practically impossible to switch over to it due to all the subtle timing issues that are essentially hard-coded into the apps. If lazy-loading had been the default, and it wasn't fast enough at any point, the background cache method would be easy to implement. Oh well, just makes it easier for my own projects to stand out.
Always-on-top (Score:5, Insightful)
I don't mind splash screens, but I HATE HATE HATE splash screens that insist on always-on-top. Let me launch the app and then go back to what I was doing while it loads. When you force always-on-top, you're basically saying "Stop everything you're doing and look at me for 30 seconds!"
Re:Adobe complaining about bloat? (Score:2, Insightful)
Where it will cache to your hard drive and then be loaded?
Re:What are these 'ads' you speak of? (Score:2, Insightful)
Forget it. NoScript, block everything, selectively enable stuff that I want to see. Once you get used to the idea that many sites will need a temporary permission or two its great and only a relatively small subset of ads get through.
That's fine if you only browse the web a couple minutes a day. Me, I prefer to spend more time consuming the content of the page I navigated to than tinkering with whitelists and blacklists to get the site to even function.
I could see this may be important if you spent a lot of time on warez / porn / other fishy sites, but I don't and see little reason to bother with the annoyance.
Re:Adobe complaining about bloat? (Score:5, Insightful)
IIRC KDE3 had a style guide requesting that splash screens would be all inside the application window. I always thought that was a brilliant idea. Whether an app can be made to load instantaneously might depend on computing power (although I agree with him, that this shouldn't be an issue for modern computers, anymore) but the really annoying thing about Splash screens is that they sit there blocking access to your desktop, just to tell you "look I'm loading". There is certainly never a need for that.
Other than that, I think there are many good usability ideas in smartphone/tablet GUIs which ought to be brought to the desktop. Not the stupid stuff like making a desktop UI look like it was intended to be used with a touchscreen, but doing away with all the superfluous confirmation dialogs. An application should not ask you whether "you really want to quit" you already told it that - instead it should make sure that when you quit nothing bad happens. If you were working on a document but didn't save that yet - then just keep the working copy when the program is closed. Don't overwrite what's in the saved copy and don't throw it away - just restore it when the application is opened again, and suddenly quitting word processor is no longer dangerous. When quitting a music or video player it should remember what you were playing and come back to that when the application is started again. A video player should keep the position basically for every movie it has been playing, so if you come back to it later you can continue to watch from the same position, even if you have watched something else in between.
Remove the danger rather than asking the user twice when doing something dangerous.
Re:Adobe complaining about bloat? (Score:5, Insightful)
Unlike you, I'm offended by the existence of splash screens. I don't give a rat's ass which splash screen, whether it's my BIOS when I boot, the operating system when it takes control of the hardware, or the applications after I've finally logged in.
We (humanity) built computers so that we could do lightning-fast calculations, and do impossible chores in seconds or minutes, instead of lifetimes. The fun and everything just followed.
All those damned splash screens are anathema to the concept of computing.
I already KNOW that my BIOS was written by (ASUS, Phoenix, fill in your brand here), I do NOT need three, ten, or thirty second splash screens to remind me.
Ditto with my nVidia card.
Ditto with the boot loader.
Ditto again with the operating system
And, that goes double (or more) for any application I might want to run. Adobe, Oracle, whoever - I KNOW where I got the software already. All I want it to do, is just what I want it to do. I most certainly DO NOT want it to waste precious seconds of my lifetime reminding me that Adobe or Oracle are wasting my time!
All I want from a computer is "instant on" and "instant responsiveness". I've invested a fair amount of money in good hardware, fast CPU and video, and plenty of memory. I want it to FLY, not to display inane splash screens!
Re:Adobe complaining about bloat? (Score:5, Insightful)
See also "time-sharing", "client-server" and "thin clients". Much of the evolution of computers has been a power struggle between centralization by technology producers and decentralization by users. "The cloud" is just more of the same.
But which is it? Are we centralizing or decentralizing right now? I tend to lose track. As far as I know, the current "cloud" talk mostly means "storage of your data on our servers". I've seen it used this way a lot in the "smart phone" context. I'm guessing that because we don't know where the servers are, we're supposed to think this is a form of decentralization. As if vagueness were the same as decentralization! We send our data off into the great unknown, and...well...that's a decentralized as it gets, right?
Not really, of course; it's jargon that is intended to get people to think that they're storing their data on neutral, trustworthy servers. If the instructions actually said "back up your personal data to the Google (or Apple) server", then we might ask if we can really trust Gapple with that data . But if we keep our stuff in a cloud...well, who asks about the integrity of clouds?
The other way I've heard "cloud" used is as a form of wishful thinking that features programs executing on unspecified servers, along with our data. Of course, if the wish comes true, it will be Gapple servers that run the programs and keep the data, but we won't be troubled with that level of detail. (For all I know, this sense of "cloud computing" has already been implemented, and everybody is doing it—and I'm just so totally out of it that I haven't noticed.)
For what it's worth, I saw fluffy things labeled "The Cloud" on gee-whiz marketing slides for a super-computing company I used to work for back in 1998. Nobody knew what it was, of course (yes, I asked, bad move if you cared whether Marketing liked you). I'd say it was—and is—a marketing meme trying to push its way into reality.
Re:Adobe complaining about bloat? (Score:4, Insightful)
Re:Adobe complaining about bloat? (Score:5, Insightful)
Re:Adobe complaining about bloat? (Score:4, Insightful)
Unlike you, I'm offended by the existence of splash screens. I don't give a rat's ass which splash screen, whether it's my BIOS when I boot, the operating system when it takes control of the hardware, or the applications after I've finally logged in.
I'm just the opposite. I dislike programs that take a while to start up, but don't provide me with any feedback at all. I have no idea if the damn program even launched, and if so, how long it will be before I can do something useful. I would rather see a splash screen of some sort with a progress bar or some other form of visible feedback. To each his own I guess and the solution is simple. Allow a preference setting as to whether a splash screen should be shown at launch or not. Problem solved.
Re:Adobe complaining about bloat? (Score:4, Insightful)
The problem is, once you start to use programs that require other frameworks (GTK and such), initial load times are much worse; and with Windows, the situation is even worse.
People have to agree with that no matter what. If an application executable is linked to a dynamic library that is not yet mapped into memory, the OS then first needs to map it. This can take time if the library depends on other libraries which are not mapped yet (often the case of GUI frameworks). In the case of GNU/Linux, most of GUI applications are linked to either libQt* or libgtk. If you (the reader) are running Gnome and you execute a application linked with KDE, you will certainly notice that it takes longer to execute. Nonetheless, the opensource nature of the GNU/Linux ecosystem makes it easy (and a standard practice) to reuse code and for that reason QT and GTK are linked with a common base of shared libraries like libX11, libz and libpng, which is a good thing.
It was long the time I last programmed in Windows so correct me if I'm wrong but I don't think that the situation is worse in Windows because it also provides a base of system libraries where most of proprietary applications are linked against (DirectSound, GDI32, etc..) . Now, *it could* be worse in the case of proprietary (non-Microsoft) applications because they tend to depend on shared libraries which are also built by the same vendor to reuse some code between their multiple products or just to abstract the underlying "low level" API. Obviously those libraries are not reused by other vendors.
Now back to topic. When I fire up an application, I expect it to load instantaneously. If it does not, then I look at the laptop's HDD LED light to check for HDD activity (the HDD is always the bottleneck here). I don't need a splash screen because I know (through the blinking HDD LED) that the application is running and I wait for it. However this is my case, which is an exception because I know about OSes and Computers. Most (regular) users run the application and if they don't see any feedback in the screen, they run it again and again until it works; completely ignoring subtle feedback tips from the mouse icon or even the laptop LED indicators. In those cases, I strongly believe a splashscreen is obligatory.