On Sunday, 14 December 2014 at 14:09:57 UTC, Joakim wrote:
On Sunday, 14 December 2014 at 11:53:56 UTC, Paulo Pinto wrote:
I have seen this in every project where we replaced legacy C++
systems by new ones implemented in .NET and Java.
First people will complain that the performance isn't
comparable, they are bloated, and so on.
The project goes forward, as it was a management decision.
Then it goes live, some hiccups that make existing C++
developers rejoice that they were right after all
Lots of bug reports get generated and application performance
gets fine-tuned.
A few months later systems are running, end users barely see
any difference and a few C++ developers saying that the new
systems aren't that bad after all.
I don't doubt that this has been your experience on enterprise
projects with a known and stable userbase, but you can't tell
me you were able to support the same amount of users per server
using java/.net as C++. Paying for more servers but less for
java/.net development may be a worthwhile tradeoff for such
stable enterprise rollouts, but any time you have to scale, I
doubt java/.net can keep up.
As always, different tools for different uses. Hopefully, D
can one day be polished and mainstream enough for the
enterprise use case and it will be efficient enough to be
deployed at scale too. :)
You mean scale like Twitter and LinkedIn?
On my case, two examples of such project was a software stack for
network monitoring, data aggregation and monitoring for mobile
networks all the way down to network elements.
The old system was a mix of Perl, C++/CORBA and Motif. The new
system is all Java, with small C stack for resource constrained
elements.
Another example was replacing C++ applications in medicine image
analysis with 90% .NET stack and a mix of C++/Assembly for image
filters and driver P/Invoke glue.
The problem is that the average coders don't learn to optimize
code and in the end most business will just shell out money for
more hardware than software development time.
We had high performance systems running with a stable GC cycles,
after doing the required optimization work. That is why tools
like VisualVM and Mission Control exist.
--
Paulo