[SLUG] RANT - Where Linux is Better than Mac (or, how I learned to stop worrying and love apt-get and debuild)

From: Scott Grizzard (scott@scottgrizzard.com)
Date: Fri May 29 2009 - 18:34:44 EDT


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

First, I am a Mac user. I am a Linux user too, and I was a Linux user
before I was a Mac user. I run Linux on all my servers, and I run Linux
on my desktop. For my laptop, I went with a high-end Mac, mostly
because I wanted everything on my laptop to "just work" without running
an xp vm like I do at home to run some software. I wanted a bash shell,
I was suduced by iTunes and the cool ads, and I wanted to run World of
Warcraft without dual booting (in the cold, dark days when Wine didn't
work as well for games and we only had white presidents).

I make (and always will make) everyone I give "free" support to
(friends, family) buy a Mac or Linux, mostly because I don't want to
hear the phrase, "I think I have a Virus" ever again! Usually they
don't - what they have is a lousy Windows driver.

However, if you know what you are doing, MACS SUCK! This is really true
if you are into open source software, because IT IS ALMOST IMPOSSIBLE TO
COMPILE SOMEONE ELSE'S CODE ON A MAC, EVEN IF THEY WROTE IT FOR MAC!

For example, I found a bug in FreeOrion while I was playing it on my
mac. I looked at the revision logs, and sure enough someone had fixed
it. I didn't want to completely update to the Trunk, because there had
been a bunch of other problems with other recent changes, and all I
wanted to do was play the game.

I downloaded the file I wanted off ViewVS, and downloaded the freeorion
tarball for the version I was using. I patched the bug with diff, and
then opened it up in XCode to compile it.

10 errors.

Ok, so there are library dependencies...

It has taken me three hours to find the various dependencies online and
install or compile them for mac. After you find and install them, you
have to tell XCode they exist one at a time, where they are, and make
sure the version matches EXACTLY with the one the xcode maker was using
when he first complied the software. For instance, I have Python 2.6 on
my system, and the original compiler for mac had 2.5a, so I had to
compile Python 2.5a from source (without installing it and overriding my
setup) in order to use that one library. I'm still not done with this
process.

Compare this to Linux. I use Ubuntu. I needed a feature for
mod_auth_kerb that someone had posted a patch for online. I ran apt-get
source mod_auth_kerb to download the source code, patched the file,
changed the version number in the deb file, and ran debuild.

errors. Ok, so there are library dependencies...

I ran sudo apt-get build-dep mod_auth_kerb. It installed all of the
libraries for me. Then I ran debuild again and, presto, I had new debs
ready to be installed with the new feature. The whole process took
about 20 minutes, ten of which were waiting for the computer to compile
or download a dependency.

Did I mention that the Linux example I mentioned was the FIRST TIME I
had EVER compiled a package from source to make a change? With a
process that easy, it certainly wasn't the last.

Bottom line, if you know what you are doing, don't bother with a Mac.
Macs have this weird, non-liner learning curve that starts very low and
stays shallow for a while, but then gets "super-steep" - it is very
difficult to be in the tech-savvy but non-pro middle ground. Windows...
Windows just sucks.

Linux's learning curve starts a little higher - you really have to be
able to install your own operating system and brave enough to try (even
though you can stick an Ubuntu CD upside down in a 5&1/4 inch disk drive
and it will install).

However, Linux gives you a much smoother transition from novice to
native, with very helpful people to guide you on the way. You don't
even notice how much you have learned about software (without books, and
without some ridged corporate dictated curriculum) until someone you are
talking to (not from the Linux world and usually a Windows IT guy) goes
"You mean you modified and compiled your own software? You know how to
program C? I could never learn to do that... I'll just stick to Windows."

Wait, I'm not a programmer - I just modified someone else's program - it
took all of twenty minutes!

I am tired of people telling me that Linux is "Of the programmers, by
the programmers, for the programmers". No it isn't.

It also isn't like commercial software, which is "Of the 'design
department', by programmers, for Stupid People" or "of the MBAs, by the
programmers, for the IT staff".

Linux is "Of the USER, By the USER, For the USER". It doesn't assume
you already know everything (or anything). It only assumes that you are
a human, and as such you, are capable of learning.

In Linux, the movement from novice to expert is a natural progression,
without the sharp, ridged lines that separate different types of users
(IT Staff, Designer, Web Manager, Developer, Home "Enthusiast") in
Windows or Mac. This is not because you must do it, but because you CAN
do it.

Sooner or later, some little thing will piss you off, no matter what
operating system you are using. In Mac or Windows, you just have to
live with it (or shell out big bucks for an entirely new system or piece
of software).

In Linux, you CAN fix it. So you go online and read a little - maybe
post something to a mailing list and subscribe to one to listen for a
reply. Someone sends you a command to run that solves that little
issue, and you find yourself looking at a blinking cursor on a black
screen for the first time ever (or at least since you installed WINDOWS
3.1). It's not so bad - you start doing little things here and there
when it's faster.

You edit a config file to add an apt repository, or pull open the
smb.conf file because you want to let your son access one set of files,
but not another set. You start hosting a blog on your own computer and
learn about firewall rules.

Then you patch a simple piece of software from the command line and
write your own batch script with a for loop to do a backup a particular
way, and write a macro in OpenOffice. You start answering more
questions than you ask on the mailing lists, and people start admiring
your WHATEVER-foo. Family start asking you all sorts of computer
questions, many dealing with Windows, and you start answering them
because you actually DO know - not the particular Windows issue, but the
networking/hardware/software principal BEHIND the problem.

People then say to you, that one fateful day, "Linux is fine for someone
like you, but I'm not a programmer."

Someone like me? The first time I touched Linux was in college... as a
Political Science major. A Libertarian friend of mine introduced me to
it (we did an internet radio show - he was the "techie". I got my MA in
Economics, and fell into IT as a graduate student job when my landlord's
IT guy quit while I was in the office and I said, "you know, you can do
that with Linux".

The thing I hate about Mac and Windows is that they think you are
stupid, or pigeonhole you into a "marketing category" which they then
create and sell software to. That is why there is no "easy" way to
patch and build software in Mac (or Windows). "Why would you want to?"
they ask, "What is the market for that?"

Linux makes it easy to grow, because that is what people do. There are
wonderful tools that make it easy to fix "that first problem", and a
huge community that is willing to give if you are willing to learn and
try a little. Users don't start fixing things because they "have to",
bugs get fixed and features added in Linux by other people all the time
- - just wait a little. Users start fixing things because they CAN!

Windows is a little better than Mac in this respect. Apple goes to the
community and shouts, "Hey look, we are based on an Open Source kernel -
want to see Darwin?" That doesn't help anyone, especially someone that
isn't already an advanced programmer interested in kernel design.

Windows at least has the tools to write your own macros in MS Office,
where you can start out, and then move to the free and easy to use
Visual Basic Express when you want to write your first big Application.
 That natural path is only there for advanced Excel users, because they
are the only people who start wanting to write macros in VBA for that
"something that pisses them off". The path is narrow and not very
smooth; people jump off when the next step is "too big" and hand it off
to the VBA department, and there is a big hump from messing with a VBA
macro to writing an application from scratch in VB.NET.

Game modding can be another road for teens running Windows, but that
knowledge is focused on interface design. Some games have Python, and
that knowledge can progress, but it grows only in one direction - to
programming, and not to a general knowledge of Windows, or networking,
or operating systems.

(Windows also has so many problems that someone in the family or office
will start digging around in the registry when something isn't working -
the law of large numbers guarantees at least some progression into
"Power Users", simply because the printer isn't working from that computer.)

Windows used to be better - around version 3.1. DOS came with qbasic,
and there were lots of apps you could modify and play with (anyone make
the banana explosion bigger in the gorilla program?). You could also
modify the autoexec.bat file and graduate to writing your own batch
files to do things. But I was the last year of that generation - when
Windows95 started coming pre-installed on every PC, those that grew up
with qbasic and batch were there to program for it, but there were no
new generations of natural tinkerers becoming programmers to replace
them. The new generation came up on Windows9X, and they don't know
squat outside of what is taught in their MIS classes.

Microsoft recognizes the need for "natural new blood", and they have
responded with free developer tools. But they still don't have a reason
for a user to cross into a little programming.

Mac doesn't have that at all (the programming bit, not the problems bit,
though both apply). Even though they come with a free compiler, BASH,
and X11, all of these things are buried in the "Utilities" section, and
there aren't any little programs to play with that jump out at you.
They don't get it, and they never will. They are firmly convinced, as a
company and culture, that "we know what's best for the customer and we
always will". And, to their credit, they have made a ton of money with
that attitude.

But the programmers going to mac are doing it for one reason - money.
People learn XCode when they get (or are expecting to get) paid to do
it. Mac programmers learn from Linux or Windows.

And there it is - the Mac tools are hostile to new users and discourage
them from ever becoming something more. Linux is inviting to
intelligent people, offering a smooth movement up the knowledge ladder
with marginal increases that people take because they want to do some
small little thing - they want fix something, and they can.

So tell your mom to get a mac, but buy your daughter a Linux machine,
and let her learn and want to learn.

- - Scott
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkogYwQACgkQARR1QiSWUG6AyACggcYRDfNCwn0el0rboYid7tyw
h3kAnAuv5XZq5lgHbVNFiIO4BcMbvaj4
=2xOt
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
This list is provided as an unmoderated internet service by Networked
Knowledge Systems (NKS). Views and opinions expressed in messages
posted are those of the author and do not necessarily reflect the
official policy or position of NKS or any of its employees.



This archive was generated by hypermail 2.1.3 : Fri Aug 01 2014 - 20:00:45 EDT