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