Go for the JVM, written in Scala
code.google.com
code.google.com
It must be some kind of world record: I have gotten exactly two characters into this language and already I'm demoralized by its user experience. ;)
Here's an interesting article on shoe-horning structural typing into the JVM: http://www.draconianoverlord.com/2010/01/17/caller-side-stru...
And Go's memory usage is already magnitude orders better than Java.
GC is the only sticky factor here.
http://shootout.alioth.debian.org/u32/which-programming-lang...
Only 4 languages are faster than Java 6, two of which almost no-one uses. Java generally loses on memory use, but not on performance these days.
anyway,
Java also loses handily on startup times, and only wins in runtime speeds against statically typed languages compiling to native code that lack the same tier of backing. Notice that one of the languages that beats Java is C++, possibly the single ugliest language in actual use. Practically a worse case scenario for a language developer but I don't think there has ever been a point in history which it doesn't cream Java. Hobbyist languages, which I would classify most of the languages on that list as (well, the ones that are even commonly compiled to native code in the first place...) will rarely compete with mature enterprise backed languages, but when you weight by funding, compiled languages clean house. Continued development of systems such as LLVM which blur the distinction between the two will only serve to improve the situation.
aside: I find their Fortran statistic suspect as well. In my professional experience a well designed Fortran program will kick C's ass nearly every time. At least in scientific computing applications anyway.
Still waiting for that faster C++ fannkuch-redux program (and still waiting for a C fannkuch-redux program that uses multi core).
http://shootout.alioth.debian.org/u64q/benchmark.php?test=fa...
>>when you weight by funding<<
Please show total $$$ amounts spent on the development of each programming language over the last several decades - so we can weight by funding.
(Should funding for Plan 9 compilers be accounted as funding for Go? Should funding for GCC compilers be accounted as funding for GCCGO?)
>>I find their Fortran statistic suspect as well ... At least in scientific computing...<<
When you don't look, you won't find -
http://shootout.alioth.debian.org/u64q/performance.php?test=...
http://shootout.alioth.debian.org/u64q/performance.php?test=...
But, are you honestly suggesting that Java hasn't had dramatically more corporate funding than Go? Don't be absurd.
But you don't seem to have any information at all on $$$ amounts spent on the development of compiled languages (C, C++, Fortran, ...) compared to others (Java).
Obviously you don't know what would result "when you weight by funding".
In short, my suggestion is that shittons of money has been spent on Java while relatively little money has been spent on Go. Yet somehow they are currently pretty evenhanded. You haven't been able to provide any sources that suggest other than this rather sensible claim.
Funny how that works.
Here's what you claimed - "but when you weight by funding, compiled languages clean house".
Do you wish to abandon that claim?
C does not have a standard threading library, which is why there is no benchmark.
Plan 9 did not have a lot of funding. Java did.
Do you understand that's the default JVM memory allocation?
>>But these benchmarks are highly suspect...<<
But "highly suspect" is just name calling.
>>C does not have a standard threading library, which is why there is no benchmark.<<
No it is isn't, here's a C program that uses pthread for multi-core
http://shootout.alioth.debian.org/u64q/program.php?test=mand...
1) Where did anyone say pthreads was part of the C standards?
2) As I said, "C does not have a standard threading library" is not the reason why there's no C fannkuch-redux program that uses multi core.
The difference between these two statements, while perhaps subtle, is quite massive.
Also, this language shootout doesn't use optimized compilers for a bunch of languages like C#/F#. Also for C/C++, ICC is much faster than gcc. I would hazard a guess that there are many more than 4 language implementations that are much faster than java for real programs that allocate memory.
The fact that Go is on par with java after a couple years is impressive. It took java ~20 years to get to that point.
Scientists solving n-body problems are real users too.
>>doesn't use optimized compilers for ... C#/F#<<
What "optimized compiler" do you suggest for linux C#/F# ?
Meanwhile http://shootout.alioth.debian.org/demo/compare.php?lang=csc&...
>>many more than 4 language implementation<<
lemming wrote "Only 4 languages are faster", not only 4 language implementations are faster.
Languages aren't faster or slower, only implementations are. Look at the performance of the CINT implementation of C.
It's conceivable that on some future computing platform Ruby would be faster than C. (Eg. On a Symbolics LISP machine LISP is probably faster than C)
Programmers run their programs with implementations not with languages - so what makes you think programmers are confused about that? When they say C they probably just mean the usual well known C compilers.
Today, we can only use the programming language implementations that are available today.
... that's just ad hominem.
Allow me to additionally point out that this account you are posting with seems to be used solely for the purpose of trolling discussions about programming languages. Someone who only shows up for programming language discussions surely cannot be any stranger to a very mild "insult" or two.
http://shootout.alioth.debian.org/u64/benchmark.php?test=all...
Go is already faster than Java in half of the benchmarks, and uses dramatically less memory.
Of the benchmarks where Java wins, at least one (regexp-dna) is not related to the language at all and only to the regexp implementation, the one used there is a toy, Russ Cox already has written a much better high-performance regexp implementation based on re2 for Go which should replace the existing one very soon.
http://shootout.alioth.debian.org/u64q/benchmark.php?test=al...
Go already surpasses the JVM in many areas, for example it has magnitude orders lower memory usage, and even in performance it already beats it in quite a few benchmarks, see:
http://shootout.alioth.debian.org/u64/benchmark.php?test=all...
And this is without the simple optimizations that are coming soon to Go, and even after that Go still will be able to improve performance greatly without too much effort.
Just as x86 represents a machine which defines op codes only and leaves memory and process management to the operating system, the outcome of JVM's choices about taking responsibility for garbage collection, security, machine code generation is an interesting machine which can provide performance gains through time, just like Moore's law.
I don't work with the JVM at all, so all I know I learnt from Cliff's lecture. The slides are here http://www.azulsystems.com/blog/wp-content/uploads/2011/03/2... and video here: http://jeremymanson.blogspot.com/2011/04/cliff-click-in-jvm-...
2. If I were to aim for a self-hosted go on the JVM, this could easily be one of the steps. Compile a 'Go written in Go' with this, and you are done (well, you would probably want to tune the runtime afterwards to get decent performance, but those are 'merely' details)
I think this is the biggest reason. Go has been stabilizing over the past few months but it definitely still is in development. Gofix helps with this but only so far...
You need to bootstrap off CPython to compile the compiler, of course!