3 ms·
Many thanks. > Modern computers (even desktop/laptop) are much more similar to those workstations than to DOS-era consumer PCs. Absolutely. Current computers
by graycat 13y ago
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.
- lmm 13y agoI think you will struggle to hire good programmers willing to work in VB.NET. (For myself, I wouldn't take a job in anything short of scala or haskell. These aren't "easy" languages; in fact stereotypically they're "hard", but they allow me to write in a few lines something that would be dozens of repetitions of a pattern in a less powerful language. Programming in something else is boring and repetitive by comparison). You said before you were confident in the microsoft platform because of the large, busy websites using it; are any of those built on VB.NET? >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. Sounds like you think you don't really need much actual programming. Maybe the problem you're solving isn't really a technical one, and that's fine - in which case maybe you'll be fine with mediocre programmers and it would be a waste of money to hire top ones. Well, best of luck either way.
- graycat 13y ago> For myself, I wouldn't take a job in anything short of scala or haskell. Amazing. > You said before you were confident in the microsoft platform because of the large, busy websites using it; are any of those built on VB.NET? That about has to be the case: What is usually mentioned is C#, but as far as I know what is doable in C# is always or nearly so also doable in VB.NET. C# supports Lambda expressions, and I'm not yet sure that VB.NET does. It may be easier to write efficient, polymorphic code in C# than VB.NET. And there may be some other differences. But assuming C# or VB.NET for the language, the rest about has to be ASP.NET (with or without model-view-controller, MVC), ADO.NET, SQL Server, IIS, the .NET Framework, JavaScript, maybe some server side GDI or GDI+ for manipulating images, etc. Apparently the big deal for a big Web server farm built on the Microsoft platform is ASP.NET and IIS and the more advanced features of those two. E.g., I'm sure there are ways to cache Web pages, but I haven't gotten to them yet and likely won't before revenue if only because the more important pages have to be built one at a time and couldn't be cached; the Web pages that could be cached are so small that it's not worth the bother to set up page caching. > Maybe the problem you're solving isn't really a technical one, and that's fine The core of my site is quite technical as applied math, but the users will never see that. And the programming for the applied math I've already done and likely won't need to redo for a long time if ever. The rest of the programming will be routine for a Web site or a business and, thus, for a language, well within the capabilities of VB.NET. > Sounds like you think you don't really need much actual programming. For the routine business programming, I don't know how much will be needed. But I did select SQL Server instead of some simpler no-SQL due to anticipating needing in time much of the power of a real relational database. > maybe you'll be fine with mediocre programmers I want bright people, but I'm not too impressed with "top" "programmers". If I had some really challenging software to write, say, for reliability, then I might prefer a bright pure math major to a bright computer science major. If the math major needs something tricky in computer science, then he could chat an afternoon with a computer science prof and find, say, what pages in, maybe, something by Sedgewick to read. Otherwise I'd hire bright, well motivated, people with an interest in computing from some majors other than math or computer science. I might be missing something about Scala or Haskell, but so far what I see in nearly all production programming on Windows is a little 'glue' in a language like VB.NET connecting a lot of 'bricks' from the .NET Framework, ASP.NET, ..., T-SQL, etc. So the VB.NET is define a function, pass some arguments, define and allocate some storage inside the function, operate on the data via if-then-else, do-while, expressions, call-return, try-catch, use the APIs, and then return. I see no way to get around using the 'bricks', and the 'glue' code is so small that I see no great savings in having a better way to do it. Thanks for your help.