PG: Clarification about Character Sets
arclanguage.org
arclanguage.org
One complete paragraph on how hard it was to fix this in python and that it seemed to take whole year. And another large paragraph basically telling that it's trivial and could be done in a few days, but who cares anyway.
This is simply the sort of writing where pg had to expect attacks.
But from following the discussion on reddit, it seems that the most biting criticism of Arc are not related to unicode or w3c specs, but that Arc doesn't have any enhancements over scheme besides shortening some keywords.
Can someone with more knowledge than me weigh in on what Arc gives us that scheme doesn't?
So, criticizing lack of features is meaningless to Arc. Valid criticism may be to find weaknesses and restrictions.
(define (dumb-fun s)
(let ((front (substring s 0 3))
(back (substring s (- (string-length s 4))
(sub1 (string-length s)))))
(or (string-ci=? front "was")
(string-ci=? back "good")
(string-ci=? s "Yesterday"))))
Notice how, even though we didn't declare "s" to be a string when binding it, we
end up declaring its type in every single function call involving it.
Basically, most Scheme implementations end up with some kind of bizarre
inverse-type system, where programmers perform all of the work (extensive type declarations) and receive none of the
reward (compile-type type checking).(This is all an artifact of how the rXrs's have been traditionally written--lacking standard support for generic functions or type-introspection, they've essentially set the precedent by "typing" the functions provided in the standard. For example, and straight from r5rs, we have:
length
string-length
vector-length
<=
char<=?
string<=?
Is it any surprise implementations end up with functions like 'bytes-length',
'hash-table-length', etc?).It seems that pg is vaguely cognizant of this deficiency by overloading the common operators; however, unlike CL (or even Haskell, for that matter), Arc doesn't yet provide a way of extending the functions beyond the predefined types.
Anyhing that is released in a version 1.0 (which I think arc isn't even) will have flaws and shortcomings. The value of the feedback by far exceeds the cost of having users look at a product that isn't flawless.
This is especially true for something as complicated as a programming language.
When you're writing software for larger company it's difficult to justify redesigning to create a simpler, more elegant codebase because it adds zero value (from a customer's perspective).
When you're working on your own project, it's possible and also eventually pays off, yielding more maintainable code.
One more reason Arc is not for everyone is due to its functional syntax. I think the challenge would be how to make functional syntax accesible to the masses. Arc seems to be one step forward, although functional programming will never be for everyone.
Add a good introductory book (the current tutorial looks good; I haven't finished it yet) and you may be onto something.