ReactOS, a 17-year quest for an open-source Windows, has a new release candidate
finance.yahoo.com
finance.yahoo.com
From my perspective, Windows is an inferior system to any UNIX-based system on almost every front. It has a very strong application ecosystem, but technically it's unpleasant to work on (for me). So, given that, if there's something I want an OS to do that Linux can't do, I would be motivated to work on making Linux able to do that thing so I could do that thing on an Open Source OS I enjoy using, rather than work on replicating Windows so I could do that thing on an open source OS I don't enjoy using.
But, it seems there are people who genuinely enjoy Windows more than Linux (or BSD), and are willing to work for 17 years in pursuit of being able to run an Open Source Windows version. I admire them for it, but still can't understand it.
(I've been writing Win32 apps for over a decade, so maybe I'm biased that way, but I definitely prefer (ba)sh over command.com/cmd.exe. My ideal environment would be a pre-Metro Windows GUI with a UNIX-based filesystem and command prompt...)
No, Windows has Qt, Gtk and all the others, too. Virtually any regular user Windows install has 2-5 Qt apps on it. And Windows has been infamous for apps reinventing standard UI elements with skinned monstrosities.
I guess Wireshark's Qt and it gets used occasionally. But most of the cross-platform Qt and GTK stuff I used to install (Pidgin and GIMP immediately come to mind) I haven't even installed on a machine in ages. I've moved to native alternatives for a lot of the stuff I run, and what cross-platform applications I do run (Chrome, Sublime, etc.) tend to implement UIs with the native toolkit, since that's a much better experience on non-Linux platforms.
I'd also argue that Qt applications are still "native" in that they run as a native EXE (or ELF on nix). Granted they don't use Win32 APIs, but then calling them non-native because of that is a little like calling Windows OpenGL games non-native because they don't use Direct3D. But that's an aside point.
On the whole, I don't think it makes sense to categorise Windows desktop applications by what toolkit they use. MS Office 2003 didn't use Win32 toolbars. Office 2007 then introduced the ribbon bar, which changed in appearance in every subsequent release of MS Office. And even within MS Office, Microsoft doesn't always follow the same design patterns (Office 2007 used ribbon in Word and Excel but not in Outlook). Even outside of MS Office, some Windows applications in WinXP used different menu bars to the ones provided by the Win32 APIs (you can see by looking at whether menu items go 3D or just highlight when you hover over them). One example was the difference between Windows Explorer and Notepad. Plus often older Windows utilities go completely unaltered for years, eg the add font dialog box in XP was still using Windows 3.1 APIs: http://apagreekkeys.org/images/addFont1.jpg ....and this is all without discussing the disruption Metro has caused.
I will grant you that in spite of these criticisms, Windows still fairs better than Linux in terms of uniformity. But it's certainly not consistent enough to define anything that doesn't use Win32 widgets as non-native.
This is before you get into pro apps like Mathematica or Maya (and half of Autodesk's other apps and Nuke and so on). Or not-pro but widely used and semigeeky stuff like Avidemux. Or Valve's video making tool for Source engine video games like TF2 used by game YouTubers and esports people.
Qt is a pretty common way to write GUI apps for Windows. Just go to any regularly used Windows PC with a 20-something user and I almost guarantee you will find a few qtcore DLLs.
The fact is a user can go for years without ever using one. And in the tens of millions of apps available for Windows, QT based ones make for less than 1/1000...
Yeah, a user can conceivably go for years without using one. By far most won't though, or will have Qt apps installed they don't use frequently.
Qt is an 800k developer ecosystem[1] -- do you think they all work on Wireshark? Most of them write Windows apps.
1 = https://youtu.be/sa2gS9GKG9Y
Edit: windows.com seems quite taken as well: https://blogs.windows.com/devices/2011/03/15/10-qt-use-cases...
Not sure about the "axe to grind" thing -- I didn't call any names, and it kind of calls for people to see any kind of reply from me as further "aggression". I merely stated my opinion based on what I've seen 15+ years in IT (including using QT to write some KDE API based apps).
I believe I have a quite good understanding on where QT stands in the "commercial apps" landscape, and common isn't the word I'd use for it. Skype would be the biggest success story, if they still use it, and it looks quite different from the regular QT/Windows look (which is what we were discussing).
So, just by Skype alone sure, you'll find "most Windows PCs used by regular consumers have [a copy] of Qt on them", but that's not enough to call it common in my book. Most regular PC also have had Java applet SDK and even JREs, and one could cite a few apps using it, but few would call Swing "popular" in the desktop space.
As for Qt being a "800k developer ecosystem", a lot of them work on internal enterprise tools, automation software and stuff like that, which has been a traditional market for TrollTech and QT in past decades. Then there's always KDE of course too.
Many of which run on Windows, FWIW.
In fact, as I've just checked it again to be sure, the whole initial point was a non starter, trying to paint Windows as equally fragmented, UI-wise, as Linux.
- iTunes (built on a port of some of Cocoa I think)
- Spotify (custom UX, also on Linux - using Qt - but I don't bother)
- Steam (custom UX, own toolkit - also on Linux)
- EA Origin (custom UX, made with Qt)
- KakaoTalk (custom UX, I think using a native toolkit though)
- LINE (similar to Kakao)
- Telegram (custom UX, built on Qt - actually this runs fine on Linux, but I keep it in the VM alongside KakaoTalk because it's the same use case)
- Firefox (custom UX, with native-ish theming by its own XUL toolkit grabbing stuff from Windows APIs)
- Chrome (custom UX, built on a custom toolkit called Aura with some Windows exceptions)
- Kodi (custom fullscreen UX)
All of these are apps with user numbers in the range of hundreds of thousands to tens of millions, and they're all unicorns. (You may never have heard of KakaoTalk or LINE, say, but both have 50+ million desktop installed bases.)
Some of the above (Telegram, Firefox, Chrome, Steam, Spotify) show up on Linux just the same, no better or worse. Outside of that, most apps people actually use on Linux:
- KDE/Qt apps, which import a lot of standard structure from kxmlgui and DE settings (e.g. dialog button order, standard dialogs) from Qt's QPA plugins
- Gnome apps, which follow a strongly defined HIG
- Non-Gnome GTK+ apps imitating the Win98-style HIG for the most part (which overlaps a fair bit with the kxmlgui standard structure)
Sure, there's a long tail of other toolkits on Linux (just as on Windows), but my argument is basically: Going by the most-used apps, Windows and Linux suffer this problem (if you consider it one) to a similar degree, but Windows slighly worse because outside the apps showing up on both platforms, the remaining popular Windows apps are more fragmented UX-wise than on Linux with its three broad categories.
Heck, Windows 10's bundled apps are fragmented UI-wise to a much greater degree than any competing offering due to the classic/Metro divide.
It's an utter mess. An interesting question is whether this messyness hasn't had some benefits (like allowing app designers to iterate and innovate individually, with no concern for following a system HIG, allowing the overall platform not to fall behind the curb). But arguing the mess isn't there is very strange to me.
This becomes painfully obvious when you start working with any kind of GUI automation tools (e.g. AutoIt). I imagine users of screenreaders have similar issues.
You can orchestrate scripts in FP style, similar to the REPLs in Xerox PARC workstations, access any .NET, DLL or COM API as if it was part of Powershell, manipulate data without parsing it all the time, interact with running applications via Windows APIs....
1) You can't write or run scripts "out of the box", you need to do a security incantation first. A oneoff hurdle, but right at the start of the learning curve.
2) Perhaps because of (1), it's not very dogfooded: on a UNIX system, there are lots of already-existing shell scripts sitting around as parts of the OS. PS is not so rich in examples.
3) If you do actually want to parse data, it's not very good at this.
4) I've not worked out how to save intermediate stages in a pipeline to persistent storage.
5) Hasn't yet developed much of a "user culture", although I think that will come eventually.
Not saying that's a bad thing, just that we (as Unix folks) do things intuitively that we forgot we once not intuitive.
Totally agreed on 2 though 5 though.
Hmm ...
To me the real superiority of the windows GUI is that almost all of the settings are accessible with a GUI. In Linux or MacOX you very quickly end up having to write some command lines or editing a text file. That's great for already experienced users or administrators running batches. But to the common user, discoverability and intuitiveness is crucial and you are not helping them with an OS they can't understand or control. One should be able to visually see the state of the system.
If CLI had auto-complete/intellisense features, the gap would be smaller.
It's similar to the dominance of QWERTY.
But even I would much sooner learn how to use linux, than embark on a crazy project like this.
Also used ClassicShell on Win8.. if you lauch a metro app it will go metro mode.. but that's the only case.
The only time I had to go to the Metro Start Menu was to find the Universal Apps like Mail and Edge browser. These don't show up on the Classic Shell results for some reason. Once I pinned them to the taskbar however, I haven't needed that Metro screen again.
The core architecture of Windows NT is actually pretty nice. Its chief architect, Dave Cutler, was one of the lead developers of VMS. I think Windows NT and VMS do IO much better than Unix/Linux - making the basic primitives asynchronous, and layering synchronous IO on top, instead of asynchronous IO being a fragile afterthought. However, Microsoft has (no doubt forced by backward compatibility) layered a lot of less than pleasant legacy cruft on top of this nice core.
- Windows has better accessibility support. (Windows 10 has messed some of it up.)
- When there are issues, it is easy to find help with Windows than for Linux. Unless it is about a BSOD which are rare now.
- While there are many claims that Linux does not need a firewall, I do not agree. Setting up a firewall on Linux is a lot more challenging (newbie here) than on Windows. For example, on Windows, I can easily control which application can access the Internet using some paid firewall product.
- Finding replacement for Windows applications on Linux is a troublesome, especially given that most of them would have minor unadvertized issues like accessibility or some counter-intuitive thing with zero documentation.
As for finding help, I usually find it's the opposite, or at least the kind of help I find for Windows is often very cargo cultish. e.g. "I did these fifteen mysterious steps, and my problem when away. I think that's what fixed it." I feel much more in command of the system with Linux. This is, admittedly, at least as much my own depth of knowledge. I've been building products for Linux for two decades, including kernel development, patching system libraries and services, etc. I actually understand Linux systems on a pretty deep level; I don't understand Windows systems, beyond the GUI.
Firewall? Meh. The default firewall on a Fedora system is fine. There are tons of free tools for managing the iptables firewall (and firewalld simplifies management at the expense of flexibility). I never use a UI, though, as it's pretty easy to use once you understand the basic concepts. But, a firewall isn't really the most important part of securing a system.
Application replacements could definitely be an issue, with regard to accessibility. I am more comfortable with Linux options because of familiarity. I'm less productive with the "leading" applications than I am with their Open Source competition in almost every instance. Inkscape is easier for me than Illustrator, Gimp easier than Photoshop, but again it is due to extreme familiarity. Over a decade of use vs. occasional forays into the Adobe products because a designer I'd hired wanted to go back and forth on designs and was using Adobe products.
Sometimes ease of use is just another way of saying "What I'm used to". I'm just much more used to Linux. I used Windows full time for a little under a year after switching from Amiga in 1995, then switched to Linux, and have been using Linux almost exclusively ever since...I have a Windows partition for games and audio recording. Of course, I've been using it almost exclusively all that time because I strongly prefer it and always have, even when it was really rough around the edges and patching and compiling kernels was just a normal part of being a Linux user. I don't miss those days, but the strength of UNIX/Linux over Windows (to me) stood out even then and even with all of the warts.
It really isn't.
Try blocking one particular program from accessing the Internet. You'll end-up messing around with assigning programs to group ownership and then adding ip tables rules.
Linux-Android goes all the way and sandboxes programs which makes firewalling easier. But desktop Linux is far behind.
Gnome-Shell (default on fedora et al.) has since the GNOME projects 2.x release had _stellar_ accessability support.
Firewall? you fail to mention what you'd block. there are ease of use projects shipping per default such as UFW. But since it's uncommon in the post-inetd era to have services running and exposed publicly, i fail to see the usecase.
bsods? uncommon? i have four baytrail tablets that spew forth a bluescreen once a day.
Aren't the claims more like "you shouldn't run the firewall on the same machine that you want to be firewalled"?
I know that programs like Windows Firewall or Little Snitch (OSX) are good enough for most stuff, but when they're not good enough you're going to regret not having a seperate firewall.
I suppose this depends on the workflow. Powershell is just as powerfull for me as bash (I can't help to learn the syntax for either of them - I just google the expression for iterating a command over files and whatnot)
I start applications with a shortcut - on windows this is windows key + plus a few starting letters of the application name.
That's about all I need from the OS.
"if there's something I want an OS to do that Linux can't do, I would be motivated to work on making Linux able to do that thing so I could do that thing on an Open Source OS I enjoy using,"
This might be the main difference- for me the OS is just an underlying substrate to support my programs I want to run and develop. For third party apps - once I'm in the application the OS pretty much fades into the background unless there is a problem - and quite a lot of the code I write is pretty much platform agnostic.
The main point of the OS for me then is, how much of it works unobtrusively out of the box. And since windows comes in the box for off the shelf hardware it's the easiest for me.
I did do dual boots in the past but now I don't see the point anymore for desktop use. For some document batch runs I've not yet found equivalent for windows world for so for those I see the value for a virtual machine. My NAS box runs linux and it's pretty sweet.
So are there anything that actually locks me on windows? Visual studio is really, really nice for C++ development and that alone would be a sufficient reason for me to run windows. And then comes the sweet, sweet surface pro with its fantastic pen - basically, that combined with Manga Studio takes me to a place of digital art bliss (no, I'm not a paid advertisement - I've used digitizers for two decades and drawn all my life I know what I like - even if just for a hobby).
That said, I don't trust proprietary stuff for anything of value - i.e. data and programs which I would like to be able to run always - but the windows platform offers currently the best platform for the creative activities - coding and art - that I do at home.
But in my day job, I am a Windows admin (and helpdesk monkey). If there was a system that is both free software and binary compatible with Windows, that would be pretty nice, if only to give Microsoft some competition.
And on the corporate desktop, Windows totally and utterly dominates. Replacing it is next to impossible, because most of the applications (at least in our case) are not available for other systems. So a free software-alternative that maintains compatibility would be really nice.
(Of course, ReactOS is aiming for XP-compatibility, so even if they reach 100% compatibility, they still have a long way to go...)
That's a great ethos, but it's not that Windows can do something Linux can't. If you want to play a game/use a CAD made only for windows, are you going to pour years into cloning it? Yeah, Linux has, at least, competent applications for almost every need, but sometimes what you want just isn't available.
ReactOS is shooting for the moon, but if it took off and got to an almost 100% windows-compatible state, I'd be glad to have an Open Source Windows.
Anyway, desktop applications are not that relevant today, and most of those that are (like web browsers, developer tools) are cross-platform anyway.
Even if you're never going to use ReactOS, it still helps make wine better.
Yes, but PC games are very relevant. They are the entire reason I have a Windows machine at all.
I hope this does provide a better user experience than Wine, because I've tried that, and after a while Photoshop breaks down somehow. Elements on the page disappear, file operations don't work and in the end it all stops. I want something that is stable, and I hope this works better than Wine, even if both share much code.
- Asynchronous IO architecture only matched by Solaris
- Object based architecture
- OO ABI (more so with WinRT), besides the C one
- Allows C++ in kernel space
- Components as interoperability between applications
- User space driver model, specially nice for graphics drivers
- Pursues the mainframe ideas of safer languages for system and application's programming
- Powershell is closer to Xerox PARC REPLs than any UNIX shell, except for Mac OS X.
And what brought me back, after 10 years mostly in UNIX land, culture of using graphic based tools instead of a PDP-11 experience and desire to try new approaches to OS architecture.
Which shell do you mean on OS X? I thought they just shipped with zsh or bash?
https://commons.m.wikimedia.org/wiki/File:Windows_2000_archi...
Incidentally, it annoys the living snott out of me that I took the time to put a PNG version of this together, someone redoes the diagram as an SVG then someone loads it to commons and I don't get any credit!
Update: I speak too soon. The image viewer doesn't show it, but the main page does.
Though it's far from perfect, Windows has a better binary compatibility record than ANY other OS for far longer periods of time. There is something to be said for that. It's only recently (for 64-bit windows) that DOS support (ntvdm) has been unavailable.
> Windows can run an executable with a GUI interface compiled for 32-bit Windows over 20 years ago...
Linux can also run really old code that is 16-17+ years old: Loki Software games ports from 1998-1999. Though there just no need for average user to run anything that old so it's usually not available out of box.However, as a sibling comment notes, Linux has also preserved binary compatibility (at the kernel level) for a similar amount of time (of course as long as neither of them break compatibility then Windows will have the numerical edge as it's slightly older).
So the question becomes, why is compatibility so apparently good on Windows and so apparently bad on Linux? I feel it's to do with a culture of dynamic linking and compiling your own software. A statically linked X11 application from 15 years ago will, as far as I can tell, run fine on Linux - it's just that such things are rare. You're far more likely to come across either a dynamically linked binary, or a source tree. This seems to be reflected in source code compatibility, which is better in Linux.
There really isn't a comparison, but it does have value to a lot of people. I don't mind so much, but there's enough people that do. I've helped many people over the years switch away from windows, and half of those switched back to windows within a year.
Don't get me wrong, I really like Linux... but stability for the standard atypical end user isn't very good at all.
Nobody cares about computers anymore (thanks smartphones, tablets!), and so Windows will go down the drain eventually. Not to mention Linux and OSX market share increasing. Not today, not tomorrow, but the writing's on the wall.
Open source to get devs on board again, switch to subscription-based models, record more user data, and create more products.
Not holding my breath for that.
Ah, you're probably behind the times and not very techy anyway.
I use my computer to stream games on TwitchTV. I also run a Linux VM on my personal computer to run caffe for neural net things. Let's see your tablet do that...
Computer + teletype = Computer
Computer + VDU = Computer
Computer + Mouse = Computer
Computer + Ethernet = Computer
Computer + Phone = Computer
Computer platforms devour the peripherals mated to them.
BTW The Limbo PC emulator on Android is capable of running a minimal Linux distro and there are MS DOS emulators for iOS. It's just a matter of time.
Microsoft is becoming a cloud company, and enterprises are finally starting to accept thin clients (because now thin clients are actually kind of fat, and thus much less annoying to use.) Windows-on-the-desktop will basically be in a race against ChromeOS, which is fundamentally a thin-client OS as well.
(Meanwhile, OSX will probably... continue to just be OSX. Unless Apple has some big new shift in vision, they're nowhere near being a cloud company, and OSX is nowhere near being a thin-client OS.)
People aren't saying that desktops etc are going to disappear, but that the cash cow in the next decade is probably going to have a much smaller form factor and a different OS from your traditional desktop.
You're not in touch with reality at all
You're asking me to provide data or links to other arguments but the initial statement provided neither.
Why did you call my comment out but not the other two similar responses to the same line?
I could say that you proved my comment to provocative and took the bait but then we'll spiral into comment hell.
Or maybe I'm a prematurely old man, who's looking for kids to yell at about getting off his lawn. But I haven't found a use for tablets other than watching TV or reading, and I can't even really do those functions on a phone. Much less use a phone as a phone. What percentage of smartphones are primarily used as uber-expensive, complicated digital watches or alarm clocks?
The people will continue to care for and use computers, even if the hot new market is something else.
You know, it was annoying when people started to say those computers you carry with yourself the entire day were not "personal computers".
Now you are trying to say they are not even "computers"! I just hope the world ignores your labels.
I find the name "PC" for distinguishing desktops/laptops from phones/tablets mildly annoying, and very amusing because of how badly the name fits its meaning. But yes, there is a need to differentiate open computers from locked-down computers, and from that point of view the name isn't that bad anymore.
Now, there's no need at all to assign the label "computer" to any form-factor. We have plenty of label already, and that would make a huge mess on communications.
But that didn't happen and Microsoft got a slap on the wrist instead.
Many people migrated to GNU/Linux or Mac because Microsoft had abused their monopoly, some people and companies are stuck with Microsoft because their business needs Windows to run their custom apps.
Many people migrated to GNU/Linux or Mac because
Microsoft had abused their monopoly, some people
and companies are stuck with Microsoft because
their business needs Windows to run their custom
apps.
Citation needed. I migrated to Mac OS X in 2000[1] because it was a Unix-like operating system with a usable UI that worked well on a laptop[2].Also, there were to be two companies, not five[3].
Of course, I might be biased because I worked for Microsoft for four years in the 00's. So take this for what you will.
[1] Yes, the public beta.
[2] OK, let's be honest, it worked tolerably. It didn't get good until 10.2'ish.
[3] http://money.cnn.com/2000/06/07/technology/microsoft_ruling/
Most business software is written for Windows, some businesses develop their own custom apps or use Excel and MS-Office. So it isn't easy to migrate from Windows to GNU/Linux for them. I know this from experience as I worked at places like that. It is stuff that the news media won't report on, the business lock-in and when you Google Windows business lock in you get Windows apps for Business results so you can't find anything about the lock-in.
But back on topic ReactOS doesn't run the business apps a lot of companies rely on, so it isn't a good alternative to Windows yet for them.
ReactOS is for hobbyists right now because it is still in the alpha stage and not ready for Prime Time yet.
Edit: Typo
How can I cite thoughts in people's heads?
Their opinions on why they switched?
NPD[1] often does research on consumer technology choices. I would've checked there for starters.interesting thread documenting start of OpenNT project http://www.betaarchive.com/forum/viewtopic.php?f=61&t=33250 from broken code base that would not compile to booting ~Windows 2003 compiled from source.
Anyway Avast won't let me download NT 4.5 due to a Trojan warning. So I can't test it out unless I disabled my AV.
Edit: Why the downvote, scan it with Avast yourself if you don't believe me. I refuse to use it unless it is verified to not have a Trojan. Even if it might be a false positive.
https://www.youtube.com/watch?v=8Z7L498dNB0 https://www.youtube.com/watch?v=DzC8jJ0ESJ0
its trivial to bypass every single scanner on the market, at this point they are all snake oil
A serious problem: who would pay for the development of a new OS, or sink a very large chunk of free time into it? What properties would it have that could not be achieved starting from one of the POSIX OSs? Who would port all the apps? Why would people - end users - adopt it?
My experience so far from today's experiment run, .. it still is quite unstable, saw several BSODs (about 7 of them varying from processor locked to the real blue screen) Most of the times I lost data during the crash. Files disappearing etc.. Good part is that it reboots really fast.
VMware Tools installed -albeit complaining- and I could use VMware shared folders which was convenient.
Of course this is a release candidate and we are not at 1.0 so stability really isn't a promise. If they manage to get it more stable then it is starting to become usable.
I donated to their Indiegogo campaign to get the community edition developed, that campaign allowed them to hire developers to get to the 0.40 mile stone.
But it's there for the taking and tweaking! It's the same as you solve your own problems in the *nix world, but it's for the cases where you really don't have any other solution but but to work with the hardware vendor's black-box provided driver. BTW, don't expect that buying Windows will solve your problems (because Microsoft seems to have acquired a taste for moving fast and breaking things lately).
That may be partly true. Partly, because you falsely assume that anyone contributing to ReactOS would contribute to Wine. These cover common technical ground (of Windows application binary support), but from different ideological prospectives.
But from a usability perspective, it seems to still be a "second-class" citizen in the Linux world for lack of a better way to phrase it.
Some applications create a separate set of "windows" folders, so interoperability between them is a pain. Click and drag support, just doesn't work properly. The folder structure thing seems to be really jarring for me, as I figured it would be as easy to use as Cygwin's folders on Windows, but somehow isn't.
Any who, it's not a perfect or exhaustive criticism, but Wine is still not a good "drop-in" replacement, even if it does amazing things.
That's also why I've stopped updating my Crossover for $40 every year or two. Basic laptops and desktop boxes are so cheap these days that it becomes a question of whether your time is worth fussing around with compatibility software.
[1] = http://www.howtogeek.com/197232/microsoft-is-misleading-cons...
Wonderful.
When I submit 1,000 jobs to a compute cluster to process genotyping, I don't worry that I'm violating a license.
When I sold my business that used R as a core tool, I didn't worry that I had enough licenses.
I think that is a valuable reason to actively prefer free as in beer and free as in liberty over even inexpensive but proprietary.
Also my video card don't have 6 screens of privacy settings that I need to turn off at first boot.