20 Jun 2004
I've been reading a really interesting article by Neal Stephenson called In The Beginning Was The Command Line. It was published in 1999, so some of the conclusions are a little dated, but it is certainly worth a read. Neal longs for an OS with a nice GUI, multi-threading, and a terminal window to interact with Unix command line applications—like BeOS, but not doomed to obscurity. I think that MacOSX has filled that role fairly well, but many of the other points he makes about interacting and tinkering with the innards of the system are well made.
I first started using Linux several years ago. It was before MacOSX was released, and I decided to have a bit of a play with this Linux that I was hearing so much about. I set up my iMac to dual boot, and installed SuSE PPC. I had a lot of fun finding out (often the hard way) how to work with Linux, install applications from source and so on. I enjoyed it so much that I bought a PC laptop with RedHat pre-installed. Coming straight from MacOS 9, I was amazed by the stability of Linux. It's a bit like finding a great lover after years of suffering incompetent and selfish ones. Once you know what you've been missing all those years, you can't go back.
You get a wonderful feeling of control and power using an open system like Linux. Neal makes comparisons between cars and operating systems, and that's not a bad analogy. If something serious goes wrong with a modern car, you often have no choice but to take it to a garage. Modern cars are heavily reliant upon electronics—in a literal 'black box'—and if something malfunctions there, you are powerless to fix it. In contrast, my old Hillman Imp was laughably simple. If something went wrong, it was usually obvious what the problem was (when you saw the part bouncing down the road in the rear view mirror). An hour or so of skinned knuckles and swearing with a socket set was generally all it took to put things right.
However, that was both the strength and the weakness of Linux for me. Because I could adjust everything exactly to my needs and liking, I found it hard to restrain my inner geek from continually tinkering with things. You often find similar tendencies with people who run classic cars. It runs fine, but because they can, they can't stop themselves from replacing the trim here or tuning the performance a bit there. I found that I was spending so much time messing with .rc files that I wasn't getting much actual work done. The other problem was that—for someone from a Mac background—the lack of standardisation of interfaces, keyboard shortcuts and so on was a bit disturbing.
Once MacOSX came out, I jumped to that, and my experience with Linux gave me a great head start. I feel that I'm getting the best of both worlds now; there's a beautiful, standardised GUI, and it's generally very easy to use peripherals, but you also have access to the Unix innards, and can therefore install lots of great command line applications to fill the holes left by commercial software. Oh, and you can use wonderful hardware. I never liked my PC laptop, but my TiBook is a thing of beauty.
I would guess that I use GUI applications about 75% of the time, and command line (CLI) alternatives for the rest. CLI applications are great when you need a quick and precise way to interact with your data. I use LaTeX for writing documents in Vim when I don't need to share the document with other editors, I might start using beamer for presentations, and I frequently use other small tools (like wc) to do particular jobs. The ability to 'pipe' the output of one command to the input of another is an enormously powerful tool, and allows you to construct your own temporary solutions on the fly for munging text files or other tasks that are typically a bit tedious with other applications.
The weakness of the CLI is that there are no visual prompts to how the application works. With a GUI, even if you don't remember the hotkey to do something, you can click a button on a toolbar or pull down a menu to find a command. Of course, with CLI applications you have man pages, but they can take some time to sift through. If you don't use a CLI app frequently, it can be hard work reminding yourself of the commands and switches involved. The other problem is the text interface itself. When I was investigating beamer, I read about pgf—a system for drawing graphics within LaTeX documents, by specifying the coordinates of the vectors you want to draw. I don't know about you, but when I want to draw a triangle, I think of the shape, and where I want it to be on the page. Unless you naturally think in Cartesian coordinates, it's very hard to translate that visual image into the code needed to specify the vectors making up the triangle. I prefer to let the computer deal with the maths. That doesn't mean that pgf is bad; it's enormously powerful and precise, and very convenient for embedding graphics in LaTeX documents. But it is very hard to use. There's a time for typing text commands, and a time for drawing pretty shapes with a mouse, and I think that a modern operating system needs both.
2
Struggling with the inner geek and wasting time fiddling with the guts of your machine is why I believe Mac users are the most productive of us all. They don't need to tweak.
You should read this entry by a friend of mine:
http://www.webeditorblog.com/cgi-bin/blosxom.cgi/debianhell.we
by Rob Annable @ 20/06/2004 8:07 pm • Permalink •
3
aaron, i wouldn't worry. there are very few apps for linux that i've found that won't compile for os x ( generally with no changes to source ).
i personally am falling more towards the CLI, but i would never leave OS X since my paychecks are made with Final Cut Pro. still, there is something about oodles of text files, perl scripts, shell scripts, and apache that does something for me. it helps keep me focused on the data i'm interacting with, as opposed to the "presentation" of said data.
4
I'm a fairly recent switcher from Linux (on a Dell Laptop) to Mac OS X, and I'd never look back. I used to be an incessant Linux tweaker, but these days I just don't have the time.. I just want things to work.
So, Mac OS X is the perfect solution for me - Unix command line, Vim, LaTeX, etc, plus Office (for reading documents that people write in that other word processing system) and all my creative apps (Logic Audio etc) all in one sleek wafer of plastic. Like BSAG and Brian, I find I'm much more productive when I can focus on the content rather than the presentation. It's nice to be able to go to the presentation layer when you need it. Mostly I write LaTeX articles in Vim, but I like using the TeXShop GUI for spell checking.
I don't know what the optimal solution for diagramming in LaTex is though. I use a variety of macro packages (treedvips, avm) that are somewhat specialised for the kind of work I do, and they're far superior to any kind of non-text based diagramming system. There may be an investment of time in drawing that first diagram, but after that the ability to reuse it by just cutting and pasting, changing labels, arcs etc etc. without ever having to leave Vim is well worth the initial effort. I was about to say that "text rools"... but the thought of composing music in Vim makes me reconsider..... (although I know people who probably do this!)
5
Mark -- Compose music in text? Oh, they do... It actually looks easier than writing with a gui, once you get the hang of it.
Bsag -- Linux apps compile on OS X? Is that legal? :D drool
6
As many people have said, Unix apps usually compile fine from source on MacOS X. There's also fink, which provides a Debian apt-get like package management system. It works pretty well, and there are a lot of ported packages available. Some kind souls even package Unix apps in Mac .dmg installers (you can find PHP, MySQL and Apache like this). Since Panther comes with X11, you can even run Linux window managers (I had some success with Blackbox), and GUI apps that run on X11.
I've got a growing addiction for Vim, and increasingly use it for everything possible. TeXShop is great, but you can't beat Vim for editing text. I discovered the Vim latex-suite a few weeks ago, and I want to have the developers' babies :-D
7
Aaron, you ask about Java IDEs on MacOS X. Would Eclipse interest you?
by ThoughtBadger @ 22/06/2004 12:06 am • Permalink •
8
I attended a book signing where Neil Stephenson spoke late in 2003. I asked him about his choice of OS at that point. He said that he has pretty much settled on Mac OS X, but that he was open to change as needed.
Of course, Neil is welcome to correct my recollection. ![]()
by Jeffrey J. Hoover @ 22/06/2004 3:06 pm • Permalink •
9
by BMG @ 30/06/2004 1:07 am • Permalink •
1
I'm probably going to get a new computer soon, and I've been trying to decide between Linux and Mac OS X. I like the GUI and Unix command line on OS X, but i'm a little worried about the availability of open-source software and programming tools -- compilers, IDEs, and so forth. In particular, I don't want to give up Gaim (instant messaging), Dev-C++, and JCreator (java ide). Does OS X have suitable alternatives?----- How interesting, I myself bought this book last year and it fascinated me. By strange coincidence I am currently re-reading it which prompted me to leave this comment, I've been reading the blog for a while but have not left a comment before. I am a computing science student and personally use OS X for my primary OS, I am relatively fond of it but do probably suffer along with many other Mac users of perhaps being caught in the whole Mac 'movement' thing. I do have to fallback occasionally on other OS's as I find it's important to keep a up to date knowledge of developments on other platforms, often so that I can fix my friends computers more easily! I think Neil Stephenson makes some good points in the book and that it's well worth a read, if you're into that sort of thing. And Aaron? in my course we are forced to use BlueJ for Java development, it has it's faults and I can't say i've used it for any major pieces of work but it's freely available for OS X.
by Daniel Nisbet @ 20/06/2004 8:07 pm • Permalink •