chicken-hackers
[Top][All Lists]
Advanced

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

Re: [Chicken-hackers] why Chicken?


From: Brandon J. Van Every
Subject: Re: [Chicken-hackers] why Chicken?
Date: Wed, 31 Jan 2007 10:29:17 -0800
User-agent: Thunderbird 1.5.0.9 (Windows/20061207)

Tony Sidaway wrote:
And being a hybrid it
lends itself easily to the combination of low and high level
programming that characterizes many real world applications.

That reminds me of my original reason for pursuing Scheme compilers. It's supposed to be important to my 3D graphics and AI problems. The effort just hasn't borne any fruit yet, because I'm always building. I've gotten too good at building. It's a comfort zone.


For these reasons, Chicken isn't lacking attractiveness to excellent
software developers.  What (apart from its relative obscurity) stops
them using it?  It isn't the brackets, although they may drive away
novices and intermediate programmers who have nothing to gain by the
effort of learning a new language unless it provides them with access
to a huge wealth of library software that would otherwise be out of
reach.  No, Chicken is hard work.  It's pitched at the Lowest Common
Denominator, Posix, and if you want to do anything useful the first
thing you must do is produce a set of language bindings.  While this
isn't too difficult in Chicken, it is time consuming work and it's the
sort of thing developers expect to come as part of the package with
any modern language.

There should be a set of bindings for various native OS features.
Staying in the Posix ghetto was an attractive option ten years ago
when the most widely used version of Windows was little more than a
toy, but if Chicken is to be useful for producing widely-used software
that exploits the full capability of modern systems it must provide
the kinds of interfaces that developers need, and that means more
bindings to native features, in particular native Windows features and
CLI (.Net) features.

That would be Bigloo Scheme. It has C, Java, and C# back ends. And as far as I'm aware, Bigloo is even less popular than Chicken. So how is this really an answer, to any strategic question of Chicken's future?

I think problems of popularity cannot be solves with tech. They are solved with marketing. I've been through language marketing efforts before, and failed at them. I don't feel ready to burn a lot of time on that problem. CMake still isn't rock solid on Linux, the docs don't say the right things about CMake vs. Autoconf, and I still haven't done anything significant with Chicken to prove its utility.
  If these were provided in eggs the clean
simplicity of the core language implementation would not be affected.

If there's a person who wants to do it, that sees it as their mission, then things could happen. Otherwise, it's wishful thinking.

I would comment that Chicken is unlikely to be better at talking to Java than Kawa Scheme is. I don't see any competitive advantage arising there.

Not many Schemes bother with C#, so I see more possibility of market differentiation in that. Let's assume that adequate C-to-C# interfaces are possible, to get real work done. There's still a strategic problem: C# is still a Microsoft trap. Although the language itself is an ISO standard, nobody's interested in C#, they're interested in .NET. That's wholly proprietary and Microsoft can yank out the rug at any time. So you need people ideologically committed to .NET to form the basis of an open source effort. You need Windows developers. And I think we have precious few of those around here. The reason I just spent a year banging on the Windows builds, is no one else had come along to do it. Now, the Chicken and eggs could get better. With CMake, I've laid the groundwork for more Windows usage. But I don't see the C# .NET problem as being a quick and easy implementation. I think more Windows developers first have to be attracted to Chicken for other reasons.

On a personal note, the .NET CLR takes people in directions I don't personally care about. If I had wanted to do CLR stuff, I would have done it 3 years ago. But the CLR is not performance oriented, and leads to things like web apps, accounting software, business apps, etc. Just not my cup of tea. I'm a 3D / AI / game developer. C# has yet to prove any industrial relevance in those arenas. I think Managed DirectX is a joke. I'm willing to be surprised, it's been awhile since I've bothered with the C# gaming universe. But Microsoft would have to show me an awful lot, before I'd remotely care.


On the UNIX side, a similar lack of Gtk/Gnome bindings and the like
makes Chicken programming quite hard work.  Similarly they need not
concern Chicken's core.

Is there a Gtk/Gnome person around here that wants to worry about it? Otherwise, again, it's wishful thinking.

"Let's do more binding!" does not solve the strategic problem of ongoing gruntwork. In fact it does the opposite, it creates tons of it. We need something that solves / alleviates gruntwork problems. I see two approaches:

- a recruitment strategy that attracts massively more open source developers to Chicken. So that we get out of the tens and into the hundreds of developers. If I had an entire team working on build issues, we wouldn't have any build problems, and nobody would be doing a ton of boring build work.

- a brilliant technology that automates binding work.


Cheers,
Brandon Van Every





reply via email to

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