7 ms·
You missed the biggest issue: "write once, mediocre everywhere." Windows, Mac, and X were all different, and Java Applets were necessarily bad at emulating all
by username223 10y ago
You missed the biggest issue: "write once, mediocre everywhere." Windows, Mac, and X were all different, and Java Applets were necessarily bad at emulating all of them. While there are fewer Unices today, there are more GUIs, and cross-platform apps suck at least as much.
- scott_karana 10y agoYou missed the biggest difference: Chrome is the same everywhere.
- username223 10y agoSo were Java Applets with AWT. Users hated that, so Sun tried PLAF, a half-assed emulation of each platform. That didn't work either, so Applets died. If Chrome manages to provide better versions of most applications on most platforms, it may win. Otherwise, people who use those applications will hate it with the heat of a thousand Suns, and it will go the way of the Java Applet.
- josefx 10y ago> So were Java Applets with AWT. Users hated that, so Sun tried PLAF Uh, Java AWT was the native toolkit. Swing was the non native UI with the ugly METAL default Look and Feel. There are some nice custom Look and Feel implementations that don't try to emulate a platform, I think Matlab uses one for its UI.
- 72deluxe 10y agoOddly you see non-native toolkits these days for many apps, and users don't seem as bothered anymore, unless I am mistaken? For example, look at Windows 10 and the mishmash of controls (are they flat? or do they have a bevel?) available from the control panel, settings app, old COM dialogs, MMC etc. etc.
- TeMPOraL 10y ago> and users don't seem as bothered anymore What choice do we have? Everyone's doing their own walled garden, so it's not like I can go and find an alternative SaaS / operating system with same features but better UI...
- flukus 10y agoLinux has two options that offer a lot more consistency than you'll find on windows.
- flukus 10y ago> For example, look at Windows 10 and the mishmash of controls (are they flat? or do they have a bevel?) available from the control panel, settings app, old COM dialogs, MMC etc. etc. One of the last straws for me was the built in mail app that had this awful background image. Too many flashbacks of shitty access apps.
- dfox 10y agoAnd the Metal plaf was the least ugly of the three that were originally shipped with JVM (other two tried to match how AWT would look on Windows and Unix). But IIRC, AWT was not native (in the sense of "calls native OS GUI components") but only tried to look native and failed horribly at achieving that. One thing that strikes me as weird is that almost any widget set that does it's own drawing or even just it's own automatic layout and tries to match look and feel of native UI invariably does not match even the basic look because various UI components use wrong size, are placed slightly differently and so on. For example everything I've ever seen that tried to match how windows 3.1 Ctrl3D looked draws window decorations one pixel narrower than the original, which is plainly visible and ugly, similarly things that attempt "looking like Motif" usually use different thickness for various lines and borders and also often mix-up meaning of focus rectangle (which should move by tab) and bevel around default button (which should stay in the same place irrespective of which control has focus). I see no technical reason why either of these things cannot be done right, is there some legal reason for introducing such small differences, that are small, but big enough to be annoying?
- josefx 10y ago> But IIRC, AWT was not native (in the sense of "calls native OS GUI components") but only tried to look native and failed horribly at achieving that. A quick check of wikipedia backs my memory, the Java classes were just a thin wrapper around the native components. AWT was mostly bad because it was limited, it does not even have a Table. > even the basic look because various UI components use wrong size, are placed slightly differently and so on. The windows API does not come with a layout manager AFAIK. I vagualy remember setting every bit of relevant size/position data by hand last time I used it directly. Same could be done with AWT, so this is mostly likely caused by programmer lazyness.
- dfox 10y agoThe part about sizing being wrong was not that much about AWT (although IIRC it also has this problem, at least on Unix, where it looks decidedly non-motif) as about just about any non-native toolkit that tries to look native. Windows does not have layout manager, but has API for getting preferred sizes for various low-level UI parts (in Windows 3.1 small part of of this was even user configurable).
- xorcist 10y agoUsers will say the software looks "different" but what they really mean is "ugly". The UX differences is not always a problem. See: Winamp.
- MarkMc 10y ago"Write once, mediocre everywhere" was a problem with Sun's implementation, not with the concept of cross platform code. There are tons of webapps which are very successful, despite being written 'once'. In any case, Google doesn't need to be as strict as Sun was. It is free to implement "write 90% of your code once and 10% customised for each platform".
- username223 10y agoWebapps in the sense of "fancy JavaScript" are no better than Applets. Google has the infrastructure, money, and business model to put most of the code on their servers and write native clients. Modulo privacy issues, they have found a solution.
- piyush_soni 10y agoOh I bet they are! Like, anything is better than those slow, buggy and annoying Java Applets and I'm so thankful to god they're over. Did anyone ever notice how slow they were not only to 'run', but to initiate and start doing just about anything. I always knew it was a java applet even before it started anything because of its characteristic loading behavior.
- pjmlp 10y agoI feel the same way when a browser Window freezes, full of JavaScript assets bigger than Doom.
- TeMPOraL 10y agoWebapps today are the same. Their characteristic behaviour is rendering the skeleton of their UI, and then greeting you with a spinner. They take about as much to start up as Java Applets did. Now, consider the orders of magnitude improvement in computing power over the years, and notice that webapps aren't really doing anything more complicated than old applets did...
- flukus 10y agoNow remember that they ran on machines with 16MB of RAM. Could this page even render on a machine like that?
- deleted 10y ago[deleted]
- josefx 10y agoI never understood the need to "emulate" all of them. Linux has always been a mess of tools written against different UI styles ( GNOME, KDE, MOTIF, ... ), Microsoft also reinvents its UI with every release leading to outdated application UIs and I don't know how consistent Apple was. I think the best you can do is choose one and stick with it, its not like most websites look and feel native.
- alexvoda 10y agoThere is one BIG difference. The Android frameworks are already the default on a major platform. Googles Material Design already looks native on both Android (majority phone platform) and ChromeOS. Java did not have a major platform where it was the default framework. It was not the default on Windows or Mac, not even on Unices (with the exception maybe of SunOS or Solaris, but not even there). If Java framework was not the default anywhere, then the primary reason to use Java was because it works everywhere. The primary reason to use the Android frameworks and Material Design is to publish on Android. Having it work everywhere else is a great bonus. Android and Material Design will not be "write once, mediocre everywhere". It may become "write once, great on Android (majority of phones) and ChromeOS, mediocre elsewhere." But writing for Android does not exclude creating native versions for other platforms. Using Java did exclude creating native versions because that was the reason to use Java, to not have to write native versions.
- 72deluxe 10y agoI thought it was "write once, test everywhere" because the ideal of cross-platform software forgot about developers doing system-specific things (eg. file system paths)