Monday, March 17, 2008

Friday, March 07, 2008

Developer Tools

I don't think I've ever made a list of MY favorite developer tools.

First some background. I've been at least a part time developer since 1982. Since the late 80s, I have been pretty much a full time developer. Yes, during part of that time I did operational stuff with the software I wrote, but I probably spent 75% of the time coding/designing, and 25% as my own end user. Anyway, here is a list of tools I use all the time:

Microsoft MSDN Team developer ($5469) or Visual Studio Professional with MSDN Premium ($2,499)

Textpad I see lots of other editors mentioned - but I like Textpad

Cygwin Being able to use most UNIX command line tools in windows is great. I regularly have to parse 30+ meg files here at the office, and the tools in Cygwin do it faster than any windows based product I've found

RefactorPro! A totally amazing tool for refatoring your code. I'd say most C# programmers feel the same way about ReSharper. At one time, ReSharper didn't do VB.NET, so...

Microsoft Virtual PC The ability to have clean build boxes, and test boxes, plus being able to test my software under various OSes. Great

Paint.NET Free Photo Editor

Thursday, March 06, 2008

Feeling Frustrated

Today, I'm working on a VB 6.0 application. After a couple of years of working almost exclusively in .NET, boy is it driving me nuts

The WORST part? I'm adding a form and some classes to an application that is about 90% done being ported to .NET

Vista, and what went wrong...

First, let me say I use and LIKE Vista. I designed the PC It's on to well exceed what turns out were political and not technical minimums. I also chose (wisely IMHO) to run the 32 bit version of Vista. Part of my reasoning for all of this is that by trade, I'm a software developer for the Microsoft platform. I figured I'd BETTER be able to make my software work correctly under XP and Vista. The changes you need to make, IF you have been following the Microsoft coding guidelines are NOT that hard. The biggest tips are probably in their book Writing Secure Code.

And that's both the GOOD and the BAD thing.

There is a LOT of software out there, mostly from smaller niche market vendors that "Doesn't Work" or "Doesn't Work Right" under Vista. Now, I won't address the problems of Drivers under Vista 64. Let's face it, you don't have a driver, you have problems, but let's look at some of the OTHER issues that I hear about.

Help Files: One of the big complaints that hit the day Vista shipped was "I'm getting a message my help file won't work". Back around 1995 (yes, 12-13 years ago) Microsoft said "Stop using the *.hlp file format, in the future we will drop support for it". At that same time, they came out with html based help files, and compiled html help files. Over a decade later, Microsoft actually dropped support, and people yelled. Now the question is, why didn't the developers update to the new format? I'll give you part of the answer. The old stuff continued to work, PLUS most of the best tools for making help files, well, still made *.HLP files...

The Annoying Security Popups:
Believe it or not, this problem has been around since XP Service Pack 2, but only in the Corporate Environment, and if it was turned on.
Microsoft told developers "DON'T write to 'random' spots on the hard drive, you should make the API call to find out were the Users/All Users (I'll just use the term Users for short from now on) directory is, and install the program under that, and use a DIFFERENT API call to find out were the users data and settings should be stored" Anyway, to make a long story short - if an application tries to write outside the returned data directory, you are going to get prompted. In addition, if you "assumed" it was going to be "C:\program files\etc etc etc" or "C:\documents and Settings\ etc etc etc", the app WILL continue to work, but it's actually going to stuff the data in a virtual directory that is almost hidden, it's buried so deep

So, it sounds like I'm blaming the developers, right? WRONG

Tyner Blaine had an interesting Post about Microsoft ignoring the customer the other day. I posted a long comment, but it basically was "Microsoft is not only ignoring the customer, they are ignoring the small developer"

Back, oh, say 15 years ago (maybe even a bit more), Microsoft was in a pitched battle with IBM on "Windows VS OS/2". One of the reasons Windows (which was a technically inferior product) won that battle was that there was a LOT of small developer shops, developing small applications in a tool called Visual Basic. There was no small cheap simple tool for OS/2. I'd bet that 90% of the applications that people used were programs that Microsoft never heard of, BUT they were the small things that the user wanted

As windows took off, Microsoft really shifted their developer support from support the 1-4 man shop to "let's take care of the Fortune 500 developers". Lets face it, in many ways, this makes a lot of sense. Examples of this are thing like - .NET produces a P-code that can be decompiled. Who cares, if you are a developer for Megagcorp. The thing is, if you're a 1 man shop selling your product, giving your competitors a way to look at your code is not such a good thing. Look at what the cost of a full up copy of Visual Studio now costs. Yeah, you can get a 'lite' version for free, but to go and get one with source control, and all the stuff you really need? Figure on a $3000+ MSDN subscription (oh, and this way you get the news of 'don't write to the application directory'). Microsoft has also said "The web is the future, and our development efforts will be on developing web application". They really are NOT working on the "I install the application, and I don't need to write the data back to Corp HQ". Again, why? Because 90% of their users are big companies, where they can give you a slick UI, and you are talking to say, Amazon's order entry system, of the CBS Olympic site. Of course, this doesn't do much good say, for a Ham Radio Logging Program, but then again, we no longer are even a blip on the radar.

The thing is: OK, you install Vista, You install Office, You install Money. They all work Great. You install Quicken - and it almost works great (don't try to run the updater unless you tell it to run with Admin Privs)

But then you go to install DxBase, or N1MM, or CWGet, or some other niche program. And you have problems. The developers come up with a way to get it to work, and there becomes a FAQ on how to make the program work under Vista. And you know what? People say "Vista sucks, because look what I have to do to make XXX program work" (or even worse, I can't get XXX to work, because they haven't looked around for how to make it work)

Microsoft blew it - BIG time, and left a BAD taste in a lot of peoples mouth. How? By not helping the small one man shop, that MIGHT sell $10-20K a year in software (and maybe less) get their products ready for Vista - at a reasonable cost