Bully for you. said:
Did you ever code in VB6? I did, once. Unless the alternative was my
family's starvation, I never would again.
I haven't. I've used VBA and built some pretty impressive (if fragile)
stuff on top of Access and Word, but I've never had to use full-on VB.
Maybe I *am* different than elsewhom participating in this thread: I use
the tool that's most appropriate to the environment. I was doing
something earlier this year where I needed to copy a dozen files (from
disparate locations) over to a single location, while stopping and
starting a Windows service. This would have been trivial to write in
Ruby. I did it in "Autoit3" because it let me add on a GUI in twenty
minutes -- less time than it would have taken in Ruby (although the Ruby
version would have been much more maintainable).
I still write .cmd scripts for a lot of things (although I write more
Ruby scripts). I do this not because I *like* writing in the Windows
batch scripting language (I don't), but because said scripts are far
more immediately useful and usable than writing for bash and Ruby. I can
hand these scripts to my coworkers and they can use them; sometimes
they'll have to copy a couple of binaries, but these things just *work*.
There are reasons why I prefer Ruby to VB6, and they're the same kinds
of reasons I prefer bash to cmd.exe.
I honestly, except possibly for aliases (which I'm using less and less
in Unix environments[1]), don't see what *REAL* advantage bash gives
over cmd.exe. Remember: I'm *fluent* in both (which was the real point
my first paragraph to which Mr Cunningham responded). I find command-
line editing in bash a pain in the ass whether you're in vi or emacs
bindings mode (set -o vi; it defaults to emacs).
* Bash has history displayable through 'history'. cmd.exe displays it
as a selectable menu with F7 and cycles through F8. I'd score a minor
point for cmd.exe; there's a few advanced things you can do with bash
and substitution on history recall, but I've rarely seen them used.
* Bash can tab complete program names (in the path), filenames, and
directories. cmd.exe can tab complete filenames and directories. Score
one for bash (path program-name completion is the *only* thing I miss
in cmd.exe).
* Both have scripting languages; both scripting languages have some
impressive capabilities. Bash's language is slightly more powerful,
but both are like pulling teeth. I'd rather use Ruby, and both bash
and cmd.exe treat these equally.
There are other things, but by and large I find them both to be a wash
in the use. I don't even miss "screen" on Windows because it's trivial
to open another command window.
What baffles me is the lack of outrage on the part of folks who
who can use VB6 or cmd.exe without being deeply offended at these
abominations being perpetrated on the computing world.
Except that both actually *do* *their* *job*. I'm more outraged at PHP
than at VB6, because VB6 at least only affects Windows users.
Seriously, on an IBM mainframe, I'd use JCL (and *that* is truly ugly,
IMO) rather than insisting on a scripting language or shell that isn't
part of the operating system install.
I think, Bill, what I'm most surprised at is the lack of pragmatism
presented by the folks who have suggested Cygwin as a solution. It's
most definitely not a pragmatic solution 99% of the time; it's a cop-
out. (I worked in an environment once where the DBA had insisted on the
presence of MKS to administer Oracle on Windows. This was the most
disastrous thing that I'd seen in a while, and it showed in how much
*extra* work was being done to maintain the Oracle processes.)
Cygwin has its place. That place is very limited.
-austin
[1] I use shell functions far more often these days. Aliases are mostly
useless for my purposes.