Hi everyone.
As you may know, I have far less experience regarding Scheme and
programming in general than many of you reading this.
I tried to follow the vigorous discussions happening here during the
election of the steering committee and for the last week or so. I even
do homework on IRC.
Yet, I am quite puzzled by one particular thing: the meaning of the
standard itself.
I read (or understand) quite often that it should be what users are
supposed to find on any implementation, or that it is the minimal
subset needed to do everything else, or that whatever it is, it has to
me mathematically dazzling. And then, people try to strangle each
other because one does not dislike unhygienic macros, while another
wants case insensitive symbols.
In this kind of discussions, I am totally lost.
Perhaps am I deeply misunderstanding the potential of the standard,
but I would expect it to be something designed _to_get_things_done.
And to get things done, I need hashtables. I need sockets (or directly
clients for given protocols). I need to be able to run concurrently
two procedures which may do side effects. I need to read and write
files, to move to the end, rewind to the beginning, and insert text in
the middle. And I need them available immediately.
Meanwhile, I do not care at all about the case sensitivity of symbols,
nor do I care about CamelCaseIdentifiers or hyphenated-variable-names.
And should define-macro no be there, I can macro-expand the code
myself using an external tool.
Am I the only one to think that a top-down approach is needed for the
standard to move forward ?
Can't we think of making life easier for solving daily programming
tasks, before arguing about the colour of the carpet ?
Trying costs little time, and can have a huge positive impact on the language.
I'd rather see Scheme change drastically and try to improve every
couple of years, rather than stay an esoteric language (for this is
probably the most accurate perception of Scheme by the "other
programmers").
I know that people will disagree with me.
Those who want to stick as much as possible to R{5,6}RS should rather
stick to it, with regard to *my* expectations of the new standard.
And for those disagreeing, I do not see any reason for the previous
RnRS to be dropped in favour of a new standard; \emph{they can all
coexist together}, and even grow up together.
As far as the spirit of Scheme is concerned, I do not consider that
adding HTTP protocol, hashtables or random numbers generation in the
language clashes with the moto "Programming languages should be
designed not by piling feature on top of feature, but by removing the
weaknesses and restrictions that make additional features appear
necessary. Scheme demonstrates that a very small number of rules for
forming expressions, with no restrictions on how they are composed,
suffice to form a practical and efficient programming language that is
flexible enough to support most of the major programming paradigms in
use today."
This blurb should be revised. Although showing that most of the major
paradigms can be supported in Scheme has been successfully done,
Scheme should now—in my humble opinion—demonstrate that it can be used
by anyone to solve problems in real life.
To make my case even worse, I am currently thinking of a mix of
current Scheme (for all of it that we love), of Common Lisp (for all
the useful tools it procures) and of Ruby/Python (for all the issues
it addresses practically, if I trust the Internet).
I apologize for the noise (and the bad English), and wish that some of
you express their views on what they expect from the new language(s?).
P!
--
Français, English, 日本語, 한국어
_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss