|Home Forum RSS PGP Alerts Links (D)|
ToolsComment on this article
Every developer has his or her own box of tools. Whenever you start a new job or a substantially new project somewhere, you gradually build up that same toolbox over time. Anyway, you'll probably need tools in all the below categories. Note that for most tools I used books, groups at google, mags and my own tests to decide on a tool. Never so far did I let management dictate a tool against technical judgement, since that's a surefire road to disaster. (Management is only management for a reason.)
Please remember, before going off all wild-eyed about something I say or don't say, that this is my own wholly subjective list of what I like and don't like. I haven't seen everything there is to see out there and I'm not telling you to do as I do in any way. As long as we're clear on that, I'm happy to receive comments from you.
I'm planning on updating the contents of this page as I go along. The date at the top right shows the date of the last modification, and that's the only signal of change I will maintain.
Language and IDE
This particular "tool" category is a bit too large and too sensitive to go into in detail. I've used Basic, VB, Fortran, Ratfor, Clarion, x86 assembler, 8080 assembler, C, C++, VC++, C#, Delphi, and many, many more. The most productive so far was probably Delphi (version 6), while I view its future with great scepticism. Borland seems to have decided on its untimely death. The languages and IDE's I do believe in for the next couple of years are C# and Eclipse (implying Java). C#, since it clearly builds upon Delphi, but without Pascal's irritating syntax, and with templates in its future. I'm not all that crazy about .NET being MS only, though, so I keep hoping it will be implemented for the other platforms as well. I'm also not that crazy about having to buy into MSDN to get anywhere in .NET. Eclipse, being multi-platform and open source, really attracts me, though. But, admittedly, I don't know much about it yet.
Except for the IDE editors, I've been dragging along VEdit all these years. It always comes in as the one editor that can do whatever I need done, when all else fails.
Code and libraries
For cryptographic functions, I use the PGP SDK, and I'm real glad I'm not the one paying for it. It's damn expensive. OTOH, RSA BSafe or cryptlib seem to cost even more (for commercial use). For SSL and comms, I use StreamSec-II with DxSock. Good products, but they suffer severely from bad or absent documentation. You have to be really obsessive to work well with these. Henrick H., the StreamSec-II author, saved my bacon by being available over the phone many times, though. But without that, I'd have been dead meat. Next time, I think I may go for IPWorks, but maybe it's only because their ads look so good. For Delphi, SvCom is a must if you write services and/or COM clients or servers. It's a little jewel.
Until now, I've almost exclusively worked with MS SQL Server. It's a lovely beast, but far too expensive. To really use it right, you often need to set up multiple databases connected with procedures or replication, but the pricing prohibits it. Anything connected to the Internet makes it horribly expensive, too. I've looked at MySQL, but it doesn't really look like a "real" RDBMS to me. Not yet, at least. I've looked at PostgreSQL, and this one struck a chord. I'm fantasizing about replacing MS SQL Server wholesale with PostgreSQL, but I haven't done any such implementation yet.
For unit testing: DUnit, what else? For leak testing and such: TurboPower's Codewatch. For code coverage: TurboPower's CodeCoverage and for profiling: TurboPower's profiler. The damned thing is, TurboPower stopped making all this stuff, so I'll stick with Delphi 6 as long as possible so my current TP utils will keep working. (Some remnants of TurboPower code can be found as open source now. Go to sourceforge and search on "TurboPower". You won't find the QA Suite I'm talking about, though.) I also depend on madExcept, which is a little runtime utility you link into your executables that pops up and takes a stack dump whenever the worst happens.
Long ago, I used something called TLIB, written in Pascal by somebody called Burton, if I remember right. It was pretty darned useful and very simple. Time passed and like everyone else I got SourceSafe with some product somewhere and used that. Then I started working over the net and added Source Offsite to SourceSafe, and that seemed almost perfect. Then, finally, I set up a Vault server (based on SQL Server) and used a Vault client over the net, with even better result. Even though I use Delphi, which can be hooked right into Vault with a third party add-on, I use the Vault client stand-alone and I like that just fine. That's where I am now. I've seen Borland's StarTeam thing and it seemed overkill, especially in price. I haven't got a handle on the open source CVS alternatives (such as Tigris), but they're probably also very valid choices.
First, I tried zenTrack, an open source package, but it didn't click at all. Then I got Seapine's TestTrack Pro and it made me happy. It has loads of configurations and adaptations you can play with, but I'm too lazy for that, so I use it almost entirely as it came out of the box, which satisfies 95% of my requirements anyway. It works very well over the net, too, and hasn't caused me any kind of problem yet.
Over the years, I've used my share of make tools, many of which were called nmake for some reason. Each one with its own incongruities and advantages. All of them with syntax for real men only. But times change. I looked into the WAnt type of build tools and got me a shock. I know they're very popular, but to me the entire idea stinks. XML is not a programming language, period. I don't mind if the tool keeps its own build data in XML, I would applaud it, but, for cripes sake, don't make me write commands and rules in XML. This is really, truly, sick. Additionally, the xAnt family does not have all the connections to other applications ready made (yet). In short: more ready made connections and a decent front-end and things may look better.
FinalBuilder, on the other hand, has all that. Its internal data is XML, I think (but I can't say I care). It has loads of readymade script actions for anything you can imagine (including H&M, madExcept, Vault, etc) and it costs no more than one or two working days cost for a decent programmer.
Installation / Setup
I've always used Installshield in one form or another, and even if it's not rocket science, it works. Currently, I'm not in charge of this phase of the application development and I'm glad. So I have no opinion right now, except to say that it may be worth looking into NSIS, an open source install system.
Documentation / Help System
Help & Manual 3.0. Does it all, from Windows help files of different kinds, to PDF manuals. Also has a screen shooter utility (TNT) as a little extra, that's real neat. It's the cat's whiskers.
I also use WinWord and my own templates to write manuals, but I'm gradually shifting over to H&M. For design documents, I'm shifting over to OpenOffice for several reasons: it has less security problems than MS Office, it seems (at first blush) more stable (that's a surprise) and I don't need to hassle with problems between Acrobat and Word, which seem to always result in having to buy something new from Adobe.
For diagrams in the documents, I use iGrafx Flowcharter 2003, which used to be called ABC Flowcharter. I've dragged this application with me in one version or another for many years now. I've tried Visio many times, but never liked it. I don't know why; it's a visceral thing.