A language that is simple and readable like Python, is static and strongly typed, supports multi paradigm and leverages multi cores or has non blocking IO.
Believe it or not, Visual Basic is probably exactly what you want.
You may have already heard many good things about C#, but it turns out that VB is slightly more expressive and elegant than C# (I say this as someone that loves C#, and primarily programs using it along with F#).
Here is what VB offers:
* A syntax that almost looks like pseudo code
* A static type system with a kind of optional typing
* Type classes/traits (in the form of implicit conversions to an abstract class -- this is another kind of ad-hoc polymorphism, and something that not even F# can easily do)
* XML Literals
* Support for multicore programming in the form of syntactic sugar for writing asynchronous code in a familiar synchronous style (the `async` and `await` keywords)
* All of the .NET framework
* The Roslyn compiler infrastructure -- instead of the compiler being a black box, you can hook into the compiler pipeline
Maybe C# or the next release of TypeScript? You'd have asynchronous / await so async IO looks more like regular code than generators. Like Scala though there's still a lot of unnecessary syntax. AFAICT the answer to the parents question is 'No, but this would be good'
I think this is as close as it gets in terms of syntax.
Only on HN would such a discovery be made of such a language.
The others that mention: Go, Nim, Crystal - all have valid bases to say it is "similar", but Python is Python and none of those 3 quite read like this one.
Interesting language though and it seems the author is active (with an edit in June 2015).
No. I assume by 'simple and readable,' you mean that you want whitespace to be significant. Most languages don't do the Pythonesque 'look! executable pseudocode! (hope you like underscores though!)' thing.
Statically typed and simple generally means it's pretty hard to actually write reusable code and it's unlikely to "support multi-paradigm" very well. That said, "simple like Python" is an interesting phrase...
C is statically typed and (ostensibly) simple, and is the language used to write some of the most reused code there is. Do you mean something different by "reusable" from "easy to reuse?"
[+] [-] noblethrasher|10 years ago|reply
You may have already heard many good things about C#, but it turns out that VB is slightly more expressive and elegant than C# (I say this as someone that loves C#, and primarily programs using it along with F#).
Here is what VB offers:
* A syntax that almost looks like pseudo code
* A static type system with a kind of optional typing
* Object-oriented programming (classes, inheritance, ad-hoc polymorphism, etc.)
* Functional programming (closures, lambda expressions, parametric polymorphism (generics), etc.)
* Monad Comprehensions (LINQ)
* Type classes/traits (in the form of implicit conversions to an abstract class -- this is another kind of ad-hoc polymorphism, and something that not even F# can easily do)
* XML Literals
* Support for multicore programming in the form of syntactic sugar for writing asynchronous code in a familiar synchronous style (the `async` and `await` keywords)
* All of the .NET framework
* The Roslyn compiler infrastructure -- instead of the compiler being a black box, you can hook into the compiler pipeline
* It runs everywhere Mono runs.
[+] [-] runT1ME|10 years ago|reply
Here's an example of me using it to make multithreaded NIO calls with XMPP:
Each <- is actually an NIO callback that uses a threadpool (so you aren't spawning too many threads).But you don't get the nested craziness of ugly callbacks like you would in python or javascript (for instance).
Edit: If you really want whitespace, maybe F#?
http://www.tryfsharp.org/
[+] [-] nailer|10 years ago|reply
[+] [-] flippant|10 years ago|reply
[+] [-] _raul|10 years ago|reply
[1] http://nim-lang.org/ [2] http://crystal-lang.org/
[+] [-] vezzy-fnord|10 years ago|reply
[+] [-] woah|10 years ago|reply
[+] [-] bsummer4|10 years ago|reply
[+] [-] Immortalin|10 years ago|reply
func factorial(x int) (result int) { if x == 0 { result = 1; } else { result = x * factorial(x - 1); } return; }
[+] [-] CyberFonic|10 years ago|reply
[+] [-] phantom_oracle|10 years ago|reply
Only on HN would such a discovery be made of such a language.
The others that mention: Go, Nim, Crystal - all have valid bases to say it is "similar", but Python is Python and none of those 3 quite read like this one.
Interesting language though and it seems the author is active (with an edit in June 2015).
[+] [-] circlespainter|10 years ago|reply
[+] [-] setpatchaddress|10 years ago|reply
[+] [-] nailer|10 years ago|reply
[+] [-] aninteger|10 years ago|reply
[+] [-] dragonbonheur|10 years ago|reply
[+] [-] dllthomas|10 years ago|reply
[+] [-] nailer|10 years ago|reply
[+] [-] Jweb_Guru|10 years ago|reply
[+] [-] RogerL|10 years ago|reply
[+] [-] Rottweiler|10 years ago|reply
[+] [-] detrino|10 years ago|reply
[+] [-] zhte415|10 years ago|reply
[+] [-] divs1210|10 years ago|reply
[+] [-] informatimago|10 years ago|reply
[+] [-] angersock|10 years ago|reply
[+] [-] stkbach|10 years ago|reply