[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Macros and little languages
> > I claim programming languages should allow coders to demonstrate their
> > virtuosity and thus, my vote is against b&d-based langages. Similarly,
> > english did not allow to introduce new words and new structures, it
> > called Esperanto, and nobody would use it.
> Motherhood and apple pie.
If you dislike comparisons between coding and composing, I'll run back to
daddy, and quote master Knuth's original vision of literate programming :
The practitioner of literate programming can be
regarded as an essayist, whose main concern is
with exposition and excellence of style. Such an
author, with thesaurus in hand, chooses the names
of variables carefully and explains what each variable
means. He or she strives for a program that is
comprehensible because its concepts have been
introduced in an order that is best for human understanding,
using a mixture of formal and informal methods that reinforce
(For the record, I'll say cweb is only a first small step, and there is alot
of work left to do before the vision is realized.)
> What language does not allow you to introduce new words and structures?
Languages with neither macro nor eval won't allow to define new structures.
> Who is in favor of a B&D language?
Somebody mentionned earlier that Guido wishes to keep lambda and macro out
of Python for stylistic issues. He wants to lock coders out of getto styles
as a way to increase Python's regularity and thus make it more inviting to
newcommers. Fair, it's b&d for a good cause.
But still, I can't help thinking there is something greater out there. The
holy grail of executable pseaudocode and the promesses of literate
programming might be both hiding behind a blanket refusal to stifle coding
Afterall, nobody ever tried to regularise ink-and-paper pseudocode (beside
the usual binkering about somebody's or other's overly creative usage of
Howard Stearns was musing :
> How do the answers depend on whether we're talking about a closed group
> of programmers employed for a single task, vs. an open-source project,
> vs. distributed group-accreted semantics built on the Web in the next
> generation? Is there any way to defiine the issue specifically enough
> to actually say something more useful than personal preference?
Give programmers a tool that can range a wide variety of styles, and let
them seize who their audience is. This is more or less where little language
embeeding is going. http://www.cs.rice.edu/CS/PLT/Publications/mw01-cgkf.pdf
discusses some of the issues.