• ARTICLES
SEARCH

How-To Geek

Why Aren’t All Applications Portable?

It’s a question that nags at anyone who has fallen in love with portable apps: why aren’t all applications portable?

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-drive grouping of Q&A web sites.

The Question

SuperUser reader Tom loves the clean organization portable apps provide and wants to know why everything isn’t portable:

I’ve recently been trying to ‘install’ stuff a lot less on my Windows machine (I hate installers – I need to know where programs put stuff…), choosing to use portable or standalone versions of applications instead.

I put them all in a ‘Programs’ dir on a drive separate from my Windows partition, so whenever I reinstall, I have all my applications available with minimal effort and on the plus side, I get a nice clean setup.

Applications like Office and Creative Suite still require me to go through a horribly long installation process where a thousand random libraries and tools are thrown across my system.

Why do Windows apps still need installing? Why can’t we just drag Photoshop to a folder à la OSX and just have it work? Does anyone else focus on portable apps, or am I just being OCD about the whole thing?

We’re certainly fans of portable apps and would also like to get to the bottom of things.

The Answer

SuperUser contributor David Whitney offers some insight into why many apps aren’t portable and how Windows enforces a sort of anti-portability arrangement:

Installers are a result of years of evolution and a little bit of (simplified) history helps understand why they do what they do..

The Windows 3.1 model suggested config.ini style configuration files per application with supporting shared libaries going into system folders to prevent duplication and wasted disk space.

Windows 95 introduced the registry allowing a central store for application configuration replacing many configuration files. More importantly, windows configuration was stored in the same place.

The registry became bloated due to applications not cleaning up after themselves. DLL hell happened as a result of multiple versions of the same shared libraries overwriting each other.

.NET introduced the concept of app.config (almost ini files mark 2, this time with a little more structure saving developers wasting time writing manual parsers). The GAC was introduced to version shared assemblies in an attempt to prevent DLL Hell.

In Windows XP and moreso in Vista, Microsoft attempted to define the userspace as a place to store user data and configuration files in a single standard location to allow for roamning profiles and easy migration (just copy your profile) with the applications installed in Program Files.

So I guess, the reason is that “applications in Windows are designed to live in one place, their shared dependencies in another, and the user specific data in another”, which pretty much works against the concept of xcopying a single location.

.. and that’s before you have to configure user accounts, and setup and ensure security permissions, and download updates, and install windows services…

xcopy is the “simple case” and certainly isn’t a best fit for everything.

Unfortunately for fans of all things portable, many apps–especially large apps like Office–will remain firmly fixed to and distributed across the operating system.


Have something to add to the explanation? Sound off in the the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.

 

Jason Fitzpatrick is warranty-voiding DIYer and all around geek. When he's not documenting mods and hacks he's doing his best to make sure a generation of college students graduate knowing they should put their pants on one leg at a time and go on to greatness, just like Bruce Dickinson. You can follow him on if you'd like.

  • Published 10/30/12

Comments (19)

  1. Anybodysguess

    I’ve forced many programs to install to a flash drive when they didn’t want to and it has always worked fine for me.

  2. Richard Steven Hack

    The Registry should never have been used by applications at all. If I remember correctly, Microsoft strictly prohibits – although doesn’t enforce – using the Registry as a store for application data. In any event, it shouldn’t be because this is why the Registry is the “single point of failure” for the whole system. The worst decision Microsoft ever made.

    Linux is vastly more reliable because most applications use text configuration files. Usually these are stored either in a directory devoted to the application under the user’s profile (similar to how Windows does it) or the application’s main directory.

    In my view, applications that are intended to be single user should be utterly self-contained as portable apps usually are – with no Registry or multiple directory involvement at all. Applications that are intended to be multiuser should have individual “user profiles” in their own main directories.

    I’ll go further. Applications shouldn’t be “installed” at all! This is why it’s a pain to move user data contained within applications and the applications themselves to a new machine. Everything should be self-contained and treated as “data” if it’s not “system”. If there is a need to link an application to a system – such as Start menus – this should be handled without compromising the application’s ability to be moved within the file system. For instance, an application should be able in its configuration system to simply tell the OS “Hey, I’m over here now! Change the menu!” Or if the system can’t find the executable, just ask the user to point to it. It’s not rocket science. Stupid systems just sit there and say, “Sorry, can’t find anything! I’m stupid!”

    But as usual, the industry made a host of bad decisions in past decades and we are now stuck with those bad decisions forever – and it is intent on making more bad decisions and complicating the matter further in attempts to fix those original bad decisions. This is how people work…

  3. svaroop

    BTW jfyi there’s still a portable version of ms office 2k7

  4. Karl Gephart

    So these idiot companies can trick poor users into installing 3rd-party crapware that they have deals with like Babylon’s toolbar!

  5. Paul

    There’s no technical reason why ANY app can’t be portable and installed/run from its own directory. I’m a coder for 30 years, so I’m not just stating this without knowing why.

  6. Paul

    BTW, software like Thinapp (and even Sandboxie) can be used to convert apps to portable versions.

  7. Chris

    The whole DDL hell started because of sharing the same DLL between various programs. Today, we have enough memory and Enough hard drive space as well. There is no reason any more in today modern computer environment to share dll’s, registery or anything else. No reason why a program can not be a standalone application that can just work. Microsoft got it wrong once again, and it can be solved but guess what, MS never will

  8. Michael

    I have used Cameyo to create my own portable programs, including Office 2007.

  9. Keith

    I believe “dll hell” was and still is a Linux hallmark too. Some people want to blame the OS or MS for all this. Also, how about some discussion on portabel nix or Mac apps.

    Let’s keep the blame where it mainly belongs– on the apps. Google Chrome, Google Drive, Norton 360, and PS e.g. I nominate them for digital slobs of the decade. Any one of them can have the award. Or they can share. The pigs. : )

  10. Keith

    Oh. Silly me. I forgot iTunes. Oink! : )

  11. harv
  12. harv

    cameyo dot com That should work for most things.

  13. Art€

    I’m a great fan of Portabel apps!!! I have a complete ‘office’ of apps and also a ‘tool box’ which I use everywhere and on any computer (MS!!).

    I’ve also installed some apps portably and they also work without problems. Keeps my base machine clean and tidy.
    Very good article again guys and thanks for the tip about Cameyo dot com Michael and Harv!
    Great.

  14. Len Wilson

    So why are there so few portable Linux apps?
    That is the only thing that keeps me on Windows.

  15. Roman

    @Len: I am running lots of portable Windows apps under Linux, using WINE. Even the portable launcher (PStart) works in the taskbar.

  16. Roman

    “Unfortunately for fans of all things portable, many apps–especially large apps like Office–will remain firmly fixed to and distributed across the operating system.”

    This is not true. There is a portable version of Open Office downloadable at http://www.portableapps.com

  17. Dark Reality

    Interesting article. Seems to me it dodges the point that many great apps are portable now, and that apps that aren’t have alternatives that are. PortableApps.com probably has the largest *legal* directory of apps that are either portable, or have been made portable (ironically, by means of a launcher written in NSIS, a language used to make installers). In fact I am running Portable Firefox right now.

    The problem with portable apps is that USB flash drive read/write speeds are varying degrees of terribad. Get a portable hard drive — I scored a 500GB WD Passport for $60 — and put your apps (and their launcher) on that. The machine I’m using only has IE and Chrome, and Portable Firefox smokes both of them, in terms of boot speed and general usage. (I know, Chrome is usually faster, but this one is not. I also have Portable Chrome, though I prefer Firefox, and it’s just as fast. Maybe faster, I dunno.) My next favourite portable app is VLC. There are games, productivity apps… you can get The GIMP (Photoshop alternative) and LibreOffice (MS Office alternative). It’s all free.

  18. Roman

    “Unfortunately for fans of all things portable, many apps–especially large apps like Office–will remain firmly fixed to and distributed across the operating system.”

    This is not true. There is a portable version of Open Office.

  19. alvasrawuther

    There’s this app called Cameyo which can make any app portable – http://www.cameyo.com/

Enter Your Email Here to Get Access for Free:

Go check your email!