chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] why Chicken?


From: Brandon J. Van Every
Subject: [Chicken-hackers] why Chicken?
Date: Wed, 31 Jan 2007 02:24:58 -0800
User-agent: Thunderbird 1.5.0.9 (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 improve it.
- it has a bug tracker
- its evolution as a cross-platform tool is healthy. In progress, but healthy.
- 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* ?


Cheers,
Brandon Van Every





reply via email to

[Prev in Thread] Current Thread [Next in Thread]