Tuesday, April 22, 2008

The top 10 tools every (Delphi) programmer needs

This week I was at a client site to talk about our ways of developing software. Our client uses Delphi for developing their software too and are contemplating using DevExpress' components for their next generation software.

I was stunned to find that (until now) they only use Delphi. That's it. No other support tools or component libraries (apart from the Virtual Tree List).

That meeting inspired me to list the tools I think are absolutely necessary or at least very helpfull in developing (Delphi) software.

1) A professional component library.

As you may have guessed DevExpress is my top one favorite. I hardly need any other components to implement a professional user interface. There is *no* way you can get better results for the amount of money you need to spend on the library. I would always recommend the VCL subscription. It will set you back $500-$1000 every year but you will get a ton of components for that.

There are a couple of alternatives that you might want to look into. I'm sure that I will get some recommendations in the comments on this post :-) Let the list grow...

2) A logging tool / component

Of course you can use OutputDebugString to print debug statements or you can write your own logging tool. But there are a couple of professional libraries out there that already have done that for you (and more than you probably think of at first) and that are extremely usefull.

My favorite is Raize's CodeSite, but SmartInspect is very good also. Again, I'm sure there are others out there.

3) An exception catcher

I don't know another word for this type of tool, but I'm using two actually. Madexcept (which is my favorite, and only $25 for a commercial license) and EurekaLog. It will help you explain exceptions, especially when your software is already in the wild out there.

4) A bug administration tool

There are a couple, but my favorite is FogBugz. It's reasonably priced and does the job very well. It also has a simple but very effectie planning and time tracking feature. It will handle registering the status of issues, mailing to clients, handling received mail, et cetera. Excellent stuff.

5) Version control system

Now, I was perplexed to find that the client I visited didn't use a version control system. I couldn't think of a workable environment without it. We are using Visual SVN Server and Turtoise as a client. Even if you are in a single developer environment you should take the time to set this up. Don't let the costs scare you: it's free...

6) Creating setups

Every piece of software should be delivered in a setup. There's a couple of free (and not so free) tools out there, but we are using Wise for Windows. That's a bit old actually, but does the job very well.

7) Build tools

Now, eventually you have to deliver your software. You can build your software and assemble and distribute the setup by hand, but invest some time in setting up a professional build tool. Once you got the right scripts set up, delivering your software is a snap. We use Automated Build Studio. I actually wrote a testimonial on that which you can find on their website. Good support too.

8) Debugging tools

I don't use many other debuggers from the one in Delphi, but if you need some special things (like profiling the performance of your application), you might want to look elsewhere. We are using AQTime but I don't need it that much to be true. It's only at special occasions that I start that.

9) Unit testers

Every other month or so I tell myself I have to develop some unit tests. I never get to it, but writing this piece makes me a firm believer in unit tests again. I will, honestly, setup some unit tests.... Really, you should do it to.

10) Documentation

Now, here's a bit of plugging our software. How could I ever use anything else but our software for that? Google does it, SAP does it, Microsoft does it, so I'd better use it myself too :-)

If you want more information on what our products can do to your documentation (not only as a technical documenation tool, but for a great variety of documentation needs), please don't hesitate to contact me.

That's my list. What do you have to add, strike or comment?

Bye,
Bart

Sunday, April 20, 2008

Opera Mobile Mini browser

My last review of Makayama's webbrowser made me realize I was ready for a new browser. WM6.1 is coming with a tweaked IE Pocket and WM7 promises to be great, but I won't wait any longer. I installed Opera Mobile Mini and gave it a shot. I know it has been around for a while already, but I only looked at it recently.

Now, there's something between Java and me. I always have an eerie feeling when I know I have to start Java and from there I start something else. I know it's me: I'm from the Basic interpreters age. It feels (in my mind that is) clunky and slow and not optimized. I know I'm wrong, but I can't get over it.

But, if there ever was an application that will make me change my mind and (more important) take away that feeling when reading the word 'Java', it will be Opera Mobile Mini. It's extremely fast, renders pages very quickly and will do so (almost) the same as a desktop browser will.

But, what I like most is something I missed most in the Makayama browser: the zoom function. It makes the difference between a good browser and an excellent browser. I can't imagine I will use another browser again (until something new comes along of course :-)).

There's a couple of things I need to find out. I already read how to create a direct startup link to the Opera midlet, but I would like to have it registered as my default browser, so it will launch when clicking on an url in a newsfeed or e-mail message. I'm sure that information is out there, but if you know, please share it with me.

Bye,

Bart