Linux Distros for a Windows Software Developer?
Omega1045 asks: "I am a software developer, writing client/GUI software in C# (.NET) on Windows and server software in a UNIX environment. I have used Linux in the past as a firewall, server and more but have never used it seriously as a desktop. What Linux distro and tools should I look to for a switch? I definitely still need to run Win2k (in a VM would be preferable) for testing and other purposes, but want to live as much of my monitor facing life as I can in Linux. I also need the best laptop and Wireless PC Card support (D-Link in my case) from the distro I choose. Have any Slashdot readers gone this route? What are your recommendations?"
What are the reasons for switching? If Windows' right for you, you should stick to it. Specially if you're writing C#!
There's not much more to say, you will be about as current as you can get (for a few days), and it should be stable and have lots of tools for you.
You are being MICROattacked, from various angles, in a SOFT manner.
I'd start with Knoppix, as it has great hardware detection, a large selection of out-of-the-box apps that will meet most peoples' requirements, and has the huge Debian repository sitting behind it if/when you want to install extra stuff or keep versions of your existing stuff up to date.
I'm sure MandrakeMove is going to be about the same, but Knoppix would be my "default" choice simply because I've had great experiences with it to date.
I use Knoppix on my main development PC at home; works great and it takes about an hour to fully rebuild it from bare metal if/when I get the inclination. That hour includes the time to:
- apt-get update,
- install netselect-apt & run it to find the fastest repository
- apt-get update again from the fast repository
- apt-get upgrade to bring everything up to date
- install a few other things like Postgres, Zope etc.
You'll want to change. I'm sure, by the time I finsih this, someone will have jumped in and say, "Debian," since Debian-ites seem to think there is only one distro. (And, to be honest, I'd recommend it in part, but more later.)
I'd suggest Mandrake to start with, since it is actually easier to install than Windows XP. It's easy to use, and it has URPMI, so it is MUCH easier to upgrade on EVERY PACKAGE than Red Hat or Suse. Then I'd bear in mind that this is just your first use of any distro, and that you'll get a chance to find out the strengths and weaknesses of it, and you'll move on.
After you've had a chance to get used to Linux, and are looking for something more powerful, try Libranet. Libranet is based on Debian, but without the impossible install (Debian-ites will say the install is easier, but that's relative. It's easier than it was, which means it's easier than getting a root canal.) Since Libranet is about to publish a new version, you can get 2.8.1, which is what I've been using on a few boxen, for free at their site. When their next version (3.0) comes out, you can easily upgrade to that version with one or two commands.
I've made my recommendations based on what is easy to start with, and on the general principle that after you get used to Linux, you'll most likely want to try something different. Debian is easy to upgrade and maintain, but even Libranet can be hard to install for someone who hasn't been using Linux for a good while.
I know there are other easy to install distros (like Linspire and Lycoris), but Mandrake is the only easy-to-install-and-maintain distro that is "mainline" in terms of including all the goodies Linuxers want on their system.
And, to anticipate comments that Mandrake is too easy, made for beginners, or doesn't let you have fine control over settings, ANY distro lets you have as fine a control over settings as you want. Some have easy to use config panels (like Mandrake's "Mandrake Control Center"), but in ANY distro, you can bypass their control panel and edit all the config files by hand, if you want. -- So it's not going to take away control, it just makes it easier for someone who isn't already a full time Linuxer to install, setup, configure, and maintain.
I think the fact that I forgot this is pretty telling. It's been years (literally) since I've had problems with Mandrake recognizing ANY kind of hardware. So long, in fact, that I forgot to mention that Mandrake is just about the best in recognizing just about any kind of hardware you can throw at it and auto-installing it.
With Mandrake, I don't even think about hardware as a problem. With other distros, I find I still have to worry about it.
You are going to get a lot of opinions from this question. He are mine.
Remember why you want to have Linux, and stick with the distros that fit that niche. At guess I would say you should stick with a major commercial distro. Don't be fooled by the "just emerge foo" crowd. Gentoo is a great distro, but if you want to get up and running SuSe, Fedora, Mandrake, all can be installed and updated in an hour or so if you have a fast internet connection. Also if you are a C# programmer, remember to at least install GNOME and all the Mono pieces, they might come in handy.
Insert pithy comment here.
I'm a Java developer so I didn't need the VM stuff but I've gone from doing development on a Windows laptop to the same system with Linux. Gentoo is a pain to setup(first couple times around) but as far as laptop exp. goes for me I always end up needing the latest kernel, X server, etc in order to get everything working. But I am writing this from my laptop.
It took about a week and a half on and off to get my laptop(HP ze4240) fully working. We're talking 2.6.5 kernel, Xorg w/ dri cvs for 3d, linuxant modem driver, etc. But then you get in to things like my pcmcia DLink DWL-650 rev P 802.11b card wasn't support by the rev of the wlan software even in Gentoo so I had to go out and get the latest version of that.
You might just want to go to http://www.distrowatch.com/ and just try the most popular free distros till you get one that works on your system without too much hassle. You could also take a look at http://www.linux-laptop.net/ and see how other people faired at various distros on your laptop model.
My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
Use any, but once you figure out what you are doing, switch to gentoo. Gentoo is source based. Its a good distro for both power users and upgrade addicts. BUT, if you don't like installs that give you lots of time to RTFM then try some of the newer distros, mabe gobo? Too many to name, if you have time I really think LFS is the best way to learn linux unless you have a mentor who knows everything from shell variables to session and window managers.
...from the point of view of a developer, it makes virtually no difference. The development tools are identical and behave identically across all distributions. I'd advise against my usual suggestion of a Mac because of the slow compile times of gcc on PowerPC, but otherwise your only concerns are the same issues of installation and maintenance as users in any other niche.
What I'm listening to now on Pandora...
I really need some good recommendations for VM software in Linux. A while ago I used VMWare in Linux to run Windows, but it is much more expensive now ($99 vs $198). Are there any other choices someone might recommend to run Win2k or WinXP in Linux?
Great ideas often receive violent opposition from mediocre minds. - Albert Einstein
Pick a more configurable distribution as your comfort in the *nix world increases. You might want to start with a "standard corporate distro" like SuSe or RedHat. And then use something like Debian, Slackware, or Gentoo later on.
Go through as many distros as feasible. It's a good learning experience.
Gentoo is the one true distribution. All others are crap :p
:)
All kidding aside, as a developer who is new to Linux as a way of life, you really may want to Look into Gentoo, as it lends itself to a lot of learning quickly, and as a developer, you should be savvy enough to pick it up
Gentoo: Beats the first rule
"...In your answer, ignore facts. Just go with what feels true..."
I always have to reccomend to anyone to follow the path I followed.
I used Redhat About 5 or 6 years ago. I moved to Mandrake because it supported my hardware better, and I used it up until a year ago. Then I moved to Gentoo where I am today.
Start with Fedora or Mandrake. You will learn things there, but only so much. They will probably suit your needs for quite awhile. But invariably you will find things you don't like. And the user friendly guis wont have an interface in place for you to make things the way you want them to be. And the rpm packages available wont always be the way you want them to be. When you start feeling like you want more control over your pc and it starts getting frustrating to do things its time t move.
This is when you move up the scale to gentoo, debian or one of the distros based on those two. Gobolinux, knoppix, libranet, etc. Also there is the lesser known lunar linux which is quite good. You will find one of these that suits you and that is where you will end up. Through the process of setting up this distro you will learn all the things you didn't know while using the easier distro. Rays of enlightenment will shine upon you from the heavens. Well, not quite, but it feels good.
It is possible you will be eternally satisfied with Fedora/Mandrake. If this is the case, good, don't move up. The only reason to move up the scale is if you are the kind of person who is dissatisfied with the user-friendly offerings. However, there are also people who are still dissatsified with gentoo/debian level distributions. These people do something called linux from scratch. I like to call this unemployed linux for obvious reasons.
Yeah, someone should really make a heirarchy of distributions in a nice graph. LFS could be at the top with lindows and xandros at the bottom. I'd do it, but I have a job. By the way, I'm all gentoo in this house, and yes I am a ricer and proud of it. Insert an emerge joke here.
The GeekNights podcast is going strong. Listen!
Debian+KDE might be right for you. You could probably get set up easier with Mandrake+KDE, but since you're a programmer, there's a good chance the *slightly* more difficult Debian install procedures are doable for you. Debian has a really, really nice network update system.
I'm being serious. You state your requirements up front:
You are a Windows client developer and you need Windows for testing ergo you should run Windows as your desktop. If you have other unstated reasons for wanting to switch to Linux then I suggest you tell us what they are. We can't just guess at why you want to run Linux.
Remember that you can run Linux in emulation on Windows too. Either in Virtual PC, VMware (I know VMware isn't really emulation), or even the free QEMU these days. So any desire to have the "server software" on your laptop shouldn't be a deciding reason to switch to a Linux desktop.
No, really. Might as well learn the hard way. Then you'll be a hard-core linux user.
[signature]
What Linux distro and tools should I look to for a switch?
There are about three hundred Linux distros available. Expect all of them to be recommended here, plus five different BSDs and two commercial Unixes...
Don't blame me, I didn't vote for either of them!
Get Virtual PC for Windows. You can then run all the distros you want on the same computer, super easily. After switching between Linux and Windows, I find I prefer to use Windows for most things but I miss Linux sometimes. Having Virtual PC let's you get the best of both worlds. Plus, I find Virtual PC on a PC performs very well. Virtual PC for Mac sucks though.
You gotta play, man. Start with the easy stuff...Red Hat, Mandrake (the AOLs of Linux). Get used to them, welcome them as friends. Then move on to the the real stuff...Gentoo, Slackware, even the *BDSs. Love them, and they will love you. BUT...remember them all and all you learn. I am drunk and must sleep...argh...
Insanity: doing the same thing over and over again and expecting different results.
I personally recomend fedora as it seem to support almost every thing that you are looking for. It is the only distro that I could find that supported both of my network cards Columbia bx(Senix built in)
and my dlink card.
PS. since you are into C# you might want to look at the mono development kit.
Checkout coLinux. Similar to a VM, it allows you to run a linux kernel along-side your windows apps and its free-software. Works GREAT and you can even have multiple instances running as well as setting instances as Windows Services. Support for debian, gentoo, fedora, slackware and others.
I just recently did this same thing, and I finally landed on Suse 9.1.
I tried the following, listed in order of preference:
Libranet 2.8.1 - very nice commercial Debian system, but apt-get doesn't work like magic 100% of the time.
Fedora Core 2 - very nice, but some immediate stability problems with Gnome Nautilus (crashes while trying to do Samba client things). Samba Active Directory features do not work as the pretty GUI tools would suggest. I'm sure with ample configuration of smb.conf and other conf files it may work.
Knoppix 3.4 - very slick, but actually using it off CDROM is painfully slow. HD install not flawless, but once you mkswap manually you fix the one problem. Installs too much crap.
Debian Sarge - same as Libranet, without the handy Adminmenu and other Libranet goodies. Same apt-get issues.
FreeBSD 4.10 - nice, but building non-bin-supported products from ports gets old quickly. Firefox took ages to build on a 2GHz workstation class machine.
Then I tried Suse 9.1 Personal when the ISOs were released free. Very very nice. High quality, great polish. YaST is quite good, but not perfect. Package installation using YaST is nice when it works (usually does), but when it fails you get no details about why it failed. You end up doing rpm from command line anyway, and as with all Linuxes you find that the reason for the failure was a missing dependency or a conflict.
Ramming (force) the latest Samba server and client software down rpm magically got me a system that can painlessly connect to Active Directory network shares via Konquerer file manager, and after manually starting smbd and nmbd, I have a working Samba host. Very pleasant.
My great desire is to find a distro that automagically does Active Directory membership/browsing, as well as hosting of shares within the domain. I also long for some kind of package management system that doesn't have every package fighting with every other package, or doom me to using several old version software.
I'm sure this is naive, but I'd be happy with every package/app going in its own directory, and including (or automatically downloading) every library it needs and storing it in its own dir.
If there's one huge huge rough spot in Linux/BSD desktop adoption, it's package management. None of the existing systems - ports, rpm, apt/dpkg work in all cases.
Good luck.
.sigs are for post^Hers.
I had dabbled in C# about two years ago, mainly because creating windows gui clients with Windows.Forms was a godsend. Plus the gui creating tools in the MS Devel studio was awesome. Makes Java Swing look like a toy.
,
Question being: I know there is some kind of meld with GTK and mono or dot gnu (not sure which), is it seamless with Windows.Forms classes? Will my Windows.Forms classes compile and run in mono in Xwindows.. as is?
Love
Zaq
Join your local LUG and get a discount on VMWare.
Linux: The world's best text-adventure game.
Here's one that I think no one can answer. A free Actionscript-2 Linux editor, with code highliting, and folding
Plenty for Windows, none for Linux.
Also, buy and install Crossover Office right away. This will get you to run Office and other MS stuff flawlessly.
8 of 13 people found this answer helpful. Did you?
And I'm a Windows software developer trying to expand to Linux while my Windows PC collects dust for possibly the next year. But I doubt Fedora is the best. It has the 2.6 kernel thing going for it, but beyond that there are a lot of "bleeding edge" features resulting in quirks and other annoyances that require a bit of work to fix. I've got all the big ones under control. Like some kernel features that break a lot of software (like WINE) and are thus disabled by default are enabled by default in Fedora. It's been educational though, but I'm sure all the free distributions are educational to some extent. Despite having chosen the "everything" install option, the software I use the most on here didn't come with the distribution.
My last Mandrake 9.? install self destructed upon post-install update. Slackware 9.1 worked great for me until I tried using it as a desktop. Suse 9.0 felt a bit empty even for a desktop, but it was the free version. It detected all the peripherals I plugged into it fine though. Non-free versions of Suse 9.1 are supposedly pretty good, but I haven't tried.
Many people here recommend Debian, mostly because it is a doodle to administer.
Many othere recommend Mandrake or SuSe, mainly for the eye candy.
Well, get the best of both worlds and use Xandros. It is Debian under the hoods (you can actually point it to read the standard Debian software repositories) and it looks professional and polished.
You cn integrate things like CrossOver or StarOffice (Sun's port of OpenOffice.org) with a couple of clicks of the mouse.
My wireless card worked immediately after initial configuration (stick to supported hardware, Wireless support is far from stellar in Linux) and USB devices work as they should (I am using a 7 in 1 reader, again stick to supported devices, a graphic tablet and aprinter, all with no issues).
IANAL but write like a drunk one.
As far as drivers and D-Link compatibility, I just googled for "d-link drivers linux" - the first result was D-Link's own "unsupported community drivers" page. As far as distro ... look, if you're going to end up with a server, you can probably scratch gentoo off the list; if you're not doing serious optimization, it's got no advantages over (and some disadvantages to) Debian. Don't go with Mandrake; it's just a wimped-down version of Fedora. Fedora or RHEL would be my vote, but Debian is also a good choice. SuSE is there, and it demonstrates the stereotypical good German engineering, but it's harder to get the FTP site to cooperate, and there's less community support.
Don't go with Knoppix, as some have suggested - if you have a few hundred and an afternoon, build the box, or for a bit more, buy a cheapo TV-special from Dell or whoever. You won't need as much of a computer, since Linux tends not to be as resource-hungry. Installing the distro rather than using a CD will erase that many more hassles. Also, USE A DIFFERENT COMPUTER! Do NOT try dual-booting; if something goes south, that extra connection to the web will be a troubleshooting $DIETY{}send. Plus, then you can share stuff more easily between the two computers (Samba, SFTP, etc). Dual-booting is nothing more than a PITA. Especially since your company might foot some of the bill.
Mono can be your IDE for C# stuff.
Whatever you do, find a good IRC channel, and maybe a forum or two, dedicated to the distro. If you go with Fedora, try forward.freenode.net, #fedora
i do not speak from my own experience, since these things do not work on the 64bit version (yet) but i have seen this work on a friends desktop:
SuSE 9.1 is definately the distro you are looking for
install Red Carpet (Ximian) and you should be able to install mono just fine... you can develop just about anything in monodevelop as long as you stay away from the GUI... it will compile (and even run natively in most cases) on win32-.NET
the GUI part (WinForms) you'll have to do in Windows though...
ohw and eh, personaly, I would cough up the 99 euro's for the professional version (not required)
Slackware was my first linux distro and I believe it may be my last... unless I write my own with linuxfromscratch.org and probably use package management that compares to slack (or I might even include .deb and .rpm... evil, I know!)
But for what this fella needs, I can't say. There are distro zelots all over suggesting gentoo, MDK, RH, FC2... etc. and they all have their good points.
My _personal_ opinion on what he should use (and this is because I prefer it and do develop for windows on occation) is this:
Distro: Slackware. It's easy to set up (relatively), and performance is great. Most of it is manual so you'll spend some time learning about your hardware and modules more than you even know about the back of your hand. Otherwise use something RPM based (Mandrake, Fedora, RHE) or SuSe.
Window Manager: Backbox/Fluxbox (based off BB 0.65.0 code). They're essentially the same with minor differences. Simple, low footprint Window Managers that keep it simple on your display without the fancy graphics. Otherwise try Gnome or KDE, they're both good full "Desktops" in their own right.
Personal reccomendations of my own, with alternatives listed. Try also a product called "Win4Lin" where you can run windows inside of Linux fairly easily and get your work done. I don't work for them, but I bought an old magazine with Win4Lin inside of it. Very handy.
I use colinux for my linux development. It's user mode linux for win32, and it runs as a ring0 executive just like the kernel. Filesystem access seems to be faster than VMware, though you don't get any of the groovy undoable filesystems like you get with VMware.
You could use the Lindows developer edition. I think it is free if you download it using Bittorrent.
DNA in your Linux: DNALinux
Well Actionscript is a modified ECMAScript. Does jEdit handle the latest, or is it an earlier versions? If so, how easy is it to extend as Macromedia changes it?
"You're not, by any chance, a troll?"
Nope, I could only find Scite/Flash and SE|PY which are Windows only.
Stick to windows.
GNOME and KDE are just as fat as windows and you can't play Battlefield 1942 on Linux. On the other hand, if you need a good dbase server(mysql), email server (qmail), or web server (apache), and a stable OS, then Linux is the way to go. Linux on the desktop still has a little ways to go.
Don't you know that Windows is never an acceptable solution? Linux Rul3z d00d!!!
But Herr Heisenberg, how does the electron know when I'm looking?
I made the switch back in 2000 and it's going to take you a little getting used to. Your problem is really with the C# aspect, especially if you're doing Win Forms stuff. If you use Dev Studio, you'll be spending more time in emulated Windows than anything else. Anyhow, back on topic, I started out on RedHat but switched to SuSE (7.0 was my first) after a brief stop on Mandrake. My primary reasons for moving to SuSE were a) the fact that the entire distro came on a DVD, b) built-in support for FreeSWAN, and c) the fact that the entire distro can run fully featured in a CLI env.
... ugh) on Win98SE running on Win4Lin. I prefer Win4Lin to VMWare because it's fast, light on resources, and does the job for $90. The drawback to Win4Lin is that W2K support won't be available until the November timeframe.
Right now, I use the Windows software I can't part with (WebEX
This is gonna start a flame war, but if you want to have a resume worthy distro, either spring for RedHat or SuSE, they're the two you'll run into in the data center, at least state side. These are also the only flavors on which Oracle, 90% of the linux setups I run into, is supported.
As for a desktop, it depends, KDE has innumerable bells and whistles but it's not the lightest desktop. I use KDE primarily because of Konsole and it's task bar, I am a huge fan of Konsole. If I didn't absolutely love Konsole, I'd probably be using XFCE. Honestly, I spend most of my time with my windows maximized, so the rest of the desktop is mainly irrelevant to me but YMMV.
Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
i was also a windows monkey, and i found the switch relativelly easy with as was said, Knoppix, but if you're familiar with linux, i suggest a much more stable distro, as debian, which would facilitate the transition.
www.mindsquad.com
I decided to start with Gentoo. A lot of people gave me a lot of good choices, some that I had already researched. Many of the recommendations were "this is easy because...". In the end as a software developer that had used Linux before, I found Gentoo very interesting in that it really gave me choice. I am going with a GNOME only install with Mono, Apache, PHP, and am installing Oracle after the fact. I have been through a few test installs on my Windows VMWare, and am getting to like Gentoo.
I have to say that I really appreciate all of the comments that this "story" got. There were very few trolls. I look forward to my adventure in Linux!
Great ideas often receive violent opposition from mediocre minds. - Albert Einstein