A Rant Against Splash Screens
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."
Adobe complaining about bloat?
Kettle, meet blackhole.
PlusFive Slashdot reader for Android. Can post comments.
And most of the apps I use on it have splash screens...
Don't you mean perhaps run against a local instance until the so-called cloud loads?
Are you saying that Lotus Notes MIGHT BE "bloatware"?
It's not a new trend. They have always been annoying.
And it would like it's "news" article back.
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?
http://Lenny.com
4 great justice!
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
My work here is dung.
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.
First off, mentioning Adobe and Bloat in the same sentence is just asking for mockery. Second, the whole point of the splash screen was to allow "instant feedback" to the the user that something was happening since they completely ignore the hourglass cursor. Given that most applications are designed independent of CPU cores and IO throughput, wouldn't you be adding bloat just to give the false appearance that the application is fully loaded and functional when it isn't? I guess we could design background loading, but isn't that an assumption that we'd have multiple cores to handle the UI and background tasks?
Lots of games for example require setup time between levels to avoid chewing up excess drive and memory space. Likewise with productivity apps that need to load add-ons, lib's and the like. Angry Birds on the other hand just downloads new adds, so the splash screen could go away without effecting performance.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
Perhaps the author could provide us with a link to a demonstration of this amazing cloud -> local instance version remapping technology?
Perhaps it's just because "cloud" is the still-trendy buzzword. Hand-wavy talk of offloading into the "cloud" that solves all performance and scaling issues goes a long way with execs. You can pay someone else to deal with your poor architecture... excuse me, "provision appropriate capacity in the cloud" as they say... and push the real issues into obscurity.
Perhaps it's because app vendors can then use the user's Internet connection as a scapegoat for poor application performance. Yeah. Must be your cable, man. You know how it gets sometimes.
But whatever it is, it's a strange idea and VERY ironic that Adobe is pushing it.
What happens when the local app is done loading, 15 seconds later? Does it freeze up while the user is typing, while it transfers the data, and then hitch like crazy for a few seconds? Sounds like a terrible experience.
How is this much different from showing a screenshot of the program until it's able to be interactive locally?
I think I would prefer office to boot with a splash screen rather than suck up memory when I am not using it.
I especially hate it, when I choose restart and the OS has open all these stupid programs. When I rarely hit restart, I was a fresh system.
The author of this article is an asshole who doesn't understand how computers work. To paraphrase him: "I want it, and I want it now. Period. PERIOD." Sometimes even with computer technology as advanced as it is, applications need time to load. A splash screen says "Don't worry Mr. Computer User, this program has successfully launched and is now loading." Without the splash, you'd sit and wonder if the program was loading or not... and then probably launch it a second time before it was finished loading, further slowing the process.
Why don't we track the killer by his IP address using Visual Basic or whatever while we're at it?
But I agree with the main sentiment; as computers become faster devs use it as an excuse to make apps more bloated and slower thinking users won't notice. But the best apps will always run fast and light.
Interestingly, Google Chrome attempts to at least APPEAR to start fast by loading components in the background while shoving stuff to the screen as fast as it can. The main window pops up before your profile is loaded AFAIK.
Loading . . .
First post!
Ah, nuts
I'm getting tired of display devices having splash screens. I already know the name brand of my TV and monitor. Just start displaying the signal.
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?
are the same size as our phone "apps" (a handful of MB) then that might mean something. Until then splash screens are just a way to indicate, yes, your program really is starting and yes you did click the right icon. A number of programs offer the option to disable splash screens, maybe making that a "requirement" would make everyone happy.
Splash screens were originally designed to let you know the program was launching, so you weren't sitting there wondering "is it opening or not". Now, some splash screens are unnecessarily intrusive, particularly those that require you to click (or press enter) before they disappear and allow you to use the software.
The real problem is lack of responsiveness. The author points to that in his proposed alternatives, but he's misplaced the blame. For interactive processes, response time is more important than speed. 0.1 seconds is essentially instantaneous for most tasks, that is, the user won't notice that little delay. Games are an exception to that. 0.25 seconds starts to become noticeable, but it it's only occasionally that long, user's will barely notice. 0.5 seconds or longeer is noticeable in almost all instances. Any process that takes over 0.25 seconds should display some form of busy indicator or a progress indicator.
make imaginary.friends COUNT=100 VISIBLE=false
I have a TrendNET camera and an android phone. The stupid app shows a silly splash screen for 3 seconds and then shows you a list of available cameras, which you have to click, then click the MENU button, and finally, VIEW.
It's awful. The worst part is the splash screen that does absolutely nothing.
Adobe, the company who's code is 100% for virus/trojan-like with startup hiding, and the kings of bloat behind M$ says this?
I think I strained a couple of muscles laughing!
Seriously.. For someone who doesn't have the 5 extra seconds it takes to load a program on their PC they sure have plenty of time to write/complain about it.. Also my iphone doesn't load up programs all that fast, and certainly none of them are nearly as robust as the ones I have on my computer.
The author complains about various things. He may have a point with some of them, but some are just ridiculous. For example, he mentions how it takes X amount of time to boot up his laptop, but his phone starts "instantly." I am 100% sure that his phone does not start up instantly from a reboot. Rather, his phone is simply on the vast majority of the time. The more complex the application, the longer it takes to prepare to run. I know numerous applications on both IOS and Android that deliver a splash screen while they load up. Many of these are games or similarly graphic intensive applications (comparative to other more "utility" focused apps). Or if they do not have a splash screen, they deliver no useful function while the data is loading. Ever started up google maps or something similar, and seen your position sitting there on a completely blank field for five or ten seconds? While I agree that perhaps splash screens/load times should be more streamlined as a whole, this "zero load time" environment that he purports to enjoy with phones and tablets simply does not exist.
So is this newspeak to sell SAAS ?
Is this an attempt to justify more user tracking and user reliance on Adobe? No thanks.
Man I've been steaming about the new splash screen on Quicken. It used to be switchable, now with 2011 it's not. And it sits there for minutes, locked on top and not letting you do anything else. I use Quicken for one reason and one reason only, to be able to pay bills directly and electronically through my register, and to be able to download transactions and reconcile accounts. Other programs offer the former or the latter, but I haven't found any that does both. Once some other software (and I don't really care which platform) offers this, I'm ready to dump the Intuit anti-customer attitude once and for all.
-- "In order to have power, I must be taken seriously." -Mojo Jojo
Get Serious.
If that's all you dislike about Photoshop, you're lucky!
Besides, it's a simple hack to kill the splash screen.
My eyes popped out of my head. I'm sorry but these two companies have consistently had a target of 2min load times on all the computers I had the last 10 years. Fuck you for being shit programmers. I'm sorry but there is no other way to say this. Jesus.
Attempts to fix this problem usually seem to take the form of some abysmal hack to keep the program in memory when not in use. There's one of those memory hogs for OpenOffice, Microsoft Office, Photoshop, and Java. (Java's "jqs.exe" is particularly wasteful of resources. It tries to keep the whole Java environment in memory, deliberately causing page faults, even when there's been no use of Java in hours or weeks.) This is one of the reasons it seems to take gigabytes of memory to do anything today.
Nobody thinks much about linkers any more. That's part of the problem. What's needed is something that organizes the executable file so that the stuff you need to get going loads first, using one big read operation. Linkers which once did that were once common, but are now rare.
Then there's the DLL/shared object problem. Many programs need only a small part of some shared library, but requesting it either brings in the whole thing, or it gets loaded one page fault at a time.
Much of the problem is just bloat. Adobe's PDF reader (which is now unnecessary, since there are good alternatives) takes far too long to load for what it does. Most people don't need the text to speech system, or "WebBuy" (electronic commerce in PDF, a feature used by nobody), yet each adds a noticeable delay to startup.
Hooking something up to the "cloud" makes it worse. Then you get to wait for the server.
because when you boot Windows, the operating system will, without fail, show you a fake desktop that appears functional but nothing works. Then the whole system bogs down, grinding and struggling, as it tries to load the operating system and whatever program you told it to start. Slowly, slowly, it claws to life, like a deathless zombie scrabbling against a coffin lid, and the program I wanted appears. Only it's slow as molasses too, because the operating system is STILL loading. This continues for up to a good solid minute or two on a hard-disk powered system.
If the program is complex enough that it simply can't load in a snap, I WANT A SPLASH SCREEN. Don't fucking lie to me as if I'm an impatient moron. Tell me that you're getting ready to run. Let me know that you are actually doing something in the background---put some updating text under that splash. And when that splash screen disappears, let everything now be snappy and fully operative.
Large apps may take time to load. Smartphones/tablets don't have huge apps like premier/photoshop.
I would rather have my entire program available after a short splash, then be waiting on parts for a possibly non-existent cloud sync if I have a dead connection. I rely on my programs to work, consistently, with all features, at all times.
Silence is a state of mime.
lol, you guys still allow ANYTHING 3rd party to load on a page, at all? 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.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
I don't mind a splash screen on a game if it's really waiting for the program to load resources, and it goes away when the game is ready to play. I realize that games can have a lot of resources to load up before they can begin play.
I do mind when there is a whole series of splash screens for each and every little sub-library, and they all insist on playing their little animation for me every time I load up. Especially when it's obvious that the screen is just waiting on a timer or the escape key. Even if I can dismiss them with the escape key, it's still irritating.
On a business application, there is absolutely no excuse for a splash screen. I don't care if it takes several seconds to load up, but I don't want to ready your ad.
In the world of Windows Metro, the app tile replaces the splash screen.
I would prefer to have a splash screen with a progress bar than to sit and wait with no notification at all that my app is loading components into memory while I wait.
This is the kind of embarrassing sophomoric musing that most people would be ashamed to read let alone write. Let's cut this guy some slack, in 5 or 10 years he's going to feel really stupid.
I don't use a splash screen, but my own project - OpalCalc - takes about 700ms to open (used to be over a second), and while this sounds minuscule and hardly anyone complains, it does feel 'awkward' to open compared to say notepad, or the standard Windows calculator when you want to do a quick calc. (Getting the load time under 300ms soon though I hope).
Somewhat related, a while back, I wrote an article about latency in desktop apps (as well as the OS's GUI generally). Here are some quick stats for Ubuntu 10.10 versus Windows 7:
http://www.skytopia.com/project/articles/lag/latency.html#desktop
Haiku is very good in this regard.
Why OpalCalc is the best Windows calc
Its often quicker to download a PDF than to wait for Adobe Reader to load.
A graphic designers "photoshop is opening" can become the equivalent of a developer's "my code is compiling" excuse to not work.
Now that so much Windows administration is done via RDP, my absolute favorite are the transparent fade-in splash screens. They add so much the user experience, like head-bashing frustrations
It suggests that big programs should launch instantly (or appear to)
No, it should not "appear to" launch instantly. Putting up a full screen graphic that looks like your loaded app is just a gimmick cell phone manufacturers prefer to give the *illusion* of performance. There is no harm in showing a splash screen rather than the fake user interface. The splash screen serves your interests, the fake user interface serves the cell phone manufacturer's interests. Serving your interests rather than the manufacturer's does not harm the user, **unless** you do something like introduce a delay to force the user to see your splash.
Of course it is sometimes practical to do both, combine the fake user interface and splash info. In a calculator app (RPN Scientific Stats Business Hex) that I have I am able to do both in a way. The screenshot that I use was converted to gray scale and dimmed to suggest the buttons are not enabled. My splash is just a product name and copyright notice and I put that in the numeric display. The user experience is an instant but disabled user interface with a copyright notice, the notice is replaced with numerics as soon as the interface is enabled.
Also, you should not depend on the user seeing a spash every time the app launches. On iOS apps go into the background rather than quit. When "re-launched' the app merely moves to the foreground and is in fact instantly useable. Forcing a spash screen at this time would fall into the "harmful to the user" category.
Splash screens have a purpose.
I once worked on a really poorly designed app that used huge 3rd party libraries that all had to be loaded at program startup. Startup was so slow, that end-users would often try to start the app multiple times, which made the startup even slower. Starting the app under ideal circumstances took 45+ seconds before anything was displayed. This was on a FAST machine for the time.
Our fix?
We created a tiny app that showed a splash screen ASAP after startup for 45 seconds, while the full app was spawned. This stopped users from relaunching the app and let them know their first clicks had worked.
Eventually, we dumped the huge 3rd party library for MFC (which made us single platform), and the launch time dropped to 10 seconds.
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!"
"Tell me doctor, with all of your defenses, are there any provisions for an attack by killer bees?"
But I have been using computers since I was a child. I learned very early on that some programs loaded quickly, which other programs took longer to load. Again, simple programs load more quickly than more complex programs (even on an i7 rig). So, what is the issue again?
my mom posts on slashdot.
I've always found splash screens to be a sign of polish and workmanship on the part of the dev. Just sayin'.
"That's either incredibly asinine or the most brilliant troll I've ever read. Not sure which." -Anonymous Coward
and nobody will care about splash screens anymore
Long ago Adobe's applications went from having an actual "splash screen" to a "loading screen" that we have to sit and watch. To hear this guy talk about it, this sounds like more of Adobe wanting to lock users into their Adobe subscription model than actually worrying about start times. Anything that would connect to "instance in the cloud" would have even more ties into logging how the user access their programs and give Adobe even more control.
"It suggests that big programs should launch instantly (or appear to), perhaps by..."
Oh, I don't know... perhaps you could just splash something on the screen so the user would know that the program is starting and won't wonder WTF is happening after they tell the program to run.
I don't read your sig. Why are you reading mine?
^ this
2014: ...
Profit?
In order to avoid that splash screen while my game loads off the hard drive, I'm going to try to run it over the magical cloud instead! This is practical, right? Because once my local copy is loaded we can resync it with all that magical stuff the cloud version was doing, assuming I managed to connect to a cloud instance and actually do anything before the local version loaded?
And that's assuming I don't mind paying extra in order to fund this magical cloud version that I'll be using for all of ten seconds.
I'd also like to know what phone he's using where apps have no load time. Here in the real world, load times exist even on phones.
This article is pretty awful. "Show me a screenshot of the UI"? Please. Splash screens are telling me something helpful - the app is loading and isn't ready yet. Showing me something that pretends it is ready when it's really not is just bad UI and will only confuse people.
-- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
I think the boils down to "make computers and software run faster, plz."
It's certainly a good idea, but if you have some process in a program that takes a particular amount of time, and your choices are "pretend" or "show a status screen" -- why not show a status screen?
I think it's helpful to know what a program is up to (or thinks it is up to), especially if something bad happens.
Mr. Thomas seems to think the solution is to try and hide what's going on. Or, I guess, wait until that magical time, any day now, when every program opens instantly and is immediately ready for work, no matter what.
Some programs that are relatively simple and should load next to instantly, I can see this argument fitting. But when you get into larger, more bloated programs (E.g. Anything using Java) should have the splash screen just to keep me from double clicking on the damn launcher again and let me know it's thinking about loading.
The game.
I agree that putting up a full screen graphic that looks like your loaded app can just be a gimmick cell phone manufacturers prefer to give the *illusion* of performance. There is no harm in showing a splash screen rather than the fake user interface. The splash screen serves your interests, the fake user interface serves the cell phone manufacturer's interests. Serving your interests rather than the manufacturer's does not harm the user, **unless** you do something like introduce a delay to force the user to see your splash. And as you say apps should delay loading of resources to minimize their startup time.
In a calculator app (RPN scientific statistics business hex) that I've developed the screenshot that I use was converted to gray scale and dimmed to suggest the buttons are not enabled. My splash is just a product name and copyright notice and I put that in the standard numeric display. The user experience is an instant but disabled user interface with a copyright notice, the notice is replaced with numerics as soon as the interface is enabled. There is no artificial delay. Splashes can be done is a reasonable and honest (UI has a disabled visual appearance) manner.
I think they are also a kind of "this program presented to you by..." signboard. The sample picture in TFA even shows individual credits for the guys who made the software.
...first world "problems". No wonder we're despised.
AutoCAD R14 loads in about 250 milliseconds, in a freaking VM on a Mac.
Anything slower is bloatware.
-----------
#include <universe.h>
Most programs (I'd like to think) use a splash screen so that users know that when they started the program, something is actually loading since a lot of programs take some time to load (i.e. it's not "instantaneous"). Having something there to say "yeah, we're working on your request; give us a second or two.." helps pass the time. On the other hand, programs that have a splash screen just for the sake of a splash screen... then yes, that is additional bloat no matter how small.
There aren't many apps that instantly show up on your phone/tablet (unless they were already running in the background).
I even hate it when an application DOESN'T have a splashscreen (like firefox or IE), I have to wait and guess if something is happening before the actual application is shown.. A good application that has any loading needed should show a splash/loadingscreen, so a user knows something is happening, best is also to actually have a progressbar/object, or a line which flashes a lot of texts with what it's loading. It might slow the real loading for a bit maybe, but not the perception to the user, as he/she see's something is happening.. The lack of a loadingscreen (and therefore a long waiting time between the actual double click and seeing the first screen) is a big indication of lack of userinteraction knowledge.. ofcourse the best thing would be not having a loadingtime at all, but since you are targeting a large crowd, you have to keep in mind that there are people with slow devices/computer and people with superduperhyperfast devices/computers, you'll keep them both happy, as the slow one actually sees something happening, and the fast ones don't notice it, as it's gone before they blinked their eyes.. so the first line of code in an application that has something to load, is showing the splashscreen, and then go ahead with loading anything..
Hey Adobe! How about you stop forcing a new shortcut on your users Desktops every time you updated that POS; excuse me PDF; reader of yours.
Regards,
Angry Shortcut Guy
"If it ain't broke, it doesn't have enough features yet"
What I meant to type was "... I have several PDF's that utilize Adobe's PDF layers..." missed a rather crucial word there.
File under 'M' for 'Manic ranting'
very good and interesting topic
Users of cell phones and tablets are accustomed to apps being instantly available.
Which apps are instantly available? I have perhaps a dozen apps that do not appear instantly on my phone. Instead, there is a splash screen and maybe a progress bar. Three examples; Angry Birds, Live Hold'em Pro and Kindle. All very successful, btw.
I think the premise the man is working under is false.
"Worse then that, Adobe against splash screens. Welcome to Photoshop, please stare at this logo while we load plugins and filters you wont be using
Isn't it possible for the app to save it's state, instead of having to load the plugins and filters each time. Except loading plugins involves copying a DLL into memory, so we should be blaming the designer of the Operating System.
Adobe? Isn't this the company that loads reader_sl.exe to make reader load faster? Very funny.
Let me preface this by saying I'm not an expert. I'm at best a savvy novice as it regards these matters... but these are my thoughts.
All the cloud lets you do is offload processing and memory issues onto a server farm that constantly keeps the program in memory. That if anything will make bloat worse.
I know scripted languages are very popular with the open source community but they're always slower then old school compiled languages. I think java etc is fine for smaller programs but I've seen scripted languages applied to larger and larger programs with more demanding performance characteristics. That isn't going to work on anything but some cloud that has effectively unlimited processing power to WASTE. I recently saw it used on a fairly demanding stock trading platform. The memory issues alone are absurd. The C compiled version of the program eats up less then a tenth the memory and uses a tenth again of the CPU power. They do the exact same thing. Some of these machines have eight gigabytes of memory and they get low memory warnings all the time. Now maybe that program is made badly on top of everything else... always a danger when you make a specific example. But I've seen similar issues with a lot of large scripted programs.
I'm not saying we need to go back to assembly but most of these programs would be a lot faster and use a lot less memory if the programmers were a little more careful about how they put them together. For one thing, of course use a compiled language that doesn't have to be effectively compiled on the fly and then run. For another, find a way to condense these libraries into something more compact. Even much compiled code today calls remote code somewhere else or queries information that should be stored internally within the program itself. I'm not talking about variables or system settings but static functions of the program that not only do not change but cannot change or the program will error out.
If your program won't work until the user or system installs java or it won't work unless some library pack is installed... then you're not building a performance app. All that has to be recompiled and all information it needs has to be internal to the program. Worst case, if you absolutely need to have some library separate then at the very least make it a truncated library that only contains information that your program will call. Not any information that any program could possibly call from the generic version. The smaller and more specific it is the faster it will be queried. I know the file system experts have found amazing ways to make huge databases easily searchable with minimal processing power. That's great. But when you're talking about smartphones it really does pay dividends to keep it simple stupid.
This has nothing to do with splash screens. It has everything to do with how long we're left staring at them.
I have a bunch of old windows programs from 95 and earlier. They all have splash screens and many of them are far more sophisticated then anything you'll find on a smartphone today. They've always loaded very fast. Even on a slow computer of the day the loading screen for these programs was about five to ten seconds at most. Run them now on a modern computer and they load in about one second. The programs on these smartphones could be a lot faster if they were written more efficiently. Possibly less emphasis on graphics and more emphasis on the UI. Old school UI's were very simple but had a LOT of functionality. If you want to give people the full graphical experience then maybe load the interface in stages or load the program as needed rather then loading the whole thing into memory. I'm not an expert. I just think the cloud idea is horrible. Not only does it not fix the problem but it makes the phone less reliable since now it doesn't even have the program stored on it. Rather, the whole thing has to be streamed from a server farm somewhere.
I know many companies are happy with the cloud but many others will never trust it... ever.
I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
A program takes time to load. It may be a very short time or it may be a very long time, depending on how the program is designed and built. It is difficult to design a program that presents UI feedback instantaneously, especially if it is a big application. Instead, the OS (or the launcher shell) should give feedback that the application is loading. An hourglass mouse cursor is often not enough feedback. The OS can also provide APIs for the application to report detailed start-up progress.
My friend, you are mistaken. You will not find 1 Gbit much less 10 or 100Gbit unless the "right place" to live is a datacenter. Average internet speeds from July last year are still in the single-digit Megabit range. Local storage is several orders of magnitude faster than Internet for the foreseeable future.
And it's not just speed but latency as well.
Was this rant written in 1999? On my home PC (not SSD or anything), outlook 2010, which connects to the office's exchange server, start in 1 second. So does Word. Photodoshop does scan a few plug-ins before starting up.. it takes 3 seconds. The demagogy part? basing things on prejudice rather than facts and claiming programmers don't care about startup time, and the splash is the symbol of our carelessness for the user. btw, I don't know where the summary gets this web thing.. it's not really what the article says
Splash screens were originally designed to let you know the program was launching, so you weren't sitting there wondering "is it opening or not"..
So, what we'd really need is a Program Launch Request Received - Screen
This screen could then offer the options to (a) request program use at some point in the future, (b) hold program available for future use, or (c) request immediate program use.
Option (a) simply schedules a cron job three minutes before intended program use, (b) loads the program in the background like any quick load scheme from dos tsr to openoffice quick loader does. And (c) let's you acknowledge immediate program start on the Acknowledgment Screen Form 37v, while secretly loading the program in the background, so as to seem instant - or at least reduce the time you have to look at the splash screen.
(patent pending)
i've got all my apps installed on ssd raid, i don't think i've seen these fabled splash screens..
I hate Splash screens too, but they do have a purpose.
If you accept the reality that harddisks, memory and CPU don't run at infinite speed, you have to accept the reality that large programs take some time to start.
While it's loading, a splash screen provides visual feedback that the program IS actually loading. If you've ever accidentally opened a program a number of times because you thought it wasn't starting, you understand why this type of feedback is useful.
The real issue is whether a splash screen is the right way to do it. Modern OS'es have notification mechanisms which could be extended to show a minimal progress indicator, why not replace splash screens with such an OS-provided notification system?
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
So there I was, deciding to play Rocksmith on the XBox.
First there is a splash video that I have to click through...
To get to a screen that requires me to press the start button...
That then leads me to another screen I have to click through...
And 2 minutes after that game started I could finally interact with it.
Same goes for way too many apps on the desktop. And on my phone, there are apps like "Angry Birds" that throw up a splash screen and then a start screen and then a set of other screens to drill through to get to the actual game/app. It does get annoying.
Just the other day I was outside working on my car. Every time I reached for a tool, I had to sit through a brief advertisement and patent notice for the company that made it. This is getting ridiculous, I say.
Using my Sprint EVO often, I noted sometime back that a lot of the application are running in the background. I have a system resource monitoring app on it and I am basing this assumption on what I found with this app. This is probably why many of the apps load fast, because they are already running. I imagine that a lot of the smartphones employ this same method, to get the boost in speed.
The app I use is "Android System Info".
And there is also the use of threading. Put as much of your initialization as possible into a separate thread. Your user interface and the most basic functionality can be available from the main thread while secondary functionality and assets are being initialized/loaded in the separate thread. When that separate thread completes enable the UI components that offer the secondary functionality.
I'm guessing he loved Windows ME and wants everyone to switch back to it? Oh wait, that was a giant steaming pile. I'd rather wait an initial load time and then have a useable program than have it trick me into acting like its loaded then have to wait after I click a button. If I know an application will take a while to load I start it then do something else. When I come back, the application is fully ready to go. Splash screens that block your desktop are certainly annoying...making all programs partially load is not the answer. As for "programmer convenience" over the user, he is clearly an idiot. Ask the customer, would you like to pay twice as much and have development take twice as long? Oh you don't? I guess we'll have to cut something then. Well...we can cut some important feature or we can get rid of the splash screen for you, which would you prefer? This guy needs more naps and less coffee.
As far as I know, the current "cloud" talk mostly means "storage of your data on our servers"
True of Apple, and of Google.
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.
Now THAT is google. Remember that Apple is in business selling hardware, so why would they not push for a model that mostly has execution out on the edge?
Apple is more about distribution of data so that a variety of platforms can work up it; Google is more about keeping the data in the cloud and working on it through a server when possible.
I do agree that "Cloud" is really more of a marketing than a technical concept, since what you are doing in/with/on/upon the "Cloud" can vary wildly.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
...I remember Firefox used to take forever to launch, even on a pretty decent rig. I actually added a splash screen plug-in because I was sick of wondering if my double-click had registered. As for Outlook, I never noticed it had a splash, it only shows up for about half a second for me. But on a slower machine with a crappy connection, I might appreciate it.
I don't see the issue here. If a program launches quickly, you don't notice the splash. If it's slow to launch, you want a splash so users don't kill their mice wondering if anything is happening.. If the splash itself is measurably slowing down launch time, that's some epicly stupid programming.
Never let a lack of data get in the way of a good rant.
Users of cell phones and tablets are accustomed to apps being instantly available.
What?
Have you used one in the past two or three years? Yeah, the loading speeds are dramatically faster than on most desktop machines, but "instantly" is not the right word for complex and large apps, unless they are already loaded into memory because you used them before.
Assorted stuff I do sometimes: Lemuria.org
I've heard of a sad story where a software company actually added a timer delay on their loading screen just to make out that their application was more beefy and important than it really was (probably just a vb database frontend).
To a managers eye every second of loading justifies the extra $1000 spent on it.
Making a car that can accelerate faster, we're going to deploy a massive network of autonomous motorcycles. When you step on the accelerator, the closest motorcycle will be dispatched with mind bending speed, your seat will be flung aboard in a feat of mechanical engineering never seen before, the motorcycle will accelerate to full speed faster and when the car catches up you'll be flung back. ...and I gotta be honest, the only real reason why Adobe would be interested in moving towards some kind of SaaS model would be because they basically get unbreakable DRM for free.
I don't want my software to start instantly when I get in to work... I need time to pee and go get some coffee from the kitchen. If my software starts right away, I'll be expected to be productive right away!
Web hosting that doesn't suck!Dreamhost
This is an awesome and well thought out design! I look forwards to seeing the implementation, which should be pretty straight forward at this point, obviously!
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
1. How can anyone hate splash screens? Really, hate? You HATE them? They are like the Terrorists of software? I have honestly never thought, even for 1 second, "Why does Netbeans / Photoshop / Whatever have a splash screen, I hate it... I want to murder that splash screen, because I hate it so much". I think at most, any normal person could go so far as very mildly disliking splash screens.
2. Fine, take out splash screens. Shut your face and don't program it into the application. BUT, if you application takes more than 5 seconds to load and I have to sit there wondering if anything is happening, then I hate you program and I miss you splash screen.
3. Is it me, or is the new design hip to try to mess with everything that works? What if industrial designers decided they HATED how doors open or how faucets work? Should they just skirt around the standard design procedures and pretend like they know better than how history has organized itself? In fact, I'm sure they do this in industrial design, but just like software design, I don't care and it doesn't matter until these ideas actually carry weight.
This often seems to come up in video game development discussions.
ESRB and publishers (regardless of platform) require licensing logos, title screens, etc. all manner of prestitial things to lead into a game.
In a system with commonalities and expectations for the user-experience, title screens serve a purpose, loading screens serve a purpose, and immersion serves a purpose. For every Borderlands with it's "2K" assault on the senses, Rockstar and Bethesda games are known for autoloading right into the gameplay where we left off, and I somehow get that feeling when I boot up OSX Lion and it restores all my windows. Not that I always want those windows restored.
Yet now, with SSD drives, loading times have been brought down to nothing in some cases. Certain games put *useful* information on interstitial loading screens, and don't have a minimum time value set. We need the equivalent of a VARISLOW TSR to keep software usable as hardware speeds increase.
Starbreeze wanted The Darkness to start immediately with a story cutscene. Jonathan Blow wants to do whateverthefuck he wants the user to experience, whether the user understands it or not. I personally don't believe software should be treated like a movie, but I'm open to new mediums giving new experiences.
Because of Thomas Knoll, Seetharaman Narayanan, Andrew Coven, Russell Williams, Scott Byer, David Howe, Jackie Lincoln-Owyang, Maria Yap, Matthew Bice, Joe Ault, Barkin Aygun, Vinod Balakrishnan, Foster Brereton, Simon Chen, Jeff Chien, Jon Clauson, Jeffrey Cohen, Chris Cox, Alan Erickson, Pete Falco, Paul Ferguson, Todor Georgiev, John Hanson, Jerry Harris, Kevin Hopps, Bill Houston, Chintan Intwala, Sarah Kong, Xinju Li, Tai Luxon, Mark Maguire, Christoph Moskalonek, John Ojanen, David Parent, John Peterson, Dave Polaschek, Thomas Ruark, Yuyan Song, Nikolai Svakhin, John Worthington, Tim Wright, David Hackel, Mike Keogh, Wennie Leung, Peter Merrill, Yukie Takahashi, Barry Young, Ning Lu, Shailesh Misra, Kelly Davis, Steven Eric Snyder, Lisa Holleran, John Nack, Bryan O'Neil Hughes, Zorana Gee, Pam Clark, B. Winston Hendrickson, Kevin Connor, Ping Zheng, Yuko Kagita, Yoko Sekiguchi, Eric Floch, Steve Guilhamet, Brad Silen, Jiangui Liu, Kellisa Sandoval, Fei Wang and last but not least Chitra Mittha. There's a delay loop in the loader to make sure we can appreciate all their names.
I've skimmed through most of the comments and it seems people don't quite seem to get the purpose of splash screens. There are basically two other ways to do it
1. No splash screen, load main UI immediately. The main problem with this is that this gives an illusion that the program is fully loaded. Lets say the program takes 2 minutes to load completely(its VERY large). While the main UI would be loaded, many of the features wouldn't be loaded yet, the user would then try to interact with the program and it would be very slow and choppy. This could also lead to errors as what would probably happen is as the user attempts to use things, the program will load "stuff" in a different order, thus possibly leading to errors(programmers fault). This would ultimately lead to very poor experience for the first few minutes of the programs use, and it could possibly even lead to glitches if the programmer didn't set things up right!
2. Cloud. The cloud seems to be some general idea rather than something specific. Basically unloading HDD/SSD space into "the cloud" and/or unloading CPU time to "the cloud". The cloud is probably accessed through some internet connection. Some main problems with this has already been stated; relies on having an internet connection, very dependent on network latency.
So loading the UI immediately just gives a perception of the app loading quickly and "the cloud", with current networking technology, is unreliable. A splash screen will show up for like 5 seconds (SSD) to like 2 minutes (bloatware on HDD) however once the splash screen is done, the program is fully loaded on your computer and your good to go. Nothing else needs to be loaded. If you want to use some odd gradient tool or some anti-alias tool, you can it you wont have to wait. After the splash screen, you'll have a nice, enjoyable use of the app.
Just because you've got an SSD doesn't mean your apps load instantly. I've got one and I generally still've got a couple second wait for most apps (firefox) and sometimes still a minute or so for large apps (eclipse).
As others have said, splash screens let you know that the shortcut you clicked has launched the program. This, in and of itself, isn't a problem. The problem comes when the splash screens:
1) Don't provide useful information. Even if the user doesn't understand what messages are scrolling across the screen, they'll know that something is happening behind the scenes.
and/or
2) Block all other applications. Let me alt+tab to another window and do some work while your app loads. Don't make your splash screen always on top thus forcing me to stop all other computer activity to watch your logo for 3 minutes while your application loads.
My sci-fi novel, Ghost Thief, is now available from Amazon.com.
As has been mentioned before, splash screens do serve a useful purpose in letting users know the app is actually loading. As has been mentioned before, Photoshop does a lot of stuff, so it's more or less impossible to get the program down to a reasonable size in a single executable. As such, you're pretty much left with a single option. Go back to the philosophy of making each program doing one thing well; in this case, a separate program for each photo effect. Now your huge, monolithic program becomes not much more than a simple shell that calls a number of smaller programs only when their needed.
Imagine if, to boot Linux, everything in $PATH had to be loaded into memory. That's pretty much what Photoshop does; no wonder it takes forever.
I remember at school adding a splash screen and a progress bar b4 my program started so the teacher thought it was 'doing stuff'. Got me good marks...
Fucking modal windows don't have any place in an application.
Fucking having to cancel out of a modal display to copy-paste what you wanted into it because it didn't happen to be in your clipboard.
The modal option need to fucking die; if your shit required modal, you've fucking done it wrong.
Developers and marketoids have abused that option for too long and they need to have their toy completely taken away.
If someone is passing you on the right, you are an asshole for driving in the wrong lane.
Angry Birds takes too long to start up yeah. But still it is successful. Must be the price.
because the author has ADD? I don't think so. Man up dude.
Some applications take a long time to load. Its nice to have something to show you that the program will load eventually. Of course bloat is behind this, but we are stuck with the bloat unfortunately.
http://michaelsmith.id.au
I've lost count on the amount of times IE won't apprear for some unknown reason...I think the most windows I've opeend is about 8. Then they tend to ALL appear at the same time.
Browsers or programs should be smarter and cancel loading themselves twice (unless one is ALREADY loaded). Or at least ask if you really want to load the program again before carrying out the request.
As a lowly support officer I get people double clicking the quick launch icons all the time and wondering why it takes longer to launch.
when even a bloated program like Photoshop takes 6 seconds to load on my 4 year old laptop and 3 seconds on my newer desktop machine. Fortunately my computers are also "bloated" in that they have gigabytes of memory and gigahertz of CPU speed. There are plenty of iOS apps that take several seconds to launch and do practically nothing.
The "local instance" that loads fast is just a client app. The main application may need to load a database, that's why it atkes longer to start, and the splash screen is a convenience for the user.
I wonder when Dell will announce the first computer with a HEMI.
so a large program takes a long time to load and you'd rather look at nothing and wonder whether your program is opening at all? look at the morons responding on that blog ... "if microsoft can find a way to make windows 8 run faster then WTF!!! why did i have to wait so long all this time?" ... stfu you pathetic mouthbreathers. think for 2 seconds or gtfo.
insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
First, of all the bloated and useless code out there, splash screens are the most efficient, and they actually serve a purpose--letting the user know the machine isn't dead.
Since the beginnings of the microcomputer industry, it has both annoyed an amused me at the huge program sizes compared with mainframe implementations.
It has taken forever for the industry to understand and even begin to adopt (sorry, CP/M programs excepted,) loading programs as functional modules--a technique which dates back 50 years. Instead, most of the programs insist that the entire program needs to be loaded, even though only a tiny fraction is in use.
Given that code quality on average hasn't changed much, many of these programs are certain to contain large blocks of non-executable code, duplicate functionality, and just plain poor implementation in terms of resource use.
As processors & memory & storage drop in price, the efficiency of resource use drops too--because you can get away with minimal impact on the user.
This doesn't mean that code shouldn't be designed and written efficiently, merely that the difference in quality isn't immediately noticeable, and thus doesn't adversely affect sales--and in the US, the sale is everything, nothing else matters so long as you get the money and don't have to give it back. People routinely purchase items in stores, take them home, find that they don't work, and trash them rather than get their money back--this does nothing to help increase quality.
on linux, you'll get a bouncing icon next to the pointer indicating which applications are loading. and I think that I remembre that Mac OS X does the same, only on the dock.
Once loaded, most applications should display a progress bar for tasks that are taking more time. So you know that it's still loading the huge poly model and not stuck somehwere (GIMP for example has progress bar in the status bar of the image windows).
Alors once finished, an application should be able to communicate to the desktop that it is ready (on Linux, the window manager could make the taskbar button blink once an application is finished and needs user attention. I think I've seen on mac OS X the dock making small jumps to grab the attention).
---
So in your hyptothetical situation :
- you'll now that the image editor is still loading becuase it's icon will be still bouncing next to the pointer.
- you'll now that the poly model is loading because there's a progress bar on the window ("processing poly 645 out of 183763462")
- once this loading finishes, you'll now it because the button will flash on the task bar.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]