Coding Resources

I have been a programmer for years, but an IBM mainframe COBOL programmer, where I had no choice to where files resided, updating environment tables, how things linked together, etc. As of August it looks like my COBOL days are over and I was hoping to do a 180 swing and learn C. So far the concepts of C aren't throwing me (too much), but I am so lost to Windows and where stuff should go. I am just on day 1 currently and trying to set up my area. I don't know where I should install GNU Emacs, Visual studio, and any other tools so that the are easily accessible from the command line. I appreciate the pushes in the correct direction. I seems to often fall at the installation / setup hurdle.
If I'm trying to swim upstream against Windows, I will often make a c:\apps directory, and install MSVC there (and put Emacs there as well). However, lately I've kind of given up on that, and just let things install to their default locations, which tends to be in the shell-unfriendly "c:\program files (x86)" directory :(

However, one nice trick you can do if you want is to use subst again to map that directory too:

1
subst p: "c:\program files (x86)"


That takes some of the annoyance out of it, but of course, many programs still pick installation names that are full of spaces.

Really, there's no great answer. It's a very annoying aspect of developing on Windows.

- Casey
Don't fight Windows until you know its patterns of behavior/expectations well enough to manipulate it like a surgeon. This will inevitably never happen.

If you want to use command-line on Windows, Powershell is the future there for things non-trivial, but you'll likely find more flexibility for non-MS-style stuff (like emacs) in either Console or PowerCmd (not free)

Pro tip: don't put anything outside of my documents if you can avoid it, and a lot of other things will just be happier for you until you are comfortable with why you would want to put them elsewhere on Windows.
I tend to do a lot of symbolic links instead of doing Casey's subst trick (which used to be my goto thing as well). Symbolic links used to not really work in previous windows, but with 7 it seems very robust.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
C:\>mklink
Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.



Also, it actually works with UNC paths as well, which lends itself to move stuff off the local box and just stick stuff onto NAS drives etc...