Monday, May 18, 2009

Early Thoughts on Developing for Windows

I didn't completely escape the clutches of Microsoft when I found my new job. This new place does some development for windows CE, it turns out. I've been struggling through some build issues with some code for the last couple days, and my early impression of developing for windows are not good. I'll admit possibly a little bias, but I'm really trying to keep an open mind. Really.

First of all, the command-line tools are severely lacking in Windows. My mentor here is showing me all kinds of command-line tricks to get stuff done, which I really appreciate, but cmd.exe is awful, copy-n-paste is weird, you can't resize the window by dragging the edge. Useful commands like which, grep, find, just don't exist. Agony. I know about cygwin, but I've never been able to integrate that well with the rest of windoze, and especially not with Visual Studio.

My second complaint is online help. MSDN appears to be quite voluminous, and somewhat helpful actually, but if you run into something that's not in there, all you can find are forum threads where developers make uninformed suggestions to each other and sometimes they happen to find something that works. It's not their fault, the source code for all their tools is secret, so it's really hard to know exactly why the build tools do what they do or the compiler says what it says. The open source folks theoretically can find out exactly why a tool is behaving weird, and with enough people on the internet you can usually find someone who has the correct explanation for the exact wonky behavior you are seeing. Not always a fix, but at least an intelligent explanation that is much more convincing than, "I don't know, have you tried service pack 2?"

OK, back to having a good attitude and plowing ahead.

7 comments:

Anonymous said...

Still using Command Prompt? Use PowerShell.

http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx

Timothy Molinari said...

http://gnuwin32.sourceforge.net/packages.html

All the GNU-tools you need, without messing with cygwin.

Bryan said...

OK, PowerShell is neat-o, I'm sure, but I just don't have the will to learn a whole 'nother set of shell syntax. All reports seem to indicate that for interactive use (my complaint here) it's not much better than cmd.exe.

Now gnuwin32 is cool. It's really nice to have some familiar commands back. Doesn't fix copy-n-paste or window resizing either though. Thanks, Timothy!

ustunozgur said...

Maybe this will help:

http://sourceforge.net/projects/console

Bryan said...

I finally took a second to try console out. It's easily resized, you can easily copy-n-paste, the fonts are easy to change, and it even does transparency. Very nice. I've realized that the big thing that I'm missing is readline functionality. In other words, I need my emacs shortcuts for navigating command history and editing commands.

Sam said...

Developing on Windows is bad enough, but what is even worse is developing for CE. Some solutions exist to the problems you have been having (several of which have been posted on comments above), but often times these solutions are not available for CE. Which leads to the wonderful world of writing software the reinvents the wheel over and over again.

Not sure if I or the other dude is the mentor you are referencing.

Bryan said...

You are the wince mentor I was talking about, Sam, don't worry.