January 22, 2003
>     I like studying and researching new ideas, but when people start to
make
> statements about generality or expressiveness I start reading it with
care.
> It's like saying, Design by Contract improves software reliability,
instead
> of promotes good design of method and class contracts. Some features look very good (e.g. multi-methods, Sather-like iterators, generics, tuples, etc.) but some of them will bite you back sometime. Whenever I add a new
[snip]
> syntax or semantics. Walter feel this everyday, as people here post
problems
> with almost anything he puts in D.

A little philosophy goes a long way:

http://www.mcs.vuw.ac.nz/comp/Publications/CS-TR-02-9.abs.html http://www.wall.org/~larry/pm.html

Rob


January 22, 2003
"Robert Medeiros" <robert.medeiros@utoronto.ca> escreveu na mensagem news:b0n6hl$1oi1$1@digitaldaemon.com...
> >     I like studying and researching new ideas, but when people start to
> make
> > statements about generality or expressiveness I start reading it with
> care.
> > It's like saying, Design by Contract improves software reliability,
> instead
> > of promotes good design of method and class contracts. Some features
look
> > very good (e.g. multi-methods, Sather-like iterators, generics, tuples, etc.) but some of them will bite you back sometime. Whenever I add a new
> [snip]
> > syntax or semantics. Walter feel this everyday, as people here post
> problems
> > with almost anything he puts in D.
>
> A little philosophy goes a long way:
>
> http://www.mcs.vuw.ac.nz/comp/Publications/CS-TR-02-9.abs.html http://www.wall.org/~larry/pm.html
>
> Rob
>
>

Thanks I'll read both.


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.443 / Virus Database: 248 - Release Date: 10/1/2003


January 23, 2003
"Daniel Yokomiso" <daniel_yokomiso@yahoo.com.br> escreveu na mensagem news:b0n9ur$1qjv$1@digitaldaemon.com...
> "Robert Medeiros" <robert.medeiros@utoronto.ca> escreveu na mensagem news:b0n6hl$1oi1$1@digitaldaemon.com...
> > >     I like studying and researching new ideas, but when people start
to
> > make
> > > statements about generality or expressiveness I start reading it with
> > care.
> > > It's like saying, Design by Contract improves software reliability,
> > instead
> > > of promotes good design of method and class contracts. Some features
> look
> > > very good (e.g. multi-methods, Sather-like iterators, generics,
tuples,
> > > etc.) but some of them will bite you back sometime. Whenever I add a
new
> > [snip]
> > > syntax or semantics. Walter feel this everyday, as people here post
> > problems
> > > with almost anything he puts in D.
> >
> > A little philosophy goes a long way:
> >
> > http://www.mcs.vuw.ac.nz/comp/Publications/CS-TR-02-9.abs.html http://www.wall.org/~larry/pm.html
> >
> > Rob
> >
> >
>
> Thanks I'll read both.
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.443 / Virus Database: 248 - Release Date: 10/1/2003
>
>

The first is a collection of thoughts about computer science and postmodernism. Sometimes interesting, but in general I don't think they grok the idea of postmodernism. There's a lot of "don't" and "not" it their text, and definition by negation is (somewhat) the antithesis of postmodernism. The Larry Wall rant is very insightful, as everything he writes. He has a quite unique POV in language design and it's highly educational reading his reasoning and opinions (the apocalypses series is very good). In the sense of his talk D is a postmodern programming language. Anyway I think this thread is becoming OT right now. Interesting, but OT still.


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.443 / Virus Database: 248 - Release Date: 11/1/2003


January 24, 2003
Daniel,

1. Market success of Oz was never a goal and is not the same thing as research success.  Oz was built to explore and demonstrate the kernel language design approach and did so admirably.  It achieved its goal.

2. A taxonomy of computational models imposes no requirement to adopt any given model(s).  The kernel language taxonomy merely serves as a tool with which to make choices.  In itself, it imposes none.

3. Kernel language was not designed to compete with Java, but to compete with lambda calculus (if anything).  It lives in the domain of language design, not of language usage.  Oz was the demonstration project and nothing more.

4. The remark that "Java has lots of flaws, but is somewhat consistent" is not pertinent to D, which is based on C++.  It also ignores some comments the authors make about Java (next point).

5. The remark "Some features look very good ... but some of them will bite you back sometime" is very true when languages are designed by gut instinct instead of careful analysis.  That's why the kernel language was developed:  to clarify orthogonal dimensions of the problem domain of language design.  The authors discuss how (for example) Java and C++ programmers struggle endlessly with concurrency issues that, in themselves, are not hard to build into a language correctly (correct here meaning easy to use and stable).  As proof of which, Oz handles thousands of fine-grained threads.  So in effect the authors demonstrate that their technique could have made C++ or Java better languages.  Too late for them, but not for D.

6. The kernel language approach is a deliberate and careful technique for language design.  I cannot say the same for our humble newsgroup.  This is why I chuckle at your assertion of carefulness.

7. The intent of my post was not to demand any features in D, or say that C++ is bad (though it is), but to offer a method whereby the tradeoffs under consideration can be analyzed in a more professional and systematic fashion.

8. (Rob:) Perl is not a well-designed language and Mr. Wall's philosophy interests me very little.  I avoid Perl like the plague.

9. If you think this thread is OT (which I assume is a BT) feel free to stop
participating.


January 27, 2003
> 8. (Rob:) Perl is not a well-designed language and Mr. Wall's philosophy interests me very little.  I avoid Perl like the plague.

Perl is something of a dog's breakfast, I agree (I'm a Python fan :) but OTOH, given my druthers I'd write all my code using refinement in an interactive proof system, and anything less formal often seems "sloppy" given this preference. I'm hoping D will serve as a happy medium. I think Wall's (or any other language designers) philosophy is important to understand -- even when I'm liable to disagree -- since that philosophy serves to motivate each decision taken when presented with a tradeoff by a theoretical framework for language design such as you've described.

Rob


February 27, 2003
"Robert Medeiros" <robert.medeiros@utoronto.ca> wrote in message news:b0n6hl$1oi1$1@digitaldaemon.com...
> A little philosophy goes a long way:
>
> http://www.mcs.vuw.ac.nz/comp/Publications/CS-TR-02-9.abs.html http://www.wall.org/~larry/pm.html
>

A fun read. Consider this: "The Cult of Originality shows up in computer science as well. For some reason, many languages that came out of academia suffer from this. Everything is reinvented from first principles (or in some cases, zeroeth principles), and nothing in the language resembles anything in any other language you've ever seen. And then the language designer wonders why the language never catches on."


February 27, 2003
"Robert Medeiros" <robert.medeiros@utoronto.ca> wrote in message news:b12oba$1mes$1@digitaldaemon.com...
> > 8. (Rob:) Perl is not a well-designed language and Mr. Wall's philosophy interests me very little.  I avoid Perl like the plague.
> Perl is something of a dog's breakfast, I agree (I'm a Python fan :) but OTOH, given my druthers I'd write all my code using refinement in an interactive proof system, and anything less formal often seems "sloppy" given this preference. I'm hoping D will serve as a happy medium. I think Wall's (or any other language designers) philosophy is important to understand -- even when I'm liable to disagree -- since that philosophy serves to motivate each decision taken when presented with a tradeoff by a theoretical framework for language design such as you've described.

Perl is a successful language, which is an attribute that makes it worth examining to try and see why.


February 27, 2003
The Oz book (of the subject line) agrees with that sentiment in a certain way, though it would not apportion blame in that puerile, uninformed manner. Nonacademics are at fault, and the book is an attempt to help them.  What the book blames academics for, if anything, is their failure to communicate results in a way 'the masses' can understand.

The book explicitly recognizes the constant reinvention of wheels by language designers who ignore academic research.  To address that problem, it adopts a 'programmer-friendly' presentation of fundamental concepts.

So you have in Oz the opposite of 'nothing in the language resembles anything in any other language you've ever seen.' In fact everything in the kernel language resembles everything you've ever seen.  It shows exactly how many wheels have been reinvented and names them all.  Next time some hacker trots out one of these wheels, and says 'behold a new language,' you can evaluate his work objectively.

The Cult of Originality is a hacker phenomenon.  Academic research is all about classification, taxonomy, and discovery.  Academics face vicious peer review -- the ultimate Darwinian struggle?  Non-academics have cult followings and flame wars, with very little technical substance.  Change the syntax a bit, and voila! a new language is born.  Add a new feature, and voila! a new cult following.

No better example than Perl fits the reinvented-wheel category:  pure marketing and hackerdom, nothing original in a language sense, and horrid syntax, possibly the absolute worst on earth.  I hope for better things of D.  BTW I have plenty of colleagues who use Perl at work, and their comments range from 'horrid' to 'write-once language'...so even those using it are not always fond of it.  My impressions of Perl wizards is that they have little exposure to better languages, and therefore think Perl, and only Perl, offers what it offers.  One way to achieve success is to put blinders on the customers so they can't see the competition.

Mark


In article <b3lpcs$1kv2$1@digitaldaemon.com>, Walter says...
>
>
>"Robert Medeiros" <robert.medeiros@utoronto.ca> wrote in message news:b0n6hl$1oi1$1@digitaldaemon.com...
>> A little philosophy goes a long way:
>>
>> http://www.mcs.vuw.ac.nz/comp/Publications/CS-TR-02-9.abs.html http://www.wall.org/~larry/pm.html
>>
>
>A fun read. Consider this: "The Cult of Originality shows up in computer science as well. For some reason, many languages that came out of academia suffer from this. Everything is reinvented from first principles (or in some cases, zeroeth principles), and nothing in the language resembles anything in any other language you've ever seen. And then the language designer wonders why the language never catches on."



February 27, 2003
"Mark Evans" <Mark_member@pathlink.com> wrote in message news:b3m3eo$1r1i$1@digitaldaemon.com...
> The Cult of Originality is a hacker phenomenon.  Academic research is all
about
> classification, taxonomy, and discovery.  Academics face vicious peer
review --
> the ultimate Darwinian struggle?  Non-academics have cult followings and
flame
> wars, with very little technical substance.  Change the syntax a bit, and
voila!
> a new language is born.  Add a new feature, and voila! a new cult
following.

I don't claim that D is inventing much of anything original. What it does do is attempt to refactor C and C++ into something much easier to deal with. C++ has a terrible burden of having to support legacy C code. The compromises needed to do that permeate the design (look at the tag name space issue for an example). Java has a doubly onerous burden - legacy code, and inability to change the byte code vm.

> No better example than Perl fits the reinvented-wheel category:  pure
marketing
> and hackerdom, nothing original in a language sense, and horrid syntax,
possibly
> the absolute worst on earth.  I hope for better things of D.  BTW I have
plenty
> of colleagues who use Perl at work, and their comments range from 'horrid'
to
> 'write-once language'...so even those using it are not always fond of it.
My
> impressions of Perl wizards is that they have little exposure to better languages, and therefore think Perl, and only Perl, offers what it offers.
One
> way to achieve success is to put blinders on the customers so they can't
see the
> competition.

I haven't worked enough with Perl to have much of an informed opinion about that.


February 27, 2003
>
> No better example than Perl fits the reinvented-wheel category:  pure
marketing
> and hackerdom, nothing original in a language sense, and horrid syntax,
possibly
> the absolute worst on earth.  I hope for better things of D.  BTW I have
plenty
> of colleagues who use Perl at work, and their comments range from 'horrid'
to
> 'write-once language'...so even those using it are not always fond of it.
My
> impressions of Perl wizards is that they have little exposure to better languages, and therefore think Perl, and only Perl, offers what it offers.
One
> way to achieve success is to put blinders on the customers so they can't
see the
> competition.
>

totally agree, and perl is a hackers lang, and great at it.
you write a script, and run it ... easy, has all the power of C with a few
extras, like sub's (think they are real closures) and objects
you even know the context within which your function was called you you can
return different things if evaled as a scalar or an array or as an object.
the optimiser and compiler are good enough that the performance is good
enough to use for even quite large projects, Mod perl CGI is fantasticly
fast (the second time you access the script).
does all the things you might want if you've got to write a program in a
hurry,
buildin hashtables, object, closures, fast regexp processing
and arrays/hashtables can be passed by value or reference.
nice loop constructs (redo as well as continue and break (next/last)).
the only feature perl (5) lacks is a swtich statement but there are ways to
get a switch like layout which allow switch on regexp too.

the syntax is horrific (at first), beated within an inch of its life with
the ugly stick BUT that is to allow easy fast parsing.
like any lang once you get used to perl syntax its not a write only lang at
all. and personally its better than pascal (pet hate of mine as I keep
ending up having to use delphi)

one feature of perl that I realy like is the 'if' which is 'if' <cond> <block> ['elif' <cond> <block>] ['else' <block>] or  <statement> [ ('if' | 'unless') <cond>] ';'

it feels quite 'english' to write
$foo = 10 if defined $bar;

i.e. `if ( bar != null ) foo=10;`

perl did do one thing that was original, it tooks all the useful features from other langs and bound them together.

there are a lot of things you can write in 10 lines of perl that border on 100 lines in any other lang

I also think the Perl wizards have given it a bad name by using the odd features to excess, you can write perl that is as readble as C or any other algol based lang.

I don't see that the 'market' Perl occupies would overlap much with D they
are designed for different jobs.
what do you think of PHP's syntax (which is a slightly cleaner Perl with
features missing) again its that way so its easy to parse.