Hacker News new | comments | show | ask | jobs | submit login
Splash screens == sloth (asserttrue.blogspot.com)
258 points by kylehansen 1706 days ago | hide | past | web | 242 comments | favorite

I don't understand what he's angry about. Photoshop, Microsoft Office, OpenOffice, these are all enormously complicated programs that require resources to load. That doesn't make them bloatware and it doesn't make the programmers lazy.

His proposed solution sucks too. Show the UI while it's loading so the user can impotently click around waiting for the program to "turn on". Windows does this when it boots up and it drives me insane -- if the OS or program isn't in a usable state when you show it to me, don't show it to me

Loading speed is just one of a multitude of factors that come into play when making software. According to this Adobe employee it should be the chief most concern, even dominating other things like features, usability, UX, cost, technological debt, etc.

Sounds to me like he's either temporarily enraged, or is trying to get fired.

The spashscreen does 1 thing, it tells the user that the app is loading and you don't need to click the exe/icon again.

His solution to a 5-10 second load time is to provide a fake UI, record phantom mouse clicks, and also give the user a game to play, only makes everything worse.

Some apps have to initialize, and without that you are left with an empty shell of a UI that has no functionality. Or even worse, a slugish UI that initializes in-place or during work... Which then causes the typical user to go online and rant about how his app is broken or unresponsive.

Though I like what he has posted on the rest of his blog... http://asserttrue.blogspot.com/

> The spashscreen does 1 thing, it tells the user that the app is loading and you don't need to click the exe/icon again.

This is the wrong way to notify. Let its dock icon bounce on (or similar), instead of obscuring the center of the working area on the computer.

Excuse me but I don't see that being possible in Windows In kde it was mac I have no idea but your solution only works in some places.

Then that is a problem with the GUI, not a problem with the program. Don't settle for what's possible; change what's possible.

Adobe has been laying people off, he could be trying to draw attention to himself in order to find a new job.

Anyways he's solving the wrong problem. What he really wants is to have the OS log him in, lock the screen, and load his common apps before he gets to work.

Think of the 100s of millions or even billions of hours of unhappiness caused by whatever utter wanker designed the windows update system. All that misery waiting to go home to your actual life but you can't because your laptop's displaying 'Do not turn off or unplug your computer'. No, just sit here and watch me. Or those times you accidentally opened Word or Photoshop or MySql Workbench (god that's slow) or whatever. You made a mistake? Well fuck you. I'm not listening to you, says your computer, I'm just going to ignore you for a little bit.

That's why.

And they're not enormously complicated, paint opens instantly and has the same UI. Word is little more than a glorified textbox. Programmatically all the features make those programs enormously complex, but the actual common use of the programs are simplicity itself.

Have you used a recent copy of Word (eg. Word 2010) or any of the other Office software? It all opens basically instantaneously on my system, and my system is like 4 years old now. They still show the splash boxes this guy is complaining about but the splash boxes are blink-and-you-miss-it fast and then the real app is there. Less than a second from click to load of the real app.

The Adobe apps still do have more significant load times, more like 5-8ish seconds, but RAM is cheap, just load that app once and keep it open forever. Hibernate your system instead of shutting it down cold so that the apps don't have to reload from initial state when you next use them. This also makes Windows pop up very quickly (but even from cold boot modern Windows only takes like 15-ish seconds on my (again 4 year old) system), which isn't anything to complain about compared to any other desktop OS out there.

All in all, I'm in the group of people very confused about this post. I'm historically someone who absolutely hated long load times, but it isn't something I've worried about for any app or OS I use in years now.

You think they put that notification there to annoy you? No, it's because of possible data loss and/or system file corruption if you turn off the power while the system files are being patched. Splash screens exist because the program is loading. If you want the functionality of Paint, or Notepad, open those instead. If you want Photoshop, you open Photoshop, and it takes a while to load because it is gigantically complex. If you want it to load faster, buy a new computer.

Surely Windows updates are applied via some sort of transactional system that can be rolled back and re-attempted if the process fails for whatever reason?

Having a power cut during a Windows update shouldn't result in a completely trashed system.

Surprisingly, NTFS does allow for transactions [1] and this feature is implemented since Vista, while as far as I know, HFS+ on Macs has no comparable feature. Therefore what you say may in fact be true.

I'm curious if cutting the power on a Mac while it's moving files into place will break a software update, or if the whole package receipt mechanism prevents that from occurring.

[1] http://en.wikipedia.org/wiki/Transactional_NTFS

I'm not sure even transactional NTFS would protect you in this case. From the wiki link:

Transactional NTFS is implemented on top of the Kernel Transaction Manager (KTM), which is a Windows kernel component.

Because this is implemented on top of the kernel itself, if you have brought down the kernel in order to update files within said kernel, you likely are not going to be able to leverage the transactional rollback. You might able to do a system restore, if you boot from CD, but breaking your kernel is not an easily recoverable situation. I suspect there are actually safegaurds in the update procedure which protect against this situation, but things can go wrong and it is really not something you want to have to rely on.

I was thinking more of having a transactional system within the update software itself independent of anything on the filesystem.

Something like this:

1. Download all compressed archives that are required for the update from the update website and unzip somewhere.

2. Check the package manifest and figure out which files need to be changed/added/deleted.

3. Write a flag somewhere on the boot drive that says the update process has begun and which files will be altered.

4. Make copies of all the files which will be changed.

5. Work through the update process by modifying or overwriting the copied files with the contents of the update archives.

6. Temporarily suspend the scheduler so the update process is the only thing running and release locks on all of the files which will be changed.

7. Work through every file that needs to be changed and link the filesystem reference from the old version to the new version whilst keeping a copy of the old version.

8. At every stage in 7 mark in a log which references have been updated.

9. Mark a flag to indicate that the update process has been completed, either resume the scheduler and re-instate locks or force a restart of the OS if necessary.

When the system next starts up as part of the bootup process it can check if both the transaction start and finish flags are set. If the start flag is set but not the finish flag then it knows that an update failed so it can roll back by re-linking to the old versions of every file (reading the logs to know which files to re-link) and setting the start flag back to 0 so it can try again.

If the update was successful then it can delete the old files if the disk space is needed or keep them around in case there is an issue later which required a restore.

In regards the kernel example, my Linux install actually keeps old versions of the kernel on the system so that if a kernel update breaks something for whatever reason it is still possible to boot the system from the previous kernel. I imagine Windows and OSX do something like this , although possibly more transparently.

Note: This is what I could think of off the top of my head, I'm sure it's not a perfect way of doing it but it demonstrates the idea.

I don't know if it follows those exact steps, but in the last few months I had several times a machine crash (flaky power supply) in the middle of various Windows Updates and it always recovered pretty well. It looked to this outsider like there was some sort of journalling going on.

On HFS+ on OS X, most file writing is done atomically, by writing to a temp file and atomically switching the (conceptual) data pointer of the target file, aka FSExchangeObjects. It's common to end up with some of these temp files in ~/Library/Preferences, ending in .plist.asdfx, when the process was interrupted (so the original remains untouched).

This can be done for directories too - make a new one, write changed files and hard link unchanged ones, then FSExchangeObjects. Obviously this scales linearly with the number of files in the directory, so it's not perfect. I'm not sure if / how any of this is used for system updates, though.

> You made a mistake? Well fuck you. I'm not listening to you, says your computer, I'm just going to ignore you for a little bit.

The programs from Office 2010 have a _x on the splash screen which lets you easily minimize/kill the program in question. It's really snappy, works like a charm.

Don't like that feature of Windows Update? Turn off automatic updates and do it manually when you wish.

Although I agree with the annoyance of accidentally opening something like Photoshop and having to wait to close it. But a good number of resources that is loading is third-party stuff that demands to be present immediately on startup as opposed to being loaded on demand. But whatever.

Paint has the same UI as what? I hope you're not comparing it to Photoshop or any other professional level software. I believe the modern version of Word is a good bit more than a glorified textbox.

But then you point out exactly why these programs load slowly in your last sentence. Maybe just start using less complex software?

Their interface is the same. Are you utterly blind? Stop looking at the UX as a programmer and imagining the complexity of the features. The actual screen is displaying exactly the same stuff. There's a big white box to draw in and bunch of buttons to press.

You do not need to initalize all the 3rd party tools, you just have to find out which tiny little icon to add on a task bar or extra menu items to add, and why didn't you cache that when the extension was first detected?

And how silly of me, of course all the corporations these days let you turn off the updates on their computers don't they?

Stop telling your users that 'if they just..', do the opposite with UI than you do with your code, start programming for the best case scenario, not the worst case.

The interface may be the same but I'm willing to bet under the hood they are quite different on a large scale. You seem unwilling to admit that.

I don't understand what you are saying about third party tools. Could you clarify? Is that whole sentence talking about the same thing because I read it as having four different topics in there.

If a corporation won't allow you to adjust update settings then that's an issue to take up with IT since they are preventing you from doing what you need, not the software itself. What if the default settings were exactly what you wanted and your IT department prevented it, is that also the fault of the software? I think your complaint is misdirected in this case.

Ask ten different people to define best case scenario and I bet you'll get several different answers. Which one do you choose? You can't make everyone happy but I guess since you're not happy then your way is the best choice? What you complain about telling users "if they just..." is what I call choice. When I say an application won't do something I need then I WANT the answer to be "if you just do this..." so I can have that choice.

I once wrote a clone of Microsoft Word for a company looking to move away from Office dependency - I think you're really understating the complexity of something like Word when you call it a glorified textbox or say it should load as quickly as MSPaint because they both use the ribbon UI.

>I once wrote a clone of Microsoft Word for a company

Out of curiosity, when was it? Wasn't openoffice.org an option?

The chief complaint I have with HN's lack of reply notifications is that interesting questions like this one will go unanswered forever.

>Their interface is the same. Are you utterly blind? Stop looking at the UX as a programmer and imagining the complexity of the features. The actual screen is displaying exactly the same stuff.

Seriously? I mean, my Dodge Neon has the same gas, brake, clutch and steering wheel that a Ferrari 599 has, why doesn't it 0-60 as fast? Stop comparing engine size and complexity, it has all the superficial elements of a sports car! God, you're such a mechanic.

I think I understand what he's saying. Sure, your Dodge Neon may take longer to go 0-60 (i.e. it's okay if Photoshop is slower overall), but there would be something wrong with it if it takes significantly longer just to get in the car (i.e. Photoshop shouldn't take longer to boot up).

No, I think the engine metaphor is pretty apt. I completely understand what he's saying, but the alternative he seems to imply is no better. Why would I want the interface to load but not be able to use it for another 45 seconds? Okay, so I'm in my car (clicked on the shortcut) but I won't be able to go anywhere (use the application) for a few minutes because it's slow to accelerate (load). Who cares about the max speed of your car as long as it 0-60s in a reasonable amount time?

Either way it's going to take some time to load because it's a big application. One way lets you know it's working, the other makes you think it has frozen as you're fruitlessly clicking around. The interface is the least important thing in the application until it's fully loaded.

I think it makes sense. To extend your metaphor, you can do things such as turn on the radio without noticing a performance difference between the two cars.

The idea with Photoshop is, sure, loading the entire thing will take much longer, but users tend to use one tool at a time, and loading an individual tool shouldn't take anywhere near as long.

It also makes sense from the point of view of parallelization. One example of an extremely slow operation is waiting for the user to click on something. So instead of sequentially loading things, followed by the user deciding what to do, Photoshop should continue loading while the user decides e.g. what brush size and color he/she wants.

Like any other, this approach has advantages and disadvantages - it would indeed be frustrating if the brush tool hadn't loaded by the time you started using it, and it would probably require a lot of work for Photoshop to load so modularly and on-demand - but all I'm saying is, I understand the value in the alternative he suggests.

To go beyond cars and Photoshop, the RPG Guild Wars is a good example of only loading what you need. In fact, it doesn't even download the other game zones before you need them. If it sees you running towards the next zone, it begins a buffer in the background to pull in the data. So instead of making you wait while the game downloads and installs everything right up front, it downloads then loads up exactly what you need. This is much harder in an application, which is more non-linear.

When you run a program the OS will usually just map the code into address space, it won't necessarily actually load the code from the disk until it needs to.

It's possible that what the program is doing at initialization is not loading code from the disk but doing something else, like perhaps checking it has a nice big contiguous area of disk to use for temporary storage or for loading some type of cache into.

There are many times in programming where you make a choice between taking a one-off up front cost to optimise something for faster overall performance vs slower overall performance without the setup cost.

For example with a DBMS you can lose some write performance by having an index on a table and rebalancing when you are writing but the advantage is much faster read performance.

Also A Java program can take longer to run the first time by JIT compiling the program for the platform it is run on but this will mean faster performance of the program itself.

You are wrong.

Everytime I start Blender (3D content creation suite) I'm blown away by the time it takes to start. Less than 2 seconds! Ready to use!

Do I call Blender a complicates program? Yes I do. The feature list can compete with the one of 3ds Max.

I think it's unfair for you to call him wrong, what's wrong with what he said in the context of what he was saying?

I remember Blender loading fast as well. But are you sure every single feature of the program is available as soon as the GUI is displayed? Because I wouldn't be surprised if there's some lazy loading going on. Maybe some things finish loading in the background so they are not available right away or maybe some things are loaded on demand to spread out the loading time.

I remember one of the versions of PhotoShop (perhaps it was CS2) no longer loaded fonts at startup and the launch speed improved. But then the first time you select the font drop-down you had to wait around 5 seconds.

So I guess the launch was faster but waiting for the fonts to load was annoying when I was in the middle of working. During the app startup I'm probably spacing out for a few seconds while the app launches.

I see similar things in other apps. One that comes to mind at the moment is Eclipse where there are certain menu items when you drag over them the app freezes for a second. I always curse myself when I accidentally roll over one of those.

Particular parts of the app that require a lot of disk access may have a bit of a performance hit and so it makes sense to lazy load them, but it is a trade-off and sometimes I'd rather just wait a few moments at launch instead of getting killed by a thousand cuts while working.

That is exactly the debate between loading upfront and loading on demand. Either way, you'll have to load resources. But it seems sometimes people like to ignore that fact. The key is finding what works best for the particular application at hand. Personally, for something like Photoshop I'd rather have the long upfront load as opposed to hitches when loading a feature on demand.

Which, out of curiosity I timed it, the "long" loading time for Photoshop CS5 on my machine is less than six seconds. It think I can wait that long.

> That is exactly the debate between loading upfront and loading on demand. Either way, you'll have to load resources.

Everybody seems to be missing the third way: load in the background as the user can already work.

Take those fonts, you could spend 5s loading them during the splashscreen making the user wait, you could spend 5s loading them when first requested making the user wait again. Or you could load them after the program has started, in the background.

Will the user go from "empty document" to opening the fonts dropdown in under 5s? Pretty damn unlikely, and if he does he'll wait for the remainder of the load. In either case, he just "won" 5s.

Problem then is that as soon as I start using the program I might say want to load some data into it which is on the same drive as the program itself.

If I don't have an SSD my drive head is going to be spinning around like crazy trying to load resources from different parts of the disk at once which is going to give me slower overall performance. If you do have an SSD then it's likely fast enough either way.

Eclipse really should be loading those in the background while you are working.

Of course Blender is lazy loading as you like to call it. Why load features the user is not using atm? The base of the program is just way better than lets say Photoshop.

Ever checked an online Photo editor? (http://pixlr.com/editor/ for example after a quick Google). Open the page and there it is: your interface ready to use.

To clarify, "lazy" isn't a pejorative in this case. It's just the technical term for deferring work until it needs to be done. "Eager" would be the term for doing everything right away.

Loading on demand is a vast improvement over loading everything up front, though. Loading on demand means you never pay the price for functionality that isn't used, and if your load time is divided into little pieces, it's far more likely to slip into spaces where the user is otherwise preoccupied, thus becoming essentially free. Lazy loading is a way to truly reduce loading time, not just a way to hide it as you seem to imply.

Well, lazy loading is a way to hide loading time. But I didn't mean that lazy loading is bad since I think it is rather underutilized in desktop applications. Taking Photoshop as an example, I would explore the means to get the basic app up and running providing basic tools then load the rest in the background not waiting for demand. Loading on demand is nice as long as it can be done quickly. There's nothing worse than having the app loaded, click on a menu item, and then have to wait for that feature to load.

I think loading on demand is a vast improvement in some instances. For something like Photoshop, I'd gladly pay the initial 10 seconds for a more responsive interface. Photoshop is already slow, imagine dynamically loading resources on top of its usual sluggishness.

> I remember Blender loading fast as well. But are you sure every single feature of the program is available as soon as the GUI is displayed?

This is exactly the point made in the article...

But are you sure every single feature of the program is available as soon as the GUI is displayed?

I hope not.

Blender's startup speed astounds me when compared to just about everything else I use. It starts faster than Vim half the time!

Personally I don't care how long it takes an app to start provided it stays running once it does start. If I'm doing non-trivial work in an app the boot time is negligible compared to the time I spend working in that app.

Given the tremendous engineering challenges apps of these size pose the last place I'd like to see developers spend their precious time is on this.

Agree.I wouldn't care if MS Office,Photoshop takes some extra time to start.The wait would be worth it.For all the bashing Microsoft gets,MS Office and Active Directory are products which really,really way better when compared to their open source counterparts.So,let the engineers have their 30 seconds of glory! :-)

AD has pretty much no serious replacement, but MSO is for me as bad as everything else out there. Office in general constantly crashes and the only thing that is reasonable in Outlook is the calendar integration. It's so bad, that in 2007 it still didn't have a good threading view of messages. Communicator is a joke where you can't even do local list search - you either have to query global company address list, or manually scroll through your contacts...

In general no - I can't agree they're "really, really way better" than OS replacements. They're better for some people, worse for others.

Loading times like that ARE UX. Wow. What do you think he's writing about? His Experience as a User.

You don't write "enormously complicated programs" in the first place, you split big app into small pieces with as little coupling as possible to keep things simple.

Personally I agree and usually prefer more "unix like" applications like this. However from a support point of view there is value in everyone running the same consistent program rather than several hundred mini programs piped together in some way.

It also makes purchasing easier, for example you can just buy photoshop/illustrator/whatever and have all the features you need straight up rather than having to choose between programs for different actions (say one program for drawing vectors , another for applying filter effects, another for format conversion etc etc).

What's wrong with letting the user browse for a file to open?

you'll have to search the filesystem which means hitting the disk , moving the disk head away from where it was when it was loading the program.

It's the same for any complex program, smartphone or desktop. I have Picsel Smart Office on my phone and it has a boot time, because it's an office app and has to load resources to use the app.

And on his proposed solution, he asks developers to empower users, to not make users feel belittled, and at the same time he asks developers to trick users into thinking the full app has loaded. How can you avoid belittling someone and trick them at the same time?

This weekend the 3G mysteriously stopped working on my iPhone, so after months of use, I rebooted it. Rebooting the iPhone takes 1+ minute, and there _is_ a kind of splash screen shown during that time. The reason it appears instantenous during normal use is that it doesn't actually boot or load, it just turns the display back on. Also, many iOS apps actually have splash screens, you just don't see them very often as they're usually already running in the background (big apps like Facebook, and even small ones like PCalc Lite or Quotes).

You can kind of achieve this with Windows + Adobe stuff too. Just don't quit Photoshop when you're done using it, and don't turn the computer off, put it to sleep. If you have an SSD (like your iPhone), then swapping Photoshop back into main memory will also be much faster.

Of course the OP is right, Adobe stuff is bloatware and sucks. Fortunately for non-pro designers, there are alternatives like Pixelmator and Paint.NET.

I guess this is sort-of the idea behind OSX behavior where an App is running with no open windows. They WANT you to leave everything running in the background. As a longtime Windows user, I still find this confusing, but I think they're trying to make everything appear to "load" instantly because it's just always running... sort of like on a phone.

At first I didn't like it, but I've eventually started to really like this in OSX. Having a ridiculous amount of RAM to "waste" may have helped change my mind. My only gripe is that I wish it were a per application setting.

Some apps, like my browser, mail program, the terminal, Emacs, ... I love having start quickly, even if it's because they were just in the background before.

Other stuff, like Preview, I don't use often enough to care about the load time, and I would probably configure it to exit when the last window closed.

>> Other stuff, like Preview, I don't use often enough to care about the load time, and I would probably configure it to exit when the last window closed.

Under Lion, that is (sort of) what Preview and TextExit do. When you close all open documents in Preview and then switch away from the app, the app will terminate.

For Emacs, you should consider using Emacsclient and server. That way it's always on in the background, takes a fraction of a second to open a new window and shares state between all the different windows. Additionally, it lets you configure programs that use an external editor, like Git, to just open a new buffer in your current Emacs session, which is very convenient.

+1. I find that extremely annoying. Some times I reopen a window of preview let's say just to close the whole program.

Why not just switch to it and quit it without opening a new Window?

That's the whole paradigm. Windows belong to applications, but applications aren't windows. That's one reason the menu bar is divorced from any window (along with Fitt's law): so that you can interact with an app even when it currently has no windows open.

You know you could just close it from the Dock or application switcher, right?

Yes but that requires a click-and-hold, causing the whole dock to resize for the pop-up menu, which is quite slow on my 32-bit MBP maxed out at 2GB RAM. I find it quicker to just click the Preview icon (causing a new window to open as the focus switches), and command+q.

You might want to try command-tabbing and quitting.

Basically with command held down the entire time, hit tab until Preview is framed, and instead of releasing command (which would pull Preview to the foreground), hit Q, which will send Preview the command-q event and cause it to quit.

> Some times I reopen a window of preview let's say just to close the whole program.

I do not understand what you are saying. Can you elaborate?

Here is a scenario, and my mac is a month old, so maybe I am borrowing heavily from Ubuntu and MS experiences. When I am reading two pdfs, and then close one, it makes sense for the preview menu to stay on because I am reading the second pdf, but when I close the second, what reason is there for preview menu to stay up?

Edit: As to my original comment, when I switch to another app, preview stays open, but up to now I don't know how to close it because I can't get the menu to appear without a pdf or something using it, that's why I reopen a document, forcing the menu to show up, then close the app.

There's lots of reasons for the menu to stay open; the simplest example is clicking File, then Open, to open a new file.

As far as the menu disappearing when you close both documents, that's confusing and directly contradicts what you typed earlier. I can open Preview.app, and it'll just show me the menu. I can close it by alt-tabbing to it and hitting Cmd-Q - no windows required.

> Some times I reopen a window of preview let's say just to close the whole program.

You could just close it from the dock you know. Or switch to it and command-Q immediately.

In fact, I don't even understand how you'd go around to "reopening a window" of preview, preview will not open any window without a document in it, do you open a document just to close preview or something?

If you don't have any windows open in the app, doesn't Lion quit it for you?

Only apps that are written that way.

> If you have an SSD (like your iPhone), then swapping Photoshop back into main memory will also be much faster.

I think the point the author is trying to make is that it shouldn't be up to the consumer to spend more money to make their programs run faster. Software reform is what's needed and "just buy an ssd" is a very strong argument.

Whenever you can run the same software on a variety of hardware with different specs and capabilities, it's always up to the consumer to spend more money to make that software run faster.

Having said that, I agree with the idea of making software less monolithic and making it start up as fast as possible, as long as it is possible. However, when I say that I want a program to start up fast, I mean that I want it to start being useful fast. Quite a few of author's ideas are not about bootstrapping gradually, they're about faking it. It's like going to a place that used to have a "closed for lunch" sign and discovering that it's now open, but populated by robots whose personality is an Eliza-like AI.

I might have misstated. I mean that consumers shouldn't have to compensate for poorly written (in terms of efficiency and speed) software. Sure buying an SSD would increase the write speed, which is usually the bottleneck for a system, but the consumer can save a couple hundred bucks if the developing company focused on speed instead of bloat.

And I agreed about the "faking" issue. Just like how Windows will silently keep loading tons of services in the background after a reboot, but shows you a desktop and makes you think you are free to click and launch stuff.

It's probably the random read speed that matters for starting apps.

> However, when I say that I want a program to start up fast, I mean that I want it to start being useful fast. Quite a few of author's ideas are not about bootstrapping gradually, they're about faking it.

But quite a few of those ideas are useful.

The only ones I thought were a bit out-there were the ones about "just processing it in the cloud" while the local copy is still loading. But other HNers are probably more qualified to judge how realistic this is.

What is a possibility, however, during loading a lot of time is spent on loading all sorts of modules, ones that might not even be used that session, and most definitely not in the first few minutes. Because what is the user going to do first? Most likely it'll be `File > Open ...` and browsing through the filesystem looking for whatever project they intend to open.

You don't need any plugins for that. And it's exactly the type of task that spends relatively a lot of time waiting for user input and not so much time computing or loading things. During this task the app can continue loading modules and plugins and the user doesn't have to wait because they're selecting a file.

You probably need to disable (most of) the instant preview in the file open dialog until it's done loading, but that's a minor trade-off.

Of course you're loading the modules necessary for opening files first (most recently used filetypes first). When that's done the dialog can start showing previews. If the user happens to have found and selected their file before it's done, then, only then they'll have to wait.

Now you're loading the file and it's showing on the screen, the user can browse the layers a bit and ponder where exactly they left off last time. A wonderful time to load the rest of the modules! Of course the features used in this project will be loaded first. If there's no text layers, we can put off loading font-rendering support in favour of other modules.

It's not all load-on-demand, but a lot of user tasks are not as processor- or data-intensive as you'd think, because the user is busy thinking and as long as the UI is responsive enough they're happy.

He's talking about smartphone app behavior, not the OS. A lot of good apps (with notable exceptions like Facebook and Kindle) work to minimize the "splash" by throwing up a graphic that looks like the UI, even while the app is loading and the UI (briefly) isn't even responsive to user input. I like it - it definitely smooths the transition into using that app.

iOS apps that I have that use splash screens:

Facebook, Linkedin, Flickr, IMDB, Dropbox, Angry Birds, Skype, iGo, Quotes, PCalc Lite...

This practice actually goes against the recommendation of iOS Human Interface Guidelines, although it doesn't seem like Apple actually enforces it:

  Display a launch image that closely resembles the first screen
  of the application. This practice decreases the
  perceived launch time of your application.

  Avoid displaying an About window or a splash screen.
  In general, try to avoid providing any type of
  startup experience that prevents people from using
  your application immediately.

That's a bit surprising to me. I haven't noticed this (not much of an app person), do many apps use the recommended technique? Personally I would find a splash screen that looks like the first screen to be confusing.

Plenty do. The idea with that guideline is that it resembles the first screen the user sees, but in a "vague" manner - that is, maybe it just has the title bar and empty table view with no data filled in.

The idea is to give the user the impression the app has already started instantaneously, and you're just waiting for data to roll in to populate the UI.

Yeah, I'm using it in the project I've got in development right now -- actually sort of a hybrid approach. It's a grayed-out version of the main UI, with a "Loading..." message overlaid. I think that's a pretty common approach (graying it out, with or without an explicit message).

The app needs to load something close to 200 fonts (it's a design-oriented app). If they're not all present, the font choice list won't render properly. Lazy-loading isn't really an option -- otherwise the user will be sitting there watching the UI slooowwwlly render each font choice, one by one, while he waits to do something with them. Better to take the hit at startup, IMO, rather than making the user pause while he's in the middle of creating something.

All Apple apps (inbuilt or downloadable) follow this guideline. Amongst the non-Apple apps that follow it are Reeder, WhatsApp, Twitter, Sykpe (sort of), AIM, Shazaam, Instapaper and so on.

You can probably do that with a simple smartphone app where the first screen is basically just a static menu.

However with (let's say) eclipse or photoshop , when the program loads the first thing it displays is either my code or a graphic I am working on.

How would it allow me to interact with that in any kind of useful way without actually loading the program?

Good question - I understand that this is a lot harder for heavy professional apps, but I'm with the author in that I'd prefer a subtler transition. Maybe show me the rudiments of the interface (toolbars, menus, etc.) and a subtle progress bar for loading/opening the app and your last file.

I'm not sure how that's any better than a splash screen in fact I think it could cause much confusion.

I created a web app recently that had to make an Ajax call but could not allow any user input until this action had completed as various parts of the UI would have to be refreshed with new information.

I had reports from users that they thought the app had crashed since it wasn't responding to their inputs for a few seconds. It turned out the best solution was to simply whiteout the entire page and show an animated egg timer until the action had completed.

It's only really heavy professional apps that take much time to start anyway.

Adobe stuff is bloatware and sucks.

No, it's just vastly more complicated than most of the cut-down alternatives because it has to meet the needs of pro designers. Maybe there's some accumulated cruft there but I can guarantee you that Pixelmator, for example, would be similarly large if it had to support all the same use cases.

Yes though I suspect Photoshop's load time could be significantly reduced by limiting the features available at load time. If the method code for the 223rd most popular effect is loaded into memory prior to the user being able to do anything, Adobe is doing it wrong.

Maybe so, but that kind of dependent loading might also significantly complicate the code. I have no idea how Photoshop actually handles this but it's about as close as software gets to magic already so I'm disinclined to accuse the developers of incompetence or sloth.

Yes, part of the problem that Photoshop has is that it is seen as the "go-to" tool for doing any kind of graphics work at all.

Many people install pirate Photoshop to resize and put a few filters on their photos and complain that is it too slow and complicated when really they could have achieved the same result from either a freeware program or a significantly cheaper commercial one.

Boo and/or hiss. If you hate splash screens, use simpler tools or get more RAM. When Photoshop finishes loading, it's ready to kick ass. The Finder, on the other hand, taunts with its almost-readiness. Faking readiness is far worse than setting and honoring expectations.

My old SonyEricsson phone behaves like this. After booting it looks like it's ready but as soon as you try to open _any_ menu you get a "loading"-screen which is even more annoying. Booting a bloated windows xp installation is almost the same experience, from desktop first showing to actually usable is twice the time.

I'd rather have a reliable progress bar that says "go make coffee and come back in 5 minutes" instead of being misled to thinking i can use the program in 30 seconds.

But lazy loading for rarely used functions is of course a good solution, as long as you don't use it for everything.

I agree, faking readiness is far worse to me than actually being ready.

That isn't the choice here, though. The choice is between throwing up a big nonfunctional promotional screen or a nonfunctional version of the actual app.

A splash screen tells me "you can do something else, the window will show up when it's ready". A nonfunctional version forces me to poke it periodically until it works.

If the author has the splash screen burned into his retina, (s)he's doing it wrong.

I would say that showing a nonfunctional version of the app is "faking" readiness.

Agreed. Though it would be really cool is Photoshop could somehow do progressive loading, so you can get the main UI + core functions up and running, and then bring all the plugins on in the background. Let the user choose their load order (I don't think this is too much to ask for a serious piece of software), and voila. For example, the 3D engine in the newer Photoshops. I never use it (it just doesn't overlap with my work). Would be nice if I could mitigate its effect on load time.

I wish I could just get more RAM, but some of us are still somewhat budget limited. Photoshop took enough of my money the first time around.

Agreed. Though it would be really cool is Photoshop could somehow do progressive loading, so you can get the main UI + core functions up and running, and then bring all the plugins on in the background.

That's what it ALREADY does, actually.

It takes that much time for just the basic UI code (plus plugin registration etc). It doesn't load the plugins or filters in memory before they are first use.

Agreed. If you're seeing that Photoshop splash screen regularly you simply don't have enough RAM. I keep my PC running for weeks on end and seldom close anything. With 12GB of RAM (which costs nothing) I almost never run out of RAM and every application is cached in RAM, so if I DO happen to close an application then reopening it is extremely fast. I shutdown my PC for the first time in weeks last night, and that was only because I was wary of the massive thunderstorm getting through my lightning protector. I don't actually understand why people shut their PCs down at all to be honest.

Saves on electricity, and noise. Though suspend to RAM does that, too.

Assuming this hardware monitor is reasonably accurate, my hyperthreaded quad core i7 chows 145W when I'm really busy, which with my 80+ Corsair HX750W means I'm not eating more than 2 100W lightbulbs. I seldom play games any more so rarely use more than that. And that's when I'm doing serious number crunching. Since I'm only working at home about 4-5 hours/day during the week and maybe 2-3 that on weekend days, I really don't see electricity as much of an expense compared to time wasted rebooting and reopening all my work to where I last left it.

Yes. I don't want to claim that rebooting still makes sense. But old habits die hard.

>(which costs nothing)

When I saw this, I was sure you were wrong. However, looking on Newegg[0], 12GB RAM is about $60. That's just crazy to me.

[0]: http://www.newegg.com/Store/SubCategory.aspx?SubCategory=381...

Tell me about it. I bought these guys and they're now 1/4 what I paid less than 1.5 years ago: http://www.newegg.com/Product/Product.aspx?Item=N82E16820231...

I hate Adobe software with passion.

I used to love Macromedia Fireworks, so that I bought a copy of Fireworks after Adobe acquired Macromedia. I had to jump through some crazy hoops to prove that I did not steal the product, and that was nothing compared to what I had to do after buying a new computer – it turns out that I was supposed to unactivate the product on the old one and then activate on the new one. This is not what you do to your customers. I don’t even want to start on the issue of software quality or customer service (I once did the mistake of trying to report an i13n issue with my copy of Fireworks).

I swore there’s not going to be any software by Adobe on my computer anymore, and I even disabled Flash in my primary browser. I am lucky that I can do with the new wave of Mac graphics editors like Pixelmator. I was so happy paying for that product on the Mac App Store, getting a copy and doing nothing else that would require it to work. I was so happy that it starts immediately, that is has a decent UI. It’s not feature complete, it’s got its own bugs, but it’s a software and experience I am willing to pay for. Unlike Adobe. (Which is a company I once liked, being a typography geek and typesetting our school magazine in an old copy of PageMaker.)

Of course, PageMaker wasn't created by Adobe — you're thinking of Aldus, who also published the excellent FreeHand.

Note the ongoing efforts to get Adobe to free FreeHand, including the recent antitrust lawsuit: http://freefreehand.wordpress.com/

Adobe is just another company where good software goes to die.

Do you think Pixelmator is a good replacement for Fireworks? Fireworks has been really great at allowing me to quickly mock-up different web layout concepts without having to write any HTML code. I know some are in the "concept with HTML camp", but I've found Fireworks to be so much faster. I've never bothered too much with Photoshop since Fireworks did 90% of what I wanted.

I'm like many, however, in grumbling about how crappy Fireworks has gotten (at least on OSX, not sure about Windows) and am to the point that I'm ready to move on.

Pixelmator is a almost perfect clone of Photoshop 5. Not CS5, version 5 from 1998 or so. Even the shortcut keys are identical. I happen to like it a lot.

If your primary use of FW is to mock something up and export it as HTML and image slices, Pixelmator is not for you. You can get a free trial, IIRC, and see for yourself.

I have moved from webdesign so that I no longer need the design features I admired on Fireworks. What I liked most about Fireworks was the blend between the vector and bitmap graphics, and I don’t think that Pixelmator is getting anywhere close to that. But it’s worth to take a look. Also try out Acorn (http://flyingmeat.com/acorn/). I think both have a free evaluation.

Seconded for Acorn. A really solid program.

I'm a huge fan of Pixelmator. Read Fabio Sasso's tutorials if you're having doubts, might not necessarily be much on web mockups, inspiring nonetheless. http://abduzeedo.com/tags/pixelmator?page=1

And now that Fireworks has been mothballed its flaws with OSX Lion are so bad that it's barely useable... :(

Ironically the experience of pirating an adobe product seems much simpler than the anti-piracy measures you've described.

A splash screen basically tells me, in very clear-cut terms, that my time is worth nothing whatsoever. It's a fresh reminder that users' needs don't count as much as programmer convenience does.

So... how much IS your time worth? How much extra would you be willing to pay for instantly-responsive applications? Programmer time isn't free, either.

One other thing to keep in mind: if you dislike splash screens but don't have an SSD, then you have already placed a maximum dollar value on how much you care about your applications' loading time.

Exactly right. The splash screen is there only to show what it's doing while loading all the libraries and parsing setting files. If this guy/girl really hated the photoshop startup screen, he should do two things:

1. Get a better harddrive setup for his business.

2. Have photoshop start automatically after boot.

A quick timed test on two striped SSD's: Photoshop starts up in 4 seconds from click to ready. Blender takes about 1.5 second.

Nope, programmer time is indeed not free. But so many of the people reading HN are trying to "go wide" and appeal to very large audiences. Quite often they are services offered in some sort of freemium model where you hope that the user comes to love and depend on your service. That depends on a positive experience.

You're thinking like your existing users will have to "pay more" to get a faster experience, when in reality you are losing money because of the would-be users who give up and go away. A few days spent reducing load times and ironing out delays can make an application feel fast and increase conversion rates. Plus it makes everyone feel good about using the product. Delay==Frustration.

Now if you're lucky, perhaps your startup is in a situation like Adobe where they pretty much have a lock on high-end graphics editing and can say, "You will wait for our splash screen because you have no other choice and we're kinda busy making money here so just wait." That kind of thinking will get your users mad, but since you were lucky. But they'll remember, and have no qualms about bailing out the first chance they get.

Why should users have to pay extra??

The new version of Basecamp (by the guys who invented Rails) focused on speed, because speed = $$$.

The question is, why would you throw away your userbase because your app is so slow to load, it's cutting into their productivity?

There is a very large gap between 'instantly responsive applications' and Photoshop.

If you're on Windows and you want an editor that loads fast, you can just type mspaint.exe. Oh, it doesn't do everything you need? Yeah, guess what, those extra features take time to load.

Right, because all software is equal in complexity therefore they should all share the same requirement in resource loading and time?

Someone has to pay. Whether it's a higher price for users, less time spent on other features, or lower profits for the company, the effort has to come from somewhere.

I don't disagree that responsiveness and user experience are important, but Basecamp is a webapp. Responsiveness for the most common tasks is a higher priority than the one-time cost at start-up.

I'm not sure anyone is "throwing away their userbase"... How many people stop using Photoshop because it takes too long to start? Now, Acrobat Reader on the other hand...

I don't understand why everyone thinks the fact Basecamp is a webapp is important.

As you say, responsiveness and user experience are important, and 37 Signals decided it was worth investing a significant amount in. Adobe have decided, over the years, that it is not.

Because comparing app loading time to website page load times is meaningless.

A better comparison are common tasks in Photoshop, like selection, fill, layer operations, filters, etc. - things that are done constantly while using the application. I don't have any point of reference, but they feel pretty responsive to me. If the article was making a case that Adobe has been neglecting optimization for common operations, then bringing up Basecamp or other webapps would be relevant.

I'm not sure how to explain it more clearly than that.

Every Photoshop equivalent program I've ever used (with the same level of functionality) takes at least the same amount of time to load. I'm pretty sure GIMP actually takes longer.

Basecamp is a bit different, since the application itself is running mostly server-side so it is essentially already loaded. It's possible that the startup/init time of the actual RoR application on a server may take considerably longer.

With web applications the key to speed is more about writing efficient JS, having a good caching strategy and ensuring your server can handle many concurrent requests. A lot of these can be solved by the developers simply throwing more money at their server tech, when it comes to client-only applications you can't realistically buy all of your users new computers.

Is waiting 5-10 seconds honestly "cutting into their productivity"? Even so, there's nothing else that could be done with their time while they wait beyond impotently staring and swearing at their computer?

If that's how they operate then quite frankly they deserve to have "lost" that time.

The program that I use which takes the longest to load is eclipse , that takes around 10 seconds to load.

All I do when I switch my computer on in the morning is load up my mail client which opens pretty much instantly and then click the eclipse icon. By the time I've glanced at my mail to see if there's anything urgent that needs my immediate attention eclipse has already loaded.

I would say I lose exponentially more time to interruptions and distractions than I do waiting for my computer to load anything.

The only time my computer takes a really long time to do anything is when I have to copy down a large dataset from production to my workstation to debug some weird issue. This is going to take 10 minutes anyway so I just use the time to make coffee or something.

I ranted about this a few days ago. My favorite idiocy on Windows is their background "optimization" of .Net binaries.


This service appears to perform a large number of I/O requests (probably reading/writing a large number of small files). It will totally consume the disk seek capacity, massively slowing down every other program that is also doing disk I/O (e.g., freezing Firefox awesomebar searches).

The programmers at the linked blog congratulate themselves on how this mayhem lasts only 10 minutes on a typical computer.

Note: I do not have an SSD. :( This and other idiocies will force me to get one next time.

But the situation you describe should only happen once for each time you install or update what is a relatively major component of the OS.

Fair enough. This occurs roughly once in two months when I least expect it.

But the point is that with just a bit more attention to detail, they could have made this process utterly unobtrusive: don't process more than once file per second, if you want want to build in heuristics to infer the disk seek bandwidth.

Btw, Microsoft Security Essentials may be doing things like this. For me, it is totally not noticeable.

I don't think it will be too long before every PC or laptop ships with an SSD as standard and mechanical disks will be relegated primarily to archiving duties.

I for one prefer seeing splash screen for couple of seconds[1] rather than having laggy/half-functional UI appear instantly. Actually I'm more annoyed by Windows login, which shows desktop early while it's still starting up background apps, and thus being unusably slow.

And the comparisons to mobile devices are just ridiculous. At least in my use, I'd estimate that on average apps on my desktop launch much more quickly than on my Android phone. And I challenge anyone to find a smartphone that boots up faster than a fresh Windows 7 install on a SSD (or even on a regular HDD).

[1] I just timed: Photoshop 5 seconds, Word 2 seconds, both from warm caches. And that's with a 4 year old budget laptop.

Whether or not the programmers of Photoshop can make their app run faster, I have to say it's pretty sad that waiting 10 seconds is worth whining about. I understand this is unacceptable for a web app's page load time, but for a desktop app that loads an enormous amount of resources once before letting you use it seems acceptable to me.

I think the real problem is that we are all so incredibly spoiled that waiting 10s is a huge inconvenience. I'm not saying it's not annoying. I don't like it either... that squirming feeling you get when you expect something to be fast and it isn't. But, like, get over it.

On a scale of 1 to 10, 10 being the most important issue in the cosmos, waiting 10 seconds for an app to load would be about 0.0000000000000000000000000000000001 (if that). Perhaps there are more important things to write about.

This is just an extreme example of so called 'first world problems'.

>When I turn my computer on, it should just be on. Ready to go. Kind of like—well, like my phone, for example. Which is, after all, my real computer.

what phone does he use? every phone that I know of takes at least two minutes to come up from a cold start, and has for the last ten years...

Yeah, he's comparing two entirely different things. The phone is instant when turning the display on. My laptop is near-instant when resuming from sleep. Neither are instant at actually booting up.

And the phone is working off a fast flash drive while the PC is using a slow mechanical drive.

And there are a variety of programs on my phone that take a few seconds to start. Angry Birds has a splash screen, for instance.

Agree, the only programs that start instantly on my android phone are the browser, phone and email apps and that's because they are probably always in memory. Everything else has a splash screen time that would put Eclipse to shame.

Not to mention that HTC has now seen fit in the latest version of Sense to add a mandatory spinning animation that plays for ~2 seconds every time I unlock the phone before I am allowed to use it.

What's the big deal? Showing a splash screen for less than 5 seconds (oh yeah, get an SSD) until everything initializes is better than opening a non-functioning UI ("the cloud" is not a solution - what are you going to do when your connection goes bad?). It would be nice to not have it, but for such a bloated program as Photoshop or After Effects, it's pretty much expected...

r: "get an SSD" - I recently upgraded my computer at work, and Photoshop CS3 (which does more than enough for my purposes) opens up in under 1 second. After a day of using this computer with an SSD as the primary hard drive, I finally pulled the trigger and ordered one for my desktop at home. Easily added years of usable life to the computer I bought new in 2008.

"Just don't quit Photoshop when you're done using it, and don't turn the computer off, put it to sleep. If you have an SSD (like your iPhone), then swapping Photoshop back into main memory will also be much faster."

My experience in OS X is that Photoshop has to be restarted very frequently or it just eats up more and more memory until it uses it all. Seems like bad memory management.

That's possibly just because there is no other contention for the memory. By and large it is the OS that is broadly responsible for memory management, the OS hands out pages of memory to programs and it's upto the programs as to how they use them.

If you have photoshop running and using a lot of RAM it is likely that were you to run another application the RAM usage of photoshop would drop to accommodate the other program as the OS will simply drop some of photoshop's pages and let the other program use them.

There is not really any performance hit from doing this since any page that is not "dirty" (i.e has not been written to) which will be basically any pages containing program code does not need to be swapped back to disk.

If you are concerned you should find a way to measure the quantity of IO going on in the swap area since heavy swap IO will be the best indicator that you either need more memory or something is not as it should be.

For example I run a server that is often at 70% or so of RAM usage but has only swapped something like 10MB of data in the last month.

The title made it seem like this was going to be more of an whistle-blowing blog post by an insider.

Nevertheless, this kind of rant is interesting in so far as it points to what I think a growing momentum behind the UNIX philosophy. What I mean by that is: small programs that do one thing well and interoperate with others.

I wonder whether the underlying cause of this shift in thinking is the levelling off of CPU cycle speeds. Time was when the performance of something like Photoshop or Office would just prompt you to buy a better computer. People would assume their computer had gotten old or out of date. Now that getting new hardware doesn't magically fix things people are asking why certain things take so long and comparing programs' performance.

A lot of people here seem to think that complaining about a five to six second start time is just whining. I believe you're wrong -- it is a legitimate and valid complaint and here's why:

Most software can't run for very long. A lot of high-end software can be /very/ unstable (hello, Maya! ;-). The user is not just starting that software once at the beginning of the day for a long productive day of work, they are all to often starting it again after a crash. Or after they shut it down to get enough RAM to run Excel. Or after rebooting Windows for /another/ mandatory update from IT.

I once had to restart a particular high-end compositing package thirty times in an hour. Twenty seconds of the average two minutes were spent staring at the splash screen. But I had to do it, because I needed thirty frames rendered and a particular plugin crashed after running one frame.

The user is not starting your software to admire your credits or the clever graphic design of your logo. They are starting your software to /use/ it get a job done, a job that they have in mind to do and any distraction at all (even a harmless splash screen) is a new stumbling block on their way to resuming their task.

I heard of a study done back in the mainframe days that determined that anything that took less than two seconds felt instantaneous to the user. However, anything longer (even five seconds!) took "forever". In my years of programming, I have found nothing to disprove this (possibly) apocryphal conclusion.

Your user's time is valuable. Your user's mental state and flow are valuable. As programmers on Hacker News, we all know about concentration and flow, right? Extend your users the same courtesy you expect from your tools. Help them keep things going, don't break their rhythm and don't let them lose context.

If I was using some software and it was so unstable that I had to restart it over-and-over again I'd conclude that there was either something horribly wrong with my setup somewhere in which case I'd try and resolve it or that the software was simply a POS and I would stop using it.

I very rarely have program crashes these days and when I do it is usually down to either a failing hard disk or that I am using something version 0.x of something.

I do agree to an extent about Windows updates though , these do tend to nark me (especially the nag screens). Unless it's patching something that would allow privileged remote code execution onto my box right now it can wait.

Any company that was genuinely worried about their staff losing productivity due to slow program loads would just install SSDs onto all their computers, afterall this is what we at HN generally advocate.

What I find somewhat annoying though is software that has a lot of "visual effects" such as windows that fade in and out where you can't interact with the program until the effect has completed. This is only annoying though if it would have been instant if the effect was not there.

I'm not sure I'm a big fan of what it would take to fix this. Namely, "speed loaders" that sit in memory and eat up RAM. I've already seen what adobe's PDF speed loader can do on a system.

Frankly, I'll manage my applications myself.

Are you tired of waiting for Photoshop to launch? You might want to try leaving it open...

Louis CK has a fantastic rant about people complaining about technology being too slow (and technology, in general). It helped to put my own rage in perspective. I find myself getting less pissed at technology since watching it, and I kind of hope that lasts.



I love Louis CK as much as the next guy, but he's not a technologist, and his perspective is not helpful to us in this context. In life, sure - have patience. Keep it in perspective. Appreciate what you have, and don't rage against things you can't change.

This rant is not about life, though, it is about what makes for good and bad software. Which happens to be what we do for a living. In the grand scheme of things, we're all dead, and software doesn't matter. While we're here, though, it's not a bad thing to get bent out of shape about the things that bug us about it. It's our job to make this little area of the universe better. I think taking that seriously is a good thing.

Upvoted, because that was well said, and because I'll fully admit that CK's rant is not quite a proper response to the OP.

But I do think that the original rant was clearly someone who let his rage batter the rational part of his brain into a pulp. He mentions things like that the iPhone experience is now what constitutes "minimally usable". Except that no PC (mac or otherwise) comes close to that level of experience and people are still using/buying them, so clearly he has a different definition of minimally usable than a sane person. He's also so annoyed at having to wait that he proposes worse solutions than the wait itself (a fake UI, that still logs actions; I foresee way more frustration from that than having to look at a splash image).

Yeah, there's a lot of room to improve load times, and a well reasoned blog post on that would have been great. But when someone is ballistic to the point that they can't think straight anymore - I think a little comedic appeal to perspective isn't entirely out of line.

I think that's a good attitude in general. That said, it doesn't apply to the creators themselves. I think everyone is happy that somebody took the time to obsess over speed and accuracy when making Google search, or the countless minutiae that make the iPhone's UI slick, leaving the general public to mostly just sit back and enjoy the awesomeness.

Ha, this is exactly what I came in to post. I understand that pursuit of perfection is what drives the industry to become better, but at the same time I have a hard time not laughing at the someone raging about a load-time measured in seconds that will be seen, what, once a day? Once a week? Given that the budget for any software is finite, I can't work up any fury that they didn't shave seconds off a once-off operation instead of dumping it into new features, or performance on longer-running or more-often-used functionality.

That's a rant aimed at consumers of software, not the producers.

That was my first thought. Or people complaining about air travel - "when they are in a chair flying 500 mph 7 miles up!"

I find it hard to get worked up about a program that you are going to use for the next 8 hours taking 30 seconds to start. Though I do get annoyed waiting for STS (SpringSource's Eclipse) to start up.

One thing that would be very helpful for these plugin based program would be for them to be configured with the minimum to start with. It takes forever for Eclipse to start up because it's initializing a dozen plugins/services that I don't care about. And it's not always easy to turn them off.

It only makes sense to complain about any gap between potential and actual performance, though, because that's how things progress.

It's pretty amazing to fly across the country with only ~8 hours of time spent in transit. However, just because that's amazing doesn't make it wrong to complain about one of those hours being spent on completely unnecessary security theater. It could easily be 7 instead of 8, and that's an hour that everybody's wasting. Yes, 8 is still amazing, but 7 would be better.

Same thing with software. It's amazing that we can do this stuff at all, let alone as quickly as we do. Being able to start something as powerful as Photoshop in an hour would still be fantastic. But when the capability exists to make it start in five seconds instead, it's still reasonable to complain about the gap.

To look at it another way, when you're waiting around because necessary work is being done, that's reasonable. But when you're waiting around for the sole reason that somebody decided his time is more important than your time, that's rightly frustrating.

Certainly scale needs to factor in here. What can you get done in a normal hour? Now what can you get done in one second?

The computers I use now are far more capable than the ones I used in 2005, in terms of CPU, RAM, disk space, GPU, and anything else that should affect an app's boot time. Today, Photoshop takes just as long to boot as it did in 2005. Yet the features I use today are almost identical to those I used in 2005, the only exception being the ability to import camera raw images. (And I'm sure that the binaries for importing camera raw images don't come anywhere close to accounting for all the bloat in that time.)

So, my computers have gotten better and better, while the demands I place on them have remained basically constant, yet boot time stays the same. The only thing I can think to blame is bloat.

I imagine load time hasn't improved so much because that's not really what they are optimising for.

You could of course still run an old version of Photoshop on a modern PC if startup time is really that important to you.

I think it would be interesting to compare performance of Photoshop CS5 with Photoshop 6 (the first version I used) on a modern PC.

I would expect of course that PS6 would start up almost instantly whereas CS5 would take a few seconds. However it would be interesting to also take a relatively large image file of the sort of size that a graphics designer might actually work with (let's say 500MB or so) and apply a bunch of the same filters across the whole image (in such a way as to produce an identical result) on the same computer and time them both.

My guess would be that CS5 would be significantly faster which may be partly due to optimisations made at load time. Not sure if anybody has actually measured something like this though?

"I don't use them, therefore they don't exist"?

Of course Photoshop has plenty of new features each version. Just because you don't use them doesn't mean other people don't. It's a known problem: Everyone only uses 10% of the features in software but everyone has a different 10%.


Disk speeds have increased greatly in the last 7 years. Compare an 80gb 7200rpm hard drive from 2005 to a 1tb 7200rpm drive from now and you'll see a very large sequential read/write speed improvement.

As much as I hate bloat and love svelte web apps that do just what I need and nothing more... I think we also need to accept that some people in some fields of work do pretty advanced stuff, and need pretty advanced software to do that stuff.

Adobe InDesign in particular is a huge piece of software with tons of config options and obscure features and what-not, but I've never ever found a feature that made me think "what kind of useless, bloated bullshit is this?" I think Adobe teams fight very hard against bloat, but their business is based around power users and that just leads to a different kind of software.

This is so true. My friend has been a games programmer for most of his life, where you have 16 milliseconds to do everything and it pays to be smart, use clever algorithms, etc. A while ago he took a break from the games industry (he was moving country a lot) and began working at a very large company producing software for the film industry.

It was less than six months before he got sick of the "if it takes a long time, don't optimise - stick up a progress bar" attitude and moved out of the country chasing a real programming job again...

My experience with games software is that it typically has much longer loading times than other software.

I think this is justified though because what matters in a game is the perceived performance while the game is actually in operation.

If when I load a game it spends an extra 10 seconds optimising quadtrees & shaders etc to give me faster game performance and enable 16 millisecond latencies then it is overall worth doing, since trying to load stuff off the disk while I am actually playing would harm the experience.

I imagine photoshop developers do something similar.

I don't use photoshop, but my emacs takes 3-5 sec to boot up.

So lets see. Supposing I use emacs for 3 hours, 5 seconds is precisely 0.04% of the time I spent using it. I'd prefer if the emacs dev team focuses on new features for me to use during the other 99.96% of the time I spend using it.

Iphone/Android apps are fast because they need to be. Often you use them for 30sec-5 min. On a 30 second use, 5 seconds is 16% of the time you spend using the app.

With a SSD and plenty of RAM load-times are a non-issue for the most part. I often leave applications I use frequently (or even infrequently) open for weeks at a time. There's not much downside in doing this besides some extra clutter in your dock/taskbar. For any fairly modern machine an upgrade to SSD + 8GB of RAM will mostly solve the problem. That's about $250-$300 to avoid the problem almost entirely. I feel like this is a byproduct of the race to the bottom of PCs over the last 5 years or so. Just because you can buy a $500 computer with a spinning disk and 2GB of RAM doesn't mean you should buy it. There are trade-offs to consider.

Developers also have these trade-offs to consider. How much money can a developer justify spending to optimize load-times when there is an easy and relatively inexpensive fix available to all consumers? If they deliver 10 second load times on an average PC that is acceptable enough. If a user wants 2 second load-times they can buy a better computer. It's always been the case with PCs that your results vary depending on the hardware you purchase.

The video game industry has the same issue. Initial bloat screens. A lot.

Skyrim for instance, it takes anywhere from 30 seconds to load the initial screen, which is just the logo of Bethesda. You know what is on the initial screen. A button for me to click that says Start. Once I click that button, then I have to hit Continue for it to load the last save point. Then another 30 seconds to 1 minute to load my game/map point.

So basically, two actions and over a minute later, I am finally in the game. A much easier thing would be to just load my last save/map point. I can turn on the console, and know to come back in a minute. Just have it paused until I am ready to play. If I wanted to say restart the entire game, I could go into the menu system from there.

I find this the case on almost all games. FIFA, Madden, Bad Company, Call of Duty. Just start the game I played last. If I regularly play online, go and find me a server automatically. Auto load my game, unless I hold down the start button or some other button that would then default to the menu.

I don't care that Bethesda or EA made my game, I just want to play.

Keep in mind that a large amount of the time you see a splash screen (or five) in a game it's not because of loading, it's because of marketing.

I imagine much of the stuff in the initial 30 seconds is necessary overhead that you would incur anyway.

I prefer that a game does automatically load the last save point since it is less effort to simply click "continue" than it is to wait for something to load which I may not even want to do.

I suppose this is a good place to mention that I wasted 2 hours of my day zeroing my MBR because of Adobe. Apparently Photoshop installs some DRM crap on it.

Proof: http://www.amazon.com/Adobe-Photoshop-Extended-CS4-VERSION/d...

Proof: http://ubuntuforums.org/showthread.php?t=1661254

I will not be using an Adobe product other than Flash again. I would ditch Flash as well, but last time I checked, gnash was not good enough to replace it yet. That's not an issue though. I'll just wait for HTML5 to kill it.

Imagine if your phone or iPad took as long to boot as a Windows laptop. Would you use it? Would it be usable?

My android phone (Nexus S) takes longer than my 6 year old Windows laptop do (sure, it's updated with an SSD but even without it would be a close call), my mothers tablet isn't faster either. Solution? I never turn either off. Problem solved.

Hibernate for longer sessions, sleep if battery isn't important and I know I will use it for the next few days.

On my workstation I never turn off heavy applications anyway. On my laptop I'm limited by my 32 bit Win7 OS so that's a burden, but I can work with it. The 8 GB I have in my workstation isn't ideal either, tempted to get a 24 or 32 GB machine but probably can't justify replacing the current machine just yet. I see no reason to get less RAM on a new setup though.

Also I really appreciate having the whole application ready. Having parts of it lazy-load can be way more agonizing than a slow boot. And with an SSD you don't have to wait long anyway, I always tend to fiddle with other windows during the boot so I'm not that annoyed. The splash screen itself can be annoying if it claims window focus or is just in the way but they exist for a reason. There should something telling me that the application is booting (firing up a task manager doesn't count), I agree that there are less obtrusive ways for this than a splash screen though and for that OS developers should be blamed for not realizing this.

My computer is pretty responsive, at least as much as my smartphone is and I'm not running anything special (No SSD, 4GB of RAM and an older model of quad core).

Ok, I wait maybe 2-3 minutes for the computer to start (not even that if I just put it to sleep instead of turning it off). I can work for ~8-10 hours so those minutes aren't a big deal.

There are a few programs that are particularly slow to start (eclipse, steam, openoffice) but that's mostly just because there is a lot of code to load and I'm sure a comparable application for a smartphone would be just as slow.

I do run Linux most of the time though so there is probably a bias there towards smaller non-monolithic programs there and not having registry bloat helps.

However I still remember the days of Windows 98 and how horribly slow everything was back then on anything apart from a freshly installed machine and having to wait a full minute for Office 97 to start, we've come a long way since those days. I can't see it taking long before every PC comes with an SSD drive (which is probably part of the reason smartphones seem responsive as well as having a well warmed cache).

As for doing something like running a cloud instance of the program and then somehow syncing back to the desktop app seemlessly, that seems like it would add such an insane level of extra complexity and problems which is exactly what he seems to be against.

Many people here are talking about how iOS works vs a desktop OS and that's the big difference - but its not about the SSD. If you have a high powered computer then its no problem to leave the adobe suite running and then just grab it from the task bar and get to work. The issue is that most people don't have high powered computers, at least powerful enough to run photoshop constantly while doing other things (HD videos, netflix, chrome+firefox, etc…. non work things). Adobe and other big software companies are going to continue to push the envelope no matter how fast our computers get in terms of resource use.

Has photoshop gotten faster in our lifetimes? No! It just wants more and more resources with every release. So what is the difference between how apps behave on iOS and how they behave on the desktop? Backgrounding. Very very few apps (ableton live is one that has some "freeze" type features) don't have any way for you to shut down portions of the app or put the app to sleep so that you can start it up quickly. On iOS this is how apps are expected to behave, and it shows.

But, even if Apple did bring backgrounding to the desktop, I imagine Adobe would be one of the last to support it - and I only say this because of my previous personal experience with Adobe products like Flex, LCCS, etc…

I just thank code I'm not a designer...

I would say that overall modern versions of photoshop do feel faster than older ones.

Of course photoshop is intended for professional designers with reasonably high end computers, it was never intended for the use case of somebody using a netbook to touch up a few photos as there are other programs for that.

As technology has improved people will expect more from designers so they need more powerful tools optimised for working with large file sizes etc so Adobe are going to expend more effort maximising performance on higher end modern workstations then they are making sure it loads quickly on a five year old netbook.

Just because every teenager wants to use pirate CS4 to tack together a logo for their band does not mean that is what adobe should optimise for.

What is so hard for people to understand ? Photoshop needs time to load, because that time is quite significant they give you some kind of feedback to let you know that 'hey the damn thing is loading, please wait', what's so bad with that? what would the alternative be?

The title starting with "Adobe employee" tries to make it sound like its a significant opinion regarding the matter, the author of the article doesn't seem to be a programmer or holding a position that deals with the process of making a program, what's even worst is the fact that he is completely clueless regarding the matter, he suggest "e.g., show a UI right away and let an instance of the program in the cloud operate against my gestures, until the local copy boots fully and can re-sync with me", seriously ??? I started wondering if i am being trolled at that point.

It takes 4 seconds to do a cold start of Photoshop on my laptop (which isn't a top notch laptop), on an older computer and with previous versions of Photoshop it would take 10-15seconds which would still be fine, the process doesn't block me from doing something else in the mean time.

I still use Photoshop 6.0 circa 1999. It loads in a few seconds max, and it has all the core functionality necessary for web graphics work. In fact, even PS 5.5 would do fine because it was the first version that supported Save for Web.

If you are using the latest version of Photoshop for web work only, you are wasting time and money for tons of features you don't really need.

Agree, I don't think Adobe has ever really positioned PS as a web tool I always thought of it more as something for people to process photos with, including huge photo files which are intended for billboards etc.

I was hoping Adobe would patch Photoshop CS4 on OSX Lion so it stops crashing when quitting, and then hanging indefinitely if you try to re-launch it again without rebooting first. It's the most expensive software I've ever purchased which doesn't know how to [NSApp terminate:nil]; properly.

They could at least display "tip of the day" or hotkeys while you are waiting to make the waiting time at least a bit productive. Why don't programs have this today? Most old programs had this but after starting up. Displaying it while the program is loading would be much smarter.

Every, I'd say, 6 months or so, someone on the qemu mailing list posts a patch to add a splash screen to qemu.

I don't understand why people persist in this:

(1) Most hypervisor start-up screens aren't even seen by most users.

(2) Spend that time and effort making the boot faster, not slowing it down with utterly useless stuff!

While as a programmer I understand that perhaps this load time could be improved, and maybe splash screens are a lazy solution, but I wonder if it warrants this level of anger. Even assuming a generous 5 minute load time on photoshop (I don't know as I don't use it, but I doubt it's that much), and that you reload twice a day (once at the beginning of the day and maybe once after lunch), and you use it every weekday of the year, that's still less than 0.5% of your year.

I'm not saying losing 43 hours of your life per year is insignificant, but a proportional response seems appropriate. You in all likelihood spend more time waiting at red lights.

He wrote a rant on his blog, he didn't kill anyone. What exactly would be "proportional"? Never speaking a word when something annoys you?

5-10 seconds? This guy is complaining about 5-10 seconds?

I hate bloatware. I despise behavior like the sloth and neglect Microsoft inflicted on Windows XP once Vista shipped and I loathe the abandonment of gingerbread phones like my late Droid G1 (unaffectionately nicknamed "the brick" in its final days) by Google once they entered the crunch phase for ICS, but 5 to 10 seconds?!?!?!?

Get a grip... If an app has any mandatory online component whatsoever (not that photoshop does), its boot time is unavoidably non-deterministic. Good luck fixing that (not that there's any excuse for avoiding latency that can be avoided)...

In all fairness, Photoshop startup time did get a lot faster at version 10 (CS3), when they changed the type system to load only when needed.

But yes, there is still a long way to go. I don't think we need iOS like hacks such as showing a PNG of the GUI to trick you into thinking loading is done. This solution has its own set of issues (responsiveness, not precisely matching your previous state in case of crash, etc). It's x1000 faster than my phone, we can do better.

Modularizing, as shown above, is hard, but probably the best way to go. As programs grown to the size of a small OS, they should be treated as such.

Photoshop CS5 took roughly 4 seconds to start on my MBA. Is this guy seriously complaining about 4 seconds? Several popular iOS (and I'm sure there are some on Android as well) take longer than that to load...

Agreed, about the same on my machine. It's kind of expected. On my old machine I would just start Photoshop and go make a cup of tea. Or switch windows and carry on with something else. But I rarely use Photoshop... If you are doing this day in, day out then I think it justifies more RAM and/or an SSD.

What I find interesting is a story about Firefox Mobile. It used to get complaints about it being slow to load and that it needed to be sped up. The solution to this was that during load the browser would display an image of the browser as it is when loaded instead of just a black screen as it previously had. Complaints about slow loading screens decreased dramatically. So yeah, I'll be keeping this sort of thing in mind. This was all relayed to me from someone who attended the Firefox Mobile talk at FOSDEM.

OP has a point. Not a f*cing important point, but a point. UIs can and should be faster, Adobe and MS are slow to catch on with current user expectations, and splash screens are annoying relics of a bygone era of bloated desktop UIs.


But in the end, to me it's just one more instance of Everything's Amazing and Nobody's Happy.


I guess I just don't get the tone. Why the righteous indignation? This not Human Rights we're talking about, it's software.

Splash screens aren't there for the vanity of the development team - they provide immediate visual feedback to the user that the application is loading any necessary libraries.

I'm also at Adobe and my team recently performed a ground-up re-write of our application. Minimizing start-up time was a high priority item and we did as much as we could to reduce it, but file importers/exporters, codecs, and some plug-ins need to be validated and loaded at some point - would you rather have these costs as one-time, up-front fees or scattered throughout the application as a thousand tiny cuts every time you open some menu command or function that requires these libraries?

But even so, professional desktop applications are not the same as lightweight mobile apps which tend to perform a limited set of tasks through a specific workflow. To compare the two is unfair and and bit clueless. And he brings up OS startup time, as if it doesn't take a LONG time for my Android or iOS devices to boot up - and they have less excuses as the hardware is pretty standard and fixed unlike my desktop machines.

I think his rant about wasted time is valid, but misguided. There's more time wasted navigating non-intuitive interfaces or poorly laid-out common controls. There a lot more time wasted when an application you rely on to do your job doesn't offer the functionality or freedom of workflow to accomplish what you need.

> Splash screens aren't there for the vanity of the development team - they provide immediate visual feedback to the user that the application is loading any necessary libraries.

How is that useful to a user? How many users even know what a "library" is? It might as well have a status bar announcing "Doing TECH thing 1 of 50...."

It seems to me that a splash screen is just a diversion: showing the user just how much Really Important Stuff it's doing hides the fact that they're basically being told to Please Wait. You're trying to make it look exciting, when the truth is it's just getting in the way.

It might as well just splash with "PLEASE WAIT" with no progress bar and no status. It has the same utility.

A progress bar at least let's you know that the software hasn't crashed or got stuck in an infinite loop.

I wonder how Kas Thomas feels about the credit roll that occurs at the start of a movie? You know the one where they show the logo of the movie studio, then the production company, then the producer, editor, et al.

I see the software splash screen in the same light. It is giving credit to those who have put it together. Now, obviously entertainment is different then a work application, but many of us feel that software is art, just like a movie and that if someone wants to do a credit role then they should.

That's an example that proves the opposite of your point.

You may notice if you watch some older movies (pre-1950s, mostly) that they used to run the ENTIRE credits list at the start of the film. The WHOLE THING. Not just the credits you see at the beginning today, but also all the ones that today are listed at the END of the movie, too. The copyright notices for all the songs they used, the logos for their camera and film providers, the names of all the gaffers and best boys and Assistants To Mr. Bigshot... you had to sit through them all before the movie got underway.

They don't do that anymore. Today only a very small number of Very Important People get credited before the start of the movie. Everyone else gets shunted to the end. Why? The answer is TV. When TV came along and movies started getting shown there, they no longer had a captive audience. The audience could now change the channel if they weren't being entertained -- which meant that there was pressure on the filmmakers to GET ON WITH THE DAMN MOVIE. So they moved nearly all the credits to run after the film, rather than before.

That was a bit of a blow to all those other folks, of course, since credits at the end of a movie are credits nobody reads -- they're too busy leaving the theater or changing the channel. But it was necessary to conform to the audience's desire that they GET ON WITH THE DAMN MOVIE.

Which is Thomas' point: users' expectations are changing. Used to be that it didn't matter that much if your app was slow to load, because users didn't expect it to be fast. But the proliferation of mobile devices and lightweight apps is changing those expectations. So if you care about your users and want to hold on to them, it behooves you to GET ON WITH THE DAMN APPLICATION.

Actually, when I have watched a movie or played a video game that I have especially enjoyed I often make a point of watching the entire credits.

I find it fascinating to see the number of different skills that are required to get something like that from a drawing board idea to a shipped product.

Not to mention that sometimes they add some kind of extra "easter egg" content right after the credits as a bonus for watching right through.

Thanks for sharing that, I learned something new today already :).

You can see the progression even over the last 10-20 years. We used to see the title of the movie, and then a few minutes of scenery with the actor's names on them. These days it's not uncommon for the movie to start almost immediately with the credits integrated into various background elements.

Yeah, as audiences' attention spans get ever shorter the pressure to GET ON WITH THE DAMN MOVIE gets ever higher, so filmmakers are always looking for ways to pare down the length of the opening credits or to present them in a way that also starts the story moving.

The same evolution has been underway for a couple of decades now with TV shows. Until the early 1990s it was commonplace for TV sitcoms to have a full opening credits reel, complete with a theme song just for that show. Think of the opening of Mary Tyler Moore [1] from back in the '70s, for instance, or Cheers [2] from the '80s; they both became iconic representations of those shows.

These intros helped set the tone of the show that followed them. But they generally took a full minute to run, and as the universe of options provided by cable expanded and remote controls became inexpensive, waiting that extra minute for the show to start began to turn off viewers. The push began to GET ON WITH THE DAMN SHOW, and so the traditional musical opening first shrank, then disappeared altogether. Today's openings run much shorter -- 25 seconds max -- and usually include just a couple of title cards and a musical snippet.

[1] http://www.youtube.com/watch?v=9m4-Te1m7fY

[2] http://www.youtube.com/watch?v=FD8ljNobUys

Except they don't show the splash screen to praise who made the program. It's just to give you something to do while you wait. Just like reading shampoo bottles' labels in the bathroom.

Network-reliant apps should check for connectivity during loading, this can take a few seconds to verify everything. Would he rather the app doesn't do any environment validation and present errors when trying to run specific tasks? Can you imagine, working on a complex document only to find out when saving that you don't have enough disk space or your network connection isn't valid. Splash-screens are an important time to determine whether everything is there that you need to do.

Photoshop really is not that complex - you could write a photoshop clone that would load in under a second, easily. But it loads all sorts of stuff you do not need up front - many fonts, textures, drivers for scanners, cameras, and so forth. I think the real problem is that Adobe seems to keep patching an already bloated code base - I think if they started fresh they could redesign it more efficiently...just my humble opinion...

I think it would be difficult to write a photoshop clone that loads in under a second and provides the same level of performance when dealing with advanced filters on huge images with hundreds of layers.

Anyway I doubt that all of that stuff is loaded at startup anyway.

Pixelmator is pretty much a clone of Photoshop, and it starts seemingly instantly.

Splash screens are leftovers from the old-old days of text-based computing when you had to mask the fact that the program being loaded was going to take awhile (>30 secs).

Hardware, software, network, total users, i/o, it didn't matter, it was better to say something than let users sit there at a terminal thinking nothing's happening.

Or worse, tell their boss the "system's down again."

No excuse for them today. They just say "big app", it's gonna be awhile.

when I read this I instantaneously thought about this rant from Louis CK [Everythings Amazing & Nobodys Happy] http://www.youtube.com/watch?v=8r1CZTLk-Gk

Linux Mint and Windows 7 take 10 seconds to boot on my laptop with a SSD. That's amazing. Just a few months ago I would go make a sandwich while my PC would boot. If you have a problem with splash screens alt tab to the browser of your choice. If you think your PC boots to slow take out your smartphone and play with it. This is not to say developers should be wasteful with users time. Especially web developers know how import page speed is. But it's a complex program just give it a few SECONDS.

Also one should mention Steam (the game distribution platform). If you are bored in between rounds you just bring up the steam panel and use the embedded browser to browse the web or chat with friends. But those at times minute long delays. Sure you could embed a email client in the OS the comes up long before the main GUI is loaded but you wont get to read much in 10 seconds.

Solution: don't use monolithic applications with bloated GUIs. Instead, use small, simple tools, driven from the command line where possible. If the problem domain is naturally graphical, have a lightweight graphical frontend driving the small simple tools through shellouts or a plugin or library interface.

In other words, use UNIX.

This isn't difficult to understand, guys.

I used to adore Adobe, but it all changed over time. It started when I only needed Photoshop, and yet Adobe insisted I install several other chunks of software for services I didn't want or need. In the end, I finally found a solution that lets me get my work done without all the excess Adobe bloatware. Thank you Pixelmator!

I can also recommend Adobe's "Elements" apps. Pixelmator is very nice, but if you've gotten used to the Adobe way of doing things and don't want to relearn, Photoshop Elements is sort of like what Photoshop used to be before the Creative Suite.

A splash screen seems like a pretty innocuous way of letting you know that the app is not ignoring you. I imagine that not too many people take such violent aesthetic offense to them as this guy. Still, they probably allow a longer load time than users would otherwise find acceptable in their absence.

At least they aren't following the movie industry's model of forcing you to watch paid advertisements first...

What a troubled and complex world we live in, when large, complex programs take 5-10 seconds to load.

I'd much rather my devs work on useful features instead of trying to fool me into thinking my productivity suite is loaded a few seconds earlier (and also not dealing with all the bugs that that introduces).

I hate it when people say "I switch my phone on and it starts instantly". No it doesn't. My iphone takes about a minute to start...of course I never switch it off, so it's not a problem.

If you never "turn off" Photoshop or Office, they too will appear the instant you click on them. Amazing!

Don't you think it's odd he is complaining about splash screens when Adobe is responsible for the worst thing to ever happen to the web -- those stupid flash intros ? Talk about a waste of time, you had to wait for the time waster to load and then wait for it to play

Flash intros are the fault of the people who made them, not the software used to create them. When HTML5 canvas replaces Flash for such things will you then blame HTML5?

True, although from what I remember the flash development tools seemed to provide much functionality that seemed to be aimed specifically at creating things like this.

IIRC there was something that was basically a "flash intro wizard" however this may well have just been added due to demand from developers for such features.

I don't recall such a wizard in Flash itself, although I wouldn't be surprised. That kind of thing seems something that a third-party would create and there are a large number of them out there. The main thing to remember was that the Flash intro, at one time, was an accepted practice. It was an easy way for a company to introduce itself, much like a commercial. It wasn't until it was overused that people started to dislike it and now people only remember disliking it.

I disagree that it was an accepted practice. I don't know of any technical person who didn't hate them from the very first time they saw one. Remember this was back during dial-up days and you had to wait forever for that crap to load. I can't tell you how many sites I left before ever seeing their content because when I saw flash loading I just switch back to my search engine and find the next link. Heck, I still do that.

edit: I forgot to mention my even bigger gripe about the flash intros, and that was because I was basically being forced to sit through a commercial before I could interact with the company. It went (and goes) against the very basics of web use.

I would say the people defining an accepted practice are the people paying the bills. If the company wanted it, the technical person made it so they would get paid. I would admit it was probably the technical people who finally convinced the majority to abandon them. Plus the fact that over time they could see that the idea was failing them, much like you point out. But until that moment it was accepted practice among major websites. The fact you remember them so vividly in your dislike of them almost proves my point.

But alas, I agree, they were a total waste of time. As I said, the people who pay the bills don't always listen to the people that they should listen to.

He's got first-hand experience to back up his complaining.

I agree with him, in principal, that apps should be lighter and faster. However, Photoshop is just a giant program to do lots of complex things. It's a burden I'm willing to put up with (for now) because I have yet to make a transition to a similar, lighter, program.

For One time if you see splash screen its not a problem. But for example if visual studio crashes so often and it makes you see to splash so often then as author mentioned i would feel like i would commit seppuku. They should try caching or something .

Figure this is the right time to ask about SSDs .. Any recommendations for MBP SSDs?

Intel drives have good reputation.

About loading screens, I've always wondered why games don't try to get rid of these (maybe they do?).

Anyone familiar with why you have to have loading screens in games? Would it be possible to pre-load a level while you're playing?

Most modern games use various tricks to minimize or eliminate loading screens, with varying degrees of success. Common ideas include using low-quality assets for far-away objects, dynamically replacing them when the player gets closer; creating assets that can easily be reused; and making the player wait in a small room or hallway while the next area loads. Sometimes this can backfire, as with the infamously slow elevators in Mass Effect, which are timed to always take as long as the worst-case load time for the area they're linked to.

TV Tropes has a list of examples: http://tvtropes.org/pmwiki/pmwiki.php/Main/DynamicLoading

They can't follow the article's suggestion of giving you a mini-game to play during the load screen because that would violate Namco's patent 5,718,632 which covers exactly that:


Wow , that's ridiculous. Although I'm not sure what game you could play in the 10 seconds or so it takes to load a program these days, plus you've got to load the game itself.

I have always wondered though why when doing an OS install they never provided a game or something interesting to do while you wait rather than show adverts for the product you are currently installing ("Windows 7 has all these great new features!".. "I know , hence why I bought it.."). They could at least give me a browser to use though.

I had totally forgotten about that patent.

Another point is file size. Is it really necessary, that every version is twice as big (just estimating...) as its predecessor?

At least for many websites this trend has been stopped, due to mobile requirements.

I remember there was Photoshop clone called Pixel which was doing cold startup in less than 1 second, so Photoshop slugginess is definitely not caused by technical limitations.

I await his next blog post "I got fired for throwing all my toys out the pram" with great anticipation, where he explains how throwing a massive hissy fit and not taking his (some good) points up with the team and management.

I don't agree with this faking rubbish though, if it's not usable then I don't care. There's plenty of bloatware to get rid of in these programs, I doubt the splash screen is the biggest of worries!

I don't think the guy will lose his job. Do you? He is addressing a very real issue. Adobe should read this.

Besides whether the issue he's addressing is real or not (i dont agree with him), this is not the way to address the company you work for and i would completely agree with Adobe if they do fire him for this.

I wouldn't fire him but I would ask that he be a little more informed on how modern technology works before going on a rant about it. Especially when he aims his complaints at his own company. There are REASONS for some programs to load slow, it's not like everyone is competing for the slowest loading software.

> He is addressing a very real issue.

He adressed nothing beyond his hate for the splash screen, which has seen its time imo, but nonetheless has nothing on many of the other features and tools that Adobe puts out when it comes to bloat.

If Adobe really cared about the user, they don't because they own the brand name synonymous with image manipulation, they would at least make an attempt to tailor the application to the specific user's needs, not the user base as a whole. But they don't have to and will keep doing what they deem good for them until a real challenger appears. And then they'll buy them or sue them into oblivion.

I'm not sure how they would "tailor the application to the specific user's needs" as it would be clearly impractical to develop different versions for each of their millions of customers.

Photoshop (for example) is pretty extensible and has support for plugins as well as scripting capabilities etc, not sure what else you want?

Also part of the reason that adobe is the industry standard is that their applications are consistant and a designer who hops jobs can easily get upto speed in a new environment without having to learn a completely new tool.

> up to speed in a new environment

are you assuming that every time a developer switches job, he or she has to learn a new IDE. Life isn't like that.

It's not impractical to assume that a user will use a specific subset of all of the tool offerings and doesn't need or use all of what the application has to offer. The app should be able to develop a profile based on what the user actually does with it instead of forcing all of the functionality onto them.

But Adobe makes a lot of money with their product, has no competitors of note and therefore doesn't have to change the way they do business because even if their subsequent releases fail to impress their user base, they're still going to sell licenses.

The problem is that beforehand you don't necessarily know which features you are going to need to use. I am constantly discovering new useful features in most of the programs I use, having to install plugins for every feature I wanted to use would quickly become a pain , hamper discoverablity and the program would probably just end up back where it started in terms of size.

Besides when you have a program with a long load time, this is not necessarily correlated with the number of features, it's more likely that it's some core part of the program that is taking a good chunk of the initialization time.

The consistency argument is important, especially to anyone who has ever worked on telephone tech support. Being able to give somebody instructions on how to perform an action without having to worry about which of the 1000s of possible configurations their program is in is important. This is probably one of the big reasons desktop Linux never took off.

Most professional programs like IDEs or photoshop are intended to be used by professional users anyway who will be likely to have a reasonably fast computer and will have invested some time in learning to operate the program properly.

Adobe has actually had quite a few competitors over the years, currently there are programs like PixelMator and in the past they have had JASC , Corel, Macromedia (until they bough them) and of course GIMP to contend with.

Joel Spolsky has a good article on this. http://www.joelonsoftware.com/articles/fog0000000020.html

Based on what you're writing, I detect that you have little experience in a [pro-level] multi-discipline working environment and you're assumptions are at best broad guesses.

GIMP to contend with? Adobe could give two shits about that app, its user base and the Linux community in general.

The WCMS he works on also has significant startup time, even beyond JVM warm-up. Ah well.

With an SSD drive photoshop loads very fast. It only takes about 2 seconds.

I don't think I've even seen a splash screen since SSDs became affordable in the past 2 years. Also I'm a "give credit where it's due" type of guy and surnames of people that made the great project I'm launching don't bother me.

This whole blog post reminds me of the "first world problems" meme.

I stopped reading at "Run my gestures against an image in the cloud"

Adobe is the definition of bloat.

if gimp can insta-load, and photoshop gives me a 60 second splash screen, designers are still going to use photoshop. i would prefer Adobe continues to invest in the features that matter, not startup times.

hey, I have a solution. Buy a damn SSD if you want to load a 1GB program faster.

SSD, problem solved.

>Show me a screenshot that looks like Photoshop.

They tried this, everyone got pissed off and asked for a splash screen so they knew it was loading.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact