Tony Arcieri wrote:
> On Mon, Feb 16, 2009 at 1:31 PM, Brian Candler <b.candler / pobox.com> wrote:
>> Are you interested in borrowing from other languages too?
> Yes!

You asked for it ...

From Newspeak (<http://NewspeakLanguage.Org/>): 
 - extremist message sending paradigm (no variables, no constants, no 
     class dictionary, no instance fields ... just message sends)
 - if everything is a message send, (nested) classes automatically 
     also become namespaces, modules, mixins, packages, libraries and 
     frameworks -- no need for a seperate module system or things like 
     selector namespaces!
 - object-capability based security
 - mirror-based reflection (goes great together with 
     object-capabilities: mirrors are capabilities for reflection)
 - object literals
 - aliens (extremely cool object-oriented FFI)
 - Brazil (extremely cool GUI widget bindings)
 - Hopscotch (there's actually two seperate things, both called 
     Hopscotch: a framework for GUI applications and an IDE built with 
     that framework)
 - structured comments
 - optional type annotations for implementing optional pluggable type 
     systems
     
From Ioke (<http://Ioke.Org/>):
 - even more extremist message sending: even literals are actually 
     messages!
 - Common Lisp style condition system instead of exceptions
 - flexible handling of operators (however, see also Fortress)
 - macros (however, see also the next entry)
 
From Converge (<http://ConverPL.Org/>)
 - powerful compile-time metaprogramming in a language with complex 
     syntax
     
From Fortress (<https://ProjectFortress.Sun.Com/>):
 - even more extremist operator flexibility
 - the idea that this is 2009 and we no longer have teletypes but 
     instead pixel screens and Unicode and that programming language 
     syntax should reflect that (e.g. Ruby's syntax was essentially 
     designed in 1957)

From Cobra (<http://Cobra-Language.Com/>):
 - both static (with inference) and dynamic typing
 - language-integrated documentation (like Python docstrings)
 - language-integrated unit tests
 - language-integrated contracts (pre- and postconditions, invariants)
 
From Clojure (<http://Clojure.Org/>):
 - arbitrary object metadata
 - sane equality semantics due to deep immutability
 - support for multiple orthogonal concurrency models that complement 
     each other (Agents similar to Erlang Actors, Software 
     Transactional Memory la Haskell but better and variables with 
     thread semantics)
 - extremely powerful polymorphism due to user-provided dispatch 
     functions, even more powerful than Common Lisp multimethods

From Scala (<http://Scala-Lang.Org/>), Perl 6
(<http://Perl.Org/perl6/>) and OMeta (<http://TinLizzie.Org/ometa/>):
 - insanely powerful pattern matching, yet respecting OO encapsulation
 
*whow* That's quite a list! I expect a first prototype of Reia
sometime around 2030 (-:

jwm