* Greg Neumann | You made various claims about free software that I wish to clarify while | I'm here.
You cannot clarify what I have said. Acquire precision in communication.
| You wrote a 1-liner to me that I didn't respond to, but you make big | claims here that should be responded to.
It appears less than likely that you have been willing to think about them.
| For people who don't want to read all of this, mainly Erik considers free | software to be a failure.
People can read what I wrote just fine on their own. But it is quite interesting to see that you have missed the point so completely. The point here is not some absolutist "success" vs "failure" mode. The point here is to encourage people to think about the successfulness in light of its actual achievements. You fail to address that point, but think that listing success stories is all it takes to rebut some non-argument about failure that nobody ever made. You mention "straw man", so there is some reason to suspect that you know what you have just erected and shot down entirely on your own. The question is whether it /helps/ anyone that software is "free". This is not rebuttable with a few simple examples. I would have thought that such should be fairly obvious, but apparently not.
| So what goal does Erik think free software failed in? Compensation of | the programmer, most likely. The old critique.
The extent of your failure to exercise your brain is quite alarming. If I hooked up electronics and sensors to it to test its activity, the result could most probably only be used to calibrate the equipment.
| People are still feeling around how to maneuver with free software.
This much is true.
| And consider the burden is relative -- is it harder than forking a | commercial project? Do all companies listen to their users' requests and | patches? Do some companies have licenses shutting off your use of the | software after a certain time?
The point was to encourage people to think about such questions. Instead you just ask and do not think. Oddly amusing.
| To many of its participants, free software is new. Maybe the issues are | not new to academia, but many don't have access to those lessons. So a | lot of mistakes and learning have to be made.
One point is precisely that free software is not better than many of the extant alternatives. Having to learn every lesson from scratch because people are ignorant does not seem to be a winning counter-argument.
| I don't think many people believe that Stallman is the world's best | project menager. I've heard mumblings about this from Icaza, maybe Jim | Blandy, and a few others who feel a bit burned. I read all the emails on | jwz's site about the XEmacs schism. I don't think Stallman was capable | of communicating himself to the Lucid team, though I personally rooted | for him.
You do seem to have a curious knack for discussing people instead of ideas.
| Knowing that many companies simply die because of management problems, is | free software so badly off in this sense?
My question is whether it actually /helps/ and /solves any problems/. If it is no better than the alternatives it is supposedly better than, that is a clear symptom of missing the boat or at least exaggerated claims.
| Yup, that's the hard part.
I was not talking about money. I talked about rewards. It is curious indeed that you do not seem to know of any other rewards than money. Part of the charm with free software is its capacity for non-taxable means of reward which would essentially double the value of the reward. This part is underexplored, to put it mildly.
| It's like saving money for a rainy day. I think a grandparent who fought | for these rights should smack you over the head (metaphorically) for not | guarding your resources. Don't be unnecessarily dependent. Be | sustainable and deal with others as economic equals.
But does free software /help/ or /hinder/ in applying this sage advice? /That/ is the question I would like you to think about. Again, I can only regret that it did not seem to work very well.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
greg_new_...@yahoo.com (Greg Neumann) writes: > Eh, forget what I wrote about free software.
better to think about it (perhaps in low-priority cycles), and then write some free software if you feel your principles are supported by doing so. ideas and spew (such is usenet) are easily ridiculed, but even a ridiculous program can also aspire to be useful.
yes, some programs don't believe in users and their faithless drudgery in forcing their dominion over other programs deprives the sky of the i/o signal. cursed and recursed, this abstracted interception; hearsed and rehearsed, this purposeless interdiction. byte written but bit rotten, will your free program be so misbegotten? what is good and what is not good?!!!
> Hi Adam. I've looked through my code to see what makes me feel > uncomfortable with Lisp. It was mostly having to remember again that > you need to funcall/quote this and defun that... And my defuns didn't > stay local to their environment, unlike in Python and Scheme. (A purely > elisp issue?) Little things. Maybe superficial, but when you introduce > to a beginner, these little things are so huge.
> How many people will write huge scripts in emacs? Less than the number > who write tiny ones. Everyone has some tiny need they want to fulfill > that the bigger packages don't.
Emacs Lisp is not usually discussed in c.l.l. There are specific Emacs groups for that. I will try to address your points given my current knowledge of ANSI Common Lisp.
Anonymous functions are defined using lambda and local functions are defined using flet or labels. macrolet allows local macros to be created.
As you have realised, due to separate namespaces it is necessary to signal which namespace is being accessed. #' is an abbreviation for function. For example (mapcar #'(lambda (x) (1+ x)) '(1 2 3)) returns (2 3 4).
Note that (mapcar (lambda (x) (1+ x)) '(1 2 3)) also works, because lambda returns a function.
But if you tried to do this with a regular function:
(defun test (x) (1+ x))
(mapcar test '(1 2 3))
*** - EVAL: variable test has no value
Then you tried to access the non-function namespace, which is currently undefined. We have to make sure the function namespace is accessed:
(mapcar #'test '(1 2 3))
Or longhand:
(mapcar (function test) '(1 2 3))
[what is the official term for the non-function namespace? Variable namespace?]
> "Adam Warner" <use...@consulting.net.nz> wrote in message > <news:pan.2002.10.15.04.51.48.22395@consulting.net.nz>... >> All I see is a lower plateau that requires a new programmer to quickly >> move to implementation-specific constructs (in ways that are slow and >> bug prone). How can it be easier for a new programmer to have to go off >> and build what is already available in CL?
> Yup, Scheme isn't a "comes with batteries" language. But keep in mind > that a lot of what many programmers want to do is access platform APIs, > like Java or Cocoa. Not so much on the serverside, but on the client. > So with lisp you're already at the mercy of impl-dependent constructs.
Still, the core of identical functionality is significantly larger--it's a question of degree. There are also a number of platform-independent interfaces to functionality such as sockets: http://clocc.sourceforge.net/dist/port.html
I want to start using path.lisp to help make my code portable across implementations.
> I like that Scheme can be ported quickly to Java. (Admittedly this is a > bit confusing to me though, since I'd think a lot of lisp is in lisp...) > And the scheme community is a bit more promiscuous, so there's always > someone porting Scheme to the craziest thing.
There sure are a significant number of implementations.
I don't see the point of such a small language given continued improvements in computer resources. But with decent libraries Scheme will go far. I've just been looking at the enormous SLIB library: http://swissnet.ai.mit.edu/~jaffer/SLIB.html
This appears to implement a lot of Common Lisp. It even provides t and nil, which was removed from Scheme in R4RS!
1.5.6.2 Legacy
The following procedures were present in Scheme until R4RS (see section \Language changes " in Revised(4) Scheme). They are provided by all SLIB implementations.
greg_new_...@yahoo.com (Greg Neumann) writes: > Paul Dietz <paul.f.di...@motorola.com> wrote in message <news:3DAC3A55.4AA4DB11@motorola.com>... >> if you had not learned Scheme >> first these would have been non-issues. Why exactly did you want >> to use DEFUN for local functions anyway? Do you use DEFVAR for >> local variables?
> There is no labels keyword in elisp. There are convoluted > workarounds, but after a reasonable search through the elisp ref I > don't see a clean way. (correct me if I missed something.)
Correct me if I'm going mad, but don't you want letrec?
-- Piers
"It is a truth universally acknowledged that a language in possession of a rich syntax must be in need of a rewrite." -- Jane Austen?
Erik Naggum <e...@naggum.no> wrote in message <news:3243730461574299@naggum.no>... > Please see another article I posted today about believing my word. The > idea is to encourage you to think. You only feel, and defend yourself > from the feelings you think I caused. Both are fairly stupid things to > do in a written medium where the intelligent approach is to stick to the > points that are important and valuable to yourself.
Well, I do not think then I can appear intelligent in your metric because at this point I'm back to my old strategy of writing cute little elisp programs. Because there is not much for me to contribute to others here, and I only have the odd questions designed to help me not waste my time in learning this stuff.
Thanks for the responses. It has been interesting, I have no idea what you're getting at, and maybe the most interesting things are the least rational.
> Erik Naggum <e...@naggum.no> writes: > > The freedom. > Thank you for the clarification. > > I wonder if you have used the supposed freedom for anything and have > > a different view, or if you have never used it but think I > > exaggerate or even invent the negative aspects. > I have not had the occasion to use that freedom, and I don't think you > exaggerate the point. Your view - rarely stated - is more pragmatic > and holistic. That is, you're not only taking into account what is > /permitted/ but what is sensible. > The negative aspects you mention aren't problems with a particular > license; they're social problems with any collaborative effort. That > the GPL encourages personal modification endeavors only makes these > social problems more manifest.
I think it all depends on what you intend. If you intend to modify the code for your own purposes and don't care about forking away from the original, or attracting a following, then it is free enough.
It seems like this is largely a political issue. If you want to make changes to the code, and you want to do this in a way that your changes get incorporated (as an option) into the standard distribution, and you want anyone making future changes to the system to consider the fact that you have written this modification package, then GNU is not where you want to do this, because FSF is strongly political and controlling about its projects.
I'm not sure that makes Gnu software only "supposedly free". That's true only to the extent that your goals are political, involving *their* software, as well as technical.
That's also assuming you don't intend every to sell what you do to it yourself, or that they're using the lesser GPL. I can definitely agree that the GPL itself makes software licensed under it not truly free, as it hamstrings what you can do with it -- "Whatever you want, as long as rms thinks it's kosher".
Michael
-- Michael Sullivan Business Card Express of CT Thermographers to the Trade Cheshire, CT mich...@bcect.com
"Adam Warner" <use...@consulting.net.nz> writes: > Hi Greg Neumann,
...
> I don't see the point of such a small language given continued > improvements in computer resources. But with decent libraries Scheme will > go far. I've just been looking at the enormous SLIB library: > http://swissnet.ai.mit.edu/~jaffer/SLIB.html
> This appears to implement a lot of Common Lisp.
It's the "G" word again :)
Cheers
-- Marco Antoniotti ======================================================== NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 715 Broadway 10th Floor fax +1 - 212 - 995 4122 New York, NY 10003, USA http://bioinformatics.cat.nyu.edu "Hello New York! We'll do what we can!" Bill Murray in `Ghostbusters'.
greg_new_...@yahoo.com (Greg Neumann) writes: > Paul Dietz <paul.f.di...@motorola.com> wrote in message <news:3DAC3A55.4AA4DB11@motorola.com>... > > if you had not learned Scheme > > first these would have been non-issues. Why exactly did you want > > to use DEFUN for local functions anyway? Do you use DEFVAR for > > local variables?
> There is no labels keyword in elisp. There are convoluted > workarounds, but after a reasonable search through the elisp ref I > don't see a clean way. (correct me if I missed something.)
Hmm. Xemacs 21.4.8, in library cl-macs, has a labels macro that claims to be "fully compliant with the Common Lisp standard."
-- If you want divine justice, die. -- Nick Seldon
>> Paul Dietz <paul.f.di...@motorola.com> wrote in message <news:3DAC3A55.4AA4DB11@motorola.com>... >>> if you had not learned Scheme >>> first these would have been non-issues. Why exactly did you want >>> to use DEFUN for local functions anyway? Do you use DEFVAR for >>> local variables?
>> There is no labels keyword in elisp. There are convoluted >> workarounds, but after a reasonable search through the elisp ref I >> don't see a clean way. (correct me if I missed something.)
> Correct me if I'm going mad, but don't you want letrec?
Ah... I *am* going mad. You said 'elisp', I read 'scheme'. I'll just wander out into the snow now.
-- Piers
"It is a truth universally acknowledged that a language in possession of a rich syntax must be in need of a rewrite." -- Jane Austen?
greg_new_...@yahoo.com (Greg Neumann) writes: > Paul Dietz <paul.f.di...@motorola.com> wrote in message <news:3DAC3A55.4AA4DB11@motorola.com>... > > if you had not learned Scheme > > first these would have been non-issues. Why exactly did you want > > to use DEFUN for local functions anyway? Do you use DEFVAR for > > local variables?
> There is no labels keyword in elisp. There are convoluted > workarounds, but after a reasonable search through the elisp ref I > don't see a clean way. (correct me if I missed something.)
You are missing labels. It's there you just have to use it (defun foo-1 () (labels ((foo-2 (i) (when (< i 10) (princ i) (foo-2 (incf i))))) (foo-2 5)))
Works quite fine here
> I tried to pawn it off as an elisp problem, but would you listen? I assume yes. > Noooo... :)
Why not. Just you better had visited comp.emacs or comp.emacs.xemacs
>>> Paul Dietz <paul.f.di...@motorola.com> wrote in message <news:3DAC3A55.4AA4DB11@motorola.com>... >>>> if you had not learned Scheme >>>> first these would have been non-issues. Why exactly did you want >>>> to use DEFUN for local functions anyway? Do you use DEFVAR for >>>> local variables?
>>> There is no labels keyword in elisp. There are convoluted >>> workarounds, but after a reasonable search through the elisp ref I >>> don't see a clean way. (correct me if I missed something.)
>> Correct me if I'm going mad, but don't you want letrec?
> Ah... I *am* going mad. You said 'elisp', I read 'scheme'. I'll just > wander out into the snow now.
It's not February 29th, so, um, well, I guess that one's a far too Canadian reference for most people to get...
(Late former Prime Minister Pierre Trudeau "took his walk in the snow," retiring from politics, on February 29th. At the time, his popularity was at an ebb, and it was speculated that the date was chosen so it couldn't be turned into a national holiday :-).) -- (concatenate 'string "cbbrowne" "@ntlug.org") http://www3.sympatico.ca/cbbrowne/canada.html When you awake, you will remember nothing of what I have told you.
Erik Naggum <e...@naggum.no> writes: > Unlike most here, it seems, I happen to think Java is a serious > improvement on what went before it and should be known, perhaps > mostly for its rich community and libraries and its adaptability. > The code you do not have to write should be worth a lot to you -- > and if it comes in the shape of supported libraries from a good > vendor, I think that is much better than relying on > community-developed software of dubious quality and little > commitment.
Out of curiosity, have you used Java much? It's true that it comes with a rich complement of well-done libraries, but they come with APIs that I find so atrocious as to be almost unusable. Maybe the Java way is a worse fit to my brain than it is to most peoples, but I find the standard libraries sometimes get in the way to the extent that it might be easier to just reimplement what I want in a less-crazy manner.
-- /|_ .-----------------------. ,' .\ / | No to Imperialist war | ,--' _,' | Wage class war! | / / `-----------------------' ( -. | | ) | (`-. '--.) `. )----'
* Thomas F. Burdick | Out of curiosity, have you used Java much?
Not for production purposes. I do not think I will want to do that. I would rather hire cheap programmers who can write Java code than do it myself, but I actually believe it is a good language for its purposes and I have read a lot on Java. I want to program in Common Lisp, not Java, myself, but if I were to hire a bunch of people to get something done, I would want them to use something that was not braindamaged like C++ and which I could be reasonably sure was not all buggy like C programs are.
| Maybe the Java way is a worse fit to my brain than it is to most peoples, | but I find the standard libraries sometimes get in the way to the extent | that it might be easier to just reimplement what I want in a less-crazy | manner.
Well, people should not use tools that do not fit the way they think.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
>> Ah... I *am* going mad. You said 'elisp', I read 'scheme'. I'll just >> wander out into the snow now. > It's not February 29th, so, um, well, I guess that one's a far too > Canadian reference for most people to get...
I don't think it's a Canadian reference! It's obviously a reference to Captain Oats' famous `I'm just going outside, I may be some time', isn't it?
In fact I wonder if Trudeau was half-quoting Oats?
Erik Naggum <e...@naggum.no> writes: > * Thomas F. Burdick > | Out of curiosity, have you used Java much?
> Not for production purposes. I do not think I will want to do that. I > would rather hire cheap programmers who can write Java code than do it > myself, but I actually believe it is a good language for its purposes and > I have read a lot on Java. I want to program in Common Lisp, not Java, > myself, but if I were to hire a bunch of people to get something done, I > would want them to use something that was not braindamaged like C++ and > which I could be reasonably sure was not all buggy like C programs are.
Comparing *anything* to C++ will give an artifically favorable impression. I suspect that you would very quickly develop a much less charitable opinion of Java if you had to write some production code in it.
Erik Naggum <e...@naggum.no> writes: > if I were to hire a bunch of people to get something done, I would > want them to use something that was not braindamaged like C++ and > which I could be reasonably sure was not all buggy like C programs > are.
Having worked mostly with C++ and some with Java, I observed a relationship that must exist between any two languages or systems with similar intent.
Since the Java language is easier to learn than C++, less skilled people can get involved more quickly. The average Java programmer may be less skilled than the average C++ programmer, but since it's harder to make grave mistakes in Java, the danger balances out.
Conversely, the C++ language is harder to learn than Java, so it takes a greater commitment and more time to get involved. The average C++ programmer may be more skilled than the average Java programmer, but it's easier to make grave mistakes in C++, so the gain balances out.
I prefer C++'s difficulty because intense attention to detail can ensure a safe and correct program, but with Java there's a higher level of non-beneficial abstraction (the VM) below which one cannot penetrate. If I write a seemingly-correct Java program and it doesn't perform properly, there is less I can do about it. (Or, maybe, I don't know the tools well enough to investigate and overcome problems with the libraries and VM.)
Also, the "knowledge ceiling" with C++ is higher than with Java. After programming in Java for a couple of years, I felt that there wasn't much left to learn about it apart from cataloging its ever-growing libraries. I couldn't do much to become a better Java /programmer/; I could only become a better Java /librarian/. C++ invites seemingly perpetual investment and does reward this effort.
Arguably my preference is based more on the desire to learn than to "just get work done." It's depressing to start learning about something new, only to find too quickly that there's nothing left to learn. That is, hitting that "knowledge ceiling" too soon only leads to boredom and disinterest. C++ keeps my interest where Java could not. Common Lisp appears to offer a similarly high "ceiling" (perhaps with much earlier reward). Hence my interest here.
> I prefer C++'s difficulty because intense attention to detail can > ensure a safe and correct program,
I prefer to be very drunk with my hands tied behind my back because the need to concentrate harder and make no typing mistakes can ensure a safe and correct program.
Erik Winkels <aeri...@xs4all.nl> writes: > I prefer to be very drunk with my hands tied behind my back because > the need to concentrate harder and make no typing mistakes can > ensure a safe and correct program.
I knew this something like this was coming. Nicely put, nonetheless.
Tim Bradshaw <t...@cley.com> writes: > * Christopher Browne wrote:
>>> Ah... I *am* going mad. You said 'elisp', I read 'scheme'. I'll just >>> wander out into the snow now.
>> It's not February 29th, so, um, well, I guess that one's a far too >> Canadian reference for most people to get...
> I don't think it's a Canadian reference! It's obviously a reference > to Captain Oats' famous `I'm just going outside, I may be some time', > isn't it?
Actually, the walk in the snow is a reference to a (possibly mythical) eskimo practice when, once old folks felt they'd become too great a burden on their family they went out for a walk in the snow.
> In fact I wonder if Trudeau was half-quoting Oats?
More likely the eskimo thing.
-- Piers
"It is a truth universally acknowledged that a language in possession of a rich syntax must be in need of a rewrite." -- Jane Austen?
* Joe Marshall | Comparing *anything* to C++ will give an artifically favorable | impression.
This is unfair. If I want to make something, /anything/, look great, I would take Perl, HTML, sendmail.cf, George W. Bush, Microsoft, etc, and voilą! it is great. Since I have good friends (or at least one) who has claimed quite strongly that C++ is not as bad as it was when I made a serious effort to learn it back in 1993/4 and then made a serious effort to build a second carreer as a writer just to make sure that if I should be "forced" to program in C++, I would at least have a way out, I refuse to go below "braindamaged" for C++. The other things listed above are willfully evil and destructive. I want to say "well, at least it is not braindamaged" instead of "well, at least it is not evil".
| I suspect that you would very quickly develop a much less charitable | opinion of Java if you had to write some production code in it.
Part of the point with Java is that it is supposed to be a good language for average programmers. I think most of its detractors forget that you sometimes have to hire mediocre people. Just by watching our excellent forum here, I have to conclude that if you are less than a great thinker, you will only do serious damage in Common Lisp. The people who voice their concerns here are probably /way/ above the average of those who are likely to play with Common Lisp. I could perhaps hire the people who have spent less than three months shedding their Scheme attitude, their arrogance, their unwillingness to actually /learn/ something new, and their unwillingness to work hard at making themselves better. But I have no great hopes for the ability to hire a /bunch/ of people from some funny farm with academic credentials. The crop of "computer scientists" these days has been drawn from the middle of the Gauss curve, with so little sign of excellence and real talent that it would simply be /wrong/ to base an operation on intelligent, thinking, creative, /good/ programmers.
Java is the blue-collar programming language, much more successfully so than C++, which had strong aspirations in that direction, but is much too complex for its intended users. Java can only be judged on those terms, and when you do that, two things become clear: If you are smarter than the target audience, you will hate the language and miss an opportunity to make use of the enormous number of lesser people who can be told what to do and actually accomplish it, and if you are in the target audience, it may be the first programming language that is actually intended to be understood by your "grade" of people and all the educational material is squarly directed at your group.
Furthermore, you can now determine if a university or vocational college is going to produce brilliant or only educated average people by looking at their choice in programming language. It used to be relatively stupid languages like Pascal and relatively smart languages like Scheme, but now we can know beforehand if they believe they can do something great with any potentially brilliant student who decides to attend. If they choose to base their education on Java, they will at best produce highly skilled workers, not thinkers. But highly skilled programmers is much better than poorly skilled thinkers. There are significant benefits to actually having had to use a language for average programmers, even if you can do much better, just as we force even bright kids through schools intended to feed factories with average workers. This may sound brutal, but I have yet to see any alternatives that have a significant chance of success.
/Really/ good people tend to "discover" Common Lisp quite independently of their formal education, but my take on this is that you cannot acquire the foundation to appreciate Common Lisp in today's programming world if you have not gone through a lot of drudgery.
Also, if you can make do with average people, you should be /thrilled/! It is a mark of maturity in an industry when average people can operate tools and accomplish something. Java offers something important here. If you want to solve really hard problems, get the really good people and give them Common Lisp. They will be equally /thrilled/ to get away from Java, if the sentiments here are accurate.
The only problem I can see is that people cannot get programming work that is commensurate with their intelligence and skills. This, however, is not Java's fault.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
* Steven E. Harris | It's depressing to start learning about something new, only to find too | quickly that there's nothing left to learn.
Definitely true. Look at it this way: If people hit the ceiling without having to invest enormous amounts of time on idiotic stunts like C++ forces you to, they have an incentive to move to a different language instead of wasting away at the braindamage that I still think C++ is at the level where it could become most interesting.
| That is, hitting that "knowledge ceiling" too soon only leads to boredom | and disinterest.
But you have acquired skills and an interest in improving your condition that is much more beneficial than staying with a language that exhibits diminishing returns for a constant increase in effort.
| C++ keeps my interest where Java could not. Common Lisp appears to offer | a similarly high "ceiling" (perhaps with much earlier reward). Hence my | interest here.
This is excellent! I am truly happy to see this and your rationale for it. But it also tells me that Java is a better language than C++ because you /did/ leave for greener pastures instead of staying in C++.
If a field gives you a feeling that "I can do better than this" and lets you move on, it gives you freedom. If you get stuck there with a feeling that "with only a little more work, I can improve on this", it is only restricting and confining. Therefore, I would much rather give people Java and tell them to call me when they are exhausted than give them C++ and never hear from them because they vanish into a maze of templates and meta-class programming and whatnot. People who are happy to become the best carpenter in town are a different breed than those who want more and go on to become architects and hire lots of other carpenters and do new and exciting things. I tend to think that it cannot hurt to spend a few years actually building houses if you want to become an architect, and if you get credits for your experience when you want to return to school, that is the most beneficial way to reward real experience.
Do you have an alternative model?
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
In an attempt to throw the authorities off his trail, Steven E. Harris <sehar...@raytheon.com> transmitted:
> I prefer C++'s difficulty because intense attention to detail can > ensure a safe and correct program, but with Java there's a higher > level of non-beneficial abstraction (the VM) below which one cannot > penetrate. If I write a seemingly-correct Java program and it doesn't > perform properly, there is less I can do about it. (Or, maybe, I don't > know the tools well enough to investigate and overcome problems with > the libraries and VM.)
I quite like the notion of putting a long, sharp spike in the middle of the steering column on automobiles.
This mandates that the driver apply intense attention to the details of driving, as any mistake leading to rapid deceleration leads to the spike being driven through the driver's skull, with attendant likelihood of pain, injury, or even death.
Overly uncareful and aggressive drivers would thereby be removed from the "gene pool" and the public roads, thereby assuring improved safety for all those that remain.
Does that not sound like a wonderful idea? -- (concatenate 'string "cbbrowne" "@cbbrowne.com") http://www.ntlug.org/~cbbrowne/rdbms.html If you stand in the middle of a library and shout "Aaaaaaaaargh" at the top of your voice, everyone just stares at you. If you do the same thing on an aeroplane, why does everyone join in?