Re:I guess it depends on where you came from
on
Java Is So 90s
·
· Score: 1
Language selection as I see it:
If I need speed and efficient memory usage -> C++
If I want reliability, web stuff and great refactoring tools -> Java
If I want to build an app as fast as possible -> Python with wxPython for GUI
At my work I mostly deal with large amounts of data so main solver engines are all in C++, Web based user interface code in done in Java. Some internal development utilities are done in Python.
Maybe Java will once be fast enough to catch up to C++ but not having stack object allocation or the option to manage your object lifetimes should always be a large barrier to performance especially as memory latency gets more and more important.
Then again we may all switch to a new language that has the constructs required to distribute the work from a for-each loop over all the 8 cores from your next generation CPU.
Use SWIG to build Java or Python wrappers around your C++ code!
If you write an application that needs persistance for it's data model then an Object Database is the way to go.
You get to keep all logic in a central domain model, great performance and all the features you need like object level locking, transactions etc.
I like the fact that Qt is not so "up to date" with the C++ as Boost.
When you have to write cross platform applications using the compilers on HP-UX, aCC, SUN & VC then it will be years before all the template usage within Boost will work.
I wish that the C++ standard was defined in the form of a series of unit tests. That way one could just tell a compiler vendor to fix their compiler when if fails a test.
These tests should also contain code sections that should not compile according to the standard.
If I need speed and efficient memory usage -> C++
If I want reliability, web stuff and great refactoring tools -> Java
If I want to build an app as fast as possible -> Python with wxPython for GUI
At my work I mostly deal with large amounts of data so main solver engines are all in C++, Web based user interface code in done in Java. Some internal development utilities are done in Python.
Maybe Java will once be fast enough to catch up to C++ but not having stack object allocation or the option to manage your object lifetimes should always be a large barrier to performance especially as memory latency gets more and more important.
Then again we may all switch to a new language that has the constructs required to distribute the work from a for-each loop over all the 8 cores from your next generation CPU. Use SWIG to build Java or Python wrappers around your C++ code!
If you write an application that needs persistance for it's data model then an Object Database is the way to go. You get to keep all logic in a central domain model, great performance and all the features you need like object level locking, transactions etc.
When you have to write cross platform applications using the compilers on HP-UX, aCC, SUN & VC then it will be years before all the template usage within Boost will work.
I wish that the C++ standard was defined in the form of a series of unit tests. That way one could just tell a compiler vendor to fix their compiler when if fails a test.
These tests should also contain code sections that should not compile according to the standard.