| 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 * 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. |