Let me start out by saying I hate this sort of thing. I’ve read so many articles that essentially amount to fanboys writing love letters to their desktops (oh OpenSUSE 10.1 RC1, how I love thee….) that I tend to shun the genre as much as possible. I’ve received several questions about good tools lately, however, so I’m going to give you a list of the ones I commonly use.
This is by no means a comprehensive list, and just because I like it doesn’t mean you will. Unless otherwise noted, all of the software I list is free, and although I’ll pipe up with Linux stuff every now and again, I don’t want to bore the 95% of you that couldn’t give a hoot. Feel free to offer some of your own software goodies in the comments. With no further ado…
Caveat: .NET development creeps me out. Some of that’s a personal preference, but most of it is for solid technical reasons. Still, it’s hard to beat it for web services. If you’ve gotta use it, I recommend the various flavors of Visual Studio 2005 Express. It’s now free to download forever, and it strikes a good balance between user control and niceties like code completion (IMHO, the full version of Visual Studio presumes you are an idiot from the moment you install it and it goes downhill from there). It doesn’t slap everything together in the same interface either - there are separate installs for VB, C#, Web Developer, etc. - and each is a single CD, so you won’t have to sit there swapping CD’s for two hours. You can develop .NET on Linux with Mono, but….why would you?
Nobody should be without one of these. You can do just about anything with a good text editor. You can create an entire .NET web site with nothing but a text editor. My favorite is Notepad++, which features tabbed editing and syntax highlighting for all kinds of languages. Linux almost has too many options in this regard - pick 30 that interest you and find one you like. Vim and Emacs are popular console editors, I’m getting too old for console editors. I generally just use Gedit on Gnome.
HTML WYSIWYG Editor
Yes, I know, real programmers make their web pages with notepad. Real programmers are often pressed for time, however, so making a quick layout in a WYSIWYG editor, even if you plan on gutting the code later, can be very handy. Once I make a layout and start writing serious code I generally leave the WYSIWYG editor behind, as they tend to over-aggressively try to format my code for me. I use two different ones: NVU and Amaya. NVU simulates the Dreamweaver/Frontpage experience a bit, has good CSS tools, and is pretty handy. Amaya is made by the W3C schools and is both a browser and authoring tool. It’s kind of interesting, and as it’s made by the W3C people, it writes picture-perfect XHTML. NVU and Amaya run on Linux as well.
There are a lot of options for this, and of course, real programmers and notepad and all of that nonsense. My favorite is the PHPEclipse extension for Eclipse. Eclipse is an open source framework for building software IDE’s, and people have extended it edit almost anything you can think of (hence the PHPEclipse extension). You generally hear about Eclipse in the Java camp, but with the PHPEclipse extension it makes for a great PHP editor as well. It is a really nice software suite, and with PHPEclipse you get syntax highlighting (including errors) and a live rendering of the page in a browser window as you edit. I’m using it for all of my PHP development now. To use it, first download Eclipse, and then copy the PHPEclipse folders to the logical places in the Eclipse folder (Eclipse has no installation routine - just run Eclipse.exe). This all runs on Linux - it’s Java based.
As noted in an earlier article, I use Freemind and Ganttproject for project management. Read more about these products here. Works on Linux too.
I must admit a little bias here - I dabble a little in computer generated art, so my needs may not be your needs. You can go free and still get your needs met about 99% of the time for web and desktop application graphics. For most general graphics needs - and even professional photography and art projects - The Gimp works extremely well. It runs a bit better on Linux - Windows needs the GTX runtime to use it - but it still works fine on Windows, and supports layer, channels, masks, filters, effects - all of that stuff. Inkscape is a vector graphics editor that’s similar to Illustrator, CorelDraw and the like. It’s quite good and it uses W3C’s SVG format, which will be very handy if/when Internet Explorer catches up in that regard. For uber-serious graphic artists, however, you might want to pony up for Corel Painter and/or Adobe Photoshop (and I do mean pony). But for 99% of you that just need to make some snazzy graphics for your web site, The Gimp and Inkscape are more than up to the job, and both work on Windows and Linux. Paint.NET is worth looking at as well and has more of a native Windows feel.
I can’t resist. In the who-cares department, at home I use Ubuntu linux, Dapper Drake (beta). There, I said it. I’ve eradicated Mr. Gates from my hard drive with extreme prejudice, good riddance, please don’t write, and take your firewall, virus scanner, and adware remover with you. OSX is nice if you can afford it. Windows will work in a pinch. In the office, we’re a Windows-only shop. Even for servers. Sigh.
Here are some other packages that I’ll plug:
- Firefox: I almost left this off. Too obvious. Unless you really, really know what you’re doing, you shouldn’t be using Internet Explorer. The Opera 9 beta is pretty impressive as well.
- OpenOffice: Sure, it’s a little slower on Windows. But it still has a lot of features I like (PDF export for example), and it’s free and open source.
- Xray: A free XML editor, complete with DTD validation support. Very handy for lots of things XML, but particularly for figuring out what’s wrong with your ArcXML.
- Foobar2000: Best. Music. Player. Ever. If you think music doesn’t have anything to do with coding, well…..you probably aren’t coding. Music is the greatest thing to happen to programming since caffeine. Itunes and MediaPlayer are good if you have some extra RAM you need to kill. If you’re running Linux, use Amarok.