7

I have detailed information on the latest developments in functional programming.

I think haskell is quite an advanced and high level programming language. With coq and agda this gets even more complex and advanced.

With "advanced" and "high level" I mean many distinct features, that can only be found in the respective languages.

Like for haskell

  • everything is pure and lazy per default
  • support for advanced concepts like GADTs, Monads, Functors, etc.

For coq / agda

  • a dependent type system

And both haskell and coq are used in academics, a good sign that they are 'state-of-the art'.

However I have no clue what comparable developments in object oriented programming are.

What are some of the latest developments in object oriented programming?

What would be a state-of-the-art OOP language counterpart to haskell / coq?

(I even search for advanced programming language on google, but I found mostly haskell related information. The only language I could think of is D 2.0. Scala is for me mainly a java compatible version of haskell.)

mrsteve
  • 450

4 Answers4

5

Subtyping (i.e., any static object-oriented type system) is so much more complex than any "flat" type system typical for the functional languages. It is nearly impossible to formalise it properly. For this reason, no surprise that we have not heard yet about, say, dependent object-oriented type systems.

Probably, a single early example of such an attempt would be this paper.

SK-logic
  • 8,517
0

I would say C# is probably a good language to loo at - it is a high level, general-purpose, managed, garbage-collected and object-oriented programming language.

The current version has generics, lambda expressions, built in parallelism constructs and more.

The next version is supposed to add asynchronous constructs.

Oded
  • 53,734
0

The concept of a "state-of-the-art" language is hard to define. One can consider only the syntax, the toolchain (i.e c++ is not recent, but has powerful compilers), the framework (c# and java are popular because of it).

I don't know coq, but it does not look like it is a general purpose language. The specifity of Haskell is its purity. So my answer is: smalltalk, a pure oop language.

http://en.wikipedia.org/wiki/Smalltalk

Simon Bergot
  • 8,020
0

I find it funny most people are answering you back with programming languages :-) In the world of OO, most advances in the "state-of-the-art" are published at OOPSLA and ECOOP conferences.

You have to understand that in terms of "formal proof" (as with Coq/Adga/etc...), there are fundamental problems yet to be solved in the OO formulation of programs. Subtyping (which SK-logic mentioned), overriding, etc, they are all far from being "tractable" in terms of providing suitable structures than can then be manipulated and reasoned upon. Even so, you can find projects such as ESC-Java or Spec# that are paving the road for that type of research.

In terms of "what's new" in this areas, there are several "trends" that you may find:

  1. DSL's and DSL construction
  2. Model-Driven OO systems
  3. Refactoring
  4. Increasing the strength of type-systems (see Scala)
  5. Incorporating functional aspects into OO (again, Scala and C#)
  6. Tackling the parallelism problems
  7. Meta-Programming and Reflection
  8. ...