Shlomi Fish
Thu, 11 Apr 2002 04:06:54 -0700
OK. Let me make my theme a bit clearer. I am not going to show them how
Linux is superior to Windows in every way. I am going to show them the
Linux way of doing things, which I hope they will find cool.
As you may have noticed I am showing both "GUI" and command line
paradigms. That's because Linux has both, while, IMO, in Windows the
incorrect Modus Operandi is that you can get by without the command line
at all. I will not teach them how to use the command line (they can learn
by themselves from book or from the web or from GNUbies-IL). I will show
them, as well as explain, why it is powerful. How do you do:
for I in * ; do cp $I $I.bak ; done
In windows. Yes, Nadav, it is not a good way of having backups. But it is
trivial to do in Linux, while in Windows requires a whole newfangled
GUI program to do it. ("TheRename" I believe). Yes, you can install
almost everything on a Windows. But it won't have the Linux feel to it.
Why don't you use a UNIXized Windows, but rather prefer to use Linux? I'll
leave it as a question that is open to the public.
What I demonstrate should be doable on a MDK 8.2 practically out of the
box. In Windows, you'll have to spend a long time downloading things from
the Internet and installing them. (which is done interactively)
If you think of our audience as potential "pirates", we'll get nowhere. We
must think of them as honest people, even if they are not very much aware
of the fine details of intellectual property law. (in its contemporary or
objective form) Linux is actually gaining ground, not only because it is
cheaper, but also because of many other factors.
My intention is to convey the Linux way of doing things. All right, with
FrontPage you can create a form processor in two clicks, which is:
1. A black box to you.
2. Can run only with IIS.
3. Is guaranteed to display correctly only on IE.
4. Requires a proprietary ASP component to to something trivial as sending
an E-mail message.
Our job is to show them how to work with the raw elements of HTTP. CGI
parameters, Sanity checks, and raw HTML. Don't treat them like they should
not know anything about the system. Assume that they should.
As an Electrical Engineer I have to have a grasp of the computer in the
Semi-conductor level, the transistor level, the transistor integration
level, the logic gates/flip flops level, the nanocode, the microcode, the
assembler, the C level, the Parrot Level, and the front-end of Parrot that
runs above it which is also written in Parrot. (and was bootstraped).
Should Electrical Engineers be left alone and not learn all of these?
Maybe, but that's how an Electrical Engineer is defined in my opinion. As
you know sorting an array of large structs takes much more time than
sorting an array to pointers. You may not remember it until you have
actually witnessed the vast speed improvement when scaling to large N's.
Nor are you supposed to be born with this knowledge. But both are
superficially O(n*log(n)).
Now an Electrical Engineer, can immidiately understand why it was a
mistake, because he understands all the layers below it. Someone who only
knows C superficially may not see where he made a mistake. I'm not saying
you should teach C as an introducery programming language, but I never
trust a programmer that only knows one or two languages, and is not
interested in learning or becoming familiar with more, either.
But back to the issue:
I'm not showing how Linux is superior to Windows in every way. I'm showing
how to do fun things with it. A business cannot expect to base its
web-server on IIS and not pay a dime to anybody. In a LAMP
(onlamp.com) environment you can use all the GPL APIs you can download,
while still not owing a dime to anyone except for the hardware. And some
claim that the LAMP approach is better in many regards than IIS. Strangely
enough, I belong to them. Would you accept a job maintaining an IIS+ASP
site? There are plenty of jobs like that right now. I don't think it is
degrading for me to work as a CGI programmer, but I want to work in an
environment that respects me as a developer, rather than a way to
superficially increase the transfer of money in the market. I'm not
anti-Capitalistic, but I can spot a technological scam when I see it[1].
Linux is about giving the developer what he needs. Not what he is used to,
but then again, everything he needs, with a lot of freedom attached.
That's why I propose my method. Because it shows what Linux is and that it
is cool. It shows why we like Linux.
Regards,
Shlomi Fish
[1] - I believe Perl, Python, Ruby, etc. etc. can be used to build
powerful abstractions which are not as trivial or straightforward in many
other languages that are very popular and much over-hyped. My friend told
me that he hates OO because he learned C++ in his "Intro to Software
Systems Course". I told him that in Perl OO is very straightforward and
you actually realize what a good and useful paradigm it is.
Some people think that the SICP course is useless and does not teach them
anything. Despite the fact that I knew Scheme well and the exercises were
straightforward to do, I found the course enlightening, because I was
finally forced to think like a Scheme programmer and build good Scheme
abstractions. Now I take SICP 2, and I actually like it up to now.
Regards,
Shlomi Fish
--
----------------------------------------------------------------------
Shlomi Fish [EMAIL PROTECTED]
Home Page: http://t2.technion.ac.il/~shlomif/
Home E-mail: [EMAIL PROTECTED]
He who re-invents the wheel, understands much better how a wheel works.
--------------------------------------------------------------------------
Haifa Linux Club Mailing List (http://linuxclub.il.eu.org)
To unsub send an empty message to [EMAIL PROTECTED]