I’m looking for a programming language that has the following features:
-
First-class functions and anonymous functions/code blocks
-
Mixins
-
Standard OO (at least inheritance and some encapsulation, probably classes over prototypes)
-
Fast to write, but preferably more through shorter keywords/operators than by making up a lot of it’s own new concepts/sugar (obviously there’s some subjectivity here, so I’m leaving it open-ended).
And has strong library support for:
-
The web (including HTTP, HTML templating, databases, and asset handling)
-
Dependency injection
-
Unit testing
It should also be able to do matrix manipulation better than abysmally, whether as part of the language or through libraries.
I don’t want to start any open-ended, philosophical debates 🙂 I’m just looking for some languages that fit the above bill.
Edit: I know Ruby’s close but I’m looking for something with a little less sugar. Also, from what I understand about symbols they’re basically rampant global state, which isn’t great.
python:
check! (lambda for anonymous function calls)
You can inherit from multiple classes in python
check!
python is fast to write and easy to read. The syntax is pretty intuitive I think.
http://wiki.python.org/moin/WebFrameworks
python might lag behind a little bit here. There is no equivalent of Spring for python to my knowledge, but the language does provide the ability to do so. See http://wiki.python.org/moin/DependencyInjectionPattern
check! http://docs.python.org/library/unittest.html
checkout numpy for starter: Link. I think there are better solutions out there as well.