On Feb 20, 2007, at 10:52 AM, Daniel Stenning wrote: > Do I take it from this that RB developers would benefit from the > addition of > such constructs to the RB language ? > > > On 20/2/07 16:29, "Guyren Howe" <[EMAIL PROTECTED]> wrote: > >> (first class functions, >> continuations, closures, modifying classes at runtime, >> metaclasses, ...). If you're comfortable with programming using those >> abstractions, you can write programs that are more concise and >> flexible than you can using REALbasic.
Yes, but no. While such features are very powerful, inexperienced programmers may try to use them, perhaps think they should be using them, but instead overly complicate what they're trying to do. Metaclasses, for example, are widely misused. REALbasic strives to be beginner-friendly, and the result is a lot of software developed by subject matter experts. Such software may not be the best examples of computer science, but are usually the most practical and useful. OTOH, experienced programmers could use some of these features to write libraries that are easier for everyone to use. I would love to write an Object-Relational mapping library for REALbasic. But until we have first-class classes (ideally metaclasses), I just don't think I can make such a library easy enough to use. Partly also, I'm hoping we will get first-class classes before horribly long, so I'd rather wait until then and do a really great OR library. I think the ideal solution would be to make some of these sorts of features available, but not necessarily in your face so beginners don't try to use language features they don't need. Regards, Guyren G Howe Relevant Logic LLC guyren-at-relevantlogic.com ~ http://relevantlogic.com REALbasic, PHP, Ruby/Rails, Python programming PostgreSQL, MySQL database design and consulting Technical writing and training _______________________________________________ Unsubscribe or switch delivery mode: <http://www.realsoftware.com/support/listmanager/> Search the archives: <http://support.realsoftware.com/listarchives/lists.html>
