I'll ask a question, serious for me:
Mostly you guys are way ahead of me in
knowledge of current software tools,
especially on Linux and 'open source
software' (OSS -- I had to look up that
one!).
But I'm doing a startup the center of
which is a Web site. If people like
the site, a huge if, then it could grow
to be a big thing around the world. Did
I mention if people like the site? People
might not like the site. But if they do
then I will need to grow a significant
server farm, etc.
So far I'm a solo founder and doing all
the work.
I'm keeping most of the site architecture
and software dirt simple. At the core of
some of the server side software are two
servers that have some software I wrote
implementing some applied math I derived --
still, just as computing, the architecture
and software are simple.
For various reasons, I decided to stand
on Microsoft's software. Here is my
thinking, and where am I on thin ice?
(1) I can understand that if I had
the knowledge and/or staff to know
some version of Linux and other OSS
in detail, then Linux and OSS might
offer me more power and flexibility.
My concern, forever, would be that I
would be getting in the business of operating
systems, middle ware, and tools, and
that is definitely not my business.
So, I'm eager to leave that work to
a vendor that specializes in such things,
and for such a vendor all I could see
was Microsoft. So, right, it sounds
like I want to pay money for my
operating system, middle ware, tools,
etc., and in a sense that is correct.
I.e., if something goes wrong, then
I want an 'account executive' to call
and ask for help.
(2) Sure, Linux and Unix have a long
and powerful background back through
Sun, Silicon Graphics, BSD, AT&T, etc.
But for my time on x86 I went from
PC/DOS to OS/2 to Windows XP, and
along that path, each year, I thought
that the OS I was using was likely
the most suitable for me on x86.
E.g., instead of PC/DOS or OS/2 on
x86, I was not going to buy a Sun
or SGI workstation at several times
higher price.
(3) As of now, as a desktop OS on
x86, 32 and/or 64 bit addressing,
as far as I can tell, XP and/or
Windows 7 look okay with Linux
and OSS without huge advantages.
Where am I going wrong here?
(4) There are a lot of developers
writing for Microsoft, and just
what the 'platform' is is fairly
clear, e.g., the .NET Framework
of some version 2, 3, 4, 4.5 on
Windows XP, 7, or Server. So
there is some definiteness to
the platform.
On Linux I would have to learn about
the versions of the different
'distributions'. I don't even
know what would be involved.
Due to the definiteness and the
large number of developers,
on the Internet it
should be relatively easy to
get answer to questions
for the Windows platform.
Is this roughly correct?
(5) My biggest complaint with
Microsoft is the quality of
the technical writing in their
documentation. It looks like
the documentation is from
some nerds who know the software
but have no idea how to explain
it to others and writers who
know spelling, punctuation, and
a little more and are highly
diligent but, still, don't know
how to explain software. My
fear is that bad technical writing
is common in computing and that
in the world of Linux and OSS
the situation would be worse.
E.g., for serious questions,
maybe commonly the solutions is
just to read the code. Is this roughly
correct?
(6) So far I've been pleased with
the reliability of the Microsoft
software I've been using --
XP SP3, .NET Framework 4, Visual
Basic .NET, ASP.NET, ADO.NET,
IIS, and SQL Server. And from
some of the large, busy Web sites
standing on the Microsoft platform,
I suspect that Microsoft will be
able, maybe if at times I
talk to them one on one,
to provide what I need from
them for my site. Of course
then I will be using Windows
Server and developing on
Windows 7 with XP out'a
here.
(7) The Microsoft software
is from, right, Microsoft, and
since they wrote it and sell it,
my understanding is that they
support it. Actually via some
forums, I've already gotten some
quite good support for free from some
Microsoft people apparently
assigned to give serious answers
to serious questions. But it's
been a while since I had such a
question. But in the future I
anticipate questions, from me
and/or my staff (if my site is
successful enough for me to have
staff), and then I will want the
option of getting high quality
paid support for serious questions.
So, maybe my site is crashing;
I don't know why; and I want to
call for serious help. I suspect
that I can get such help from
Microsoft (even if I have to pay)
but am unsure just what the situation
is for Linux and OSS where, e.g.,
where's the company with account
executives?
(8) So far I like the Windows Common
Language Runtime (CLR) and .NET
Framework and the managed code
of Visual Basic .NET, C#, etc.
So far I'm writing just
Visual Basic .NET and am quite
happy with it; as far as I can
tell C# offers little or nothing
more but has just a different
flavor of syntactic sugar,
one related to C and that I don't like.
I believe that, compared with C#,
Visual Basic .NET
is easier to read on the page,
is less prone to bugs due to being
more verbose, and will be easier to
teach to new staff.
Where am I going wrong?
For the world of Linux and OSS,
I don't know what programming
language I would use
that I would like as well
as Visual Basic .NET.
What would the options be?
(9) From some of what I've seen of
high end server farms on the
Microsoft platform, the automation
of system installation, configuration,
monitoring, and management is
excellent, but my view has been
only from, say, 1000 feet up.
If this is so, then I'm impressed.
Where am I going wrong?