Subject: RE: [hackers-il] World Domination with MS - Rev. 2

From: Chen Shapira <[email-masked]>
Date: Thu, 18 Apr 2002 12:26:51 +0200

> Chen, I think I agree to most of your analysis of how Windows 
> is not as crappy
> is it first appears (especially to the Linux fanatic ;)), 
> though there is
> one point that you missed (and I'm not sure how well Shlomi 
> stressed it
> in his article): both Linux and Windows can do anything 
> (Turing-complete,
> etc.), but the question in my opinion is just how naturally 
> certain things
> fit into the standard framework of each OS.

I agree here. Besides, we've had this discussion before.
Windows is less natural for system administration than UNIX, although its
getting much much better all the time, and win2000 is quite comfortable -
you can do almost anything by remote (without PCAnywhere! just from cmd).
Scripting is getting better as well.

I mostly intended to explain the API's - which aren't as bad as most Unix
programmers think.
I also prefer windows threading to Posix.

But I think the entire article ticked me off a bit. Bashing MS here is like
shooting a dead duck. Messages of this kind should be sent to MS discussion
forums - where you can't get away with bashing 10 years old API and saying
that this proves that windows is crap.
There's a lot of problems in the windows programming enviroment - but I'm
not sure if Shlomi is in the position to analyze them.

> On Thu, Apr 18, 2002, Chen Shapira wrote about "RE: 
> [hackers-il] World Domination with MS - Rev. 2":
> > No one can sell anything for Linux. Selling for Linux is a 
> bad business
> > plan, since for some reason most Linux users perfer not to 
> buy. The only
> > exception I see is Oracle.
> 
> This is a silly argument: Windows users also don't like to 
> buy anything.
> Especially Israeli Windows users. Most people I know never 
> bought a piece
> of software in their life (except, perhaps, the OS they were forced to
> buy with their computer).

Still, many companies make money writing for Windows, many companies make
money selling Solaris and HPUX software.
Linux software is usualy sold in "black-box mode" like Cobalt.
I don't see many examples for companies selling Linux software, I see a few
that tried and failed. 

> > Also, porting Word to Linux may enable many people to 
> switch to Linux. Why
> > would MS do that?
> 
> Two words: Sherman act.

Besides a natural disaster, that is :-)

> Yes.
> Do you think Microsoft can survive if split into two 
> companies (a "Windows"
> company and a "MS Applications" company)? If the answer is 
> "yes" (and I
> think it is), then you can continue the thought experiment considering
> people stop buying Winodws, the Windows company goes bankrupt, but the
> applications company continues to prosper.
> As always, people will get their OS for free with their new computers,
> but it would be Linux, not Windows. Who cares? Home users 
> will continue
> to copy Word illegally from friends, and business users will continue
> to buy legal copies of Word - whether their OS is Windows, 
> Apple's OS X,
> or Linux.

I'm not sure MS will survive such a split.
Oracle desperatly needs low level API's for its DB, and it can't get them
from Linux. 
MS software probably depends on specific windows API's, ones it may not get
from any other OS.

> > Which means that # of zealots and how fanatic are they 
> isn't a good factor.
> > If 50% of your user base is under 18, you can expect many zealots.
> 
> Probably more than 50% of the Windows users are under 18 too. So?

I ment that counting zealots isn't a good way to describe "world
dominations".
Not to mention my personal dislike for people treating OS as a religion,
which they "swear by" and "will never replace, for anything in the world".

> It will be a cold day in hell before Microsoft junkies 
> realise the difference
> between "easy to learn" and "relatively hard to learn, but 
> easy to use once
> you know how". Unix (and Linux) is the latter. Windows is the 
> former. I
> personally consider the latter more important for people who 
> use a computer
> as a primary tool in their job (not only programmers - also 
> scientists, and
> things like that).

I was ranting about the horrible treatment usablity experts are getting from
specific projects. 
MS at least makes an effort to become more "power user oriented", and
results can be seen, things are improving.
Usability is not only for the idiot user, it is also a factor in the
"relatively hard to learn, but easy to use once you know how" line.
Usability advice is important. It includes things like "don't make a UI for
CRON that is made up from 100 diffrent checkboxes", true for all levels of
users.
And demanding that usability people will submit patches will get a project
no where.

> People who only use one very specialized application on the 
> computer (e.g.,
> the doctor's appointment program in my previous example) 
> don't care in what
> OS it runs anyway - as long as the application itself is convenient.

I agree. But it has nothing to do with MS or windows API.

---

From: Shlomi Fish <[email-masked]>
Date: Fri, 19 Apr 2002 18:46:35 +0300 (IDT)

> Scripting is getting better as well.

Really? From the Command-Line? On a Telnet or SSH shell?

> I mostly intended to explain the API's - which aren't as bad as most Unix

The API is not bad. It's just too complicated and non-standard in
comparison to what UNIX offers. And the problem with it is that various
systems across the world badly implement it, which gives a need for a
large number of workarounds in one's code.

In Linux, you can use open() or fopen() while keeping your eyes closed,
because this is the standard system-wide API. On Windows, it's just a
crappy emulation layer, which is known to give one many problems. So
either, you emulate open() and fopen() yourself, or use an abstraction
library. But in any case, it's not what C programmers are used to.

Programming courses teach the ANSI C/POSIX API because it is clean,
simple, brief, consistent and very fun to program with. (in the scope of
programming in C, that is). In Win32, MS decided to introduce a whole new
API model, that will enforce the different OS internals upon the
programmer. That API is much more complex and verbose in comparison to
POSIX (and in many cases incomplete). Perhaps, their intention was that
programmers build abstractions above it. Fine.

But programmers are lazy-minded. They would rather use the built-in APIs,
however verbose they are, then start building abstractions. That's because
you _just want to see something working_. Then you start to abstract.

> I also prefer windows threading to Posix.

I find POSIX threads to be a clean, consisten and fun API. I worked with
Win32 API threading a bit, but cannot really testify to how good it is. I
do think however, multi-processing on Linux (and UNIX in general) is by
far superior to what the Win32 API gives. Unless, of course, Microsoft
introduces a ForkProcess() system call and other goodies like that in NT
6.0... (Amen)

> that this proves that windows is crap.

This message was intended for the Linux crowd, because it concerns our
strategy as Linux advocates. My intention was to show that MS will
actually like programming on Linux more than programming on Windows.

> not sure if Shlomi is in the position to analyze them.

And what exactly should I be in order to analyze them? A veteran
programmer with 10 years of experience writing cross-platform Windows/UNIX
software?

> I don't see many examples for companies selling Linux software, I see a few

I believe there is a place for commercial Linux software. Probably more in
the server side than in the desktop side, but even in the desktop there is
some potential. Again, to do it, one has to make sure his software is
up-to-par or supercedes the open-source offerings or the equivalent
Windows offerings. I can enumerate some guidelines for writing good
commercial Linux software.

> Besides a natural disaster, that is :-)

I did not have the Sherman Act in mind. But MS also maintains ports of its
software to MacOS. If they are not afraid of people switching to MacOS,
then Linux should not prove a problem either.

> Oracle desperatly needs low level API's for its DB, and it can't get them

Are you sure you meant "Oracle"? Oracle has a DB for Linux, without using
any kernel-land tricks? Do you imply MS SQL Server uses low-level APIs? I
heard a rumour of this sort of an undocumented Win32 API function that
Excel uses.

> MS software probably depends on specific windows API's, ones it may not get

APIs which only it uses, which may contain a lot of bugs, and which nobody
else has access to. In Linux, they will have equivalent APIs that can do
the work for them and our system-wide. Or they can gradually port their
own APIs (most of which are completely user-land).

> which they "swear by" and "will never replace, for anything in the world".

I did not refer to "zealots". I referred to a dedicated user-base. A user
that:

1. Is familiar with the competition.
2. Is a Linux power user.
3. Has nothing against Windows.
4. Simply thinks that Linux is by far superior as far as usability goes.

Now that I am using Linux with bash, and KDE 2.x/3.x and Perl,
and XFree 4.x and gvim and RPMs, I find that everything about Windows
annoys me. I simply can't stand it. I used to prefer Windows 98 for day to
day use, but now I think it is sub-standard in comparison the the Linux
offerings.

Sure, I can make the Windows environment more Linux-like by installing a
gazillion of ported softare. But in Linux I get everything out of the box,
and it is always much more integrated.

I think many users feel the same way I do, and can give the facts to prove
it. There's no bigotry about it, just plain usability.

> results can be seen, things are improving.

IMO, recently MS software seems to gain too much kitch factor. They took
perfectly usable interfaces which I got very much accustomed to, and very
little useful things, but a lot of kitch. Joel Spolsky wrote about it
here:

http://www.joelonsoftware.com/articles/fog0000000017.html

Why can't they add useful things to Word like TeX and DocBook import and
export filters, logical styles, WordPerfect-like Reveal Codes feature,
a decent Macro-ing API, and other things that would turn Word from a pretty
crappy Word Processor, to a great one? Clippy was something I really have
lived better without.

> And demanding that usability people will submit patches will get a project

It reminds me of my Advogato feature about Human Engineering:

http://www.advogato.org/article/458.html

> I agree. But it has nothing to do with MS or windows API.

My point in criticizing the Windows environment was to demonstrate why MS
would be comfortable writing software for Linux, and why they make
actually find it preferable. The point of the article is that the purpose
of Linux is not to get rid of MS, but rather to change the rules of the
game.

Maybe the part on the Win32 API needs a little refactoring.

Regards,

	Shlomi Fish

>
> To unsubscribe from this group, send an email to:
> [email-masked]
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>

----------------------------------------------------------------------
Shlomi Fish        [email-masked]
Home Page:         http://t2.technion.ac.il/~shlomif/
Home E-mail:       [email-masked]

"Let's suppose you have a table with 2^n cups..."
"Wait a second - is n a natural number?"