[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-hackers] why Chicken?
Brandon J. Van Every
[Chicken-hackers] why Chicken?
Wed, 31 Jan 2007 02:24:58 -0800
Thunderbird 188.8.131.52 (Windows/20061207)
I've done one basic maintenance task too many on the Chicken build. So
my thoughts are being stimulated towards the broader strategic picture.
How do I get to the point where Chicken is not simply a maintenance
treadmill for me? I've spent more than a year getting it to work. I've
spent no time whatsoever actually making anything with it. I'm in the
perverse position of being an expert at building Chicken, and a rank
amateur at Scheme. I've hardly done more than "hello world."
A fair contingent on the internet would call this crazy and delusional.
I'm more inclined to say I'm an aesthetic perfectionist. My build
doesn't suck. So much software out there sucks, and I've written one
thing that doesn't.
At least in principle. In practice, maintenance goes on forever. The
sands of the operating systems shift from under us. My code looks bad
because it's built on foundations that are fundamentally bad. CMake is
the best solution I'm aware of, to a fundamentally intractable problem.
It can only promise damage control. There's always going to be some
maintenance schmuck tinkering at it forever.
That can't be my only future with Chicken. I'm not willing. I'm keenly
aware that people are paid real money in corporations to do this kind of
gruntwork. Paid well for their abundant time, slogging it out with the
totally mundane. I'm not young anymore. I just turned 37. I've got no
savings, no security, no health coverage. None of these things
inherently scare me: I lost the golden handcuffs during the dot.com
bust. But they do remind me that the clock is ticking.
Meanwhile I'm about to begin the signature gathering season again. I
won't even be making a dime on computers. I'm doing a job I'm very much
at odds with, only to support my open source / game developer habit. I
hope this season, I'll see more $$,$$$ to justify it. No point, if not
for money. At any rate, my time for working on Chicken will become very
limited until July, if I stick out the season. If there's any time at
all, and there may not be. I do have some hard decisions to make, about
what's an acceptable use of my time.
Some of the answers to my plight are inevitably personal. I'm not
asking anyone to wave a magic wand and make me a better programmer, or a
better game developer, or drop cash from the sky, etc.
What I'm looking for in others, however, is commentary on the strategic
road map of Chicken. What are we accomplishing as a community? What
are we not? What could we be?
What does Chicken do that other languages don't? What could it do?
Why should anyone bother? Why is it not just some toy that a handful of
techies is interested in?
Perhaps your answers to these questions will help me with further questions.
One thing that irks me, is I see "no particular brilliance" offered by
Chicken or Scheme to the general problems of software development. I'm
working with barely modern build technologies because there isn't
anything better out there. Software doesn't do anything for us; we
build it all by hand. So very little gets done, unless you throw lotsa
money and bodies at problems. The economic ramifications: I can poke at
something like Chicken or Scheme forever, and get very little done,
because of an infinite amount of things to do. If there is no
fundamental improvement in how software is developed, or some other
compelling economic advantage, then I can spend forever developing no
marketable skills at all. Chicken, and more broadly Scheme, can remain
unprofitable standards. They may be interesting to a computer
scientist, to say, "Ah, this kind of language exists," but no other reason.
How can Chicken help people build software more quickly, without all the
gruntwork and errors? What can Chicken automate about the software process?
I'll end with some things I think Chicken is doing right, so that this
isn't completely dour and negative. I have large reserves of optimism,
but they've been beaten down.
- it has easygoing leadership
- it has productive contributors
- it has documentation. It's wikified, so the community can actively
- it has a bug tracker
- its evolution as a cross-platform tool is healthy. In progress, but
- it's tractable, only 75K lines of code
- it offers decent performance, being a Scheme-to-C compiler
- it has some limited C++ capabilities
- it's easy to retarget at new architectures
- it's BSD licensed
But again the question is why *Chicken* ? These specs could describe a
lot of projects, whether languages or tools. Not as many projects as
one might hope. I think the fact that Chicken is basically a good
project, is unusual and important. I know that's a big part of why I've
stuck around this long. But the question remains, why *Chicken* ?
Brandon Van Every
- [Chicken-hackers] why Chicken?,
Brandon J. Van Every <=