Years ago, I switched from Windows to Linux to get a more lightweight and stable desktop environment. It worked out well, but I'm having enough problems with Linux to consider another change. Specifically, I'm looking for better stability in the system libraries.
I use Debian Unstable (argh..I meant Testing) because I need to track development in some Linux applications. Since they are in active development, I expect occasional bugs in them. My problem is with the frequency of breakage in basic system utilities, like hdparm
or halevt
. In the past year, every time I have updated a system or done a fresh install, some different utility has been broken.
The best alternatives seem to be FreeBSD and Solaris. (Solaris is free for development use, which is all I care about). I'm asking here which would be better for my use and/or whether they have enough of their own problems that I would be better off sticking with Linux.
My usage:
Java development, programming style is carefully system-independent, desktop apps, target users mostly on Windows and OS X
开发者_开发技巧
Virtualization to run apps on various OSes
General destop stuff: wordprocessing, web, music
Not used as a server
So far, it seems to be:
FreeBSD Pro documentation, community, clean design, extensive ports Con Java support
Solaris Pro Java and virtualization support Con see FreeBSD pro stuff
Well, obviously, Java on Solaris is well supported and really stable. It is (or at least was) a primary development platform for the Java team.
Solaris is pickier about hardware than certainly Linux is, in terms of compatibility and available drivers. It would behoove you to check against the compatibility lists, especially for your graphics card, to make sure it works well for you. Solaris has a pretty rock stable userland, and it also has the other interesting Solaris features that you may or may not want to use (ZFS, DTrace, SMF, etc.).
At a stability level, FreeBSD is super stable as well, being as the kernel and userland track each other as a whole. I can't speak to Java compatibility on FreeBSD. I can say I didn't have a good experience years ago, but...that was years ago. Linux I believe has/had better Java support than FreeBSD.
Both systems have large suites of available software packages available, FreeBSD is likely larger, and there's a better chance something may have been ported to FreeBSD over Solaris (depending on the niche of the package, of course).
Solaris I believe has a bit higher base resource requirements than FreeBSD, if that matters, most likely not. "Solaris on the desktop" is a bit of an oxymoron. It certainly does the basic stuff, but it's not it's dominant area of success (things like sound, flash, video, etc.)
If your hardware works with Solaris (or you're willing to buy hardware), then I would go with Solaris. If the "multi media" desktop is really important to you, FreeBSD may be better assuming the Java works.
Me, I use a Mac. I don't say that in some smug way or anything, but if you want a Unix workstation environment to develop Java on, a Mac is really hard to beat, especially now with Oracle picking up the SDK support to keep Java (ideally) up to date more timely than Apple did. (Yes, there are lots of reasons to not like a Mac, but if "unix" and "java" are high on your list of requirements, the Mac actually meets those pretty well.)
I used Ubuntu for about a year and half. 8.x was nice. 9.x not so much, never upgraded to 10.x. I'd use any of these over Windows.
So, in my priority list: Mac, Solaris, Linux, BSD unless BSD's Java support has gotten completely hassle free and functional with no "Oh, you're using BSD"isms. Then I'd try BSD before Linux.
I suggest you to stick to linux. instead of using unstable Debian, you might want to consider something like Fedora. it gets updates frequently. You have Java IDE's(Eclipse, Netbeans) and Linux java support. you can also use virtual machines like virtualbox.
I would suggest separating concerns.
Choose a stable distribution as the host operating system and then install a virtual machine environment in it (like vmware player). Then install those unstable ones you need to track inside it, plus perhaps even a Windows instance.
You can then run those you need to, when you need to, while keeping your stable distribution unharmed.
At the risk of sounding heretical, you should re-consider Java development on Windows.
Windows XP is VERY stable [0].
The only problem is that the "main" Java IDE for Windows (Eclipse) is VERY VERY memory hoggish.
[0] this comes from someone who installed his first Slackware to replace Windows 3.11 at the very first part time office job he had and have run Linux nearly non-stop for ~15 years
FreeBSD's main weaknesses here are Java and virtualization support, which happen to be Solaris' strengths. I wouldn't recommend Solaris 10 as a desktop OS, but try Solaris 11 Express, the descendent of OpenSolaris. It's a great OS, whose main weakness in my mind is its small user base. The documentation from Oracle is good, and there is an active mailing list, but you'll find less in the way of Google results for that one obscure issue etc.
I'd expect that FreeBSD would be more stable (least changing from release to release) than either Linux or S11E.
In terms of general desktop use, S11E might have the edge, but neither is near the level of say Mac OS X.
Consider the latest Ubuntu (10.10?) instead of debian unstable. Ubuntu is far less conservative than Debian, so you will get closer to the bleeding edge.
Debian unstable is labeled as so for a reason...
Of all the thousands of Linux distributions out there, you picked the one with the word "unstable" in it ;)? Get Ubuntu / Fedora / OpenSuse / Slackware or something equally well-tested and stable. Go to Distrowatch if you need help choosing.
Debian testing will do what you want, it's unstable + 10 days if there are no bugs, and you can still use sid sources with pinning if you need some up to date packages.
It really have to be one machine ?
It would be much simpler to divide work on 2-3 machines. I have Win7+Office on laptop, Centos6 on PC (plenty of RAM and VM's), older PC with Centos5 (with OpenVZ, plenty of linux distros on it), old laptop with gentoo (newest soft etc... and i'm more careful when OS is direct on hardware), and two more old PC's just in case.
If it have to be one computer then I think RHEL6 + OpenVZ would be the best solution. OpenVZ containers can run without problem with other types of virtualization at the same time. So if you will need Windows on VM, there is no problem for doing that.
精彩评论