TweetFollow Us on Twitter

ESR, etc.

Volume Number: 19 (2003)
Issue Number: 12
Column Tag: Programming

Section 7

ESR, etc.

by Rich Morin

A multiplex review of a singular individual...

Eric S. Raymond (aka ESR) is best known for his activities in support of Open Source software. Several years ago, he convinced a group of key developers to adopt the term as a less-ambiguous and more "marketable" replacement for the existing term, "free software".

Note: The term "Open Source" was actually coined by Christine Peterson (President of the Foresight Institute; http://www.foresight.org). Also, the term "Free Software" still has its adherents; see http://www.fsf.org/philosophy.

Since that time, Eric has written extensively on topics related to Open Source software. His essay "The Cathedral and the Bazaar" is probably the best known of these essays, but the others are also worth reading. See "The Cathedral and the Bazaar: Musings on Unix and Open Source by an Accidental Revolutionary" (O'Reilly; http://www.oreilly.com).

Two of Eric's essays, "A Brief History of Hackerdom" and "The Revenge of the Hackers" appear in the excellent collection "Open Sources: Voices from the Open Source Revolution" (DiBona, et al; O'Reilly). If you want to understand hacker culture and the Open Source movement, both of these O'Reilly books would be excellent starting points.

Eric has also been busy on the organizational and legal sides of Open Source. He is President of the Board of Directors of the Open Source Institute (http://www.opensource.org). He has also published (and publicized) a number of internal Microsoft documents, weighed in on relevant lawsuits (e.g., the SCO unpleasantness), etc.

Other Publications

Eric writes extensively, covering a wide range of topics. His home page (http://catb.org/~esr) has links to essays on anthropology, economics, politics, science fiction, and many other areas. Even if you don't agree with Eric's opinions, you should find his writings to be interesting and thought-provoking.

As the long-standing steward of the Jargon File (http://www.jargon.org; also available as "The New Hacker's Dictionary" from MIT Press, http://mitpress.mit.com), Eric acts as an editor, lexicographer, historian, and (occasionally) anthropologist. The definitions tend to be far more interesting and enjoyable than one might expect from a conventional "dictionary".

The Art of Unix Programming

Over the past five years, Eric has been working on a distillation of the lessons that Unix has to offer the programming community. Taking his own advice ("Many eyes make all bugs shallow.") seriously, he brought in a number of Unix wizards as advisors. As a result, "The Art of Unix Programming" (Addison-Wesley; http://www.aw.com) is enjoyable, educational, and for the most part, authoritative.

Although the book doesn't address Mac OS X, in particular, it has quite a bit to say about the BSD side of the operating system. For instance, it talks at length about the Unix practice of encoding information in text files. OSX, with something like 100K text files, certainly seems to have adopted this idea.

It also discusses popular ideas such as object-oriented programming, threads, giving reasons why these might not be the best possible approach in all circumstances. All told, this book is the best introduction I can suggest for a Mac OS programmer who wants to understand the BSD (read, Unix) side of Mac OS X.

More can be less

True to Unix tradition, Eric extols the benefits of having many different tools. Again, OSX is right there, providing a plethora of programming languages and other useful utilities. I wonder, however, whether OSX (and the Open Source community, in general) may not be suffering from an embarrassment of riches.

In perusing leads for programming positions, many of us have noted the extreme diversity of skills that may be demanded for a single position. Applicants are expected to have several years of experience in each of several languages and tools. Often, it is hard to conceive reasons for using these languages and tools in a single project.

Ignoring the discouraging effect of such postings on prospective applicants, let's consider how the company managed to get into the position of needing this sort of polymath. Speculating, I propose that the company once had a number of programmers, each developing part of a complex system. Each programmer chose the "right tool for the job", in true Unix fashion.

The company now has far fewer programming positions, but it still needs to maintain a polyglot mass of software. Their job postings are totally unrealistic - no single programmer can have extensive skills in more than a few areas - but they are merely a symptom of a larger problem.

OSX has similar historical baggage. If you look in /etc, you will find numerous control files. Most of these are "flat files", employing newlines to separate records and some form of delimiter (e.g., colons or "white space") to separate fields. Unfortunately, the exact format varies, so programs (and administrators) must "understand" different syntax for each file.

The log files are in even worse shape. They may be written by multiple programs, so the format can vary from entry to entry. Because the entries were written for human consumption, they often provide no unambiguous way for a program to distinguish fields. This is a serious problem; if log files are too big for humans to read, and too messy for programs to read, exactly what purpose are they serving?

Moving on to OSX's "plist" files, we find two distinct formats in evidence. One, inherited from NeXT, uses a C-like syntax. The other, strongly encouraged by Apple's current documentation, is based on XML. Using the appropriate frameworks, an Apple programmer can read either file. An administrator, however, may need to be familiar with both.

Although I'm a big fan of YAML (YAML Ain't Markup Language; http://www.yaml.org), I sometimes wonder if I might be making some programmer or administrator's life more difficult, by introducing yet another data format. Sigh.

Programming languages are another area of concern. OSX is built out of C, C++, Objective-C, and a smattering of scripting languages. C is used for the "Core OS" (kernel, BSD libraries and programs), but C++ is used for the IOKit and most device drivers. Objective-C is used for the higher-level frameworks and applications. Finally, the scripting languages are used for all sorts of administrative glue.

Fortunately, few programmers write programs in all these areas. If you're writing GUI-based apps, you're unlikely to be writing device drivers at the same time. If you're a serious scripter, you may never look at any C (etc) code. Unless, as I am, you're using Perl, Python, or Ruby to build Cocoa-based apps.

For all my misgivings, however, I wouldn't want to be restricted to a single data format or programming language. XML is powerful and very "buzzword-compliant", but it's also verbose and a poor match for associative arrays. Objective-C is a tidy integration of OO into the base C language, but its memory management seems a bit awkward to my Perl-accustomed eyes.

Ockham's Razor ("Pluralitas Non Est Ponenda Sine Necessitate.") transliterates to "Plurality should not be posited without necessity", reminding scientists to remain parsimonious in imagining new mechanisms. It is also translated, however, as "Entities are not to be multiplied beyond necessity" and even "Keep It Simple, Stupid".

In short, our challenge as developers is to decide how to achieve simplicity (once we have decided what "simplicity" is, in a given context :-), while retaining the power and flexibility that our mixed programming heritage provides.

Eric's latest offering, like many of his earlier writings, helps to show us the way...


Rich Morin has been using computers since 1970, Unix since 1983, and Mac-based Unix since 1986 (when he helped Apple create A/UX 1.0). When he isn't writing this column, Rich runs Prime Time Freeware (www.ptf.com), a publisher of books and CD-ROMs for the Free and Open Source software community. Feel free to write to Rich at rdm@ptf.com.

 
AAPL
$100.11
Apple Inc.
-0.64
MSFT
$46.44
Microsoft Corpora
+0.03
GOOG
$576.36
Google Inc.
-0.74

MacTech Search:
Community Search:

Software Updates via MacUpdate

SyncTwoFolders 2.0.5 - Syncs two user-sp...
SyncTwoFolders simply synchronizes two folders. It supports synchronization across mounted network drives and it is a possibility to run a simulation showing in a log what will be done. Please visit... Read more
FinderPop 2.5.7 - Classic Mac utility, n...
FinderPop is a Universal preference pane that extends OS X's contextual menus using a FinderPop Items folder much as the Apple Menu Items folder used to do for the Apple menu. It has other features... Read more
VueScan 9.4.45 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
LibreOffice 4.3.2.2 - Free Open Source o...
LibreOffice is an office suite (word processor, spreadsheet, presentations, drawing tool) compatible with other major office suites. The Document Foundation is coordinating development and... Read more
calibre 2.4 - Complete e-library managem...
Calibre is a complete e-book library manager. Organize your collection, convert your books to multiple formats, and sync with all of your devices. Let Calibre be your multi-tasking digital... Read more
Default Folder X 4.6.9b1 - Enhances Open...
Default Folder X attaches a toolbar to the right side of the Open and Save dialogs in any OS X-native application. The toolbar gives you fast access to various folders and commands. You just click... Read more
Beamer 2.0.4 - Stream any movie file fro...
Beamer streams to your Apple TV.... Plays any movie file - Just like the popular desktop movie players, Beamer accepts all common formats, codecs and resolutions. AVI, MKV, MOV, MP4, WMV, FLV. To... Read more
Adobe Premiere Elements 13.0 - Consumer...
Adobe Premiere Elements just got better. Now you can create quick movies from favorite parts of your clips or tell big life stories in full-on productions. Add motion inside movie titles, punch up... Read more
Boom 1.9.2 - System-wide volume booster...
Boom is a system-wide volume booster and equalizer that effortlessly improves the sound of your Mac. Using Boom is easy. It works like the volume controls of your Mac to boost the sound; making it a... Read more
Amadeus Pro 2.1.7 - Multitrack sound rec...
Amadeus Pro lets you use your Mac computer for any audio-related task, such as live audio recording, digitizing tapes and records, converting between a variety of sound formats, etc. Thanks to its... Read more

Latest Forum Discussions

See All

This Week at 148Apps: September 22-26, 2...
Your Source For The Latest App Reviews   | Read more »
Kill Shot Review
Kill Shot Review By Jennifer Allen on September 29th, 2014 Our Rating: :: OCCASIONAL MISFIRESUniversal App - Designed for iPhone and iPad Kill Shot is often satisfying, but its more than pushy in-app purchases will leave you... | Read more »
It Came From Canada: Vainglory
I’m going to be straight you with folks. I don’t know much about MOBAs, and I’m certainly no professional. That means I don’t know how well Vainglory, the upcoming multiplayer online battle arena showcased in the most recent Apple keynote, compares... | Read more »
The Tunnel – An Endless Fall Review
The Tunnel – An Endless Fall Review By Nadia Oxford on September 29th, 2014 Our Rating: :: FREE FALLIN' Universal App - Designed for iPhone and iPad The Tunnel – An Endless Fall is a bit harder to get the hang of than most “endless... | Read more »
Ubisoft Launches Just Dance Now in the A...
Ubisoft Launches Just Dance Now in the App Store Worldwide Posted by Jessica Fisher on September 29th, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
For Better, or for Worse? How the New Ap...
With the release of iOS 8 (finally), Apple has made some noticeable changes on the App Store – bundles, videos, and Testflight integration, to name a few. Many of these additions will make things friendlier for App Store shoppers, but how has it... | Read more »
Asphalt Overdrive Review
Asphalt Overdrive Review By Jennifer Allen on September 29th, 2014 Our Rating: :: SHORT LIVED ADRENALINEUniversal App - Designed for iPhone and iPad Asphalt Overdrive is a fairly simple auto-running racing game, but one that’s... | Read more »
Kritika: Wrath of the Pirate King Update...
Kritika: Wrath of the Pirate King Update Introduces New Class: Shadow Mage. Posted by Jessica Fisher on September 29th, 2014 [ permalink ] | Read more »
Vampire Tribunals Review
Vampire Tribunals Review By Campbell Bird on September 29th, 2014 Our Rating: iPhone App - Designed for the iPhone, compatible with the iPad Hunt other vampires in the “real world” in this location-based multiplayer game.   | Read more »
Simogo Tease The Sailor’s Dream Via Thei...
Simogo Tease The Sailor’s Dream Via Their New Trailer Posted by Ellis Spice on September 29th, 2014 [ permalink ] A new trailer has arrived for the newest title from Device 6 and | Read more »

Price Scanner via MacPrices.net

Apple Releases OS X Mavericks bash Update 1.0...
Apple has released a patch update for OS X Mavericks users to address the recently-detected “Shellshock” security bug in BSD UNIX’s bash shell. Apple says only a few Mac users who had manually... Read more
Pivotal Payments Ready for Apple Pay – FlexPo...
Pivotal Payments, a provider of merchant services and global payment processing solutions, has announced its proprietary FlexPoint platform will support credit and debit transactions through Apple’s... Read more
iStabilizer Announces Tabarm — First Friction...
iStabilizer, a specialist in universal lightweight compact tripods, steady cams, dollies, mounts, and remotes for smartphones, tablets, and cameras, announced today the iStabilizer tabArm, the first... Read more
IStabilizer Flex Smartphone Tripod Wins Usa T...
iStabilizer, a specialist in universal lightweight compact tripods, steady cams, and other products for smartphones, tablets, and cameras, has announced today that its iStabilizer Flex smartphone... Read more
13-inch 2.8GHz Retina MacBook Pro on sale for...
B&H Photo has the new 2014 13″ 2.8GHz Retina MacBook Pro on sale for $1699.99 including free shipping plus NY sales tax only. They’ll also include free copies of Parallels Desktop and LoJack for... Read more
15-inch Retina MacBook Pros on sale for up to...
B&H Photo has the new 2014 15″ Retina MacBook Pros on sale for up to $150 off MSRP. Shipping is free, and B&H charges NY sales tax only. They’ll also include free copies of Parallels Desktop... Read more
Get Down to Business On Your iPad With Free N...
Utah based Poem LLC has introduced Nexticy 1.0, a full-featured, affordable (Free) forms application for iPad. Nexticy makes it ‘way easy’ to create, store, retrieve and analyze paper-like forms of... Read more
13-inch Retina MacBook Pros on sale for $100...
Best Buy has 13-inch 2.6GHz Retina MacBook Pros on sale for $100 off MSRP on their online store. Choose free shipping or free local store pickup (if available). Prices are for online orders only, in-... Read more
Reports Outline Claimed 12-Inch Macbook Air D...
Blogger Jack March says that according to information he’s received from an anonymous “source familiar with Apple’s plans,” the next-generation MacBook Air will launch in mid-2015 and be available... Read more
Pelican Products, Inc. Debuts Pelican ProGear...
Pelican Products, Inc. has announced its roster of new Pelican ProGear Protector and Pelican ProGear Voyager cases for the Apple iPhone 6 and iPhone 6 Plus. The new Pelican ProGear Protector and... Read more

Jobs Board

*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Senior Event Manager, *Apple* Retail Market...
…This senior level position is responsible for leading and imagining the Apple Retail Team's global event strategy. Delivering an overarching brand story; in-store, Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
Project Manager / Business Analyst, WW *Appl...
…a senior project manager / business analyst to work within our Worldwide Apple Fulfillment Operations and the Business Process Re-engineering team. This role will work Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.