views:

139

answers:

3

I have a large program written with my own patched version of the GNU Eiffel (SmallEiffel) compiler. While i love the language i'm running into the problem that the compiler is O(n^2) or worse on the compiled system size. So i have to move soon.

ISE Eiffel the only alive Eiffel compiler is not an option for various reasons. Mostly because the compiled code runs way to slow.

I'm looking for a language which is:

  1. imperative and OO

  2. has generics/templates

  3. compiles to native code and does not require .NET/Java

  4. statically typed (which means fast)

  5. garbage collected

  6. cross platform

  7. not as ugly and braindead as C++

I couldn't come up with anything else then D but this looks a little bit to low level and non stable. Is there really none which satisfies this seven points?

+4  A: 

OCaml, perhaps?

Brian
A surprising answer, but then OCaml is a surprisingly imperative functional language. Worth checking out.
Norman Ramsey
+1  A: 

You could write in Java and compile to native-ish code with GCJ (it will be native code, but you'll need to link against a fair portion of code that makes up all the things Java needs at run-time. Your users will not need to install a JRE.)

Conrad Meyer
A: 

Googling 'object oriented native code compiler' brings up Objective Caml before Eiffel.

If you're willing to take your chances on a research compiler, check out the Diesel language and the native-code Vortex compiler (written for Diesel in Diesel). It is a research project, but it is stable, and Craig Chambers is one of the best people in the business.

Norman Ramsey
Diesel looks nice. Thanks for the pointer.
Lothar