January 2018

S M T W T F S
  123456
78910111213
14151617181920
21222324252627
28293031   

Style Credit

Expand Cut Tags

No cut tags
Wednesday, January 30th, 2008 11:04 am
http://arclanguage.org/

Well, that makes the "which language shall I learn next" question rather easier...

First impressions (based on reading the tutorial rather than playing with it): I like it. It embodies PG's philosophy that a language should get out of your way and let you shoot yourself in the foot because one day, you might need to do tarsal surgery and only have a pistol to hand. In many respects, it's the anti-Haskell: it encourages you to put off the decision of how to represent your data as long as possible. Here's a feature along those lines that I liked: indexes into data-structures are indistinguishable from function calls. So if I write
(foo 0)
you have no way of knowing if foo is a list, a string or a function. Evaluation is strict by default, which I think is a net loss (but you've got macros, so it's swings and roundabouts, I suppose). The anaphoric (pronoun-introducing) macros from On Lisp are included by default - I've found pronouns to be very useful in Perl, so this can only be a Good Thing. I was amused to see that most of the language is defined in Arc, and that PG seems to think that this is a bold and novel experiment :-)
Friday, February 1st, 2008 10:01 am (UTC)
Further thoughts: the problem with Scheme is basically the same as the problem with Pascal. They're both great teaching languages, with simple, orthogonal cores that can be easily grasped by students, so they can concentrate on learning the actual material without getting distracted by learning all the weird exceptions and special cases. But, because they're intended for teaching, only the core is standardised. Lots of things which are crucial to practical programming but inessential for teaching are left out. Hence, any distribution that aspires to practicality has to make choices of what to do about the bits that aren't in the standard. This is particularly bad in Scheme's case, because it's designed to teach a class in programming language design and implementation - there's no standard module system, for instance (but plenty of advice on how to whip up your own out of lambdas...). This in turn makes it very hard to develop a standard library of code that's portable across distributions - everyone has their own idea of what a module is, or of how to talk to the operating system, etc.
Friday, February 1st, 2008 03:02 pm (UTC)
That's just the thing - PLT Scheme is a whole system, complete with some fairly big looking standard libraries, and also a cpan-like community thing called PLaneT.

In their recommended implementation (the GHC of the PLT world?), they also don't feel the need to restrict themselves to only allowing text in program source...

My first impression is that I'm quite impressed with the whole package. I'll have to add "play with drScheme" to my tuit-list.