Many thanks.
> Modern computers (even desktop/laptop) are much
more similar to those workstations than to DOS-era
consumer PCs.
Absolutely. Current computers are totally unreal,
off the tops of the charts, as you noted, well
beyond what Sun, SGI, etc. were selling 10-15 years
ago. But 10-15 years ago I was using x86 at much
lower cost.
> There's the customizability side. You say that
you're not in the business of tools, but if you're
in the business of making something that almost
inherently becomes the business of making tools,
because existing tools never fit exactly to your
needs. Every serious programmer I've known
customizes their environment, and linux makes this
easier.
Yes. So far my more important customization is
some macros for my favorite text editor, a scripting
language, and some utility programs.
You are correct about it being easier to automate
command line software than GUI software, and I'm a
big fan of text input for programs, especially
because it's easier to automate the execution of
such programs. I like text data that is easy to
parse and have some simple parsing code I keep
reusing.
I'm hoping that for automating system management
Microsoft has some nice tools and APIs. Some of the
Microsoft data centers, e.g., one near Chicago, seem
to have acres of servers with just a few people and
otherwise run by automation. So, apparently some
good automation is doable.
> But you're right that most of the value in linux
comes from using it on the server
I didn't try to say that, but I thought it and agree
with it. Right: With a big server farm based on
Windows, I will likely be sending Redmond big bucks
monthly for licenses for Windows Server, SQL Server,
Visual Studio.
For more, once the monthly checks to Microsoft
really add up, then it will be tempting to hire some
programmers with backgrounds in Linux and OSS,
refactor my Microsoft code onto Linux and OSS, and
drop Microsoft.
Yes, for the intermediate term, I do have my eye on
the Microsoft BizSpark program.
> I think this is a red herring. Pick a reasonably
popular linux platform at random, or pick a hosting
service and go with their default / what they
recommend. The fact that you've got a choice
shouldn't be a downside.
Well, it seemed to me to be a "downside" due to the
risk of my ignorance having me pick a poor Linux
distribution. But ...! Right! If some major
hosting service and their high end customers are
happy with some particular selection from Linux and
OSS, then that and a little more investigation may
be enough to let me make a solid decision.
> I won't say it doesn't happen, but my experience
is that you've got a better chance of finding a
high-quality, well-documented library with OSS
Wow. Microsoft's technical writing torques me off.
E.g., there is the Microsoft program NTBACKUP for
disk space backup and restore. It's cute at least
in the sense that it can, apparently much like
relational data base, get a consistent backup
image of a system while it is running and the files
are changing. Cute. And useful.
So, I did my backup/restore planning around
NTBACKUP. Then when an install of a new version of
SQL Server made my Windows XP boot partition sick
and I needed to restore it, the restore wouldn't
boot. Huge bummer. Hmm ...? Why? Well, there is
an obscure option in NTBACKUP to save the system
state. What the heck do they mean by system
state? So, this is a classic example of
undocumented, undefined, nearly meaningless
techno-gibberish. They were talking about the
options I had selected in Outlook? My screen size?
What the heck?
Well, eventually I found mostly by accident from
some other software that actually on the boot
partition there is a lot of data called system
state. Documented, described some place? Not that
I could find. But if want the restored data to be
bootable, that is, usable, then when save must
must take the option to save system state.
We're talking hidden chuck hole in the road here,
folks.
So, I ran experiments, installing XP. doing backups
and restores, and some days, maybe weeks, later
accumulated a lot of experience and evidence and
typed in a lot of notes and wrote some scripts and
got my usage of NTBACKUP in good shape. Then I
reinstalled everything else, set all the options for
Outlook, etc., apparently none of that work easy to
automate, and, exhausted, frustrated, angry, got
back to work. Bummer. Huge, outrageous bummer.
That's just one example of many.
> And IMO the official documentation for e.g. python
or ruby is much clearer than MS'.
I'm surprised, but there's plenty of room for better
VB.NET documentation.
> My experience is that the free support on the
internet available for OSS is vastly superior to
paid support.
I've heard such things, if only as rumors.
> VB.NET suffers somewhat from the poor reputation
of previous variants; it is probably not as bad as
all that.
I can believe that; I never used the previous
versions. From all I can see, VB.NET is mostly just
some VB type syntactic sugar to let people do simple
if-then-else, do-while, call-return, try-catch, and
some more, and make use of the .NET Framework and
the CLR.
> Less structure makes it easier to start a program
but harder to maintain and develop it - for a
maintainable program you need a language that
enforces separation between different layers and
makes it very clear which parts of the program can
and can't affect other parts of the program. Whereas
in the early stages it's very convenient if you can
just change everything from everywhere.
Yes. I'm very sensitive to scope of names,
dynamic versus static descendancy, e.g., due to
my long experience with IBM's PL/I.
There is some name scoping -- think of as semantic
nesting -- in VB.NET, and so far I'm happy enough
with it.
> At a meta level, you're presumably not going to be
writing all the code for long (at least if it's
successful), and it sounds like you're not a
programming expert yourself.
My problem with being a "programming expert" is the
documentation: It appears that in practice mostly
people learn by experiments and experience instead
of well written documentation, and to me that seems
very wasteful. Some years ago much of the
documentation was better written.
Actually I've done a lot in software and am familiar
enough with what's in Knuth, Ullman, CLRS, Sedgwick,
and more, but I am lacking experience with the
worlds of Windows Server and Linux, the Microsoft
.NET Framework and the CLR, OSS on Linux, relational
data base installation, configuration, operations,
and management, usage of IDEs, software project
tools and management, server farm and network
management and automation.
Actually, for the software I need for my Web site to
go live, I'm about done. The core of that software
stands to remain the core of my business for a long
time.
But, right, for various purposes that now seem small
or to be done manually, there will be a lot of
software written, and I will need a good programming
group.
> Hopefully you can at least see the value in using
a language for which it is easy to hire skilled
programmers; IMO VB.NET is not such a language,
though you should of course use your own judgment.
I'm wondering: To me VB.NET seems so easy that,
with some decent documentation, anyone should be
able to pick it up quickly, and anyone with any
experience in programming should be able to learn
the language mostly just from a few example programs
and a little cheat sheet on a few pages of paper.
My view is that learning VB.NET should be easier
than getting good with a good text editor with a
good macro language. Net, if a person is good at
typing into a good text editor, then learning VB.NET
should be fast, fun, and easy.
The challenges in writing significant Web site
software are outside the language and in the APIs,
e.g., the .NET Framework, ASP.NET, ADO.NET, also in
the middle ware, e.g., IIS, SQL Server, and in
some issues of system and network management, system
security, etc. Heck, just getting a Web page to
connect to SQL Server can be more work than learning
half of VB.NET. Did I mention that I don't like SQL
Server documentation? For those topics, I hope to
have some good learning materials and quick courses.
My view is that the actual content is not much
beyond learning how to cook, say, pancakes, and the
main difficulty is just some just horribly badly
written documentation. Did I mention horribly badly
written? Indeed, I intend to hire mostly bright,
well motivated people with good learning abilities
and high standards and maybe only small backgrounds
in programming and then train them in the detailed
technical topics.