Slashdot Mirror


VM Enables 'Write-Once, Run Anywhere' Linux Apps

An anonymous reader writes "A startup will soon launch 'a kind of holy software grail,' according to an article at LinuxDevices. The dual-licensed technology is claimed to enable more or less normal Linux applications to run — without requiring recompilation — under Windows, Mac, or Linux, with a look and feel native to each. 'As with Java, Lina users will first install a VM specific to their platform, after which they can run binaries compiled not for their particular OS, but for the VM, which aims to hide OS-specific characteristics from the application. Lina comprises a platform-specific application that virtualizes the host PC's x86 processor... A lightly modified Linux kernel (2.6.19, for now) runs on top of the VM. Under the Linux kernel is a filesystem with standard Linux libraries modified to map resources such as library, filesystem, and system calls to analogous resources on the host platform.' Further details, including an entertaining video or two are at OpenLina.com"

49 of 482 comments (clear)

  1. Lofty Goals Indeed by WrongSizeGlass · · Score: 5, Insightful
    FTA

    "We're trying to change the economics of the software industry. Our hope is that in the next two years, all these companies that are starting with Microsoft APIs will start with Linux instead." That is a key mindset to getting Linux out of its niche and into the mainstream. Thinking Linux first can't be a bad thing at all.

    I hope this lives up to its hype (and promise). I may have to finally break down and get an Macintel (much to the chagrin of my PPC army).
    1. Re:Lofty Goals Indeed by Blakey+Rat · · Score: 2, Insightful

      I read this and the first thing I think is:

      "Yay! Yet more Macintosh applications that won't be able to use the Services menu, drag&drop, AppleScript or the built-in spell-checker!"

      Cross-platform applications suck because they are only lowest common denominator. I'd rather see more application developers build their applications in something like RealBasic, which allows *true* cross-platform performance and is native on all three major platforms. Any solution around a VM is going to suck, just like Java has sucked. (Remember when Java was going to take over the world? Yeah, never happened.)

  2. This won't be useful for a MAJOR market segment. by Caspian · · Score: 2, Insightful

    Namely, games. I see nothing on their FAQ or Features pages about 3D support. Without that, games-- and several subclasses of applications (CAD programs, simulations, scientific visualisation programs, etc.) will fall flat on their face.

    This is a noble effort, though, but what about the 3D?

    --
    With spending like this, exactly what are "conservatives" conserving?
  3. Re:Huh? by eldavojohn · · Score: 5, Insightful

    Why are people afraid of recompiling? It is pretty painless if the source is packaged well.
    If you can get my mom to understand that sentence, I will pay you $500.

    Also in how far is this groundbreaking? Seems to be a pretty forward and not too complicated engineering task.
    Interestingly enough, the word 'groundbreaking' was not used even once in the summary or the article. News doesn't have to be groundbreaking. It could be a very simple old idea used in an ingenious way to be a very useful tool for the masses. Like this, they aren't hiding that they're kind of copying what Java does. But, you know, if it was such an easy engineering task, why haven't you done it? I'm very interested in where this goes.
    --
    My work here is dung.
  4. Re:This won't be useful for a MAJOR market segment by MrCoke · · Score: 2, Insightful

    What Linux-only games do you want to run on other platforms ??

  5. Re:Huh? by CdBee · · Score: 4, Insightful

    "download: install: run".

    That's what we do! It isn't 1979 anymore and having to compile source code isn't something the average user should ever be expected to do....

    --
    I have been a user for about 10 years. This ends Feb 2014. The site's been ruined. I'm off. Dice, FU
  6. Re:Huh? by FishWithAHammer · · Score: 5, Insightful

    "Dear user: Insert the CD. Type make all; make install. Press return and go for coffee."

    It should be

    "Dear user: Insert the CD. Click 'Install'. Click 'OK' and go for coffee."

    See the difference from a user's point of view?

    --
    "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
  7. Native Look and Feel by zmotula · · Score: 5, Insightful

    run (...) under Windows, Mac, or Linux, with a look and feel native to each
    People should realize that this is impossible to do. This sounds like look&feel was something like a skin you can change at will, but it is not. Different systems have different requirements that cannot be changed programmatically, like keyboard shortcuts, icons, file placement, GUI metaphors and so on. If you want an application to feel native, simply design the GUI according to local customs, there is no other way.
    1. Re:Native Look and Feel by anilg · · Score: 3, Insightful

      In fact, Java does a pretty good job of keeping the GUI looking same as much as possible on different platforms. Reading through the website, I dont see any feature that makes it anything more than a Java wanaabe.

      Any body seen anything apart from this effect?

      --
      http://dilemma.gulecha.org - My philospohical short film.
    2. Re:Native Look and Feel by suv4x4 · · Score: 4, Insightful

      People should realize that this is impossible to do. This sounds like look&feel was something like a skin you can change at will, but it is not. Different systems have different requirements that cannot be changed programmatically, like keyboard shortcuts, icons, file placement, GUI metaphors and so on. If you want an application to feel native, simply design the GUI according to local customs, there is no other way.

      That's one thing (and you're totally right). And second:

      As with Java, Lina users will first install a VM specific to their platform, after which they can run binaries compiled not for their particular OS, but for the VM, which aims to hide OS-specific characteristics from the application.

      Which left me thinking... "and unlike Java.. it does what?".

      We've got Java, which has matured over the years, we've got .NET / Mono. And we got Cygwin, which allows you to use the Linux API on Windows.

      Looks like that startup has agenda to brings more of the Linux API to Windows, and thus help Linux become more mainstream as a development platform. But agenda does not business or money make. They've entered a crowded market, offering little new except impossible promises for native look and feel.

    3. Re:Native Look and Feel by dhasenan · · Score: 2, Insightful

      ---
      if (style == Style.Windows) {
            preferences_menu_item.name = "Options";
            add_menu_item(preferences_menu_item, tools_menu);
      } else {
            preferences_menu_item.name = "Preferences";
            add_menu_item(preferences_menu_item, edit_menu);
      }
      ---

      Then just use Tango icons and icon styles in your application (they look good, though they aren't colorful enough for KDE's typical style or cartoonish enough for OS X's typical style, but I doubt anyone will complain), and you can provide different icons relatively easily (since the install script has to muck about with the native OS).

      You could come up with a small library that connects keyboard shortcuts appropriately according to the current OS and window manager. It'd be relatively simple.

      You do get a performance hit, but who cares? It would add less than half a second to the startup time and would incur no cost afterward. If performance were that much of an issue, you'd be compiling natively in C or Fortran.

    4. Re:Native Look and Feel by TheRaven64 · · Score: 2, Insightful
      Not to mention when the preferences are applied. On OS X, preferences should be applied as soon as they are changed (with some minor exceptions), while on Windows you should wait until the user hits 'apply.' On OS X, preferences boxes should have no command buttons; you toggle preferences and then close the window. On Windows, they should have 'apply,' 'ok' and 'cancel.'

      That's before we get into major differences, like the fact that controls (tool bars and pallets) are tied to documents on Windows, and to applications on OS X. Not to mention the different correct behaviour when closing the last document in both systems...

      I really want to make a UI design course mandatory for everyone who claims that cross-platform GUIs are possible.

      --
      I am TheRaven on Soylent News
  8. Oh How I Wish It Were That Easy by Anonymous Coward · · Score: 5, Insightful

    "Dear user: Insert the CD. Type make all; make install. Press return and go for coffee."
    Your attempt at simplifying building from scratch amuses me. First off, you put the period in your instruction type font which I'm sure my tech inept mother would type into the console. Which would result in:

    make: *** No rule to make target `install.'. Stop.
    And how would she know to open a terminal? Would she know how to open a terminal?

    Second, what about dependencies, how does she know to read the README file or anything else to figure out what she needs to build this source. You don't exactly include all the source of all the libraries you coded with, do you? Rarely have I seen a project coded from scratch with no dependencies.

    See, the issue here isn't that she can't be instructed like a monkey to hit a button. The problem here is that if something goes wrong, she's out of luck. I mean, as it is, the concept of double clicking what you downloaded to install it was a tough one to drive home. And even now I worry about her willfully installing viruses or malware on the home computer. Because she just doesn't understand the concept so well. When you ask someone to build from the source, you're pushing them quickly into something they don't understand and it's just going to result in a bad experience. The ease of use for software is actually more important to most people than its efficiency or anything else. Why do you think Java is so popular?
    1. Re:Oh How I Wish It Were That Easy by dbcad7 · · Score: 4, Insightful
      Ok, what I gotta point out for you and whoever first brought up their mom in the whole compiling issue in the first place...

      If your mom is technically savvy enough to have created an application that is now to be compiled from source to different platforms then she obviously understands the original sentence.. and the typo... Unless she is a programming savant who creates source code not knowing what it is.

      Again.. the original poster was talking about a (developer of an app) (compiling binaries from source) (for different platforms), not an end user or your mom.

      --
      waiting for ad.doubleclick.net
    2. Re:Oh How I Wish It Were That Easy by Ravnen · · Score: 2, Insightful
      It isn't a question of whether there is a need to build from source, but rather why such a need would or wouldn't be a bad thing. In my view, requiring ordinary users to build from source would be a disaster, not only because of potential build problems which they'd have not the faintest idea how to solve, but also because it would add even more variation from one system to the next.

      One of the advantages of binary distribution on a unified, binary-distributed platform is consistency. From the application version number, it can be known precisely which machine code is running. From the OS version number, which would include update/patch levels, it can be known, at least to a large extent, which libraries will be loaded and which kernel will be involved. This means the environment is much more predictable, easier to test, easier to troubleshoot, etc.

  9. Dual licensed - wtf?! by prestwich · · Score: 4, Insightful

    From their FAQ:

          'A: LINA is dual licensed. For non-commercial users, LINA is available under the GNU General Public License, Version 2.
                  If you wish to use it commercially, please contact us to find out more about the LINA commercial license.'

    Erm I'm sorry?! You can't stop someone using a GPL licensed program for commercial use.
    Do they mean to say that if you want to sell it or do none-free changes then they will sell
    you a non-GPL license?

  10. Re:Huh? by LiquidCoooled · · Score: 5, Insightful

    Insert CD.
    Phone relative because the CD does nothing.
    Find Install and click it.
    Cancel the dialog and click the other install.
    Phone relative again and ask them why its going to take 3 hours.
    Make coffee.
    Return to computer and switch it off (thinking they were switching it on because the screen was blank)
    Ring relative and ask why its not worked.

    --
    liqbase :: faster than paper
  11. Just what we need...another VM.. by Anonymous Coward · · Score: 4, Insightful

    Imagine a world where everyone wrote software for virtual machines - the problem occurs when people write software for different virtual machines. Eg: if Pidgin was written in Java, Firefox in Mono and GNOME in Python, to run my ordinary desktop I would suffer the overhead of 2VMs and an interpreter.

    Besides, its not hard to write cross-platform C++ code.

    1. Re:Just what we need...another VM.. by master_p · · Score: 3, Insightful

      VMs should not exist. Source-code level compatibility is more than enough to make cross-platform applications. The only benefit of a VM is run-time optimizations, as the code is translated.

      VMs exist because no one dared to a make a C++ like language that guarantees source-code level compatibility in all platforms and has garbage collection.

      And the premise "write once, run everywhere" is totally flawed. If you have N architectures, you need N virtual machines. If you go the direct route (i.e. no VM), then you need N compiler back-ends. Since the virtual machine is actually a compiler back-end (only executed lazily), I see no benefit from using VMs.

  12. Re:This won't be useful for a MAJOR market segment by tuxic · · Score: 4, Insightful

    Please :)
    Are PC games crucial in every situation? I think it's naive to believe that there can't be a success for a technology just because it means it doesn't apply for demanding 3D games. I'm sure they can live without PC gamers and focus on the multi-billion dollar companies who want their applications to work seamless no matter the operating system.

    --
    "People are stupid. Persons are smart" -- Agent K, MiB.
  13. "Look and feel native to each" by jcr · · Score: 3, Insightful

    This time, for sure!

    Sorry, that claim has been bullshit for decades.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  14. write once, test everywhere by 192939495969798999 · · Score: 3, Insightful

    If you compile different versions, or if a machine automatically translates for you, that doesn't mean you don't have to test on different platforms. If you expect to have a robust product that runs on linux, windows, and mac, you have to test it on all 3. I think people are confused that this will somehow eliminate that step, so you'd save yourself some time. If it's all one source base, then you'll have tons of stuff like this:
    -if running mac, then do this fix, if running windows then do some other fix, if running linux then do some third fix
    so either your code gets very large and unweildly, or you have 3 different versions and let them branch a bit. Either has advantages and drawbacks, but neither is what VM promises in theory.

    Remember: "in theory, there's no difference between theory and practice, but in practice, there is."

    --
    stuff |
  15. Re:Huh? by alexhs · · Score: 3, Insightful


    install.sh
    ----------
    #! /bin/bash
    make && make install

    What was your point, again ? Oh yes, there is no "Click 'OK' " step, do you care ?

    --
    I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
  16. Re:This won't be useful for a MAJOR market segment by jcr · · Score: 3, Insightful

    5% of a market of hundreds of billions of dollars is meaningful, whether you think so or not.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  17. Re:Huh? by EvilRyry · · Score: 2, Insightful

    But what I don't get is how is this better than running VMware or any of the other virtualization technologies out there? The ability to run linux in a window under windows has been around for ever. Is it their ability to localize the apps gui? That's not really special either.

    The new thing about it is that is integrates the application with the host OS. Virtualization usually does not do this.

  18. Re:This won't be useful for a MAJOR market segment by bytesex · · Score: 3, Insightful

    True enough. But it's just like porn-sites and the defence industry and velcro, if you get my drift: 3D games have a tendency to produce offspring in 3D rotating multiple desktops and those quivering windows when you move them. And _that_, my friend, a user can never do without.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  19. Re:Huh? by Wdomburg · · Score: 5, Insightful
    "Dear user: Insert the CD. Type make all; make install. Press return and go for coffee."

    And come back to:

    make: *** No rule to make target `all'. Stop.
    And that's assuming the user knew enough to open a terminal and navigated to the appropriate directory, which you left out. Let's say after they got that error they look at INSTALL and discover your instructions forgot to include 'configure', and now they get:

    configure: error: Enchant library not found or too old. Use --disable-spell to build without spell plugin.
    Let's say they go ahead and disable spell-checking, even though it would be a useful feature. They type 'make install' again, like the instructions said, and get:

    cp: cannot create regular file `/usr/local/bin/foo': Permission denied
    Maybe they're not quite frustrated enough to give up just yet, and they do a google search and discover that you forgot to tell them to run as root. Hurrah! It installed! They type the application name and get

    cannot open display 0:0
    Whoops, still root. Maybe they realize this (smart user!), exit, and try running again as themselves. Oh, damn, the application installed in /usr/local and there's an old copy in /usr, so they end up launching the old copy instead. Even if that wasn't the case, most users are going to want menu entries and icons without having to set them up manually.
  20. A common newcomer mistake by dbIII · · Score: 2, Insightful

    DLL hell is a Microsoft only problem. There is no reason why you can't have more than one libc apart from a lack of disk space - it works by version numbers to avoid loading the wrong library. Your ten year old binaries will still run in most cases as long as you have the other libraries somewhere on your library path. Some distros have the old libraries neatly packaged as "lib*-compat" so you don't have to find them yourself to get an old binary to run.

  21. Re:This won't be useful for a MAJOR market segment by Darundal · · Score: 2, Insightful

    They aren't crucial in every situation, however in this one they are. Gamers are much more likely to be the relatively geeky types who have relatively geeky jobs doing relatively geeky things and making relatively geeky decisions for large masses of people. Many of those relatively geeky people with relatively geeky jobs making relatively geeky decisions for large masses of people use Windows because their games work in it, so they spend their time using/learning/tweaking/promoting Windows. However, if said relatively geeky people with relatively geeky jobs making relatively geeky decisions for large masses of people were linux users (which will happen if/when the games start rolling in) then they will spend their time using/learning/tweaking/promoting linux. The problem with LINA is it provides no incentive for development to further areas where linux itself needs to advance, all it does is promote development to areas that are traditionally linux strongpoints while at the same time removing incentive for Windows/Mac/Operating System Whatever to use linux while at the same time essentially placing a penalty on linux because using linux means that for the most part you won't be able to run programs from Windows/Mac/Operating System Whatever in a reliable fashion without some performance penalty.

  22. Re:Huh? by sortius_nod · · Score: 4, Insightful

    This is exactly why linux users get a bad wrap... wake up, seriously, if everyone was a tech guru you wouldn't have a job...

  23. For the love of God, why? by Noiser · · Score: 5, Insightful

    I can understand the hack value, but why, for the love of God, would i want to run binary Linux apps on Windows? Didn't they have anything better to waste four years on?

    There are some binary Windows apps, which could make life easier (albeit somewhat unethical in FSF terms) for Linux users, such as MS Office and IE6, and AFAIK that's what WINE is for (although i've never had the dire need to actually try it). But vice versa??

    All the FOSS Linux apps that are source portable - OpenOffice, Perl, Mozilla, SVN, Audacity etc. - already found their success on the Windows platform. Is someone weird enough to make an application which is binary-only *and* Linux-only?

    Or am i missing something?

  24. Write Once, Run Nowhere seen in market again by Antique+Geekmeister · · Score: 4, Insightful

    I'm sorry, but the number of times I've seen the "Write Once, Run Anywhere" claim made for new "paradigms" is fairly scary. There are limitiations to all of these approaches. In this case, running software in complete OS emulation mode denies access to hardware features that have not been successfully ported to the virtual environment, enforces limits of the particular underlying VM hosting operating system in fascinating ways, and absolutely punishes the performance of any disk-accessing operations.

    There are uses for virtualized environments, but they're hardly a new approach to code portability.

  25. Re:Huh? by Tickletaint · · Score: 5, Insightful

    Telling people how to fix problems fosters dependency on you. Showing them how to do it, in a manner that doesn't take years of command-line dorkdom to understand, is probably far more helpful.

    Though in this particular case, if your girlfriend's about to get a Mac anyway, maybe it doesn't matter so much. I'd be more worried about getting dumped once she realizes she doesn't need you to fix her computer anymore. :)

    --
    Make Slashdot readable! See journal.
  26. Re:Huh? by eean · · Score: 3, Insightful

    The users don't have to compile silly.

    With something like Qt, its "write once, compile three times". Distribute binaries for Linux, OS X, Windows. All with a native look and feel, using native compilers and libraries.

    Its not clear how this thing works with the GUI. Is it a new toolkit? Is it a hack of the Gtk toolkit? (I thought it was funny how the demo talks about the "native Gtk looknfeel from within what looks like KDE).

  27. Re:For some yes, for others no by that+this+is+not+und · · Score: 3, Insightful

    It is the same dilemma (sorta, actually the same dilemma 'in reverse') that badly crippled OS/2. There was a Windows-16 compatability layer in OS/2. Because of said layer, there was little motivation for developers to come out with native OS/2 ports of applications. This made OS/2 really painful to try to run when all the Win32 apps started rolling out and there was no developed 'customer base' for 32-bit OS/2 versions.

  28. Re:Huh? by morcego · · Score: 4, Insightful

    Lemme tell you a small story here.

    When MS released Windows 3 was when it started to become known in Brasil. At the time, there was a TV show called "Confissões de Adolecente" (no need to translate, since the name is not relevant). At the time, there was an episode where the main character was bitching an complaining about having to use a mouse and click on stuff. After all, if he wanted something, all he had to do before was to type the command. Now, he had to search for the icon, click on it, than click on something else etc.

    So, to translate your comment into something that really means something (and is actually true), what you mean is:

    "Do not force end-users to do something different"

    Here is Brazil we have a saying for cases like this, which roughly translates as: "If you change the color of the grass, the mule will starve to death"

    --
    morcego
  29. Re:Huh? by SanityInAnarchy · · Score: 2, Insightful

    If you can get my mom to understand that sentence, I will pay you $500.

    Believe it or not, this isn't as difficult as it's made out to be. The biggest barrier would be convincing your mother that she should know, rather than having her simply say "This is too complicated!" at the first hint that she might actually have to learn something.

    But seriously, if you give me a half hour or so with your mother, I will be able to get her to understand it, so $500 is a pretty generous offer. And I could use the money now. Want to send me her email address or something?

    It could be a very simple old idea used in an ingenious way to be a very useful tool for the masses.

    I don't think it's particularly ingenious, either.

    Like this, they aren't hiding that they're kind of copying what Java does.

    Except Java does it better. I don't even like Java, but I have to admit, it does it better.

    But, you know, if it was such an easy engineering task, why haven't you done it?

    Because it's an ugly, ugly hack -- I'd much rather do something useful, like, say, improve one of the real "compile-once, run anywhere" platforms, or improve package management to where such things aren't needed. We're already mostly there anyway -- no matter what the physical architecture, I can generally easily find a GUI package manager for my distro. If I choose the same distro on all platforms, it'll even look similar. And if I'm on something other than Linux, I simply download the binary for my OS. Even if I'm completely clueless, I can simply browse to the program's website, and it can auto-detect my OS and suggest a version to download -- Firefox does this, for example.

    Bonus: It now really does run anywhere, not just "any x86 processor". Yes, I realize you can do emulation as well as virtualization, but that's just retarded -- why would I want to lose at least 50% of the speed because your mother is too lazy to download the right version for her platform? With actual binaries, I can get true 64-bit clean versions, on x86_64 or ppc_64, or even ARM binaries... Can you imagine trying to run Linux inside an x86 emulator on a PocketPC? No wonder so many cell phones use Java instead.

    Also? Because it's already been done. Depending on the implementation, it's either called "user-mode Linux" (I am not sure if this runs on OSes other than Linux, but I imagine it'd run on OS X) or Qemu.

    Ordinarily, I wouldn't bother criticizing them, but I think what they're doing is actually harmful. I would much rather have something written in Java, or cross-platform with QT or wxwindows, than something that's x86 Linux only because someone told them x86 Linux was "compile-once, run anywhere".

    --
    Don't thank God, thank a doctor!
  30. Re:Business case hurdles by DragonWriter · · Score: 2, Insightful

    And how is the likelihood of big software houses starting to write to LINA bigger than big software houses staring writing to Mac or native Linux?


    (Almost) everyone making an application wants to be able to get to the Windows segment of the market, since that's where most of the users are. Writing to Mac or native Linux doesn't help with that, so in practice if its done at all, its often done in addition to writing to Windows, and must be justified by the additional cost.

    Writing to LINA, ideally, gets you Mac, Linux, and Windows support all at once. But its not the first platform to claim "write once, run anywhere", so how well it fulfills that promise—and what the performance is like—is going to be key.

    But, fundamentally, if it lets you target a wider market without increasing costs too much, it seems to make business sense, so if it does that well, I expect plenty of people will write to it.

  31. Huh? Storage and handling. by Anonymous Coward · · Score: 1, Insightful

    "Why are people afraid of recompiling? It is pretty painless if the source is packaged well."

    Like in Squeak for example.

  32. Stupid by boolithium · · Score: 2, Insightful

    On windows this program requires Cygwin. So yes you can run all these apps natively, as long as you first install a extraction layer. And hey I wonder if I can get Cygwin working under wine so then I can go through two extraction layers. Wait, maybe I can then install colinux in wine that pumps x output through cygwin, then I can install wine, and then get cygwin running, then I can install cygwin...

    Just write a fucking app in good c/c++ and staticly link libraries not on windows. Compile it and wohoo, a binary for windows. The only thing the least bit interesting is the gtk/qt to native api layer. That should be the library they provide developers with for ease of compiling to different OS's.

  33. Re:Huh? by cheater512 · · Score: 3, Insightful

    Considering I've never ever installed a program from a cd under Linux dont you think autoplay would be useless? :P

    I think package management is far superior to cds. For one you cant lose your package management and spend half a day looking for it.

  34. Re:Will this do what is intended? by Plaid+Phantom · · Score: 2, Insightful

    No, the choice for most people will be Windows (comes with the comp they got at Best Buy), OS X (comes with the computer they buy from Apple), and Linux (free if they bother to download and install it).

    People will often choose the path of least effort, as well.

    --
    All comments are properties and trademarks of the voices in my head. Not like I'm gonna claim them.
  35. Re:Huh? by ZorbaTHut · · Score: 3, Insightful

    Most people, I suspect, want plastic discs to install software off. It's far easier conceptually to deal with. Linux really doesn't handle that case well.

    Personally, I agree - I vastly prefer package management or online downloading. I suspect there will be some user re-training needed to get most people to understand that, however.

    --
    Breaking Into the Industry - A development log about starting a game studio.
  36. Re:Huh? by TheWanderingHermit · · Score: 4, Insightful

    I would much rather have someone using a command line

    And therein lies the problem. You would rather have them using a command line. They don't want to. When you have a GUI, you always have prompts and a safety net. You can say, "Click on the button that says 'Change Setting.'" They have an automatic double check because there is something that matches, exactly, what they're being told to do. They have limited choices because they're working from a menu or from components and when one matches what they're told to do, they have some kind of confirmation they're pressing the right button. When you say, "Now type this," then you can hit any number of snags and they know it. You can tell them what to do and they can use a single quote instead of a double one or hear the word wrong or mistype it and, from their point of view, they don't know what's going to happen if they make a mistake.

    You are much wiser than most developers I've seen post here who want to blame the uses for not knowing everything they know and you've got a good point. You and I can often move much more quickly with a console, but for users, the mere thought of having to type commands is frightening. They're looking at a blank screen with no feedback until they hit and then it could be too late.

    You've realized, though, that it isn't about what you or I want, but what the user can handle or take care of on their own. That's the problem: It's our job to give them what they can handle. That is rarely a console. With my clients, before I got my software up to the point I wanted it, I had them install RealVNC on their computer and used a tunneling program I wrote in Java so it would go through their firewalls, then had them add me, and I configured RealVNC so it would only run when they wanted to run it and so it had a strong password. (And before anyone starts screaming, I'm simplifying and leaving out discussions with their bosses and IT departments about safety.) When they had problems, I just had them run RealVNC and add me, then I could fix, in less than 5 minutes, what could take 45 minutes or more if I were telling them what to do. When I finally got my own program to where I wanted it to be, that wasn't an issue anymore since I had enough failsafes they didn't need that kind of help anymore.

  37. Re:Huh? by toddestan · · Score: 4, Insightful

    Ah, you've used Windows, I see. Installing things is much easier on pretty much every other platform (including macosx, most of the linux-based platforms, and most of the BSDs).

    What are you talking about? One of the big problems in the Windows world right now is that applications are so easy to install, that the user often has to run special software just to keep applications them from installing all by themselves!

  38. Re:Huh? by martinX · · Score: 1, Insightful

    For example, a few months back, my girlfriend wanted me to put Linux on her computer. She was saving up for a Mac, and her anti-virus had expired on Windows.

    Wanna know how to keep her and earn brownie points? Buy her the Mac.

    --
    When they came for the communists, I said "He's next door. Take him away. Goddam commies."
  39. Re:Huh? by aldousd666 · · Score: 2, Insightful

    Well, I'm not so sure I buy that whole round plastic thing :) But I think your intentions are good. I see plenty of people go online and click that little icon that says 'you must install this and ten other spyware executables, for which you cannot sue or, and you'll get spam, click ok to to play OUR version of solitaire which has prettier seashells on the cards.' Or you know, snood, which expires, and forces my mom and sister (not computer types) to learn how to uninstall it, and download a new copy every time it does. I think what people really want is a more clever use of smiley faces, now if you labeled your Plastic Discs with pretty colored smiley faces, with even more cleverly painted tongues hanging out of their squiggly mouths, you'd be able to have them run it on whatever operating system you like. They'd just learn it for the smileys. (Used to work for second graders too, way back when they'd get a scratch n sniff smiley sticker for passing what we used to call Spelling Tests. That's of course before they were illegal in the US - no I'm not even kidding about that.)

    --
    Speak for yourself.
  40. Why think Linux first instead of business first? by TheMCP · · Score: 2, Insightful

    So, let me start with my bias: I work for a tiny company that makes a programming language with interpreted environment (we're working on the compiler now) that runs on Windows, MacOS X, Linux, and Solaris, and I think AIX. (Those are the ones we've actually tried it on, it may run on others.) Our language and development environment facilitates rapid development of web applications. (And anything else you like, but web applications is applicable to this discussion.) Using our language you can write fully AJAX enabled applications (which work on IE, Netscape, Mozilla, Firefox, and Safari, and maybe others) in a Model View Controller pattern without knowing anything about Javascript, with no system dependencies, and in my opinion you can do it much faster with our tools (and be able to run it on all those OS's and browsers) than using traditional languages and APIs (and be able to run it on one OS and/or browser). Once you've written the app, our software will even serve it out (one line of code instantiates and integrates a web server!) so it can be used from various browsers running on various platforms.

    Now, knowing as I do that this is all possible - which I'm sure of because I use it every day - it's my opinion that writing software specifically to any API which is tied down to any particular OS or browser is a waste of time. Why spend your time writing software for, say, Linux, knowing that it will just have to be rewritten (or at least altered) to run on Windows and Macos and Solaris etc, when you could write it once in some cross-platform language and be able to run it everywhere and use it everywhere, like Java promised we'd be able to do once upon a time? That promise of cross-platform, cross-browser, write-once run-everywhere computing is not an impossible fantasy, it's something that's here today if you look hard enough, and those of us who develop programming languages and tools for a living should be focusing on it in our work.

    So, my point is that "thinking linux first" is indeed a bad thing: if a business person has to decide on what computing platform to use for their software solution and you make them think about linux, they'll just get annoyed because they don't want to have to think about what technology to use and why, they just want to see it happen, and use whatever they're familiar with. They want to think about their business first, and technology as little as they can get away with. The way to get businesses to adopt linux is not to make them think about it, it's to make it so easy they don't have to, and cheap while you're at it. Businesses care about two things, three if they're smart:
    1) How to make money
    2) How to spend less money
    3) How they're going to make even more money in the future

    If you can show them that linux will make them money that other OS's can't, they'll go for it. But, there's little that Linux can do that some other OS can't, so that's a poor argument.

    You can argue that linux will save money because it's free, and that's good, because businesses like not to spend money, but it's also worrying because businesses like to have someone standing behind the product. Sure, there are companies that provide support and we as geeks all know that, but that's beside the point. Where you can really win is to say that using some particular system will enable the business to be doing the kind of business they want much earlier/faster than other technologies. For example, I watched my boss show a client how they could do something with our programming language in about five lines of code that a competing vendor had told them would take a year and cost over a billion dollars, so our client became *very* interested in using my employer's language a lot more, because it would save them a lot of time and money. So, if you want Linux to get wider acceptance, figure out how using it makes common business tasks go faster and easier than using competing products, and advertise that. So far, as a computing professional my experience with linux is that i

  41. Re:Huh? by asuffield · · Score: 2, Insightful

    Except when you stumble upon something that doesn't work so easily, and casual users are told to change some text in some config files and type things that they don't know what the meaning is in the console.


    On Windows, they get told to change some text in the registry and type things they don't understand into cmd.exe. Where's the difference?