Installing GnuCash on Mac without X11 (using MacPorts)

Richard Talley rich.talley at gmail.com
Fri Jan 2 22:13:40 EST 2009


Frank, that was a well expressed end-user rant.

Please allow me to clarify a few things from a programmer's point of
view and also from the point of view of someone involved with computer
training and concerned with usability.

Disclaimer: I am not a member of the Gnucash project. Any opinions
expressed are strictly my own. Clarifications and corrections will be
gracefully accepted.

First, I think that there is a fundamental problem with the
microcomputer industry. Personal computers are marketed and sold as
appliances, but they aren't really like any other appliance we might
buy. Advertising implies that computers are fun, easy and obvious to
use. Well, sometimes that can be true. Many times end-users just end
up frustrated and confused. Moore's Law has been both a blessing and a
curse. Increased computer power has allowed us to present users with
interfaces that play to perceptual and cognitive skills common to most
people. It is much more sensible for most people to pick an item off a
list than to remember an arcane code. At the same time, the complexity
"under the hood" to provide these interfaces is constantly increasing.

You happen to have chosen a program that, right now, requires you, on
the type of computer that you own, to open the hood. You rightly
recoil from the mass of wires and parts thus exposed.

And contemporary computer operating systems are orders of magnitude
more complex than automobiles. Modern internal combustion engines
typically have much fewer than a thousand moving parts. If we take a
line of code as a very rough analogy to a moving part, today's
operating systems have tens of millions of moving parts. One of the
biggest challenges of the 21st century is dealing with levels of
complexity in our technologies well beyond what human beings have
attempted before. It's not just computers, but the other things that
computers allow us to create, such as a global economy with hundreds
of trillions of dollars "worth" of financial instruments. (You may
have noticed that this doesn't seem to be working out very well right
now.)

Jargon. All technical fields have jargons. They serve multiple
purposes. They provide a vocabulary for the adept to quickly and
precisely communicate. They also serve to mark boundaries between
in-groups and out-groups. Computer science right now doesn't just have
a jargon, but multiple overlapping and competing jargons. This is
typical of an immature and rapidly developing field of intellectual
endeavor (remember that the first digital computers were only turned
on a little over sixty years ago). A few centuries ago, when modern
mathematics was in its infancy, there were multiple overlapping and
competing notations. It took the mathematicians a number of
generations to settle on the conventions we use today. Even today some
symbols have multiple meanings, depending on the context. If you are
not an adept, you'll struggle to understand which meaning is implied.

Adding to the end-user's confusion are the plethora of marketing terms
and buzz words, often poorly and unclearly derived from the technical
jargon. The mathematicians have a clear advantage here. They have some
popularizers, but no marketers! (That's not strictly true. Departments
of mathematics do compete for grants. But they generally are not
marketing mathematics to the general public for a profit.)

Back to our automobile analogy. From the point of view of an owner, an
automobile is the machine that sits in his driveway. From the point of
view of the engineers and artists who conceived the car, the design
(i.e. the blueprints and other technical specifications) is the car.
The machine in the driveway is just a specific, tangible instance of
that design.

>From the point of view of the end-user, the binary (i.e. the file or
files containing instructions the computer can execute) is the
program. From the point of view of the programmers and software
engineers who conceived the program, the source code (and associated
technical specifications, if any) is the program. Your binary is just
an instance of that design for and on a particular computer.

Here the analogy breaks down. You can make changes to your automobile
ranging from the trivial to the extreme without ever referring to the
original design. Software doesn't work that way. If you want to change
the binary you have to change the design; that is, you have to write
and debug code and compile or interpret it. (A technical quibble
before somebody else makes it: you can hack a binary but that is
almost always limited to very narrow, often malicious changes.)

At least with the automobile, you are likely to understand when the
mechanic points at a part and says, "That's your alternator." The
technical vocabulary of automobiles has largely passed into everyday
speech. But terms like "fink" and "sudo" are just gibberish to
end-users.

Open Source has existed for a long time because programmers discovered
that, for many purposes, they could achieve more by sharing and
cooperating than by selling and competing. (This drives some "free
market" fanatics crazy.) There is also the political matter of who
controls the bits and bytes on your computer. If all you get is a
binary, then you are at the mercy of whoever provided the binary
(usually some large corporation). If you get source code, then you are
in control of the resulting bits and bytes. This also has implications
for many scientific and engineering tasks where you have to know
precisely and exactly what the computer is doing in order to trust
your results. (An aside: programmers are divided into camps over
philosophical and political disagreements concerning open source.
There are purists who believe that all software should be free and
open. They usually use the term "free software" and use GPL-style
licenses. There are pragmatists who accept a mix of open and
proprietary software, use the term "open source" and use BSD or
MIT-style licenses. There are rejectionists who think the whole thing
is a communist plot. This is greatly simplified and an invitation to a
religious flame-war. If you want to know more, google the name Richard
Stallman.) The Internet was built on open standards and open source
software and has in turn empowered and expanded the open source
movement. One reason so many of us despise and fear Microsoft is that
we perceive that company as striving to turn everybody's open Internet
into Microsoft's Internet, using Microsoft standards and Microsoft
software.

Open source documentation and usability often suck. There are a number
of reasons for this. To a programmer, the source code is the
documentation. Writing good technical documentation is hard work and
takes time. Usability is often not an issue because the software is
written by experts for experts. Un*x-style operating systems are a
perfect example. Unix originated at Bell Labs decades ago when
computer resources, such as memory and storage, were much scarcer and
expensive. It was written by scientists and engineers for scientists
and engineers. So the command line is a terse, arcane, powerful and
dangerous place for most end-users.

There are exceptions. The Mozilla Project (the Firefox browser and
other programs) doesn't just have the goal of a better browser. They
want to displace Internet Explorer, or at least provide enough
competition that Microsoft makes IE better (more secure and more
standards compliant). So it's very important to their goals to provide
excellent usability and documentation.

The Gnucash project started when one or more highly-skilled
programmers got together to write a program to handle their accounting
needs. The level of usability they provide is the level of usability
they need. The features they provide are the features they need and
want and have the time to code. They don't need much or any
documentation because they designed and wrote the system. They provide
easy installers for the systems they use (Linux and Windows).

You wrote: "I'm not clear on why a dim-bulb binary version, or a
complete installation guide/tutorial of some sort is not made
prominently available on the site."

There is a very simple answer. The Gnucash developers don't run OS X.
Making things easier for Mac owners is not on their to-do list.
Providing source code you can change and compile is strictly a
courtesy. It's what open source programmers do. They share. If you
have other goals for the Gnucash project, you'll either have to do the
work yourself or wait and see if someone else gets around to it.

Progress is being made. One of the tools the Gnucash developers use is
the gtk toolkit for constructing program GUI's. It's obvious a number
of people involved with the gtk project are very interested in making
that toolkit run natively using OS X Aqua, without the need for X11.
That's because they run OS X and making this happen is on their to-do
list. That's why you can now, at least, build a version of Gnucash
that doesn't require X11. I'm pretty sure that someone will soon wrap
that up in a nice drag and drop package. I would do it, but I don't
have room on my to-do list and I have other, higher priority goals.

I'm involved in training end-users and in training people to train
end-users. I wrote my previous email in order to make a small
contribution to this project (I'd much prefer the Gnucash developers
spend their time coding than explaining the command line to people)
and to practice my technical writing skills. I'm pleased that you
found it useful and informative.

You write well. If you think that the Gnucash site needs "a complete
installation guide/tutorial of some sort", if you think that is an
important goal, then I suggest you buckle down and write it. For one
thing, it would reduce the traffic on this list.

The Beatles once sang that the love you take is equal to the love you
make. With open source, the goals achieved are equal to the goals
somebody is willing to work hard for. If you can't code, then please
write and improve the documentation. If you value the contribution
that GnuCash brings to the table, please help add to that value.

-- Rich

On Fri, Jan 2, 2009 at 12:41 PM, Frank Marion <lists at frankmarion.com> wrote:
>
> Thank you, that was very informative, I've learned something.
>
> Imagine that you are a brand new Mac user who has never used terminal,
> or shell, and who simply wants to install GnuCash on his laptop. You
> see that GnuCash announces itself as cross-platform. Yay! Data
> security AND portability, PLUS, it's the reason you chose it first
> hand when you were using a PC, so that you could always have your
> data, no matter what computer you used.
>
> So, you go looking for "the program".
>
> But there isn't one. But it says that it's cross-platform, you decide
> that you WANT the data that you've created on your PC on your new Mac.
> So you dig deeper.
>
> And you discover something like this: GnuCash doesn't actually exist
> as a program, only code. You're not a power user, you've been using
> the Mac for less than a week. But the Mac is s'pposed to be simple,
> and since it's cross platform, it should be easy-and-mac-like to
> install. You learn that
>
> 1) You have to use something called Fink or MacPort. You have no idea
> what that means
>
> 2) You bop around a bunch of dry sites talking a language that reads
> like Klingon cursing
>
> 3) You don't know why you should use Fink or MacPorts, 'cause each
> makes different promises.
>
> 4) You learn that you need to have developer tools, and/or that you
> must be able to use unix
>
> 5) That you need to use unix to create one tool so that it can make
> another tool so that you can create an installer (or is it the
> program?--or is it another tool again?) and boy, this is starting to
> get intense!
>
> 6) You grab the first one, and try to follow it step by step, but the
> guide assumes that you have basic unix knowledge, like knowing that
> you have to use this or that account and have to switch among them
> using unix commands that could potentially destroy your machine and
> the universe at large.
>
> 7) When that doesn't work ('cause you don't know what you don't know)
> you feel stupid and frustrated. So you do more research that either
> leads you back to the original documentation, or sites that delve into
> the mental realm of these mythical creatures known as coders who speak
> in unintelligible languages and concepts.
>
> 8) Bewildered and stunned at the complexity of installing an
> accounting program, you start to doubt your choice and just mark it
> off as not-cross platform.
>
> Heck, I was hoping I could just 2click the installer (or drag it to a
> folder) and get busy working.
>
> Perhaps my description is technically incorrect, but you get the sense
> of how some Mac users will perceive this: far too complex, arcane and
> intimidating. GnuCash is an easy install for Windows users. 2 click
> the installer and you're done. It's not for non-power Mac user. That
> means "The point and click crowd". My mother, who can barely
> understand Windows, would *never* be able to install GnuCash if she
> were to ever switch to a Mac.
>
> Perhaps Mac users are not a target audience. I can understand that.
> The developers have limited time, and personal preferences and prefer
> to code rather than to hand hold new users. Perfectly understandable
> and your work is totally appreciated, nonetheless.
>
> I'm not clear on why a dim-bulb binary version, or a complete
> installation guide/tutorial of some sort is not made prominently
> available on the site.
>
> I guess part of the reason that I'm invested in this is because I
> value the contribution that GnuCash brings to the table. A good, free
> reliable open-source accounting program is long over-due in the land
> where lumbering, uncaring corporations basically extort their
> customers. GnuCash is an act of decency. I just wish it were easier to
> install.
>
> So yeah: That was a rant--but a well intended one :)
>
>


More information about the gnucash-user mailing list