Slashdot Mirror


Ask Slashdot: What Would Happen If All Software Ran On All Platforms?

Slashdot reader dryriver writes: We live in a computing world where the OS you use -- Windows, OS X, Linux, Android, iOS, others -- often determines what software can and cannot be run on a given electronic device. (Let us pretend for a moment that emulators and other options don't exist). What if -- magically -- such a thing as as Universally Compatible Software Application were possible. Software, in other words, that is magically capable of running on any electronic device equipped with enough CPU, GPU and memory capacity to run the software in a usable way.

Example: 3D CAD software that runs on Windows 14, Playstation 7, an Android Smartphone, Nintendo's latest handheld gaming device and an Ubuntu PC in exactly the same way with no compatibility problems whatsoever occurring. What would and would not change in such a computing world?

He also asks an even more important question: will this ever be possible or feasible from a technical standpoint? So leave your best answers in the comments. Will it ever be possible to run all software on all platforms -- and what would happen if we could?

383 comments

  1. Java by Erik+Hensema · · Score: 5, Insightful

    We've already got that. It's called Java.

    --

    This is your sig. There are thousands more, but this one is yours.

    1. Re: Java by Anonymous Coward · · Score: 3, Interesting

      This is the answer I was going to post, and is our current best bet for achieving what OP wants. Now if the Java VM's were opened up and had heavy optimizations for each platform this would be good stuff. I don't see this happening though, Oracle and all..

    2. Re:Java by fisted · · Score: 1

      Java software runs on just one platform. That's far from a "Universally Compatible Software Application [...] that is magically capable of running on any electronic device equipped with enough CPU, GPU and memory capacity to run the software in a usable way".

    3. Re:Java by Anonymous Coward · · Score: 1

      Java is a platform of its own, and it's not even compatible with itself.

      I use a couple of Java-based programs, and once in a while I see changes like "added support for Java 8", followed a couple of months later by "removed support for Java 7". Hopefully the different programs do that at roughly the same time, when one makes the "removed support for Java 7" change before another makes the "added support for Java 8" change, things get really hairy.

    4. Re: Java by Anonymous Coward · · Score: 0

      Who needs optimizations in 2017 ?

    5. Re:Java by Wootery · · Score: 4, Interesting

      I was thinking the web. Gmail is the same on every browser, every OS.

      In my opinion though Java, and multi-platform frameworks like Qt, do a better job than the cynics are willing to admit.

    6. Re:Java by The_Revelation · · Score: 1

      I would agree, except that Java may fall into 'emulation' categories being that code fundamentally compiles to bytecode and is emulate by the runtime environment, thus java runtimes need to be developed for all platforms that need to run Java.

    7. Re:Java by TheRaven64 · · Score: 4, Insightful

      And Java is also a good example of why it's a terrible idea. If your software runs on all platforms then it's limited to supporting the intersection of all of the features that those platforms support. For GUI software (if you want to be running exactly the same software on all platforms) it's also limited to respecting the human interface guidelines of at most one platform. This makes it particularly jarring to use on others. It's easy to fix the superficial things (dialog box buttons in the native order, menu in the correct location, and so on), but a lot of more subtle things (modal vs non-modal dialog boxes, apply settings as they're changed vs okay / cancel buttons and so on) are much harder to automatically translate.

      --
      I am TheRaven on Soylent News
    8. Re:Java by Pieroxy · · Score: 2

      Right. Try to run a Java program on iOS.

      While it's a step on the right direction, it's far from being universal.

    9. Re:Java by Anonymous Coward · · Score: 1

      Wait! - Can I run Mass Effect Andromeda with high FPS, Cubase 9 with low latency or Fusion 360 fast enough on Java?
      No? Then it is useless as a universal platform. And this are just a few examples.

      An universal platform should be able to do this things. I do not say Java is useless, but it's not the solution to the given problem.

    10. Re: Java by dougdonovan · · Score: 1

      java 9 in julyish.

    11. Re: Java by Anonymous Coward · · Score: 0

      that was my first thought.

    12. Re:Java by gweihir · · Score: 1

      No, it is not. Java does not have a working file-system abstraction that eliminates differences. If you need performance, platforms also behave vastly different. There are other issues.

      Without a good implementation of the UNIX API on the other platforms this is not going to happen. Even Java would need that for good cross-platform capabilities. And of course, there are entirely brain-dead things on some platforms, like Windows filesystem being case-aware but not case-sensitive. These can probably not be fixed and will always be a problem.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    13. Re:Java by Anonymous Coward · · Score: 0

      Same with C for that matter. You compile it on your platform of choice, and it runs. This includes GUI sw - use on of them multi-platform GUI libraries.

      Java is slow, not a good solution for any platform.

    14. Re:Java by jblues · · Score: 2

      If you want to run a Java program on iOS you need to jailbreak your phone first, because there is no supported and endorsed Java Virtual Machine for the platform. Early Apple terms and conditions prohibited running an interpreter, except for JavaScript in web views. Not sure where there terms and conditions are at now. Haven't tried for a while, so I'm not sure how stable these JVMs for iOS are. Even if they're rock solid, most folks don't jailbreak their iPhones, so there's not much of an audience to run them. Specialized uses perhaps.

      As an alternative, for a while there was RoboVM which, rather than using an interpreter compiled to machine language using llvm. This allowed most Java programs to work, except those that use runtime byte-code instrumentation, where a new class is generated on the fly and emitted from the classloader. Something that is useful for implementing certain kinds of features, like proxying concrete classes to weave in AOP and so on.

      RoboVM was a really fun project, however they were acquired by Xamarin, shortly after Xamarin were acquired by Microsoft, and consequently shut down. No statement was made, but it was presumably because Xamarin fills the same niche, and supporting a competing solution was not considered to expand the enough to offset the investment.

      --
      If it acquires resources on instantiation like a duck, then its a shared_ptr<Duck>
    15. Re:Java by Anonymous Coward · · Score: 0

      and is such a failure."Write Once, Run Anywhere" my ass. I worked a call center that port the main software from Linux to Windows and it was a FUCKING NIGHTMARE!

    16. Re:Java by 605dave · · Score: 4, Insightful

      That's why it's called Write Once, Debug Everywhere!

      I was involved in a major open source project using a cross platform solution, XULrunner. I have also worked with Java apps for many years. Neither has made me want to give up native solutions. All the little details you mention are why these things don't work. Well, up until now. You need a cross platform language and a universal API as well. And although you may get the languages, I've never seen the API

      --
      Be kind, for everyone you meet is fighting a difficult battle. - Plato
    17. Re: Java by Anonymous Coward · · Score: 0

      Also a terrible language that forces you to use horrible anti-patterns to overcome its shortcomings.

    18. Re: Java by Anonymous Coward · · Score: 1

      Java is not the answer. This question assumes that every computer has a touch screen and accepts voice input over a microphone, but that assumption is false. We will always have curses and a console. We will always have a mouse of some sort, such as a mouse pad or a Logitech type of mouse, and a real keyboard. There will always be a type of single board computer and/or embedded computer. There will always be an equivalent of a Raspberry Pi or an Arduino. These devices will have to accept their input via voice over a microphone. Not so. There will always be analog input and interrupt signals on certain types of computers. There is no such thing as a universal app. Some signals will be digital and others will be analog. Not all signals will be the same. Not all screens will be the same. Some devices will not have any human input or screen. There will never be a universal computer running universal apps.

    19. Re:Java by l20502 · · Score: 2

      it's also limited to respecting the human interface guidelines of at most one platform

      At least it can't be worse than Gnome3 or windows 8/10

    20. Re: Java by Anonymous Coward · · Score: 0

      A human being is a universal computer that runs all apps so physically there is no reason a universal digital or quantum computer couldn't exist.

    21. Re:Java by cdrudge · · Score: 1

      I was thinking the web. Gmail is the same on every browser, every OS.

      But it's not. Gmail on Chrome allows you to drag and drop attachments to the desktop. FF and IE on Windows don't support that feature. I'm sure there are many other little things that aren't part of the core functionality that are different. It was just one example that disproved that they are all the same.

      Different browsers support different features, and that's not even before considering all the CSS styling that is just slightly different between browsers that get to be accounted for. Even if you allow for close enough appearance and graceful degradation of unsupported features, there's still going to be things that just aren't the same across all platforms on the web.

    22. Re:Java by StormReaver · · Score: 3, Interesting

      I'm just going to address the Java aspect of your posting.

      That's why it's called Write Once, Debug Everywhere!

      I think this is just an attempt at humor, as it does not in any way, shape, or form reflect my experiences in my 18 years of Java programming. Native programming is: write once, debug forever, write again, debug forever again, ad-naseum. Switch platforms, and repeat. I've been doing this for 32 years, and the experience hasn't improved much over that time.

      Neither has made me want to give up native solutions.

      Java + Netbeans has been such a good experience for me that I cringe whenever I think about doing something natively. Whether it's Windows* (which is so especially cringe-worthy, there is no exaggeration in any language, human, computer, or alien that can adequately convey it) or Linux, programming in Java is several orders of magnitude more pleasant.

      My Java/Swing software runs on both Linux and Windows with no additional effort. By far, the largest pain in the ass in distributing my Java programs is dealing with the brain disease that is Java's minimum and maximum memory usage. This exists to reign in applet memory issues, and is completely and utterly retarded for desktop software. Aside from that, write once, run anywhere has been an apt description of my process.

      Native programming has exactly two benefits over Java:

      1) Raw speed. For speed critical apps, native programs usually win by significant margins. However, most programs are not bound by speed requirements. Most programs spend most of their time waiting. And Java can wait just as fast as a native program. And for *most* application needs, the speed difference is negligible.

      2) Special needs. Java supports the intersection of the capabilities of all the platforms it supports. Things like scanning, though, are not standardized across platforms to the point that Sun/Oracle want to support it. Most of these things, though, are addressable far more easily than Oracle would like to admit. So most of the time, it's not a significant issue.

      * KDE comes close, though, as the enormous number of hoops that must be jumped through to get even a simple KDE development environment in place is quite unpleasant.

    23. Re:Java by zifn4b · · Score: 1

      We've already got that. It's called Java.

      Java only represents a fraction of software. Microsoft .NET is essentially the Microsoft flavor of java and it only represents a fraction of software. Let's review the question again: what if ALL software ran on ALL platforms. I think the answer to that is Microsoft would go out of business or at the very least they would lose a large chunk of their stock value and revenue.

      --
      We'll make great pets
    24. Re:Java by AmiMoJo · · Score: 2, Interesting

      Sometimes less is better though. Take web apps, the refusal by other browsers to adopt batshit stuff like ActiveX, or one major vendor dropping support for some technology that is used to spy on users, benefits everyone.

      Even more interesting is that people will happily trade usability for convenience. A lot of web apps are shitty, they break if you use the back button, the UI is entirely custom and ignores all guidelines, but since the barrier to entry is low (no need to install anything or wait) people use them.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    25. Re:Java by zifn4b · · Score: 1

      And Java is also a good example of why it's a terrible idea. If your software runs on all platforms then it's limited to supporting the intersection of all of the features that those platforms support.

      The question is more abstract than that. Why is it that when you contemplate the idea of ALL software running on ALL platforms you immediately think something like "Well, in order to do that, we have to have this platform where everything compiles down into CPU architecture agnostic byte code where at run-time it would JIT compile into the appropriate machine language code that can be run on the CPU by having different versions of that run-time for each CPU architecture." It's also interesting that you think of Java instead of .NET or some other scripting language that uses a virtual machine construct. You might claim that's the only reasonable type of solution to this type of problem but the question is more abstract than that. It's a thought experiment. Whether it can be done pragmatically is not the question. We're supposed to imagine the situation and think about what that would mean for the ecosystem.

      --
      We'll make great pets
    26. Re:Java by freak0fnature · · Score: 2

      You still buy into that myth that Java is slow?

    27. Re:Java by iampiti · · Score: 1

      Yeah, you can't and that ties with what I was going to say about this topic: Technical limitations are the least of your worries. With enough work they could be overcome but the problem is many of the mentioned OS are owned by companies and usually they're interested in having exclusive software that only runs on their OS. That's the case for Windows, OS X, iOS and Android and more so on the consoles where exclusive games are one of the most important features to get people to buy that console. Linux and other open source OS would be the exception since there aren't interests in having exclusive software there.
      TL;dr : Technical problems can be overcome but propietary OS vendors want exclusive software

    28. Re:Java by TheRaven64 · · Score: 1

      The grandparent brought up Java, not me. There are a lot of attempts at cross-platform UIs, including ones that only provide source compatibility and require that you recompile for each target. They all suck for the reasons that I highlighted. The only good cross-platform software has a shared core of code and then customises the UI for each target platform. In a lot of desktop software, the UI is a sufficiently large part of the total codebase that this amounts to an almost total rewrite.

      --
      I am TheRaven on Soylent News
    29. Re:Java by Anonymous Coward · · Score: 0

      Really now?

      The same Java where your code won't work from JVM to JVM versions, JVM types, same JVM version on different platforms, Java EE versus Java SE, and so on?

      Tell me how this "universal language" is so great that when I use an older appliance in the server room, I have to have a dedicated virtual machine with just the right JVM version on it, because anything newer or older will not work.

      Don't forget the performance implications. Anyone remember how Java applets would hang or crash browsers, where you knew one was loading because everything hit a screeching halt?

      Or how about the server side, where the single point of failure winds up being Java containers, be it Drupal, WebLogic, WebSphere, where one has to create cronjobs to down the container, clean up the mess in the filesystem that it shat, then restart it. If you don't do this, you will have nasty crashes, performance goes through the floor, or freezes in production.

      When Sun owned Java, it had promise. It is all but worthless now. On the server side, there are other languages which don't require large, RAM hogging, crash-prone application servers. On the client side, we have HTML5. There is no real need for Java these days, as it doesn't do anything useful.

      Only exception is Android, but the problem there is that to deal with Java's performance degradation with every instruction translated between Java and the ARM machine code, it takes twice as much CPU for an Android app to do the same thing as an app written in Objective-C and running natively in a jail on iOS.

    30. Re:Java by Anonymous Coward · · Score: 0

      And of course, there are entirely brain-dead things on some platforms, like Windows filesystem being case-aware but not case-sensitive.

      That's not restricted to Windows, I'm afraid. OSX has HFS+ in four different modes: !journaled, case-insensitive; !journaled, case-sensitive; journaled, case-insensitive; journaled, case-sensitive. Things like Steam will refuse to install if you try to target a case-sensitive file system... go figure! (ref: https://support.steampowered.c...)

    31. Re: Java by Joce640k · · Score: 1

      Java? LOL! Good luck with that.

      I'm currently writing a 3D CAD platform that runs on all devices (Windows, Mac, Android, iOS) and it isn't using Java.

      --
      No sig today...
    32. Re: Java by Anonymous Coward · · Score: 0

      Nope. Nobody thinks and expects ir to be possible to create a platform with infinite hardware resources. The op is clearly asking about standardisation of software so that incompatible hardware and operating systems doesn't become a barrier in order to run it.

    33. Re:Java by JoeMerchant · · Score: 1

      Qt + target compilers isn't far behind, and is pretty far ahead of Java in terms of the quality of products developed (when we're talking about bigger, more complex applications like CAD programs, etc.)

    34. Re: Java by JoeMerchant · · Score: 1

      The Java VMs have been waiting for "Heavy optimizations" since 2001. Still on the platform, waiting for a train that will never come.

    35. Re:Java by JoeMerchant · · Score: 1

      The API approach taken by Qt gets this somewhat better than Java. Setting up Qt support in a new environment is quite a pain, but once it's done, you get executables that actually run just about the same in multiple environments. Java, I'm always having to tweak the JVM on the target machine - wrong version of this, missing that, outdated, no longer supported, blocked for security concerns, etc.

    36. Re:Java by JoeMerchant · · Score: 1

      iOS intentionally poisons the well for "unblessed" development environments. It's one of the things I like the least about the whole ecosystem.

    37. Re:Java by JoeMerchant · · Score: 1

      I think you got the list order wrong, IMO it gets worse as you go: Android, Windows, OS X, iOS.

    38. Re: Java by Anonymous Coward · · Score: 0

      With most of those browsers you do get a consistent experience independent of operating system or computer hardware.

      Java is faster and support more software than any of those browsers.

      But we do see the same results among users that are content with what they can do in their browser as we see among java users. For example ChromeOS has been a commercial success. There are now ARM laptops who are hard to get because they can't make them fast enough to meet the demand. Web mail and office products are important for this development.

    39. Re:Java by gtall · · Score: 1

      Yeah, but that is like saying if pigs had wings, they could fly. There is no way to corral all software to run on all platforms. The underlying different systems would make such an endeavor too expensive even if it could be done. Just take the differences in file systems. There's no way different manufacturers will standardize on one simply because they have too much invested in their own.

      Ah, but you say, we'll build a common abstraction. Fine, go ahead and find no one wants to use it because it doesn't do what they want. And it isn't even clear such a common abstraction is possible. And this is only one issue, there are a few dozens more forcing decisions on what features to implement, what abstractions to use, how to get agreement on those abstractions.

      The entire question is without merit.

    40. Re:Java by sh00z · · Score: 1

      Seriously, did nobody see the implied sarcasm in the original answer? When Java was introduced, it was HEAVILY touted as a "write once, run everywhere" solution to all software problems. Seeing what it has actually become is the answer that shows how silly the question really is.

    41. Re:Java by Anonymous Coward · · Score: 0

      This exists to reign in applet memory issues

      REIN. The word in this context is spelled R-E-I-N, like the reins on a horse.

      I'm halfway convinced that Slashdot propagates a communicable disease that renders posters unable to spell the words in this particular phrase properly, given how often I see it misspelled.

    42. Re:Java by 605dave · · Score: 1

      I haven't worked with QT yet on a project, but I have seen apps that use it that don't seem to fall into the traditional traps of that approach. What we learned on the XULrunner project was that we ended up with interfaces on several platforms that were not familiar to any normal user of that platform. Users crave consistency, and if your app looks different than every other then they will shy away. If something like QT allows you to use native widgets and UI then it would be a better solution to what I have used.

      --
      Be kind, for everyone you meet is fighting a difficult battle. - Plato
    43. Re:Java by Anonymous Coward · · Score: 0

      Different browsers support different features, and that's not even before considering all the CSS styling that is just slightly different between browsers that get to be accounted for. Even if you allow for close enough appearance and graceful degradation of unsupported features, there's still going to be things that just aren't the same across all platforms on the web.

      That's the thing that gets me with web developers. There is a cult-like chant that web applications are cross-platform for free, because they perpetuate the lie that the only unit of platform is the OS, when in fact the browser is the platform, and there is a non-trivial amount of effort to get things working the same on multiple browsers for any non-toy web application.

    44. Re: Java by Anonymous Coward · · Score: 0

      So it will run on my Palm III? How about on my Mac SE/30?

      Or to give you an easier target, my Kindle Keyboard 3G.

    45. Re: Java by Anonymous Coward · · Score: 0

      Uhm what? Are you still using a Java from 2001. If you don't need the equal to native performance of the current available versions you should still get one for the security and stability fixes.

    46. Re:Java by leonbev · · Score: 1

      I remember when people promised that Java was the universal solution to interoperability back in 1998... it didn't exactly work out as planned.

      Hell, many modern desktop browsers like Chrome and Edge don't even offer a Java plug-in anymore because it's a prime way to get yourself infected with malware if you're running an older version. I'm not sure if any modern mobile browsers support it anymore.

    47. Re:Java by Lemmeoutada+Collecti · · Score: 1

      I read through this whole thread and there is a common theme: desktop and mobile. I think the concept of all platforms includes washing machines, toasters, Pi, Arduino, door locks, security panels, smoke detectors, etc. When I look at it that way, I see more than the monitor/keyboard/mouse/monitor(s) setup of a desktop, or the touch/screed/sensors interface of a smartphone.

      How would a shopping program work? Could it run in my pantry, refrigerator, washing machine, garage, or anywhere I use consumables? Would each of these be able to communicate so that I can view my shopping list at any time? Would they work with my printer? What about my note-taking program?

      Even more, could they send that list to my favorite stores so all I have to do when I arrive is choose perishables like meat and vegetables? Is the store running a scaled up version of the same software? Or maybe running an instance of the software for each customer in a VM?

      I imagine a world trending toward Futurama, where everything is a robot of some type, albeit not AI. They can all communicate and take care of my needs mostly without my input. My vacuum knows when to go to work, the floor tells it about the traffic. Other sensors in the floor let the wet cleaner know to clean up a spill. The refrigerator makes sure to stock itself with my favorite drinks, so that they are cold and ready whenever I want one. And since they can all run the same software, I can play Upset Ornithoids on all of them without losing my high score, or take a note and know it will be wherever I am.

      It's not about how we can program any one class of device, it's about how we can program all devices at once.

      --

      You can have it fast, accurate, or pretty. Pick any 2.
    48. Re:Java by evolutionary · · Score: 1

      I beg to differ. If the architecture of all OS's matched in a standardized way (Like say, Debian based distros, or RedHat based distros) it would be FAR less of an issue. HTML hasn't come to a standstill from all our different browsers because they all adhere to a standard. Only one Browser really fails at this (just like the OS)..you all know who that is:MS. They set back HTML/Javascript back at least 7 years with their VBScript, JScript and other MS only crap. Even theirweb scripting language, ASP 1-3.0, was a disaster.(Ask anyone who had to write using that platform..) Their OS I feel is also setting us back in many ways. But with Android and web based application a lot of this will be academic .Most servers in the business word are using Linux so we are getting there. Slowly (due to MS trying to win a desktop battle their will eventually fail due to the changing nature of the "Desktop") but it is happening. Let's all watch! :D

      --
      "Imagination is more important than knowledge" - Einstein
    49. Re: Java by Anonymous Coward · · Score: 0

      What has it really become? My java 5, 6, 7 and 8 code still compiles once and run everywhere. Unless I use third party native code like OpenGL support I never have any problems running pure Java code. Of course to make use of the features in newer versions of Java I must either rewrite the code or make use of a distributed model. But I never needed to do that to run the same code. There are even a Java tool that can convert java binaries between different versions but I never needed that.

    50. Re: Java by mark-t · · Score: 1

      Is there a reason other that forgtfulness or snobbery that you didn't mention Linux?

    51. Re:Java by mark-t · · Score: 2

      I have been programming in Java since 1.3, and I do not know why so many people here say Java isn't portable.... Every piece of software I have ever written for it has worked on *ALL* platforms for which a j2se runtime of at least the level which was used in development existed, and has continued to work just as well when running under a more recent j2se runtimes.

    52. Re: Java by Joce640k · · Score: 1

      Will Java?

      --
      No sig today...
    53. Re:Java by Anonymous Coward · · Score: 0

      > My Java/Swing software runs on both Linux and Windows with no additional effort.

      So does my Qt code, except for changing the target setting and compiling once more. And my eyes don't hurt from looking at it. Just thinking of UIs like that of josm, when a web UI beats visual and usability hands-down, something is seriously wrong.
      Maybe you have managed to write the one magical Java UI that doesn't trigger massive bursts of pain and hate while using it? I doubt it though.

      > However, most programs are not bound by speed requirements. Most programs spend most of their time waiting.

      Brought to you by the same kind of person that created text editors that can't keep up with typing. "Hey, a word processor spends 99% idle, so sure it is ok for processing a keystroke to take 1 second instead of 10 milliseconds!".
      I don't know where you find all those batch-processing programs that don't need to process a lot of data, because that's pretty much the only case that doesn't need speed.
      Funnily, the people building Android devices seem closest to getting it (though not always successful at solving it, not surprising given how challenging Android makes fixing this). If responding to input takes more than 1/60th (preferably) to 1/30th of a second for the whole processing from input to actual display it's too slow.

      > KDE comes close, though, as the enormous number of hoops that must be jumped through to get even a simple KDE development environment in place is quite unpleasant.

      WTF are you doing? Check out the code, run cmake, run make. All I had to do the last time I tried. Well, ok, obviously installing -dev packages for any dependencies, but that applies to any software, and in contrast to most Java applications the dependencies usually are all available as distribution packages.

    54. Re: Java by Joce640k · · Score: 1

      Yeah, I forgot Linux, sorry. No reason it won't work there too but I don't have a Linux machine to develop on ATM.

      --
      No sig today...
    55. Re:Java by mark-t · · Score: 1

      Java is slow, but if the intended target machine that it is running on is fast enough, then it might still be good enough for all practical purposes for given applications. Given that, at least in my experience, software can often be developed in Java in better than half time that it seems to take to develop native software of the same complexity, this speed of development advantage can often be a sufficient reason to go with Java even if runtime speed is compromised.

    56. Re: Java by Anonymous Coward · · Score: 1

      I am not a web developer and yes crossbrowser support is a problem. But the op is asking for cross platform which isn't a problem. Chrome/Chromium exists for various platform and i don't know any way it works different on different platforms. Same goes for Firefox. They are both two distinct multi platform software tools. Yes Firefox and Chrome aren't fully compatible but that's not what the OP is asking for.

      Web applications are usually not very user friendly. They are slow and hogs resources. And they have a high development cost. But they are multi platform. But not necessarily milti browser which are a whole different issue.

    57. Re:Java by 605dave · · Score: 1

      Well yes, it was an attempt at humor...

      And I appreciate the detailed perspective. I don't have your history and will take you at your word that in some cases the Java platform is a good solution for devs. What you did not address is the user experience. Which is what I believe is the achilles heal of most cross platform solutions. I've never run into a Java UI that I enjoyed. This is also not to mention the security exploits that seem to pop up with great regularity. Don't take my word for it.

      http://www.macworld.com/articl...

      --
      Be kind, for everyone you meet is fighting a difficult battle. - Plato
    58. Re:Java by TheRaven64 · · Score: 1

      The downside is that Qt apps on macOS are hideous. It took them 10 years to get the key bindings for text fields to behave the same way as the rest of the system. They still end up with modal interfaces that don't fit at all with the rest of the system, use tabbed interfaces that don't fit with anything else on the system, and so on. They look and feel nothing like other macOS applications.

      --
      I am TheRaven on Soylent News
    59. Re:Java by andrewa · · Score: 1

      I don't know if I've ever seen comments so long that they require footnotes.

      --
      :(){ :|:& };:
    60. Re:Java by Anonymous Coward · · Score: 0

      That has nothing on the number of pedants here stomping their feet. Correct if you must but move on without the banal commentary. Please and thank you.

    61. Re:Java by JWW · · Score: 1

      That depends on what you call a platform.

      Java is indeed capable of running the very same code on many of the OSes mentioned.

    62. Re:Java by JoeMerchant · · Score: 1

      There's a balance to strike between "looking and feeling" like a macOS application and "write once, run everywhere." If your app has too much of a macOS look and feel to it, it will either feel out of place on other OSs, or need significant designer rework for the other platforms and then require double development, testing and maintenance. Qt could do a little better with OSX implementation, but at some point it's like trying to make RPN calculator users happy with conventional calculator interfaces - just ain't going to happen.

    63. Re: Java by Anonymous Coward · · Score: 0

      Slow for anything significant, yes.
      High-efficiency is, and never has been, one of Java's attractions.

      Good luck running anything not Minecraft levels of shit.
      Java + intense graphics is a no-go.
      The headaches it causes, not to mention the hacky shit to get graphics actually working cross-platform, simply not worth the effort when it is vastly simpler to cross-compile the damn project natively.
      This isn't even getting in to the horrific memory management Java has. That heap of shit is still a constant headache for any huge Java project. Minecraft, again, being another good example where memory operations have scaled near-exponentially that it has made it impossible to play on older machines. (Used to run on netbooks at 60fps no struggle)
      The backend changes to the game engine changed the world storage in to larger regions to save disk hits, but Java memory limits prevent you from going much further. But the overhead on the Java end is through the damn roof.
      Minecraft can't run properly unless you give Java double-digit GB RAM exclusively.
      Meanwhile the NOT-JAVA version runs on vastly less resources considerably faster. (With most of the same game engine, just some missing block types and minor feature changes)

      So, no, Java is not all there. Good for bog standard programs, but anything intense? LOL NOPE.

    64. Re:Java by iampiti · · Score: 1

      I didn't intend to put any order in that list

    65. Re:Java by TheRaven64 · · Score: 1

      Which is precisely why cross-platform GUI applications don't work as a concept.

      --
      I am TheRaven on Soylent News
    66. Re:Java by squiggleslash · · Score: 1

      Absolutely no reason why Mass Effect type games shouldn't run at full speed if written in a JVM or CLR compatible language, as long as the platform supports mid-level (think OpenGL or DirectX) graphics APIs and the execution environment precompiles the code. Java is thought of as slow, but that's largely because of implementation issues, especially the user interface frameworks.

      To put in context, back when Jake 2 (the Java version of Quake 2) came out, I found - on relatively low end hardware - it had pretty much identical framerates to its C++ predecessor.

      --
      You are not alone. This is not normal. None of this is normal.
    67. Re:Java by K.+S.+Kyosuke · · Score: 1

      It was called "Smalltalk" before.

      --
      Ezekiel 23:20
    68. Re:Java by K.+S.+Kyosuke · · Score: 1

      At least you should be able to run portable application kernels. User interfaces can vary. Some of these interfaces may often even be just APIs for other programs, after all.

      --
      Ezekiel 23:20
    69. Re: Java by Anonymous Coward · · Score: 0

      Pushing that logic slightly more I would say VMware.

      Instead of Java VM running on Windows/Linux, I would have Linux/Windows VM running on Windows/Linux etc

    70. Re:Java by squiggleslash · · Score: 3, Interesting

      Multiple reasons:

      1. As your follow-up sentence implies, many people have no idea what Java is or how it's supposed to be used - witness the confusion that comes up in every Slashdot article mentioning Java where people are convinced it's an alternative to Flash.

      2. The language itself is extremely bureaucratic, which puts off many developers. Ease of use is critical in getting a language mass adoption.

      3. It bundled a single language, and VM, together, coupling it with a small set of libraries designed for different environments. The reliance on a single language means developers support or do not support it based upon their view of the language, not the underlying platform. .NET has done a much better job here, and I think it's only people's mistrust of Microsoft that's holding the latter back. .NET is certainly most people's first choice for developing on Windows.

      (3.1. To be clear, .NET has done a better job on creating an environment not dependent upon the whims of developers. .NET's failure to standardize a cross platform UI framework prevents that from being a complete rival to Java when it comes to being a cross platform application distribution system. That said, cross platform UIs... we're still waiting on someone to create a real, context-sensitive, cross platform UI framework in any platform, and no, QT isn't it.)

      --
      You are not alone. This is not normal. None of this is normal.
    71. Re:Java by K.+S.+Kyosuke · · Score: 1

      The absence of "embeddable" compound types appears particularly painful in Java, and is something no amount of implementation improvements will fix. It's how the language works.

      --
      Ezekiel 23:20
    72. Re: Java by Anonymous Coward · · Score: 0

      I suppose you don't currently have a usb drive either... cough...distrowatch...cough

    73. Re: Java by K.+S.+Kyosuke · · Score: 1

      That was called VM/370, wasn't it?

      --
      Ezekiel 23:20
    74. Re: Java by Anonymous Coward · · Score: 0

      Good luck with that too ;)

      You're gonna need it ... just sayin

    75. Re: Java by Anonymous Coward · · Score: 0

      Java? LOL! Good luck with that.

      I'm currently writing a 3D CAD platform that runs on all devices (Windows, Mac, Android, iOS) and it isn't using Java.

      You forgot the "others" category.

    76. Re: Java by Anonymous Coward · · Score: 0

      Ok I'll bite. How the fuck are you writing anything that runs on Android without using Java?

    77. Re: Java by Anonymous Coward · · Score: 0

      > I'm currently writing a 3D CAD platform that runs on all devices (Windows, Mac, Android, iOS)

      Huh? None of those are devices. :-?

    78. Re: Java by Anonymous Coward · · Score: 0

      They're using xamarin as the foundation of visual studio for other oses, like mac.

    79. Re:Java by tlhIngan · · Score: 1

      That's why it's called Write Once, Debug Everywhere!

      I was involved in a major open source project using a cross platform solution, XULrunner. I have also worked with Java apps for many years. Neither has made me want to give up native solutions. All the little details you mention are why these things don't work. Well, up until now. You need a cross platform language and a universal API as well. And although you may get the languages, I've never seen the API

      I know you're ashamed of it, given recent versions being worse and worse, but really, you could just say you worked at Mozilla on Firefox (or Thunderbird, back in the day).

      XULrunner is basically the runtime behind both those projects and used little else (nevermind it's supposed to be replaced, too).

      Anyhow, these days we have limited forms for this. We do have run-anywhere languages (Java, .NET), but we also have the ability to run programs on other platforms. though emulation. Not fast, but it's been done.

      Games is the big one, since emulators have basically let you run every older console game on any machine these days, and old PC games use DOSBox, which runs on practically every platform too.

      So we do have limited forms already. And even some Windows apps support running under WINE (though limited to x86 compatibles)

    80. Re:Java by quintus_horatius · · Score: 1

      I don't know if I've ever seen comments so long that they require footnotes.

      You must be new here

    81. Re:Java by JoeMerchant · · Score: 1

      There are shades of grey, and the Apple is getting blacker every year.

    82. Re:Java by JoeMerchant · · Score: 0

      Or, someday, the RPN users succumb to market pressure and just acquiesce. Not saying that's where OS-X is going, just that it's where RPN, Newton, OS-2, DVORAK, BetaMax, and a whole host of "superior" systems have gone before.

    83. Re:Java by fisted · · Score: 2

      The platform is obviously the JVM, and if you think the JVM a) runs on every OS and/or b) the source code for the Windows JVM is identical to the source code of the Linux JVM, then we should really get together and discuss these nice bridges I'm selling.

    84. Re:Java by Eravnrekaree · · Score: 1

      Not necessarily. A good toolkit would emulate what the OS does not support as well as possible. For anything beyond that, applications could be written to adaptively live without certain features only when not available. But given a good toolkit, that should be unnecessary.

    85. Re:Java by 605dave · · Score: 1

      Sorry, I have never worked for Mozilla.

      --
      Be kind, for everyone you meet is fighting a difficult battle. - Plato
    86. Re:Java by MightyMartian · · Score: 2

      The chief complaints are incompatibilities between versions, but that's a pretty damned silly complaint. I too have never had an issue with Java applications I've developed working on different platforms. That's not to say I'm the biggest fan of the Java language, but it works as advertised, at least in every case where I've used it.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    87. Re:Java by MightyMartian · · Score: 1

      I think you've missed your cognitive therapy session, my fine Aspergers friend. Believe it or not, on a web forum, most people well and truly don't give a fuck about spelling mistakes.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    88. Re:Java by andrewa · · Score: 1

      Yep, my ID shows that...

      --
      :(){ :|:& };:
    89. Re:Java by Immerman · · Score: 1

      What does the source code of the JVM have to do with anything? The JVM *is* the platform, and obviously has to be tuned to the specific hardware and OS if you want decent performance.

      If you want "all" software to be able to run on any platform you really only have two choices.
      1) Distribute every program in a sort of "universal format" (possibly compiled on install) that includes everything needed to be compatible with every platform, all the alternate OS library tie-ins, etc.
      2) Distribute software that runs on a virtual abstraction layer that hides the details of the hardware and OS behind a universal interface.

      Java, or something like it, enables 2. Obviously there's still lots of room for improvement.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    90. Re:Java by laie_techie · · Score: 1

      The platform is obviously the JVM, and if you think the JVM a) runs on every OS and/or b) the source code for the Windows JVM is identical to the source code of the Linux JVM, then we should really get together and discuss these nice bridges I'm selling.

      The only way to run the same binary on all platforms (where platform means CPU / OS combination) mentioned is to compile into byte code and have an interpreter for each platform. The JVM for x86_64 Windows cannot be code identical to the JVM for linux running on ARM; the operating systems simply don't understand the same binary instructions. MIPS and x86 have different register sets. Something must translate from the common byte code to machine specific instructions. Nothing can change that.

    91. Re: Java by Anonymous Coward · · Score: 0

      actually, it's called JavaScript

    92. Re:Java by Immerman · · Score: 1

      Actually don't modern JVMs largely rely on JIT or install-time compiling? That largely converts Java bytecode from a binary for an emulated machine to partially-compiled intermediate "universal" object code.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    93. Re: Java by Anonymous Coward · · Score: 0

      Java isn't an emulator. Sun had a product that emulated x86 processors with a subset of windows for their Sparc processor and SunOS operating system it sucked. So they designed a system with an intermediate binary language designed to be translated into any modern system. It's not possible to create a processor that run Java code directly. Because it needs further compilation in order to be executable.

      The fact that Java has been slow is nothing compared to any emulator you can find. They are all much slower. No the reason is that the java compiler took years to make as good as their own C++ compiler. The commercial JRocket compiler was well known for producing native (C++) performance. A few years ago Oracle purchased that compiler and released it as part of OpenJDK as well as their own proprietary Oracke JDK and JDE. They call it Hotspot. Don't confuse this with Sun/Oracles previous commercial Hotspot compiler that produced significantly slower code than JRocket and the new Hotspot.

    94. Re:Java by PMuse · · Score: 1

      And Java is also a good example of why it's a terrible idea.

      So are cars on the road.

      The roads dictate that cars can't be too big/heavy, too long, too light/fragile, too fast, too slow, can't use uncoated steel wheels, etc. And the cars dictate that the road mustn't be too fragile, too steep, too slippery, too narrow, made of rails, mustn't be a series of tubes, etc.

      The result has been that the pace of innovation in ground transport has been glacial. So what if all cars operate on all roads? Great! Why are we still using cars? Or roads?

      --
      "We reject as false the choice between our safety and our ideals." --The American President (20.1.2009)
    95. Re: Java by Anonymous Coward · · Score: 0

      By using C or C++.

    96. Re:Java by fisted · · Score: 1

      What does the source code of the JVM have to do with anything?

      Well he said java would run the very same code "on many OS" so i wasn't entirely sure whether he's talking about java source (in which case those many OS are the one JVM) or the JVM itself (in which case he's wrong). That is the reason for the 'or' in my 'and/or'.

      The platform is obviously the JVM

      The JVM *is* the platform

      and obviously has to be tuned to the specific hardware and OS [].

      FTFY.

      FWIW, I don't want any of this. I'm only tired of the "java runs anywhere" bullshit because pretty much the opposite is true.

    97. Re:Java by rjstanford · · Score: 1

      Same here. We can have developers working and running "natively" on Windows machines and OS X machines, then deploying to Linux for testing and production without any fear whatsoever that there'll be any kind of an OS-level compatibility error.

      --
      You're special forces then? That's great! I just love your olympics!
    98. Re:Java by rjstanford · · Score: 1

      But it's not. Gmail on Chrome allows you to drag and drop attachments to the desktop. FF and IE on Windows don't support that feature.

      Even more to the point, mobile devices might not even have the same concept of "a desktop". I'm sure that my smartwatch doesn't, and it shouldn't either.

      Binary compatibility is far simpler than usage compatibility.

      --
      You're special forces then? That's great! I just love your olympics!
    99. Re:Java by rjstanford · · Score: 1

      I don't know where you find all those batch-processing programs that don't need to process a lot of data, because that's pretty much the only case that doesn't need speed.

      Actually most of those spend their days waiting on some form of database.

      --
      You're special forces then? That's great! I just love your olympics!
    100. Re:Java by Anonymous Coward · · Score: 0

      1 BILLION devices _used_ to be faster and more secure!

    101. Re:Java by Anonymous Coward · · Score: 0

      nugatory.

    102. Re:Java by tepples · · Score: 1

      But then the proprietary application's publisher needs to both have the resources and be willing to recompile, test, and certify the Qt-based app for each such platform.

    103. Re:Java by zifn4b · · Score: 1

      The grandparent brought up Java, not me. There are a lot of attempts at cross-platform UIs, including ones that only provide source compatibility and require that you recompile for each target. They all suck for the reasons that I highlighted. The only good cross-platform software has a shared core of code and then customises the UI for each target platform. In a lot of desktop software, the UI is a sufficiently large part of the total codebase that this amounts to an almost total rewrite.

      I don't think the topic is what hasn't worked up to this point, it's just to imagine what it would be like if someone did come up with a solution. That's the part I think most people are glossing over. It's as if they're already in the mindset of shooting down the thought experiment because of all the failed attempts to do something like it. Perhaps the moderators should have never even posted the question because slashdot has essentially declared the question to be absurd.

      --
      We'll make great pets
    104. Re: Java by Anne+Thwacks · · Score: 1
      I do my CAD on Linux, even though the choice of software is rubbish. I have a 27" 4k screen.

      Do you really think I am going to do CAD on a 5" phone screen? Or a "Smart" TV that reports all my designs directly to China/Korea, any other random unspecified place. That brings "nuts!" to a whole new level.

      --
      Sent from my ASR33 using ASCII
    105. Re:Java by zifn4b · · Score: 1

      The entire question is without merit.

      Fair enough, what shall we think of the person who originated the article that made it to the front page? How does crap content get onto slashdot?

      --
      We'll make great pets
    106. Re:Java by Ace17 · · Score: 1

      Or Python?

    107. Re:Java by Guitargeek86 · · Score: 1

      MightyMartian the AC is obviously not on the spectrum. As someone on the spectrum language rules to me are ridiculous, I don't see a point in them. As long as the thought was communicated that's what matters and is the sole purposeful point to communication. I don't understand social norms or why people get pissed off about them when broken. The AC is one of those idiots who only see's the world as a series of boxes. The AC bitching about 'Rein; vs 'Reign' obviously has nothing to add to the context but feels insecure. Most likely they are an idiot who gravitates towards rules to prove superiority as they lack it intellectually. Stop assuming assholes == people on the spectrum due to the bad social skills.

    108. Re:Java by Anonymous Coward · · Score: 0

      True, but the current state of Java also requires test and certify for each platform, unless you just don't care about bugs.

    109. Re:Java by Anonymous Coward · · Score: 0

      Java uses exploitable features. RAVM is a better option, if a nascent one.

    110. Re:Java by mattack2 · · Score: 1

      ...and lowest common denominator UI.

      i.e. BAD UI.

    111. Re: Java by Anonymous Coward · · Score: 0

      +1 , neither windows nor macos/osx have maintained compatibility across all versions ... and both have done things to force users to upgrade the OS or the hardware to increase sales and throw products overboard that don't migrate to new APIs and packaging.

      Java never did that to me.

    112. Re:Java by brantondaveperson · · Score: 1

      Doesn't run on an ipad so good though.

    113. Re:Java by brantondaveperson · · Score: 1

      That'll be why everyone writes their performance-critical code in java.

      Except they don't, of course, since the JVM overhead is only part of the story. The others are the lack of expressiveness in bytecode significantly limiting the extent to which optimisations can be applied, and the very limited control that java has over memory allocation.

    114. Re:Java by Anonymous Coward · · Score: 0

      Java only runs on Java so that is just one platform. Not all of them.

    115. Re:Java by TheRaven64 · · Score: 1

      It's not a new thought experiment though. It's something that's been discussed, and even worked on, for decades. Some of us have been working in this space for a lot of that time. It's like saying 'imagine that all fabric had the same tensile strength'.

      --
      I am TheRaven on Soylent News
    116. Re: Java by Joce640k · · Score: 1

      Sorry, I misspelled "can't be bothered".

      --
      No sig today...
    117. Re: Java by Anonymous Coward · · Score: 0

      OpenJDK

      Also, JVMs and JITs are already heavily optimized for each platform and becoming more so over time.

    118. Re: Java by Anonymous Coward · · Score: 0

      Probably.

    119. Re:Java by Anonymous Coward · · Score: 0

      MightyMartian the AC is obviously not on the spectrum. As someone on the spectrum language rules to me are ridiculous, I don't see a point in them. As long as the thought was communicated that's what matters and is the sole purposeful point to communication. I don't understand social norms or why people get pissed off about them when broken. The AC is one of those idiots who only see's the world as a series of boxes. The AC bitching about 'Rein; vs 'Reign' obviously has nothing to add to the context but feels insecure. Most likely they are an idiot who gravitates towards rules to prove superiority as they lack it intellectually. Stop assuming assholes == people on the spectrum due to the bad social skills.

      Stop assuming people who care about precision and correctness = assholes.

      Typing "reign" when you mean "rein" is the same error as claiming that = and == express the same concept.

    120. Re: Java by ChoosyBeggar · · Score: 1

      Also, one can use NativeScript to convert pure HTML5 applications to native Android java code.

    121. Re: Java by Anonymous Coward · · Score: 0

      > if the Java VM's were opened up

      OpenJDK

      You might not know this, but Oracle Java is OpenJDK with some stuff on the top. At my work place we run our Java server application on Linux on OpenJDK. I don't think that there is anything in Oracle Java that you would actually need, unless you specifically want to lock yourself in.

    122. Re:Java by Anonymous Coward · · Score: 0

      I was thinking the internet. You can run everything in a Docker or something container. If you can't run it on your machine, you certainly can run it in the cloud.

    123. Re:Java by Immerman · · Score: 1

      Okay, I don't think we actually disagree. Java software runs everywhere there's a JVM - but the JVM doesn't run nearly as many places as one would desire. But at least mostly covers the major PC platforms.

      There's also the multiple open-source JVMs which presumably run on far more platforms than the official one, but also presumably lag behind in features and library completeness, but so as long as you're willing to restrict yourself to the "lowest common denominator" subset of Java your software will run on a considerably wider range of hardware. Though of course there are certain performance penalties that may render it unsuitable for resource-limited hardware.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
  2. don't care by PaoloAgati · · Score: 2

    with all the virtualization stuff, remote desktop and more... well, I think it isn't a problem

    1. Re:don't care by Anonymous Coward · · Score: 0

      It only really matters for graphic/CPU intensive stuff like video editing and such. Even that is less of an issue than ever now.

    2. Re:don't care by Z00L00K · · Score: 1

      It's not only a performance problem but also a HMI problem. You have different HMI devices on a Nintendo than on a stationary PC.

      But most HMIs are compromises so there are things on a Nintendo Wii that's a lot better than on a PC even for CAD use.

      In the end - if you make a solution that suits everyone, then it actually suits nobody.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    3. Re:don't care by scdeimos · · Score: 1

      Try running something that requires OpenGL 3 or better inside a VirtualBox guest and see how well that works out for you. VirtualBox Guest Addition's video drivers only support OpenGL 2.1 - even that is pretty damn spotty and is disabled by default on Windows guests.

    4. Re:don't care by Anonymous Coward · · Score: 0

      This is a solved problem now with gfx card sharing between VM and host.

  3. Web apps by zopper · · Score: 1

    We are getting there...

    1. Re:Web apps by Anonymous Coward · · Score: 1

      Except web craps are universally terrible.

    2. Re: Web apps by Anonymous Coward · · Score: 0

      Now they are crap. Soon we have wasm and - hopefully - the slow death of javascript. Wasm delivers the possibility to write web apps in any language without having to transpile to retarded js.

    3. Re: Web apps by Anonymous Coward · · Score: 0

      But your still stuck with the shittiness of HTML, CSS and running everything in a slow, bloated VM. You can shove your "wasm" web craps up your ass.

    4. Re: Web apps by Anonymous Coward · · Score: 0

      Just do everything in canvas with wasm.

    5. Re: Web apps by Anonymous Coward · · Score: 0

      Maybe we will just shove it up everyones asses.

      Because we can.

    6. Re: Web apps by Anonymous Coward · · Score: 0

      That's already happening, but unlike with a dildo or a black cock you get no pleasure from it.

  4. Technically feasible by fisted · · Score: 2

    Of course it's technically feasible. It's called universally agreed upon standards and conventions.

    1. Re:Technically feasible by zifn4b · · Score: 3, Funny

      Of course it's technically feasible. It's called universally agreed upon standards and conventions.

      You can pry my Big Endian, EBCIDC out of my cold dead hands. :P

      --
      We'll make great pets
    2. Re:Technically feasible by Anonymous Coward · · Score: 0

      Sorry, your Big Endian EBCDIC linebreaks are incompatible with my Big Endian EBCDIC linebreaks!

    3. Re:Technically feasible by Anonymous Coward · · Score: 0

      Exactly. This hadn't been a problem since the Organization for the Protection of Sofware Standards was created to enforce these things...

      which doesn't exist in your timeline. No wonder technology sucks here. Moving on...

      -Stan

    4. Re:Technically feasible by JeffOwl · · Score: 1

      Of course it's technically feasible. It's called universally agreed upon standards and conventions.

      I think you are confusing the word "feasible" with "possible"

    5. Re:Technically feasible by fisted · · Score: 1

      I think you are deliberately ignoring the qualifier "technically".

    6. Re:Technically feasible by Eravnrekaree · · Score: 1

      Standards can be a double edge sword. They foster compatibility but also slow down progress too much. A good standard should allow non-standard extensions and a mechanism for apps to detect and to live without extensions. Then, extensions can be folded into the main standard.

  5. Done it already by countach · · Score: 1

    It's already possible. People have booted up Windows 95 on their Apple Watch. It's just not enormously practical. For one things, apps tend to work better together when they agree on things... things to do with the OS. Secondly, input devices. You can run Windows on your apple watch, but there is no mouse. Thirdly, performance.. the more different the platform the more emulation has to be done. Fourthly, intellectual property. Simulating the OS is a lot of work (Wine), and running it in an emulator hurts performance and gives a disjointed experience.

    But... it can be done.

  6. Viruses too? ;) by Anonymous Coward · · Score: 1

    nt.

    1. Re:Viruses too? ;) by Wescotte · · Score: 1
  7. How is it running? by DatbeDank · · Score: 1

    Are we emulating the hardware to match the differences in architecture (arm vs x86) or is it some goofy extraction layer (with apologies to WINE)?

    If it's the latter, than it would be a lot like the internet back in 2005 with IE6 breaking web standards against other browsers and having to test it against multiple browsers to see what works.

    Oh you said magic so I should disregard the nit picky things. Since we're assuming utopian technological advancements, then we'd probably only see two main platforms (laptop and mobile) since everything would be software agnostic.

    1. Re:How is it running? by Z00L00K · · Score: 1

      Just a virtual machine on top of the real hardware, like Java or for that matter any interpreting script language like Python.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    2. Re:How is it running? by Anonymous Coward · · Score: 1

      Oh you said magic so I should disregard the nit picky things. Since we're assuming utopian technological advancements, then we'd probably only see two main platforms (laptop and mobile) since everything would be software agnostic.

      Mobile as in "phablet" or mobile as in "iWatch" or perhaps even "Google Glass"?

      No matter how you slice it, not all devices will fit comfortably into the same category.

      The question is stupid. Just because my remote control has a micro processor capable of doing any kind of calculation/instruction does not mean that I want my accounting software to run on it.

      I much prefer different devices with different capabilities that work well together than some weird kind of universal platform that does everything and at the same time nothing well.

  8. Wouldn't be paradise by Billly+Gates · · Score: 1

    We are kind of sort of heading that way now with JavaScript. Ask anyone who has experienced the horrors of node.js and writting your own threading by using callbacks instead of the OS APIs?

    Before that there was Java. How great would it be if Java won and we all were stuck using it?

    Talk about a loss of freedom.

    It gets worse ....

    Guess which OS you would use at work? Windows. Which OS would grandma still use? Windows. Why?

    Active Directory, exchange, office 365, and other manageability means corporations would still use it for control and auditing compliance. Nothing comes close. Want to process credit cards? PCI lockdown has 20 Group policy objects to implement dictated by insurance. Grandma would still use Windows because it's idiot proof. Though some are using iPhones and iPads now but Facebook and email are the only needs she cares about. Not software

    1. Re:Wouldn't be paradise by Z00L00K · · Score: 1

      Except that JavaScript is worse than Java when it comes to the ability to debug.

      All script languages are repeating the mistakes of classic Basic.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    2. Re:Wouldn't be paradise by budgenator · · Score: 1

      Except that JavaScript is worse than Java when it comes to the ability to debug.

      All script languages are repeating the mistakes of classic Basic.

      Trying to be a kinder, Gentler FORTRAN?

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    3. Re:Wouldn't be paradise by mwvdlee · · Score: 1

      AD, Exchange and Office are applications. In this ridiculous hypothetical reality, those would run just as well on a Mac, Linux, a Playstation, the Nintendo Gameboy and your pacemaker.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    4. Re:Wouldn't be paradise by HornWumpus · · Score: 1

      At least Basic didn't have calculated gotos. 'Goto linenumber' where linenumber is an int. I've seen it _used_ in FORTRAN.

      Like a pointer, only much uglier.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    5. Re:Wouldn't be paradise by budgenator · · Score: 1

      At least Basic didn't have calculated gotos. 'Goto linenumber' where linenumber is an int. I've seen it _used_ in FORTRAN.

      Like a pointer, only much uglier.

      Ah yes the good ol' days when we walked to school, bare-footed in the snow , up hill both ways; you youngsters will never know the struggle!
      FORTRAN, Lisp, RPG II, COBOL and even IBM 360 Assembler!

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    6. Re:Wouldn't be paradise by Billly+Gates · · Score: 1

      They are not applications. They are protocols and whole platforms. If things were multiplatform there would be no integration.

      Look at Java as an example. It had it's own awkward GUI components, fonts, threading, etc. Java was a mini OS and Sun even made it an OS with JavaOS. Windows is very tightly integrated with the registry, WMI, and group policy that ties both with AD so you can do amazing things with large amounts of systems. The Nintendo gameboy for example wouldn't be able to use a NO PRINT GPO even if it could read LPAD AD requests.

      So Offices would still be MS shops. I guess you could argue Novell with it's eDirectory or NDS might still be around as the only reason it was dumped was because it wasn't Microsoft and PHB's assumed in 2000 that everyone would be using IE 6 by now and only MS would exist as a tech giant back in those days.

  9. Only if hardware remained frozen and static by Anonymous Coward · · Score: 1

    Even within the same operating system it is hard to keep software compatible between releases. In theory it's doable only if hardware development were to freeze all across the board. Then eventually over a long period of time the goal might be achieved (for some definition of "achieved").

    The real world has too many moving targets, too many shifting sands.

    1. Re:Only if hardware remained frozen and static by Z00L00K · · Score: 1

      Just look at Windows, after a few releases you are forced to upgrade your software to support the new whims of Microsoft.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  10. Security holes. by Half-pint+HAL · · Score: 2

    If software was universally compatible and behaved the same way on all devices, it would be a security nightmare as it would have to implement all the security holes and other bugs of every platform to do so. So say Windows has a zero-day exploit in URL handling and Linux one for file handling. This universal code would have to reimplement the Windows bug in Linux and the Linux bug on Windows, or the two versions of the program would behave differently. If that isn't what you're talking about then you're talking about Java.

    --
    Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    1. Re:Security holes. by Anonymous Coward · · Score: 0

      Or better than that you're talking Wine on Linux to run Windows apps regardless of the programming language. A native API and emulators translating it for everything else.

      Ideally everything would use standard APIs such as POSIX and OpenGL so that wouldn't be necessary.

      Beyond that the main bottleneck is x86 vs x64 vs ARM, but you can emulate that layer too. And he stated CPU and memory wasn't limited.

    2. Re:Security holes. by JoeMerchant · · Score: 1

      As you say, incompatibility is not a bug, it's a feature.

  11. Not for HPC by Ambassador+Kosh · · Score: 2

    For highly cpu and memory intensive applications I don't see how this would work. The vast majority of software runs at only a few percent of what a CPU is capable of mostly waits on IO. However for HPC applications the memory and processing usage are often tuned down to the cache line level and that pretty much requires low level access to the system.

    Even more extreme are things like BLAS which is tuned to different cpu archs. Running an optimized BLAS vs unoptimized BLAS is usually 10x the performance or more and having a simulation go from a month to 10 months would not be acceptable.

    --
    Computer modeling for biotech drug manufacturing is HARD! :)
  12. Technical and commercial competition by lalleglad · · Score: 1

    Having all applications run on all platforms is a dream since the beginning of times, SW wise :-)

    Some people mention Java and that it is already happening, but I'd say that it isn't.
    Even applications on the same platform, say Windows, can't always run on all variations of Windows, and the same goes with Linux unless you are able to do some or a lot of tweaking.

    However, IF it could be made, then we would have a level playing field and the platform producers would have to improve their own platform to make it viable for users and customers.
    Just like in the car industry, where roads, parking refueling locations and other infrastructure is the platform and the cars are the applications.

    But it won't happen, and just like biological mutations, even if at one point it could be made, things will evolve and people will want different solutions to different situations, so it will mutate away from each other.
    Like a mainframe won't easily run a mobile phone application or vice versa.

    Nice dream but N/A

    1. Re:Technical and commercial competition by Austerity+Empowers · · Score: 1

      I don't know how much is what people want, and how much is what the various owners of platforms want to intentionally make their environments different to try to lock their competitors out.

    2. Re:Technical and commercial competition by unixisc · · Score: 1

      This would be absolutely great. In fact, it was something I was rooting for since the 90s. Had it panned out, we could have run HDL programs on Windows 7 on DEC Alphastations (adjusted for NT/Alpha never being abandoned), or Adobe Photoshop on Silicon Graphics workstations, or something like FaceTime running on iOS running on a MIPS based cellphone. We would have had a much healthier competitive environment - DEC, Silicon Graphics, Sun, et al would still be around.

      All of the stuff described above - Java, VMs, et al - are an extra layer on the CPUs, but are minimized due to the multi-core architectures out there, and the fact that all the OSs - Linux/Android, BSD/MacOS/iOS and Windows - are multi-core capable - make it even more feasable

  13. Fast, universal, rich by Anonymous Coward · · Score: 0

    Fast and universal: Java and many others
    Universal and rich: a browser or a VM
    Fast and rich: here is where most live

    I doubt that you can have all three

  14. The following would happen: by Ihlosi · · Score: 5, Insightful
    Some manufacturer makes an device that is incompatible to the universal software ecosystem, but cheaper/faster/better/better marketed.

    And the situation is back to the current state.

    1. Re:The following would happen: by Anonymous Coward · · Score: 0

      Anyone could do this quickly. Unless everything is using the same API and machine code you need emulators, so it'll run slower. So a system with no emulators always running native code will always be faster, and because you need less CPU/memory cheaper.

    2. Re:The following would happen: by Anonymous Coward · · Score: 0

      Does not have to be any of cheaper/faster/better/better marketed, just need monolopy or near monolopy power (and abusing monolopy power does not count as better marketing). Does not even have to cover the full market if it is a siginificant niche. Apple (and AOL before they faded into irrelavence) and their walled garden is a prime example.

    3. Re:The following would happen: by codeButcher · · Score: 1

      Some manufacturer makes an device that is incompatible to the universal software ecosystem, but cheaper/faster/better/better marketed.

      And the situation is back to the current state.

      Agreed. And I bet in the majority of cases it would be option (a) (cheaper). Because not so well tested and/or documented.

      --
      Free, as in your money being freed from the confines of your account.
    4. Re:The following would happen: by unixisc · · Score: 1

      You mean, like Microsoft tried doing w/ Windows RT?

    5. Re:The following would happen: by Anonymous Coward · · Score: 0

      Alternatively they'll implement the standard and then extend it and tie the extensions up with patents and such. Cue death by a thousand little "does this platform support feature x" cuts (I know, developers should stick to the standard bits... good luck with that).
      Or they'll implement it just a little bit wrong/different and, again, you're stuck spending half your time playing the "which platform is this, does x do y" game.
      Or they'll only implement a subset...

      Well you get the idea. This idea risen and died a thousand times over the decades.

  15. But do we want it? by FaxeTheCat · · Score: 2

    One question is if this really is desireable...

    A lot of software require specific hardware to run in any usable way (3D, high end gaming), so what would be the benefit of running it on underpowered hardware?

    1. Re:But do we want it? by Anonymous Coward · · Score: 0

      No.

      As others pointed out, this vison comes to "the net is HTTP and the platform is the browser". Thanks, but no, thanks.

      And lest you say I don't know what I'm talking about: my workplace just switched to Office365. Pure dystopia

    2. Re:But do we want it? by tepples · · Score: 1

      Why, in principle, can't modern games scale down to lower levels of detail reminiscent of the original PlayStation, Nintendo 64, or Voodoo 2 upon request?

    3. Re:But do we want it? by Sparowl · · Score: 1

      Time and money. Why is the company going to pay to have their team write code to downgrade the quality of the detail, when those programmers could instead be working on the next project to bring them money (and by next project, I mean the DLC that should've been a part of the original game).

    4. Re:But do we want it? by tepples · · Score: 1

      Why is the company going to pay to have their team write code to downgrade the quality of the detail

      Asset scaling would let the company collect revenue from users of less capable devices. It's the same reason games came out for both the PlayStation 3 and PlayStation 4, or both the Xbox 360 and Xbox One.

    5. Re:But do we want it? by Waccoon · · Score: 1

      It works. Maybe not as fast as you want or with every feature enabled, but at least it runs. When you have few options on your platform of choice, that actually matters.

      Reminds me of some Windows backup software I used that demanded that you have a CD-ROM attached to your PC, even if you only backed up over a network. It crashed if an optical drive couldn't be detected. What idiot coded that crap?

  16. computationally universal by thinkwaitfast · · Score: 1

    What if we required that all computers be Turing complete?

  17. do care somewhat by Blaskowicz · · Score: 1

    There is not much freedom on mobile phones yet. What about a GNU/Linux phone that can run Android in a VM?

    Might we see a Windows phone that can run desktop software first, including an Android emulator? (perhaps too CPU hungry to use it for long)

    1. Re:do care somewhat by Damouze · · Score: 1

      Android is Linux.

      --
      And on the Eighth Day, Man created God.
    2. Re:do care somewhat by fisted · · Score: 1

      Your point being?

    3. Re: do care somewhat by Anonymous Coward · · Score: 0

      In a way it is, but mostly isn't.

  18. What would happen if software ran on all Platforms by Anonymous Coward · · Score: 0

    We don't have to imagine, once upon a time software came in a form that you could cross-compile for a variety of platforms CPUs etc. At least until it became a WinTEL virtual monopoly.

  19. What would happen? by nospam007 · · Score: 3, Interesting

    The same thing that happened during the mainframe days, when we could use all sorts of terminals and terminal emulators we wanted.
    We would bitch about the speed.

    1. Re:What would happen? by Anonymous Coward · · Score: 0

      Uhhh, were you around during the mainframe days? Unless you got the sourcecode for the program, you were dead in the water. Mainframe mfrs did *not* do emulators for other mfrs hardware unless the client was *big* money (in which case the client just skipped the middleman and got the needed hardware platform). We'll get what the OP wants when there are universal standards universally enforced. Who knows, maybe the first real AI will trick us into doing it.

    2. Re:What would happen? by Anonymous Coward · · Score: 0

      But.. but the speed is 5GHz and the power consumption 1.8kW per processor complex. How could anything be slow with numbers like that?

    3. Re:What would happen? by budgenator · · Score: 1

      Linux wouldn't be any more popular than it is totay.
      Applications is not what's stopping people from adopting one platform over another. It's the ease of use. And Linux is made by and for, elitists that cling to the terminal for dear life.

      I'm calling BS, Kubuntu is just plug into the network and it works, in fact more things are automagic in a modern linux than are in windows. The UI difference between Kubuntu and Win10 isn't any more jarring the the difference between WinXP and Win10.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    4. Re:What would happen? by Eravnrekaree · · Score: 3, Informative

      As far as source code goes, the mainframe era was sort of open source, they made their money on hardware and did not copyright the OS, that changed when OS/Hardware mandatory bundling was banned and third party OSs entered the fray. IBM stopped making copyright free MVS around 1980, you can still run the "open source" MVS version 3.8J, the last copyright free version, as Turnkey MVS (Tk3 or Tk4) today on Hercules. It was the shift that happened in the 70s and 80s to closed source that spawned GNU.

    5. Re:What would happen? by Blaskowicz · · Score: 1

      What's up with the start menu in KDE 5 that takes almost all the screen height, and other overweight GUI elements? It's like we're back to default Windows XP in 800x600.

      Optimizing for poor saps who have an otherwise unusable 13.3" laptop with 1920x1080 was a good idea, but to make it the default, that's jarring. Combined with copying the Windows 2.0 / Android / iOS style, this makes it hard to see what's going on. So, I would have to spend hours learning the GUI to fix it, while not knowing how far that can be done.

  20. What Would Happen? by b783719 · · Score: 2

    I would have woke up, thinking it'll be the best idea ever. Only to find out, it's called a web app.

  21. HTML5 / CSS / Javascript by DrYak · · Score: 2

    Of course it's technically feasible. It's called universally agreed upon standards and conventions.

    And webapps are slowly exactly becoming this.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:HTML5 / CSS / Javascript by Anonymous Coward · · Score: 0

      They are a major pain in the ass, though, and don't even come close to native apps in terms of GUI features. Most of them cannot even deal with menu shortcuts correctly, let alone adhere to commonly agreed GUI standards (since there are none). Piling up fragile API over fragile APIs within a client/server architecture and turning browsers into Javascript-powered operating systems running on operating systems is a rather dumb idea.

    2. Re:HTML5 / CSS / Javascript by msauve · · Score: 1

      In most cases, web apps run on the server. Being agnostic to the browser doesn't mean they can run anywhere.

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
    3. Re:HTML5 / CSS / Javascript by Anonymous Coward · · Score: 0

      I... don't think HTML counts as a universal standard. Anyone who has had customers who wanted to have a near-pixel perfect port from Flash to every browser would know that.

    4. Re:HTML5 / CSS / Javascript by tepples · · Score: 1

      The features of the web platform that allow offline use of a web application need heavyweight support from the browser.

    5. Re:HTML5 / CSS / Javascript by Eravnrekaree · · Score: 1

      So your suggesting I should have to run dozens of network aware applications with crappy C/C++ code rather than relatively safe sandboxed JS code in a single browser program? In many ways the browser is an improvement. So, you would rather run network applications and remote scripts directly on the OS rather than "have an OS on an OS". You want basically where people download all of these untrusted applications that run directly on the OS like the bad old shareware/trojan days.

      The need for a stable API is a seperate issue from the need to sandbox and run remotely downloaded code in a VM, written in a memory safe interpreted language rather than the awful C/C++.Static web pages have no business using JS, I agree, but for a dynamic program, running an application inside a sandboxed brower on a Javascipt VM is heck of a lot safer than running it as a machine code binary compiled from buffer overflow filled C++ fully exposed to the OS Kernel interface.

    6. Re:HTML5 / CSS / Javascript by Master5000 · · Score: 1

      Yep! C/C++ over anything web and javascript. The JS kids can't understand C++ to save their lives. It's why most web pages eat a ton of RAM and take a core to 100%. C/C++ raises the bar of developer quality. So less shitty applications. That is what I care for. I firmly believe that 90% of programmers should be fired and not allowed to touch computers in order to make a better world.

  22. The problem... by Yaztromo · · Score: 5, Insightful

    The problem with something like this always comes down to the fact that applications have to be coded to the lowest-common denominator of functionality of all platforms. That's the situation both Java and Web apps tend to find themselves in.

    Does your OS have some cool notifications subsystem that other platforms don't have? The universal app can't use it (or if it does only for those platforms that support it, it's hardly running identically on every platform anymore). Or how about if your hardware has something fancy like Apple's new Touch Bar? Can't use that either.

    This is the problem we always see with desktop Java applications. They can typically do well with the basics, but if you want to tie-in to some stand-out feature that isn't available on every platform, you're generally SOL (unless you want to rely on JNI, and perhaps filling in missing functionality on other platforms with custom native libraries I suppose -- but again, that's not exactly cross-platform code, and requires a ton more work.). With web apps we see a similar issue; you're constrained by what the various standards allow, and can only escape that with plug-ins.

    We also see this in the video game console world. Sony did some really cool things with the PlayStation 4, like adding the touchpad to the controller, the programmable-colour LED array on the back of each controller, and the second screen functionality that allows you to use a tablet or phone as a wireless secondary information display. Unfortunately, most cross-platform games tend to ignore these features (to varying degrees), as they're simply not available on the PC or Xbox One.

    In the world you describe, there really wouldn't be any ability for anyone to stand above the crowd with new special OS or even hardware features (beyond maybe some low-level performance tweaks), because as soon as you did so, you would be incompatible, and either nobody would use it, or you'd have to permit all of your competitors to also implement your new feature.

    This reminds me somewhat of the following example: OS/2 ran Windows 3.x programs better than Windows 3.x did. It could pre-emptively multitask Windows 3.1 applications at a time when Windows itself couldn't, and a single errant Windows application could bring down the whole system, or fail to yield() and simply take up all the processing time for itself. Because of this, too many big development companies simply targeted the lowest-common denominator and wrote Windows 3.1 code for use on OS/2 (WordPerfect is a great example -- they went out of their way to tout OS/2 compatibility, but in reality their OS/2 version was the Windows 3.1 version with some OS/2 templates and WPS integration tools slapped on top of it). And we all know what happened to OS/2 (or I suppose I presume we all know -- I guess you could be 16 or 17 years old and not know what happened back then. When did I start getting so damned old???)

    Yaz

    1. Re:The problem... by Soft · · Score: 1

      And we all know what happened to OS/2 (or I suppose I presume we all know -- I guess you could be 16 or 17 years old and not know what happened back then. When did I start getting so damned old???)

      You probably know the legend of the Pea Sea. I realized that it's been longer since the end of that story than the duration of the story itself...

    2. Re: The problem... by Anonymous Coward · · Score: 0

      Actually it's about the CPU. Different CPUs need different instructions sets to get the most of our the hardware. Universal apps will always be slower, so therefore always less useful.

    3. Re:The problem... by Eravnrekaree · · Score: 1, Interesting

      The problems you describe can either be solved by the cross platform compatability library either emulating features on its own, or by applications adapting to absense of a feature by using an alternative or living without the feature when it is not available on an OS. Preferably the first alternative. Provided a basic level of functionality, anything can be implemented at the library/app layer. For instance, if you have a 24 bit video array buffer, you can implement any 3D operation in software, even though all you an give to the OS is bitmap data. It may not be perfect, it may be slow, but it can be done and its better than nothing.

      There is an issue with cross platform libraries keeping up with applications needs so that apps are not tempted to include OS specific code. The library should meet the needs of the application rather than vice versa. App developers if they need an OS feature, instead of putting an OS specific call in thousands of places in apps, should just add a compatability layer once to the cross platform library, this way when they move to a new OS, they only need to update one peice code rather than thousands.

      You mention web standards. For some while, they were indeed very weak, which was their own fault. Browsers dragged their feet on providing features but at the same time they provided horrible plugin models for OS level plugins. Basiclaly the browsers were saying, we dont provide the feature you need and dont care, but please write an OS dependant plugin using NSAPI so your web page can only be viewed on Windows. Thank you. Mozilla was guilty of that as any. I think it would be much preferable as an alternative to have provided a canvas to web apps in the browser to which vector and bitmap primatives could be drawn with javascript, rather than unleash a flood of low level plugins which had bad OS dependant code. Yes, eventually this is what ended up happening. I think we also have to accept 3D APIs in the browser to stave off OS dependant plugins adn third party apps.

    4. Re:The problem... by Eravnrekaree · · Score: 1

      The best solution to this is for cross platform toolkits to emulate whenever possible missing OS features. Otherwise you have feature testing to write apps adaptively, using cross OS APIs when the underlying OS has the feature, but this is far from optimal. Providing the OS provides some basic underlying features, features can be emulated by a toolkit. Adaption always has to happen with a number of variables like screen real estate

    5. Re:The problem... by Anonymous Coward · · Score: 0

      There are ways to be universally compatible and still use special features. The first that comes to mind is where the code simply asks the hosting environment for its capabilities, then uses those. Windows 10 has already taken a big step in this direction in order to allow the same software to use phone special features while still running on desktops.

  23. The ALL Platform. by dazlari · · Score: 1

    Where ALL software runs on ALL platforms.
    Developed in the 17th century by Aloha LikeLike, a Hawaiian Chief Information Officer. It was later stolen by Captain James Cook on his first voyage, so they ate him on his return.
    OK, I added that bit about Cook. This and other random crap fantasies, like Java. JMHO.

  24. Only one successful implementation of that ... by Anonymous Coward · · Score: 0

    It's called the web.

    1. Re:Only one successful implementation of that ... by Z00L00K · · Score: 1

      No, not even the web - just look at sites designed for a single web browser. Primarily sites for IE or Edge, but it used to be Netscape specific once upon a time.

      Especially when you start to look at "necessary" plugins.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    2. Re:Only one successful implementation of that ... by unixisc · · Score: 1

      Not just that, there are things that don't work on Chromium on TrueOS, which do work on Chrome on Windows

  25. One word: universally available content. by TuringTest · · Score: 2

    Ok, that was the words. What it would mean to have the exact same software in all platforms is that someone could build a truly universal syncronizing platform.

    This means that you could seamlessly move not just your files, but also the running sessions of your applications using a single protocol, instead of depending on individual per-app hacks or remote terminals. You could copy the content to your device, edit it with local apps and return it to the server. Just like git version control, but for all kind of content and work sessions, not just code.

    --
    Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  26. This would be a near-godlike power. by bistromath007 · · Score: 1

    Why? Because it would need to be able to run on all possible future hardware, regardless of whether that hardware is aware of needing to be backward compatible with anything. The code would need to somehow be able to look at its hardware environment and modify itself to be able to communicate and fulfill its purpose within that environment, even if that environment is some kind of mushroom from an exoplanet three galaxies away. NP-completeness would be this thing's first trick, and it's arguably a form of mind control.

    I mean, that's obviously stupid, and I'm obviously drunk, but be careful with the word "universal."

    1. Re:This would be a near-godlike power. by TuringTest · · Score: 1

      Why? Because it would need to be able to run on all possible future hardware

      If the hardware is Turing-complete, it is fairly possible, no god-like powers required. It only would take to build an interpreter or compiler to the language specifications.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  27. We'd all be out of a job by ET3D · · Score: 1

    If software could run just as well on any OS, even though it's vastly different, it would mean that the magic is serious enough to negate any kernel and driver differences, which in turn would mean that algorithms and bugs don't matter, which will lead to the total collapse of the software industry as we know it. It will be replaced by something magical, with no need for software developers or researchers. In fact, the entire world will probably change as a result of such magical discovery, and send the entire technological industry into upheaval.

    1. Re:We'd all be out of a job by Anonymous Coward · · Score: 0

      The AI singularity would definitely seem magical when it real time reprograms itself to run on any hardware you own...

  28. Already here by gringer · · Score: 2

    3D CAD software that runs on Windows 14, Playstation 7, an Android Smartphone, Nintendo's latest handheld gaming device and an Ubuntu PC in exactly the same way with no compatibility problems whatsoever occurring. What would and would not change in such a computing world?

    Confusing operating systems and devices is a problem here. The devices (desktop computer, Playstation 7, an Android Smartphone, Nintendo's latest handheld gaming device) should all be capable of running the GNU operating system, which you may know by another name (Linux, OSX, Ubuntu, but *not* Android, and probably not iOS).

    We already have a standardised set of software that runs on pretty much every platform, and it gives us the wonderful plasticity and variety in our technological world today. The problem is not that it doesn't exist; it's that people (and corporations) are apt to make their own solutions and encourage the use of software that doesn't work everywhere.

    --
    Ask me about repetitive DNA
    1. Re:Already here by cthulhu11 · · Score: 1

      Years ago I worked for a company that offered SIMD hardware. A *technical writer* one day complained that his [Sun 68020] workstation wouldn't run programs. I found that he was trying to run NFS-mounted binaries for the SIMD system on SunOS 4. He fundamentally could not fathom the idea of differing architectures and OS, and was *incensed* at this situation and demanded that I fix it. I pheared for our documents.

  29. Sun?? by Lisias · · Score: 1

    Sun Microsystems? It's you? AGAIN?

    --
    Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
  30. Dear god why? by Anonymous Coward · · Score: 5, Insightful

    I've been doing web stuff for a decade, pretty much since the whole Web 2.0 thing was a fad. It pays the bills, but I always ask myself: why are we doing this to ourselves? HTML was originally a document format, not an application framework, and dear god does it show. From the kludges that we tacked on to maintain state to the horrifically bad data serialization/transfer methods. All of this stuff was solved decades ago with simple network aware applications. Yet here we are in a world where PHP, of all things, is one of the best programming languages for networked applications for the simple fact that its built-in comparison operators map so well to the (equally crappy) HTTP variables.

    I don't know how to get out of this trap, but dear lord I wish somebody would figure it out.

    1. Re:Dear god why? by K.+S.+Kyosuke · · Score: 1

      Maybe you could just go functional and use continuations... That's not a terribly bad way.

      --
      Ezekiel 23:20
    2. Re:Dear god why? by Anonymous Coward · · Score: 0

      I don't know how to get out of this trap, but dear lord I wish somebody would figure it out.

      We could start writing webpages to be webpages instead of applications. That solves the problem for the 95% of the web that doesn't need to do anything except display information.

    3. Re:Dear god why? by Eravnrekaree · · Score: 1

      Um, have you ever heard of DOM and Javascript, there is your framework. Improvements can be made on this foundation. Also, the bidirectional communications are improving with WebSockets. Serialization? Ever heard of XML or JSON?

    4. Re:Dear god why? by Eravnrekaree · · Score: 1

      HTML/CSS should be used for static data, then JS used for dynamic data. I would rather not be forced to use seperate browsers/apps for dynamic and static web pages, however.

    5. Re:Dear god why? by Waccoon · · Score: 1

      Precisely why I quit web development. Once scripting became mandatory for any web page, no matter what it does, it was time to GTFO.

  31. No, Java isn't quite that by Sycraft-fu · · Score: 1

    It is more software that runs on no platform, because the JRE is always fucked up :P

  32. I don't know in the rest of the world but... by Mizranumides · · Score: 2

    ... I have a pretty clean idea of what will happen in MY workplace. Different users will ask to have back their old software that were forced to dismiss for compatibility reasons. Why? Because changing a software every DECADE is seen as a trauma, users are so used to a specific piece of software (and version) that every change is seen as a setback. Management will reject every proposal from the IT guy (it's a small firm) because old software "is good enough", newer software "cost money" and ever free alternative software is seen as "unnecessary and more troubles than benefits".

  33. Idiotic by Anonymous Coward · · Score: 0

    Cross compile all you want, Autocad won't run well on my mobile, I guarantee it.

  34. Dependencies by Kjella · · Score: 4, Informative

    If you look at new versions of Windows/OS X/Linux, you get new APIs like UWP, DirectX 12, Xcode, Metal, systemd, Vulkan and so on. The only way "everything could run on everything" would be if every OS-level API was available on every platform. And that closed source software is compiled for every instruction set, but I'll assume they'd do that. In theory it's not hard, it's just making a free cross-platform standard like POSIX or Java or Vulkan. That however ignores the practical reality that these companies are competing. They don't want to comply with a standard if they can make more money if they don't by adding more features or being more flexible to change or simply to not be compatible.

    That the standard is there also doesn't mean the resources to implement it will be there. For example, for a long time Mesa's OpenGL implementation was ~5 years behind the latest official version. Now it has caught up but it didn't happen by itself, only through big resources from Intel and to a lesser degree AMD. The WINE project can read the programming API for DirectX, doesn't mean a compliant implementation will appear from nowhere. And sometimes there's plain old disagreement like when Google forked the Linux kernel to do wakelocks or the systemd vs non-systemd debacle. So in practice it's pretty hard.

    That said, to shine some light in an otherwise glum post it usually converges slowly once the API is sufficiently settled. For example take USB device classes, it standardized many common hardware devices to the OS. If you don't have lots of vendor-specific parameters to set the user API can be standard too. This is a keyboard, this is a mouse, this is a memory stick etc. and you don't need a specific driver for every piece of hardware. You have libraries like Qt too, write towards it and it should run on Windows/Mac/Linux. Containers and such might also make it easier, heck doing a web application is a common way to make it run everywhere... it's happening in many ways but it'll still take decades.

    --
    Live today, because you never know what tomorrow brings
  35. Not gonna happen any time soon or happened already by Artem+S.+Tashkinov · · Score: 1

    I doubt it will ever be possible because ISVs are not interested in that, in fact they actively oppose that. Every modern proprietary OS tries to become a walled garden for its own apps - even Microsoft has felt victim to that with their Store.

    Still it's quite possible nowadays if you are ready to sacrifice your CPU/Storage resources: in Windows/Linux/MacOS you can run pretty much every modern OS (except Mac OS X which requires certain hacks) by using a VM.

    Why don't software vendors create software which can run on all OSes? That's because different OSes have very different APIs, different users, different use cases, and while ostensibly you can port your application to Qt/C++, there's still a problem with your target audience: users of another OS might not need your software so your money will be spent in vain. Also, while Qt is ostensibly multiplatform, you will still have to maintain and verify compatibility with every target OS, because they all work differently - which is very costly and time consuming.

  36. Dumb terminals by Anonymous Coward · · Score: 1

    to connect to mainframe.

    Done.

  37. This was done by AHuxley · · Score: 1

    Think back to the chips in later Apple hardware that let older Apple software run.
    Other efforts like:
    BASICCODE https://en.wikipedia.org/wiki/...
    "A BASICODE program stored on cassette could be loaded and run on any computer supporting the language."

    --
    Domestic spying is now "Benign Information Gathering"
  38. Big Software Houses Don't Like "universal apps" by Anonymous Coward · · Score: 1

    They want a closed garden that they control. Openness is for hippies, shareholders desire exclusivity and profitability. Microsoft had to have its face shoved into a brick wall to convince them to be as open as they are now.

  39. User Interface Hell by seanellis · · Score: 2

    The user interfaces for different platforms have to be different. Otherwise you end up with Skype 7.x, where we have a UI on the desktop which has been designed for a smartphone.

    Low pointing accuracy on smartphones means large targets and huge icons. Short conversations on smartphones means lots of space wasted on speech bubbles. Likely content on smartphones means emojis pop up when you're sharing code snippets, making them unreadable. Restricted input methods on smartphones means ignoring platform conventions like Ctrl+B for bold text.

    Conversely, try getting 3DS Max 2017 UI onto a smart watch. Regardless of compatibility, it's simply impossibe.

    1. Re:User Interface Hell by iampiti · · Score: 1

      Yeah, it's hard to make UIs that work everywhere but you could work well on the vast majority of devices just by having 2 UIs: One designed for mouse and keyboard and another one for touch. Yeah, that wouldn't work for something like smartwatches but if you wanted to do some kind of complex work on such a tiny device you'd realistically had to connect it to a dock with a big monitor and keyboard and mouse anyway.
      What I do hate is things like what you said: Forcing a touch oriented UI on everyone since it's the lowest common denominator

  40. It's already happening by tonymercmobily · · Score: 2

    That WAS the case around 1998! Nokia phones had a Java virtual machine. Linux had one. Windows and Mac had one. It was universal. Granted, it was still limited (you couldn't run the same apps on phones and desktops), but that was more of a technological problem than anything else (phones were puny compared to desktops, whereas the gap today is much narrower).

    It was nearly 20 years ago... Desktop apps in Java barely exist today.

    Maybe Webassembly will succeed?

    1. Re:It's already happening by Anonymous Coward · · Score: 0

      Yes but the "Java" on Microsoft Windows was not compatible with the Java on other platforms. Sun Microsystems sued Microsoft and won. Famous Bill Gates quote: "Does anybody remember Windows?" yelled at a meeting at Microsoft on how they will move forward with Java on Windows.

    2. Re:It's already happening by Anonymous Coward · · Score: 0

      Nokia was using a custom version of Java CE, which required a special compiler and had custom extensions that you were required use to get anything done. Java may be cross-platform but the abomination that existed on Nokia was not.

  41. We are already here, still it will never happen by Anonymous Coward · · Score: 1

    There are well designed pieces of software that can run on any device. Linux (the kernel) can handle basically anything. Any software written in and interpreted language or a virtual machine (Python, Java, JavaScript) runs on anything where the interpreter/vm can. Even well engineered C can run in almost anything, given the right compiler.

    Yet, there is great incentive on having "exclusive" software. And there is also badly written software. So, all software will NEVER run on all platforms.

  42. Re:Not gonna happen any time soon or happened alre by Anonymous Coward · · Score: 1

    "Even Microsoft"? I don't hate Microsoft or abhor their products, but they were the ones who made wall gardens the status quo. I am glad they decided to open up a bit more the last decade.

  43. Define Platform by still_nfi · · Score: 2

    The problem with the question is that there is not just 1 type of platform. There are innumerable platform definitions, whether it be a 2D or 3D gaming platform, a windowing environment, a massively parallel cluster computing platform, etc. At some point, someone decides to extend the platform definition to account for a new capability. Reaching consensus either takes time or results in forks.

    --
    "I have been around the world and found that only stupid people are breeding" -- Harvey Danger
  44. Idea is retarded by Anonymous Coward · · Score: 1

    Different operating systems were designed for different purposes and different hardware. Universal Application is not only unnecessary, it's unwanted.

    1. Re:Idea is retarded by arth1 · · Score: 1

      Indeed. You would have to either

      - Have a spec for a standard computer. It must have hooves that are fully cloven and chew its cud, and be named MSX. And people will disregard it as obsolete before it hits the market.

      - Take away all computers and replace it with The Computer, with access through approved terminals. It would be your friend.

  45. Sure we can. by geekmux · · Score: 3, Insightful

    All we have to do is get rid of Greed and fix the USPTO system.

    Or you could stop trying to go back in time and pretend that virtualization and emulators somehow don't exist anymore, since their existence tends to be the entire point of this question. With the hardware race to keep Moore's law alive as long as possible, we've had "enough" GPU, CPU, and memory in hardware for quite a long time. We've had to artificially sustain hardware sales with premature obsolesce, forced by vendors who "no longer support" a given platform that is often still viable to run the latest software offerings. Again, Greed steps in.

    1. Re:Sure we can. by GrumpySteen · · Score: 1

      All we have to do is get rid of Greed

      You say that as if greed over resources hasn't been an integral part of existence since life on Earth first started about 3.8 billion years ago.

    2. Re:Sure we can. by geekmux · · Score: 1

      All we have to do is get rid of Greed

      You say that as if greed over resources hasn't been an integral part of existence since life on Earth first started about 3.8 billion years ago.

      Greed has many levels, but anything that remains unchecked can and will eventually cause destruction. That massive chasm between the 1% and the 99% continues to grow, well beyond the realm of the elitists giving a shit about the impact of unchecked Greed.

      We have many challenges ahead as we embrace things like mass automation and AI, but the hardest mathematical equation will be to Solve for Greed.

    3. Re:Sure we can. by Anonymous Coward · · Score: 0

      All we have to do is get rid of Greed

      You say that as if greed over resources hasn't been an integral part of existence since life on Earth first started about 3.8 billion years ago.

      Altruism, too, is also a natural facet of cognitive creatures of nearly all levels. We, being the supposedly highest achievers in the cognitive realm, ought understand best that helping our family is helping ourselves, and that our family, according to science, is all of life, the more similar to ourselves the closer in relation and the more deserving of altruistic endeavors.

      Self-satisfaction is the prime goal, but fulfillment of your neighbor is equally important if you wish to exist in a stable society.

      https://plato.stanford.edu/entries/altruism-biological/

  46. Microsoft would go under by stiebrs · · Score: 2

    MS would at least loose a large chunk of market share, because many people use their OSes simply because the tools they need for professional work do not work on other systems.

    1. Re:Microsoft would go under by Anonymous Coward · · Score: 0

      They are, already.

      I mean: a big ship sinks slowly, and MS *is* a big ship. They were late to the Internet party (and consequently, that is dominated by other players). They were late to the mobile party (more of the same). Selling OSes doesn't pay anymore. Selling office suites is drying up quickly.

      What's left to them? Sending out their highly trained sales drones to brib^H^H^H^H educate decision makers "high up" (politicians, C*Os) to tie their slav^H^H^H^H enterprises and administrations to Microsoft's version of hell^H^H^H^H tah cloud, called mumble365. And doing this they are.Aggressively. As if their lifeblood depended on it.

      Next act in this tragedy: when the parasite has killed its prey and starves.

    2. Re:Microsoft would go under by Anonymous Coward · · Score: 0

      No that is false. Most people are comfortable using Windows and would not switch to macOS or Linux. It's the main reason HMIs nearly all run a version of Windows now because operators are used to it and understand how it works. Variants of Unix and proprietary systems died off in industrial systems and graphical design and CAD programs.

      I don't see Windows or Microsoft losing any market share on desktop and laptop applications for the time being especially for professional use.

    3. Re: Microsoft would go under by senatorpjt · · Score: 1

      If that were true, everyone would be using Windows phones and tablets as they work similarly.

  47. When there is but one platform by koko · · Score: 0

    then yes. Until then (Star Trek), no. We have seen UWP. I have, anyway. That is proof enough that not only won't it happen, it better not happen.

  48. Dumb question by mwvdlee · · Score: 3, Insightful

    If we had 3D CAD software that ran exactly the same on every device, I'd get a subdermal chip and run everything on that.
    Afteral, why would you need a screen, speakers, input or output if it runs exactly the same on computers that do have those?

    Software will not run exactly the same on every device, because the capabilities of the devices differ.
    If they didn't, we wouldn't have different devices in the first place.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  49. What would happen?? by hcs_$reboot · · Score: 1

    We'd have all the Windows crapware running on Mac and Linux :-(

    --
    Slashdot, fix the reply notifications... You won't get away with it...
  50. WebAssembly by thisisauniqueid · · Score: 1

    It's happening, and it's called WebAssembly.

  51. "Important questions"? by Anonymous Coward · · Score: 0

    Why are these important questions?

  52. Patens and human preference = by Anonymous Coward · · Score: 0

    No!

  53. What's in the toolbox?? by Anonymous Coward · · Score: 1

    This thread is ignoring the entire "industrial controls" family of hardware and software. Some things are different because they need to be. Example -I would never consider using windows in an application that has safety implications. In fact it's shrink wrap license specifically disallows this use. Some examples of a safety application can be found here

    Rockwell automation

    Emerson Process

    AE Solutions

    Sometimes the right tool needs to be used.

  54. Web v3 by Anonymous Coward · · Score: 2, Informative

    The W3C and others have done a great job of providing solutions like WebCL, WebAL, WebGL, Canvas, WebAssembly, etc...

    We have a platform which is able to be used to make universal applications so long as the browsers support it. Web browsers are pretty close to being universal as well now that most browsers use the same core engines and only Apple seems to be dragging their feet.

    Many projects are getting better at offering development tools which suck less for HTML5 applications.

    Once we get a tool like Qt for web apps, it will become normal to program for web first.

    HTML, CSS and JavaScript are fantastic but they don't lend well to application development. More technology is introduced all the time to move away from coding directly for these systems and instead can compile from more structured systems. A good early attempt for example is PowerBasic which makes writing real applications that run everywhere easy. Sadly, the user experience is quite bad. But it's a great start.

  55. What would happen? by Anonymous Coward · · Score: 0

    Linux wouldn't be any more popular than it is totay.
    Applications is not what's stopping people from adopting one platform over another. It's the ease of use. And Linux is made by and for, elitists that cling to the terminal for dear life.

  56. Stupid idea by treczoks · · Score: 4, Insightful

    Sorry, it may sound a bit harsh, but this *is* a stupid idea. Different platforms have different abilities and are built and designed for different purposes.

    To accomplish a "works everywhere" approach, every platform would have to have all abilities. To use the phone app on your desktop PC, it would need the proper hardware. How much sense would that make? Or a GPS in the same desktop system? Likewise, how do you put a quad-output video card into a mobile phone?

    This is a pipe dream of people who only work with software, and totally forget that it needs hardware to run on.

    1. Re:Stupid idea by Anonymous Coward · · Score: 0

      I read where Java AWT (Abstract Window Toolkit) was driven by their big partner Netscape (i.e., Marc Andreessen) insisting that the desktop widgets retain the look-and-feel of the native platform. Some Sun guys later complained that that was hard to pull off within the kind of aggressive dev cycles at the time (for those who weren't around, competing with Microsoft on the desktop was like competing with Amazon in ecommerce today,, only less fair because MS ignored antitrust laws), and it would've been much easier to have a widget set with a consistent cross-platform look - which is what they eventually provided with Swing. Then IBM came along later and introduced SWT, which went back the other way. And the beat goes on...

    2. Re:Stupid idea by Anonymous Coward · · Score: 0

      This idea would probably cause app stores in different platforms to gain less diversity. Why settle for an inferior app on Apple when the one on Android is superior? Let's buy the app from Google Play instead of the Apple store. I'm sure Apple would love that.

    3. Re:Stupid idea by Anonymous Coward · · Score: 0

      Not true. Look at how UWP works. It's "universal" across all Windows platforms, including ones with very different capabilities. It defines a standard set of API's, then it allows the developer to poll the API to find out if a given function is supported.

      Using your example of a phone app (and to point out some places that Microsoft could improve their offering), it should present a voice comm capability. On the back end, how it accomplishes that task could be through any number of methods. There could be one or more old-school modems built in. Those should be selectable. There could be VoIP/SIP service. Again, possibly more than one, and should be selectable. There could be a cellular radio. In a multi-SIM device, there's different accounts to select from (but still just one radio). Selectable. There could be Skype or any number of other voice and/or video+voice protocols to use. All selectable.

      Then the real-time audio/video communications app can do its thing according to the transmission channel chosen by the user, which is filtered by the device's capabilities.

      Who cares if it's a desktop or a phone or a tablet or a potato, as long as it can do some/all of these things successfully?

      TL;DR: Think bigger. It's very possible.

    4. Re:Stupid idea by Anonymous Coward · · Score: 0

      The parent is correct, but it's even more than the parent addresses.

      Every company wants a product they can market. The amount of "value add" they put into it goes some way to determining what they can charge for the product (of course the full answer is that this is a market so the customers get some say on product pricing. In theory, and accounting for elasticity of supply and demand, and the numbers of market participants). The vendors really want an arena where they are entrenched suppliers, few market competitors, and there are high barriers to entry. For the most part. Customers often want the opposite of that. Each ultimately takes what they can get rather than what they'd ideally want.

      And this is the problem. The whole "software that can run anywhere, on everything, at any time!" is more of a consumer led, and rather fanciful, dream than it is for the suppliers. The suppliers don't usually want this. And for the customers, do the customers really want this? As in, willing to pay for it? Or is it really more of a "wouldn't it be neat if... gonna cost me $1,000 to get it... Nope, nope, nope!" fantasy?

      Also, it's been done. Commentors here are focusing on Java, but there was the UCSD p-system long before that.

      FOSS doesn't fundamentally change the dynamics enough to matter, IMO.

    5. Re:Stupid idea by Waccoon · · Score: 1

      Different platforms have different abilities and are built and designed for different purposes.

      And yet most of the time, the base requirements are the same.

      I generally write small, trivial applications, and it pisses me off that I can't make a universal binary that runs everywhere because some bozo thinks that every application in the universe should have mandatory code signing, should only use the latest GPU shaders, and all the latest UX eye candy built-in.

      Java would be an option for me, if only it weren't such a bitch to tell people to install the damn runtime, which tries to install all kinds of value-added crap and nags to be updated every week.

  57. Won't happen -- it's like the halting problem by Anonymous Coward · · Score: 2, Interesting

    What platform do you use to write the platform that can run all software?

    Will it be able to run on itself?

    Will it be able to run on the version of itself that checks to see if an arbitrary program will run to completion -- the unsolvable halting problem -- before running it?

    Will it be able to run on the version of itself that only runs programs that won't compile?

    And so it goes ...

    1. Re:Won't happen -- it's like the halting problem by cwsumner · · Score: 1

      What platform do you use to write the platform that can run all software? ...

      That's a mathemetician's worry. It has nothing to do with us.

      Just because you can't prove mathematically that the program is bug-free, does not mean you can't make it run reliably. ;-)
      They should never teach the "halting problem" to programmers, it just makes them lazy...

      Proving something mathematically does not prove anything anyway, because math proofs are so simplified that they can not be applied to anything.

      (Speaking as an engineer, of course!)

  58. LOL, yeah, just imagine by Anonymous Coward · · Score: 1

    You do realize that as we all log in via our web browsers that we are already experiencing this gentlemans dream.

    I'm on linux, some of you are on mobile phones or tablets, and some of you are on OSX while others windows.

    We are collectively using different devices and the websites looks and reacts the same for all of us.

    If you look at for instance google docs so that you are thinking more along the lines of an application, you can more clearly see that what this gentleman wants IS RIGHT HERE, YOUR USING IT RIGHT NOW.

    I do not know how people possibly be blind to the fact that we already have a cross platform medium, your using it right now!.

  59. Humans will hate it by Anonymous Coward · · Score: 1

    I think this boils down to humans will just not do this. We like our differences. People pick Microsoft, Linux, or Apple for specific reasons. And they each innovate in their own way. I think that's good. Standards are good but they limit what you can do because you have to agree to the standard. One possible way around it is AI. A framework that, once installed, sees what kind of computer it's on and specializes the application code to the OS and hardware. But testing would probably cost way to much.

  60. This was the promise of Java in 1998 by Anonymous Coward · · Score: 0

    Java was going to be that magic universal development language. We are already living that dream.

  61. An Utopia by martiniturbide · · Score: 1


    We will be no longer forced to update software because of a platform or hardware upgrade. In the past users replaced applications for others because it won't run on a newer machine or update operating system. This is good for the user because it will save money, but bad for the software industry.

    I will be still running AfterDark Screen saver on my PC.

  62. Not a good ideal by Anonymous Coward · · Score: 0

    If you were to make software run on all platforms. You limit yourself to the weakest factor in that platform. It's why universal apps is a bad ideal because making them run in mobile vs a core i7 desktop is a huge difference. That's just one platform but a huge swing in hardware capabilities. Software or apps need to be developed for the hardware and devices and not as a uniform system designed for so many hardware variables. That way you can take advantage of the hardware to its fullest without going beyond its capabilities.

  63. Unintended outcomes.... by Anonymous Coward · · Score: 0

    If it didn't matter what hardware you ran apps on, then iPhones would take over the world, as technical superiority would go away and the only decision factor for hardware would be a design decision, which Apple and iPhone clearly own.

    Since all software worked everywhere, there would be no advantage at all to open source or free software, all software would become close source almost instantly

    So, the result would be to enrich Apple.at the expense of Microsoft and Google.

  64. universal usage? by Anonymous Coward · · Score: 0

    No, the hardware manufacturers and the software companies ( MS, Oracle, Adobe, IBM ) are n each others pockets/pants...
    All the way up to the elbow.

  65. Re: It already does. by Anonymous Coward · · Score: 1

    Actually, it's not. I can plug my phone into an external display add a keyboard and input device and have a portable CAD workstation. Alternately, I could carry both a phone and a laptop. Phones are very fast and very capable in terms of computing power. Fast CPU with a good GPU. If you look inside a modern lapropos the PCB space is approaching that of a phone. Imagine an office without dedicated computers but instead phone docks. For many workers this would be fine.

  66. Yes, but change the question. by mrthoughtful · · Score: 1

    There are already some great answers here - but I think the question is not exactly right.
    There's a difference between a hardware platform and the OS that rests upon it.

    Imagine a free, universally available, top notch OS that works on all hardware platforms. Okay - not all platforms. There's a (ever-reducing) point where an OS is more than is necessary - such as the code required to drive an electric toothbrush. However, as we continue to develop hardware implementations, it is becoming increasingly cheaper just to use the same codebase for everything - so yes, at some point even a toothbrush could be available as a hardware platform.

    Once you have a good OS that runs on all hardware platforms - the requisite toolchain is available to run all software on all platforms.
      Well... or fail gracefully (playing Doom on my toothbrush may be different unless it has a built-in screen and more than one button!)

    A universal non-proprietary OS won't be (and cannot be) owned or commercially sold.

    It's probably going to be Linux; Linux is about as close as you can get right now, and it conforms to Linux's own motives.

    Timeline? I reckon that Linux needs another twenty years before Apple, Microsoft and other outliers throw in the towel.

    --
    This comment was written with the intention to opt out of advertising.
  67. What would happen if ALL slashdot readers were rep by eatvegetables · · Score: 1

    Almost no one would make fun of this lame what-if post. Oh Crap!

  68. Re: What would happen if ALL slashdot readers were by eatvegetables · · Score: 1

    What would happen if ALL slashdot readers were replaced by way too serious people? ...stupid char length limits.

  69. Independence day by fgouget · · Score: 1

    Well, for one thing we'd be able to fight off any alien invasion by uploading a virus to their ship!

  70. Done by Anonymous Coward · · Score: 0

    Just one Word:
    Perl

  71. Which are? by hackwrench · · Score: 1

    What are the mistakes of "classic" BASIC and what makes "classic" BASIC "classic"? Are there specific features that make "classic" BASIC "classic" or is it just that it happens to be the first implementation of BASIC? How have other programming languages of the era and since avoided these mistakes?

  72. Popcorn Linux by Anonymous Coward · · Score: 0

    Guys,

    There is a Linux version that can run on a set of CPUs & GPU concurrently, can migrate thread among them seamlessly, and not needing VM. The concept is the reverse of gm, instead of a CPU ford looks like many, it abstract many CPU cores to look like one. Please google Popcorn Linux if interested.

    Cheers ......

  73. I'm happy with software that works on one platform by Anonymous Coward · · Score: 0

    I wish they could get one piece of software to work 100% reliably on one 100% reliable operating system. Even that seems too much of a challenge.

  74. Popcorn Linux by Anonymous Coward · · Score: 0

    Popcorn Linux.

    http://www.popcornlinux.org

  75. Answers come short of being useful. by Anonymous Coward · · Score: 1

    The question is not how to do it. It is "what would happen". So, Java is not the correct answer (though, yes, given enough h/w resources, one might use Java to achieve that -- yes, even games -- that's what "enough h/w" enables).

    This post would require a much deeper analysis, but from the use of Libreoffice in different OSes, I suppose life would be freer.

    Mind you, there are other things to be dealt with, not just applications, e.g.:

    - lines in text files on Windows end with two characters (CR, LF) whereas on Linux with just one (LF);

    - fonts can make your life miserable, but you can install the same font on different OSes;

    - user interfaces need adapting: desktops cannot usually zoom with two fingers, letters may be unreadable at 4K on a 5-inch screen, a big keyboard may be required for fat fingers, a big screen if you don't want to hold the tablet in close to the face etc. -- but gestures and shortcuts could nonetheless be standard across platforms;

    - then there's the question of supported file systems and the mapping of file attributes onto them (e.g. Windows and Linux use different kinds of permissions, it's not just about NTFS or EXT4)... I think something like UDF might evolve to be an answer to that need (right now, there are problems).

    Well, that would be a start.

  76. exists already by Anonymous Coward · · Score: 0

    This is already happening with docker. Docker has made the whole java container business obsolete in less than a year. Now it is eating the OS market with containerization of the OS level, like Rancher OS.

  77. Soon Borland makes it possible for TRUE .exe by Anonymous Coward · · Score: 0

    See subject: I've been waiting for this in 2018 https://community.embarcadero.com/article/news/16418-product-roadmap-august-2016/ for this to be on all major OS platforms https://tech.slashdot.org/comments.pl?sid=10324921&cid=53984051/

    Not webpage based (w/ all of its security flaws in SQLInjection, CSS & IFrame override/exploit, & javascript slowness & security abuses...)

    Not interpreted slower runtime driven code (as in the case of .NET or Java) ...But rather TRUE 'stand-alone' non-interpreted single .exe code as it already exists on Win32/Win64 currently.

    APK

    P.S.=> I've already gotten the *NIX vs. Win32/64 stuff worked out (drive letters vs. mounted devices &/or WinSock2 vs. *NIX sockets differences) so it's just a matter of waiting for Borland to finish it up in 2018 & then? "Savoir Faire is EVERYWHERE..." baby (for the most part on ALL the majors & in 64-bit form, not just 32/64 on Windows, 32 bit on MacOS X/iOS & Android already)... apk

  78. Are you volunteering to pay for it? by Anonymous Coward · · Score: 0

    Whatever magic you come up with, a program is not magically going to have the best possible interface for all of: Gamepad input, Joystick input, Keyboard input, mouse input, VR-based input, brainwave-reading inputs, 3" screens, cinema screens, projectors, monochrome LCD displays, ...
    So unless you are hereby volunteering to customize all programs in the world for all possible input and output methods (not to mention all the algorithm choices so it runs optimally both on e.g. a low-end CPU with lots of RAM, a high-end CPU with much less RAM and a GPU etc.), trying to make a "universal" program will give you either universal shit or something that works well on 1 or 2 devices and on everything else leave the users run screaming for an alternative that actually was optimized for their device.

  79. Deja Vu All Over Again by Anonymous Coward · · Score: 0

    Didn't UCSD call this p-code 30 years ago?

  80. Re: Javascript by Anonymous Coward · · Score: 3, Interesting

    No he asked for a way to do all software executable on all platforms. And that's Java.

    And he also asked what happens when all software use it. Well a lot of software do. However a lot of them is then compiled to native code that doesn't follow the "compile once run everywhere" design goal. But looking at Java software that exists and is runnable on any platform that supports Java we do have businesses that run some of their software on a Java only platform.

    What we see on Java only platforms is that the operating system becomes a replaceable components. And so does hardware to a greater degree as native applications often has limited hardware support. I can't install FreeBSD on a Raspberry Pi and expect all FreeBSD software to work. But i can install Java and expect Java applications to work. Do if Raspberry Pi has power enough to run my applications i can just use it. And I can test with different operating systems and see what is best for my application.

    So what we can already see is that Java applications gravitate away from windows into Unix-likes. People run it on Linux, FreeBSD, Solaris, various IBM mainframe operating systems. And even on Java processors. Then on top of that people use x86, AMD64, Sparc, power, ARM and a number of other otherwise incompatible processor types. What people use depends on what's best for their applications.

    So yes if this was extended to other applications such as games and Photoshop we would see a rapid decline in Windows usage and a rise in practically everything else.

    But the hardware market would be more profoundly changed. We would see ARM, SPARC and POWER desktop computers and workstations. That would put serious pressure on Intel and AMD especially when it comes to the expensive high end Xeon and Opteron products. We would see more competition and a rapid decline in processor pricing. Just like we have seen on other markets that already lack vendor lock in.

    On the enterprise server market we haven't really seen much price decline but that's because the target audience isn't very price sensitive. But we have seen a more rapid growth in performance per processor and as such a decline in the price/performance ratio.

  81. Death of mac os being only on apple hardware by Joe_Dragon · · Score: 1

    Death of mac os being only on apple hardware as they will need to do something to market there os as being the best Linux based os for home / small business users.

    Smartphone and Consoles really don't have the ram / cpu to do really pro cad / Photoshop work and phones would need like an usb keyboard + mouse + big screens to pull it off as well. Also any system with a locked in app store may have a hard time getting pro priced software in them unless they cut there cut of the cost down to like 10-15% and remove some of the sand boxing.

    Windows may hang on just for all of the enterprise stuff and for home users to that Linux to geek for them to work with.

  82. It doesn't make sense in most cases by Anonymous Coward · · Score: 0

    There's a lot of software that just doesn't make sense to port to other systems than the ones it is currently running on.

    An abstract example, we have the software package FOO, which is created to run on a server system with 1 terabyte of RAM and 1000 cores. It probably doesn't even make sense to run it on a mobile phone.

    You come across this a lot when you write portable software, where somebody spends years making something that is so generic that it can run on "everything", but it still doesn't in the end, because you have memory constraints, processor constraints, disk I/O constraints and so on.

    Creating software that runs everywhere is usually a huge waste of time. I try to write code and software which is portable, but you just have to be portable enough. Even that can be hard sometimes...

  83. Cross platform libraries exist by Eravnrekaree · · Score: 2

    Of course its possible. Several options exist. It involves using a cross platform library that provides the same API on all OSs and hides the OS level variances. To make this really work well of course a complete and powerful API is needed to account for the unpredictable needs of a wide variety of programs. Preferably, APIs for audio, graphics, 3D, video, access to audio and video input output devices, and so on is needed. One such library that has done this is Qt. As far as languages, C/C++ were designed to be cross platform but I do not recommend these in applications due to how difficult it is to write software without security problems with them. I am quite fond of Python and Qt used together.

    There is also Java which is another good option.

    It would save time in the long run for an application developer, if they found that a cross platform library needs a new feature for their app, to add this to a cross platform library, rather than code OS specific code directly into their application. This avoids having to port applications to a changing list of target platforms, and it tends to easier to add a compatability layer once to a library and then call that hundreds of thousands of times from app code, than it would be to change possibly hundreds or thousands of lines of app code. If you have a function that accesses OS level feature, and is called a thousands of times from applications, and you need to port that app to a new OS, its easier to make a single change by adding a new compatability binding for the function for a new target OS, rather than change the many thousands of invocations of the function.

  84. What would happen if all food provided the same nu by blibbo · · Score: 1

    .... It would all taste overly similar, offer less variety, be overall worse for people that are used to customizing specifically to their own body system.

    Is this a good metaphor? I don't know. But I think the point is the question is a bit simplistic.

  85. What would happen if all food was the same... by blibbo · · Score: 1

    ... In terms of nutritional value and caloric value.

    It would all taste overly similar, offer less variety, be overall worse for people that are used to customizing specifically to their own body system. Is this a good metaphor? I don't know. But I think the point is the question is a bit simplistic.

  86. 3D CAD Software Pencils by pipingguy · · Score: 1

    What would also be interesting is similarity of user interface and functions between software, especially for 3D CAD software. The goal being easier transference of skills between platforms. This type of software tends to be complicated with a steep learning curve, making it difficult for people skilled in software A to be considered for work being done with software B.

    Employer: "You're perfect for the job, your skills, experience and knowledge are *just* what we're looking for! One final question: What type of pencil do you use?"

    You: "Staedler."

    Employer: "Whoops, sorry, we only hire people who use Koh-I-Noors. Goodbye."

  87. RMS was right about "GNU/Linux" by tepples · · Score: 1

    a GNU/Linux phone that can run Android in a VM

    Android is Linux.

    Whose userspace is largely incompatible with that of common GNU/Linux distributions.

  88. Obligatory XKCD by Scarred+Intellect · · Score: 1
  89. Smartwatch as trackpad by tepples · · Score: 1

    You can run Windows on your apple watch, but there is no mouse.

    There's no mouse on my laptop either, but there is a trackpad. In a pinch, can't the whole face of a smartwatch be treated as a trackpad, with slide moving the cursor and tap producing a click? Or does the fact that the finger covers up the display make this impractical?

  90. Remote Desktop less useful on a bus by tepples · · Score: 1

    with all the virtualization stuff, remote desktop and more... well, I think it isn't a problem

    Remote Desktop works only while you are connected to the Internet. This might be good for someone who is always in range of Wi-Fi while not driving, but not somebody who rides transit. A city bus moving at 45 km/h (28 mph) doesn't stay in range of a particular hotspot long enough to associate, get an IP address, and have the client reestablish a secure connection. If you're already paying a fiber, cable, or DSL ISP every month for a connection at home, paying a similar amount to a second cellular ISP for a connection in a vehicle might not be in your budget.

    1. Re:Remote Desktop less useful on a bus by Anonymous Coward · · Score: 0

      A city bus moving at 45 km/h (28 mph) doesn't stay in range of a particular hotspot long enough
      All our city buses (nultiple operators) have had free wifi for a few years now (smallish UK city). Seems to work pretty well when I've used it.

  91. Re: Javascript by Joce640k · · Score: 2

    There's more ways than Java.

    --
    No sig today...
  92. If All Software Ran On All Platforms by Anonymous Coward · · Score: 0

    Not gunna happen while we have Microsoft

  93. Mark Parent Troll by Anonymous Coward · · Score: 0

    Webapps are slowly becoming something alright.

    1. Re:Mark Parent Troll by Eravnrekaree · · Score: 1

      I mention that is much much safer to run Javascript code on a VM in a sandboxed browser process than it is to run machine code compiled with C++ full of hanging pointers, bad mallocs, buffer overflows, running directly exposed to the OS Kernel interface.

  94. Diffing images; merge conflict in work session by tepples · · Score: 1

    Just like git version control, but for all kind of content and work sessions, not just code.

    As far as I can tell based on your description, that would require "all kind of content and work sessions" to be in a form that can be easily diffed. And if the user works on two offline computers before they have a chance to get back to the Internet and commit changes to the user's session, the application will have to provide some sort of interface to resolve merge conflicts. I shudder to think of what that might look like.

    1. Re:Diffing images; merge conflict in work session by TuringTest · · Score: 1

      that would require "all kind of content and work sessions" to be in a form that can be easily diffed.

      Ideally yes, that would be an important implementation detail. Remote desktops already do this for graphical content, and version control does it for text content. Binary would be trickier, but not impossible.

      I shudder to think of what that might look like.

      I have a good idea of what it should look like, and it's not much different to what "the cloud" services achieve today (Dropbox or Google Drive or MS OneDrive for files, tabs sync in browsers), only centralized and homogeneous rather than ad-hoc for each application (assuming that it would work as a single service for shared content and tools, i.e. something like an "Evernote for apps", not a platform capable of running every conceivable software stack).

      The trickiest part would be sending heavy binaries between devices. A simple way would be to share only pointers to the information in the other system, and having the user manually request the byte-heavy blocks that they want to use when they switch to a new device (either pushing them from the old device or pulling them from the pointer available in the new screen).

      Conflicts could be handled the same way that wikis do it, keeping track of the last edited version, and providing tools for the user to perform manual merges or seeing two versions at the same time to select the parts that they want to keep.

      There isn't an insurmountable problem from a theoretical point of view, as the problems are simpler than they look, or have already been solved. The main problem would be backwards compatibility (you would have to throw away most desktop tools, although Mobile has already done that).

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    2. Re:Diffing images; merge conflict in work session by tepples · · Score: 1

      Remote desktops already do [diffs] for graphical content

      That's done to save bandwidth, not to make changes mergeable. If you run a sharpen filter on an image on one machine, and you add airbrush strokes to the image on another machine, you'll get a merge conflict.

      I shudder to think of what [merge conflict resolution for work sessions] might look like.

      I have a good idea of what it should look like, and it's not much different to what "the cloud" services achieve today (Dropbox or Google Drive or MS OneDrive for files[...])

      In my experience, services like Dropbox just punt on handling merge conflicts, adding both branches to the user's account as separate files. I haven't had a chance to test what happens when a merge conflict pushes the account over the storage quota.

      (tabs sync in browsers)

      How does "tabs sync in browsers" handle merge conflicts if the user has the same tab open on two machines but edits the content of a textarea element differently on two machines?

      A simple way would be to share only pointers to the information in the other system, and having the user manually request the byte-heavy blocks that they want to use when they switch to a new device (either pushing them from the old device or pulling them from the pointer available in the new screen).

      Good luck with that if the other machine is switched off, or if both machines are behind NAT.

      I shudder to think of what [merge conflict resolution for work sessions] might look like.

      Conflicts could be handled the same way that wikis do it, keeping track of the last edited version, and providing tools for the user to perform manual merges or seeing two versions at the same time to select the parts that they want to keep.

      Whose responsibility would it be to provide the user interface for "seeing two versions at the same time to select the parts that they want to keep" in all applications for all platforms?

    3. Re:Diffing images; merge conflict in work session by TuringTest · · Score: 1

      That's done to save bandwidth, not to make changes mergeable.

      To be fair, you only have to make changes mergeable if you're editing the exact same simultaneously in two places. If you're using it as a personal tool, you only need to keep track of versions make sure that the user is using the last one.

      Collaborative editing whiteboards manage to solve that problem, too.

      How does "tabs sync in browsers" handle merge conflicts if the user has the same tab open on two machines but edits the content of a textarea element differently on two machines?

      It doesn't. But it would be trivial to expose both versions of the content and let the user choose which one she wants to use, or even copy/paste snippets from any of them into the final version- again, just like when using a wiki or version control.

      Good luck with that if the other machine is switched off, or if both machines are behind NAT.

      Distributed version control doesn't seem to have a problem with that. You keep separate content branches until (and if) the user wants to perform a merge with the assistance of merge tools, or deprecate branches that have become obsolete.

      Whose responsibility would it be to provide the user interface for "seeing two versions at the same time to select the parts that they want to keep" in all applications for all platforms?

      I didn't talk about "all applications" in my original post above.

      I talked about "building a truly universal synchronizing platform", i.e. one single service / protocol that some interested applications might want to implement, in order to delegate the solution to the sync problem to that platform and have it available in all devices.

      When I said "universal" I was referring to "software that ran on all platforms", not to "all content in all applications". Obviously it wouldn't solve the problem for applications that didn't implement the protocol. But having the library in all platforms would make it always available to any application that used it.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    4. Re:Diffing images; merge conflict in work session by tepples · · Score: 1

      To be fair, you only have to make changes mergeable if you're editing the exact same simultaneously in two places. If you're using it as a personal tool, you only need to keep track of versions make sure that the user is using the last one.

      If one person makes changes on one offline device and then makes changes on another offline device, these changes are "simultaneous" from the perspective of the repository. The second to commit will hit a merge conflict.

      Collaborative editing whiteboards manage to solve that problem, too.

      How well do these "collaborative editing whiteboards" work when one contributor is offline for hours? The use case I imagine is my own: someone using a laptop while riding transit to and from work in a city whose bus system does not provide Internet access.

      it would be trivial to expose both versions of the content and let the user choose which one she wants to use, or even copy/paste snippets from any of them into the final version- again, just like when using a wiki or version control.

      Assuming a library for ubiquitous distributed version control is available under terms compatible with both free software and proprietary software, the biggest obstacle I can see is getting users new to distributed version control to do two things: first, understand the model; and second, schedule time to resolve merge conflicts. A wiki isn't the best analogy because three things cause it to produce far fewer merge conflicts than distributed version control: wikis more often use centralized version control, wikis more often are edited online, and some wikis that I've used even temporarily protect a page if someone has checked it out for editing in the past 20 minutes. In addition, who operates the repository server, and who pays for its operation? Will you get a pop-over with Jimbo Wales's face begging for donations across your document every December?

    5. Re:Diffing images; merge conflict in work session by TuringTest · · Score: 1

      Thanks for the feedback, it's interesting to have someone's else use cases for this idealized tool.

      As you outline, there are several ways to handle the cases for collaboration / multiple editing
      - Online: every change gets almost instantly notified to all people editing the content. Not trivial, but it's the case with the least amount of changes in case of conflicts.

      - Creating a local branch. The offline changes are made to a local branch. When the machine gets back online, you can try to merge all the changes back to the "trunk" as a single changeset, using special tools to solve the conflicts.

      - Check in / check out. This is how Sharepoint allows content collaboration. To change some content, you need to lock it out, making it read-only for every other user.

      - "Post"/push requests. Instead of having a single huge merge with all the changes from a branch, each small change is posted to a queue. The maintainer of the trunk can see all individual changes made by different users, ordered by timestamp. Each change can be accepted or rejected by the administrator of the "official" version.

      All these models are valid depending on the type of content and collaboration. Ideally, a dedicated library would support any of them. For a personal content management system, usually you would only use the "local branch" method, as no one would change the main repository while you're away.

      Version control systems already have all this, but they work with the granularity of a whole file. The benefits of having a single universal library would be that you could reasonably implement this versioning for smaller snippets (for example the amount of content in a copy/paste). Doing this is possible today, but it's currently not practical as you would have to port the copy/paste protocol for each different platform.

      A wiki is not that different from version control in that regard, it's just more user friendly. (You can easily create copies of a base page, and later merge their page histories). It always makes it clear which one is the main "branch", and changes are made in-place in the same interface used for reading. Thus it's easier for non programmers to understand the content model.

      In addition, who operates the repository server, and who pays for its operation?

      Being a service, each company could deploy their own servers. It could be built as a federated system to share content between different servers, but usually you would synchronize all your devices from a single vendor which your trust.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  95. The observable universe is bounded by tepples · · Score: 1

    If the hardware is Turing-complete

    Then it cannot physically exist because a Turing machine has an unbounded tape, while the observable universe is bounded.

    1. Re:The observable universe is bounded by JesseMcDonald · · Score: 1

      Then it cannot physically exist because a Turing machine has an unbounded tape, while the observable universe is bounded.

      While you are technically correct, there is no practical difference. Any computable function must be able to run in a finite number of steps on a Turning machine, and consequently can only use a finite amount of tape. In particular, an emulator or interpreter for a bounded classical computing system will also be bounded.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    2. Re:The observable universe is bounded by tepples · · Score: 1

      If you restrict memory to a function of the input size, you end up with something conceptually resembling a linear bounded automaton (LBA). But even in the case of LBA-complete systems, "an interpreter or compiler" may introduce unacceptable time and space overhead compared to the performance that the application's developer expected.

    3. Re:The observable universe is bounded by JesseMcDonald · · Score: 1

      If you restrict memory to a [linear] function of the input size, you end up with something conceptually resembling a linear bounded automaton (LBA).

      Indeed, all "Turing-complete" systems in the real world are really only LBA-complete at best due to the bounded amount of memory available. The distinction is purely of academic interest and hardly worth mentioning. We aren't actually trying to emulate a true Turing machine on an LBA, we're emulating an LBA on another LBA.

      But even in the case of LBA-complete systems, "an interpreter or compiler" may introduce unacceptable time and space overhead compared to the performance that the application's developer expected.

      Well, sure, but the practicality of emulation is an orthogonal issue. The problem statement already included the condition that the device be "equipped with enough CPU, GPU and memory capacity to run the software in a usable way"; the overhead of emulation would simply be factored in when making that determination.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    4. Re:The observable universe is bounded by Anonymous Coward · · Score: 0

      > While you are technically correct, there is no practical difference.

      Not leastwise because any program on the tape will be written by humans, and no human can ever write an infinite program.

  96. NES CIC and 7800 code signing were first by tepples · · Score: 2

    I don't hate Microsoft or abhor their products, but they were the ones who made wall gardens the status quo.

    I am aware that the Xbox 360 walled garden and the Xbox Creators Club developer program preceded the similar App Store and iOS Developer Program in iOS 2 (then called iPhone OS 2). But games for the click wheel iPod also preceded iOS 2, and the developer program for those was even more closed than the iOS Developer Program. Furthermore, the Checking Integrated Circuit in the Nintendo Entertainment System and code signing in the Atari 7800 preceded even that.

  97. Yes by Anonymous Coward · · Score: 0

    It's possible, my pet project for the past ~decade has been a system that works on everything: computers, phones, arduinos, etc - the biggest constraints are the hardware limits of each platform while making things generic enough to plug and play in a way that lets you just add a device to the system and have it scale automatically (a PC - windows, linux or mac - is super easy to code for but something like an Arduino which even with a custom threading engine can manage ~2-5 threads in pseudo-real-time all of which must be incredibly slim mean the linker has to intelligently break off only the critical components of an application and even then doing things like drawing to an LCD have to happen in a VERY efficient manner compared to a PC to avoid serious amounts of flicker.)

  98. Some platforms would go away... by QuietLagoon · · Score: 1

    ... if the only real advantage they had was that certain apps ran only on that platform (aside: looking towards Redmond...)

  99. Differences are smaller by tepples · · Score: 3, Insightful

    For one thing, the differences among the four major browsers (Chrome, Firefox, Edge, and Safari) are smaller than the differences among the five major desktop and smartphone operating systems (Windows, macOS, X11/Linux, iOS, and Android). For another, web apps have only one "app store": a domain and TLS-capable web hosting. You don't need to pay for a subscription to multiple platforms' developer programs, and you don't need to wait for multiple platforms' censors to release your application.

  100. What about the security implications? by apraetor · · Score: 3, Interesting

    Diversity decreases the threat profile, you don't want every device having an identical attack surface. Think of humanity; a virus which is potentially lethal to one person may not even give another person a cold, even in the absence of immunity due to previous exposure -- this is thanks to genetic diversity. If every human was genetically identical then we could easily be wiped out by a single well-evolved virus (maybe not too well-evolved if it exterminates the host..).

    1. Re:What about the security implications? by cwsumner · · Score: 1

      Diversity decreases the threat profile, you don't want every device having an identical attack surface.

      Think of humanity; a virus which is potentially lethal to one person may not even give another person a cold, even in the absence of immunity due to previous exposure -- this is thanks to genetic diversity. If every human was genetically identical then we could easily be wiped out by a single well-evolved virus (maybe not too well-evolved if it exterminates the host..).

      This is actually a good point. And, it will be more and more important as we advance in out tech. ;-)

  101. Contradiction in terms: not "all" but "one" by DutchUncle · · Score: 1

    All of the systems that profess to make something "run on all platforms", all the way back to the original high-level languages like Fortran and Algol, are really trying to go the other way - patch over the underlying hardware to make everything look like a uniform platform. Java doesn't run on all platforms, any more than Pascal did; rather, it runs on all interpreters, with a different one for each system that makes a uniform platform. One could say the same of operating systems too; the "driver" is the shim and flexible glue between the uneven hardware reality and the nice level abstract OS platform.

  102. First, Proprietary GUI Must Go! by BrendaEM · · Score: 1

    Even beyond the legal bullshit, programmers can usually become experts in several languages, but it's a hard to become well versed in more than one GUI because there is no reason for anyone to make their GUI have less lock-in. To them, more lock-in is better.

    --
    https://www.youtube.com/c/BrendaEM
  103. Better solution: VMs by Roger+W+Moore · · Score: 0

    We've already got that. It's called Java.

    Except that Java is incredibly slow and cannot adapt to local devices well. A far better example is a VM image. These now run at close to native speeds and you can customize te GUI as you see fit. We already have cloud computing that uses VMs to allow anyone to run anything on shared resources. I expect that this will grow and spread. Whether it will get as far as the article suggests I have no idea but I expect it will go a lot further than it has already.

  104. User interfaces are *Important* by Kormoran · · Score: 1

    Do you REALLY want to run a CAD software on a nintendo-like screen, no mouse, no keyboard? Some hardware/software combinations simply does not make sense. Just think about all the fuss about mobile websites, and that was just for screen resolutions (no, NOT for bandwidths)... Most of the times, user interfaces are projected for a particular kind of device and does NOT bode well on a different one. P.S.: No, java is NOT the answer to portability...

  105. We've already got that by Anonymous Coward · · Score: 0

    It's called GCC

  106. The obvious: OS would be the special featureset. by Qbertino · · Score: 1

    Captain Obvious strikes again?

    The OS then would be the specific featureset. Stuff like this happens already. In professional web development it's almost academic which OS you use on your desktop for development. Apart from some neat platform specific tools like Kaleidoscope, CodeKit, etc. that might tender to specific preferences of certain developers it's just about of nil significance which OS you use.

    macOS has a neat for-money FTP client called Transmit, Linux usually has it integrated into the Filemanager.

    But Atom, Geany, NetBeans, PhpStorm and so forth including local AMP or other devstacks Stacks run just about the same on all desktop OSes. ... OK, BSD might have some trouble getting some to run.

    The OS is all about what you prefer at certain fringes of your work. If that's the case, that is a good reason to move to a FOSS OS btw. Which is why I moved from macOS back to Linux after 12 years and got a new 300 Euro netbook rather than the new 2300 Euro MB Pro - although I do like the massive trackpad and the keyboard - neat hardware from apple once again - no doubt.

    My 2 cents.

    --
    We suffer more in our imagination than in reality. - Seneca
  107. Re:What would happen if software ran on all Platfo by unixisc · · Score: 1

    Actually, no. The closest to that that we had, in the late 80s and early 90s - Unix on a variety of computer platforms - we have implementations that were very incompatible w/ each other on a source code level, where compiling, say, a package for SunOS/Solaris was not compatible w/ Ultrix or AIX. In fact, that was one of the early promises of Windows NT - that one would get a common platform that ISVs could compile to multiple platforms. So a CAD package could have been designed for NT/Alpha, an animation package for NT/MIPS and so on.

    It's another thing that Intel obliterated the performance advantage of RISC w/ their core architecture, as well as all the FUD about Itanium. Even though the latter failed to ever gain any traction, it did manage to obliterate any interest in the RISC CPUs, and drive them into oblivion.

  108. Windows would die. by newdsfornerds · · Score: 1

    Really, it would.

    --
    Damping absorbs vibrations. Dampening is caused by moisture.
  109. Done. by senatorpjt · · Score: 1

    It's already possible to write an application that will run on any platform with things like Java and Web applications, so long as the platform allows it. It doesn't matter because the platform people have to choose to allow applications to run on it (e.g. Apple won't allow Java on iOS, despite having no technical reason) and the application people have to write for it (Microsoft would never port Office to a universal runtime)

  110. It would stop working on Microsoft Windows by Anonymous Coward · · Score: 0

    when the next software update was released.

  111. It's a dumb question to ask in the first place by Weaselmancer · · Score: 1

    What would happen? Why worry about it? It never will happen so it's not worth taking your time to think about.

    And the answer why is right there in the article blurb. I want you to really consider what it would be like trying to control a complex 3D cad program with a Playstation controller. Or a dinky touchscreen-only interface on your phone. Picture how bad that would be.

    It will never happen because nobody sane would ever want this.

    --
    Weaselmancer
    rediculous.
  112. It's bitztream by Anonymous Coward · · Score: 1

    The autism-hating, custom EpiPen-hating, Musk-hating Slashdot troll!

  113. Re: Javascript by Anonymous Coward · · Score: 0

    Not that covers as much different hardware platforms and operating systems. And also none that are as fast and efficient as Java has become. Web applications for example doesn't run on headless machines which includes most embedded systems. Not to mention that JavaScript is several magnitudes slower than Java. Unless you compile it with Nashorn and make it run on the JVM. Then it's a lot faster but still not as fast as Java.

    Of course the are CIL but it as well do not have supported for all the hardware and software platforms that you can run Java on. And it isn't as fast as Java.

  114. wouldn't be tolerated by Anonymous Coward · · Score: 0

    If we had it, someone would sue. Sometimes the purpose of incompatibility is to get you to buy the vendor's hardware. If you could run iOS applications on non-Apple handhelds, you can bet your ass Apple lawyers would become involved.

    Also, cross-platform tends to assume a point of view, where the user is someone you respect and are trying to serve. That is often not the case, where the user is the fuel for serving someone else's agenda. e.g. ads. When you adopt this more conventional users-are-the-product PoV, compatibility isn't going to make your top ten wishlist items.

  115. One Size Doesn't Fit All. by westlake · · Score: 1

    Example: 3D CAD software that runs on Windows 14, Playstation 7, an Android Smartphone, Nintendo's latest handheld gaming device and an Ubuntu PC in exactly the same way with no compatibility problems whatsoever occurring.

    The Playstation sells to console gamers and home theater enthusiasts with a big screen HDTV. Your CAD/CAM program has to be something that market needs and wants and can use effectively.

  116. Re: Javascript by Anonymous Coward · · Score: 0

    You are a cunt. My hordes of Indian H1-Bs are gonna Virtual Machine your ass with their EJBs and J2EEs.

    Get ready to have your Beans POJOed into the Java!

  117. Re: Javascript by Anonymous Coward · · Score: 0

    Such as? Mono/.NET doesn't even work well on Linux. JavaScript and other scripting languages do not have nearly as broad platform support as Java. Not to mention that it requires more CPU and memory to run limiting their hardware support by increasing minimum requirements.

    Mono/CLR is based on better specifications than java but lacks in implementation.

  118. Re: Javascript by K.+S.+Kyosuke · · Score: 1

    Not that covers as much different hardware platforms and operating systems. And also none that are as fast and efficient as Java has become.

    On the other hand, I can run CCL or SBCL on pretty much anything, and none of it treats me like a complete idiot as efficiently as Java does. Java is very good at that...

    --
    Ezekiel 23:20
  119. Remote Desktop usefulness depends on city by tepples · · Score: 1

    All our city buses (nultiple operators) have had free wifi for a few years now (smallish UK city).

    Buses in Fort Wayne, Indiana, USA, do not. What action should people living outside your "smallish UK city" take?

  120. Is Dryriver new to this whole tech space? by ejoe_mac · · Score: 1

    Seriously, this user has submitted many open ended, or inexperienced questions. Check out the users submission history: https://slashdot.org/~dryriver

    No, all software anywhere will never happen. Period. You would have to force everyone to code in specific cross platform languages and frameworks, and force hardware vendors to only develop based around specific platforms and restrictions. It will never happen. Imagine not having Arduino as a platform, because it's limited power and function is great at embedded systems. Platforms are selected for specific software based on what the developer wants to create. Low power? Graphics power? CPU power? Different use cases need different platforms.

  121. Re: Javascript by Gr8Apes · · Score: 1

    none of it treats me like a complete idiot as efficiently as Java does. Java is very good at that...

    I'd say that's a failing of Java, it usually protects you from such things.

    --
    The cesspool just got a check and balance.
  122. Java? by JustNiz · · Score: 1

    Isn't this the problem that Java was trying to solve?

  123. HSI by Anonymous Coward · · Score: 0

    I know this is tangential to the original question, but the Human- Machine interface issues are an interesting problem as well. Imagine running something on your laptop, you have a touchpad and keyboard (relatively 'full size') while on a smartphone, you may have access to a keyboard, but it is far from 'full size'. Figuring out how to manage the same input/output/display to support these differing capability sets seems a serious problem all by itself.

  124. Yes, but only for a subset of "platforms" by Anonymous Coward · · Score: 0

    As long as you can emulate one platform in another, this is possible.

    But the question is very narrow minded, as the entire point of differentiated platforms is that they have different capabilities. For example, if one platform exposes N-point touch input, but no mouse. And another has no touch input, but exposes a 3-axis pointing device. The software for one will never be able to correctly run on the other, because the the -physical- constraints on the platform.

    And then there is the example of quantum computing. There's no way to port it to today's iphone, and no polyfill is theoretically possible.

    And that's just the tip of the iceberg. What about computers that aren't even von neuman machines?

  125. Re: Javascript by Anonymous Coward · · Score: 0

    Not to mention that JavaScript is several magnitudes slower than Java.

    Really? Because I'm not seeing orders of magnitude difference here... typically Java seems to be no more than 2-5x faster.

    https://www.paypalobjects.com/webstatic/blog/node_java_perf.gif
    http://benchmarksgame.alioth.debian.org/u64q/javascript.html
    http://dvschroeder.blogspot.com/2013/07/java-vs-javascript-vs-python.html

  126. The Universal Turing Machine by Anonymous Coward · · Score: 0

    A random string of ones and naughts will produce a posting when run on Slashdort, fake news on Facebook, an ad on Google, a game on a Playstation, money on a mainframe, progress on a Cray, a tune on an iPod, a virus on a PC, an act of userfriendliness on a Mac, a pretty picture on SGI, a mushroom cloud on an ICBM. It would cause the stock market to crash, but make an Airbus fly. Just because that's what those machines do.

  127. Re: Javascript by MightyMartian · · Score: 1

    I agree here. I've seen a lot of abstraction libraries that attempt to make cross-platform development easy, and even some work on interpreted languages to make cross-platform execution possible. I can write CLI PHP or Python scripts that, by and large, work on all major hardware and software platforms, but there are still quite a few gotchas, particularly when it comes to file systems. That extends to web apps as well, and it's pretty easy to build PHP, Python, Ruby or whatever your flavor is for web apps.

    But when it comes to GUI applications, I haven't seen anything that comes close to Java. I'm not always the biggest fan of Java, but at the moment, JVM is the only cross-architecture platform that really does deliver. It's not always pleasant, but I have yet to have a Java app fail when moving between *nix and Windows.

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  128. It's not too hard by Anonymous Coward · · Score: 0

    We have the answer: the closest thing to a universal computer we are going to get is the IBM System/360 and its successors System/370, System/390 and System/Z. It may not be perfect, but it's better than the alternatives, so better abandon those. Especially you young Unix weenies.

    Oh, and the world would be a peaceful place if everybody spoke Texan English, wore tan skin and worshipped the Flying Spaghetti Monster. Let's make great American blues again.

  129. Re: Javascript by Anonymous Coward · · Score: 0

    Intel has decided cpus are fast enough. If its slow, its bad design.

  130. Re:you are wrong by MightyMartian · · Score: 1

    They do the job, for the most part (excluding gotchas like file system differences), but just try to develop a GUI application in even the more modern interpreted languages that will run reasonably well in multiple environments. Java, whatever you think of the language, still has the upper hand in portable applications.

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  131. Re:What would happen if software ran on all Platfo by MightyMartian · · Score: 1

    ARM's architecture is at least still nominally RISC, and I suspect at this point the number of ARM chips out there in the wild outnumbers Intel chips, I'd say RISC is still very much alive.

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  132. Re:Stupid idea - CORRECT by gosand · · Score: 1

    It goes against the definition of computer software itself. There may be examples of instances that come close, but the question itself is fundamentally flawed. Well, I suppose it isn't really, because the question said if it could magically happen. So it's a thought-experiment, and isn't based in reality.

    Carry on.

    --

    My beliefs do not require that you agree with them.

  133. wolrd's biggest back door! by morethanapapercert · · Score: 1
    The original question assumes a solution that goes deeper than Java, since the question is phrased to exclude emulators and other options. (which I assume to also exclude compatibility/translation layer such as Java) The closest thing I can think of that fits the question as phrased would be if applications were written in raw binary and all host devices allowed running of such things. This would effectively bypass all OS functions, such as driver support, file system management, memory garbage collection, network stack and so on.

    Right off the bat; applications would have to be much much bigger than they currently are, since each application would have to include it's own drivers, garbage collection, etc etc. That in turn makes applications far more prone to bugs and exploits as well. Then there's the fact that a successful exploit would have far more reaching consequences. Instead of say a Windows 10 only exploit, you had an exploit that affects everybody who runs the exploited software. Which leads to the question "How would a anti-malware program even work in such an environment?" When you're allowing direct access to disk I/O, networking, system buffers and memory, how does a security program monitor all that and distinguish good from bad?

    I'm no computer scientist by any means; but I do know that there were and still are good technical reasons why we evolved systems that handle all the common chores to support running applications. While software portability is desirable, there is a limit to that. There just isn't a need to run mainframe programs on your cellphone for example. If I understand the underlying theory correctly, any Turing complete machine can run any program intended for any other Turing complete machine. So, in theory your cellphone could run a mainframe application but it would do so in a painfully slow, so slow as to be useless, manner. The current digital universe is very roughly divided into broad areas of utility. You have your mainframes which overlap large servers, which overlap small servers. Then workstations which overlap desktops which overlap portable devices. I think it is those areas of overlap that prompt the posters question.

    --
    I need a wheelchair van for my son. Help me get the word out. https://www.gofundme.com/wheelchair-van-for-jj
  134. Hey assholes. by Anonymous Coward · · Score: 0

    Hey assholes, I don't know if you realise this, but whatever garbage ads you are running on your site are redirecting my mobile browser. Fucking fix this shit you asshats.

  135. 1980s problem no longer relevant by RubberDogBone · · Score: 1

    In the 80s and 90s, being able to run a specific application meant something. You had to have the right combination of hardware and software to make it all work.

    But now, a whole LOT of stuff runs in a browser, and runs the same across platforms. Which platform it happens to be is mostly irrelevant. Most people won't even care which platform they are using.

    So we don't need a Mac version or a Windows version or a mobile version. Just something that runs in a browser and done. Oh sure, there will always be certain applications that require a native application. This is going to be a smaller and smaller number every year.

    --
    Sig for hire.
  136. Windows would die by DMJC · · Score: 1

    If all software ran on all platforms. Windows would die and something like Linux/OSX would completely take over. One would be user friendly (osx-like) and the other would be designed for hardcore computer users.

  137. Switching from Windows to Android by tepples · · Score: 1

    A lot of people have switched from a desktop or laptop PC to a smartphone or tablet as a primary personal computing device. And in many cases, this smartphone or tablet runs Android (which uses Linux as its kernel but admittedly isn't GNU/Linux).

  138. Emulation incurs a 10 to 1 speed hit by tepples · · Score: 1

    Or you could stop trying to go back in time and pretend that virtualization and emulators somehow don't exist anymore, since their existence tends to be the entire point of this question.

    In my experience, interpretive emulation eats up 90 percent of CPU time in the interpreter. Or what kind of emulator did you have in mind?

    With the hardware race to keep Moore's law alive as long as possible, we've had "enough" GPU, CPU, and memory in hardware for quite a long time.

    Enough GPU, CPU, and memory to run something natively != enough GPU, CPU, and memory to emulate it.

  139. Universal car? by DidgetMaster · · Score: 1

    For the same reason we don't have a single 'car standard' where every car sold has the exact same feature set. Same size engine, same tire size, same number of passengers, same radio, same transmission, etc... People actually want different cars. Some want a pickup to haul or tow things. Some want a little sports car that one carries two people. Others want a mini-van to haul their 5 kids or the soccer team around. Yes, some things would be easier if every car had the same parts and features, but most people don't want that situation. Same with your computer hardware and operating system. People want different things.

  140. Re: Javascript by TekPolitik · · Score: 1

    Actually it's JVM. It can run more than just Java. I have ported GCC to it as a target (fully featured for at least C and C++, including pointers, trampolines and long jumps). I only lacked standard libraries to make it useful.

  141. Uh - No by Anonymous Coward · · Score: 0

    All the replies I looked at seemed be oriented towards narrow silos like Windows/Linux/Mac.

    This question makes no real sense at all other than as a discussion generator. Why in the world would you want your Dyson network aware fan to be able to control a car or nuclear plant? We have computers in so many things now with so many different functionality requirements, input/output requirements, storage/memory configurations that asking if we can ever have all software work every where is like asking if a single type of wheel can work everywhere.

    Not just no but hell no!

  142. Why not just use containers? by Guitargeek86 · · Score: 1

    Isn't compatibility one of the largest reasons for containers and standard building configurations for environments? I would argue that if all software ran everywhere it also means that everywhere when a vulnerability is found creates a large security issue, as seen with Java already. This is one of the large reasons why containers are the future for programs. All OS' can be agnostic and the container will have all of its libs etc.. and the OS will run it happily. It prevents security issues by jailing the application except for key things like storage and solves this issue in a better way. I know personally when I went to containers and started controlling the dev environment once we had more than one cook in our programming kitchen things got a lot smoother. VM's were the first wave of this, and now containers are the second wave.

  143. Postscript by ChrisMaple · · Score: 1

    Don Lancaster has been promoting Postscript as a general purpose computing language for many years.

    I don't like it, I think it's slow and difficult to write. But if a machine has a postscript interpreter, it's another option.

    --
    Contribute to civilization: ari.aynrand.org/donate
  144. Re: Javascript by monkeyzoo · · Score: 1

    Same thing would happen as if pigs could fly... ANARCHY!!!
    It'd be ANARCHY!

  145. Linux would be king by TheOuterLinux · · Score: 1

    Linux would be king if all software were crossplatform and most of the software would then become open source. Garageband and iMessages are the only things keeping me from moving completely away from Apple. Microsoft only has the video game advantage so if Linux had the same titles available, why bother giving up my privacy and freedom of customization if I don't have to? And then for arguements sake, let's analyze the companies as a whole. Mico$oft and Apple don't hold a candle to Linux in the 503c Non Profit market. If it comes down to picking a platform known for generosity and a community that actual works together and each has a say in things, Linux also wins. Hell, White Hat or Black, Linux already is the OS of choice regardless of the hypothetical world proposed. That should tell you something in itself. Most servers also run Linux. And another thing, I honestly don't understand why the U.S. Government uses Window$ unless Cortona has dirt on everyone. It's bad when the FBI directors cover their own webcams. Matter of fact, Linux is NEVER in the news. You know why? Privacy. Security. No backdoors. Even if software were all crossplatform, the cores and kernels of the "Big Three" would still have to be different enough to hold patent rights, except Linux doesn't use such proprietary garbage and allows everyone to look at and improve the code. Think community watch of diehard nerd rednecks vs. mall security guards that need the extra cash. The uniform is nice, but I'd feel safer around the guy with a fishhook in his hat. Weird analogy, but most of us Linux users are just as passionate about being a Linux user as the typical redneck is about being redneck and we don't like people pretending to have authority (Window$ and Mac) all that much and it is sickening to see everyone convinced that they have to use them. Literally, people would still choose one or the other over Linux because of fear and ignorance they'd both have to spread to stay on top. "Gotta have windows to be a good business." Gotta have a Mac to be creative." Bullshit. I've used Linux long enough to know better.

  146. The Youwin project by Progman3K · · Score: 1

    Source-level compatibility, so you have to recompile your source for each different chip, but you only need to write your app once.

    Write up here
    www.sprysoftware.com

    --
    I don't know the meaning of the word 'don't' - J
  147. Re: Javascript by Anonymous Coward · · Score: 0

    Java script doesn't have platform dependency ... it has interpreter dependency. Nodejs makes it run outside browser on windows , Linux , and wherever else you port nodejs.

  148. How's life in the hypocrite lane?

  149. Re: Javascript by Joce640k · · Score: 1

    Such as? Mono/.NET doesn't even work well on Linux. JavaScript and other scripting languages do not have nearly as broad platform support as Java.

    Spot the script kiddie.

    --
    No sig today...
  150. All software would be shitty by cfalcon · · Score: 1

    If all software ran on all platforms, all software would suck, and as a result, all platforms would suck too.

    All software includes real time software, right? So every platform has to be an RTOS. It also needs to NOT be an RTOS, at the same time. So right away, that's impossible, and the "UCSA" in question is faced with a FUNDAMENTAL issue.

    Wii Bowling requires a Wii-mote, and is tested as such. Would it work as well with a touch screen? What about with a keyboard and mouse? What about with a keyboard? What about just with a PS2 controller? What about with a flightstick?

    Replace "Wii Bowling" with any production application, with a SQL database, with gvim, with World of Warcraft, with a home coded neural net, with an arcade game, with whatever. Which of those have inputs that would be useful?

    A program optimized for a 4k Display, running on a 1080p television would be lame, right? What about a tiny app that makes assumptions about resolution running on something much bigger?

    So, already the idea sucks because the INPUTS and the OUTPUTS are vastly different across devices.

    Lets take to internals. If you don't have enough RAM, do you swap to hard disk? Do you swap to SSD? Wait, swapping to SSD totally hammers its reliability. Do you build future programs for a small amount of RAM? Not everything scales with the user's demands. Some machines are very good at some kinds of memory operations, and others better at others. This guides how programs are built and tested on those architectures. The "UCSA" programs would have to establish limits on RAM, just as you say, but there's a bunch of factors about RAM besides quantity. By the time you are done enumerating, you don't have something very universal.

    Finally, the one part that has gotten real and persistent attention- what about the CPU? Every CPU is good at different shit. Hardware optimizations can make a big difference. Intel's transactional opcodes can vastly increase performance on some chips, cause hard lockups on other (bugged) chips, and are not present at all in any of Intel's competition. Languages that compile to bytecode instead of opcode skip this, and Java and other cross platform approaches give a good chance of code that is hardware independent. But Java has to virtualize a lot of the assumptions made as well. The "UCSA" will have at least as many assumptions as Java. It will require an additional layer of API to talk to the drivers, which will not be trivial with stuff that needs to talk to graphics cards. This additional layer will need to support all the varieties, meaning that an update to Vulcan will require a new version, as will an update to Direct-X, etc.

    Also, this approach is entirely future-blind. What does a chip with a built in FPGA look like to your universal software thing? Does it have to universalize FPGA programming and utilization as well? An algorithm meant for FPGA usage may be shockingly slow if dragged into the CPU and executed. What if the universal software needs random numbers? There's a huge difference in how random numbers can be, and this cannot be virtualized away. If you expose that your numbers are generated by the CPU instead of an exeternal RNG, then the application can refuse to run without secure random numbers, making it not universal. If you abstract that away, then your crypto program may never run the way it needs to- it may be totally useless. What about something further away, like a quantum compute card, or whatever?

  151. It is called docker by Anonymous Coward · · Score: 0

    We already have this capability. It is called docker/pick your own. Your software can be anywhere, anytime, on demand and scalable with some form of load balancing. It is taking the world by storm and turning the deployment model on its head.

  152. We already have this and its call Docker by rtfmoz · · Score: 1

    This is not even a question anymore. Millions of applications around the world today run on platforms they were never written for because of docker and the containerization technology. It has turned the development model on its head, spawned devops and it run by most of the top 500 companies in the world today. Go and have a long look at https://hub.docker.com/ and pick your application. The beauty of this technology is not only does it not care what platform you run an application on, their are literally millions of docker images available for you to choose from so you don't have to build them yourself. You get to stand on the shoulders of giants and get to work immediately. Example Case: This user installs Docker on his home NAS. Now can run ANY application listed on docker hub.

  153. Software by NewYork · · Score: 1

    Features, Performance and Usability

  154. Railroads by cwsumner · · Score: 1

    That would be like all cars running on all roads, or all trains running on all tracks.

    Cars are pretty far along, but not 100%.

    Trains are not too bad, but only maybe 90% (?)

    Computer platforms are like every town build their own dirt tracks, of whatever type and width they felt like ! 8-)

  155. E-Lec-Tron by Anonymous Coward · · Score: 0

    Seriously, anybody who doesn't use Electron is fucking retarded, and it almost makes me not want to run their software.