manual memory management

Paulo Pinto pjmlp at progtools.org
Wed Jan 9 12:33:09 PST 2013


On Wednesday, 9 January 2013 at 20:00:28 UTC, Dan wrote:
> On Tuesday, 8 January 2013 at 23:04:48 UTC, Paulo Pinto wrote:
>>
>> Besides Web applications, I also took part in projects that 
>> ported high
>> performance C++ daemons to Java.
>>
> Curious as to why? What was to be gained/overcome?

The architects decided it was cool to replace server code done in
a mixture of C++/CORBA/SNMP/Perl by simple Java based servers.

>
>> These were servers doing millions of data processing 
>> manipulations per
>> second of telecommunication data used in mobile networks.
>>
>
> Did it prove a worthwhile move?

It was a lengthy process with quite some victims along the way,
but it did improve the overall quality in the end.

- Way shorter build times;
- Better tooling infrastructure;
- Thanks to the JVM, the application monitoring improved
- Unit tests, code coverage and static analysis tools are much
better
- Better support of the operating systems in use without #ifdefs 
everywhere

To be honest, it would have been better to refactor the C++ code 
to improve the overall quality, but there was another issue 
related with the language change, as you can read in the next 
answer.

> Did the move relieve any issues with C++?

Yes, because in 300+ team projects not everyone is a C++ guru and 
you end up chasing language issues and pointer problems all the 
time. Not fun when you get a mobile operator complaining that 
their customers cannot do proper calls.

So moving to Java allowed to improve overall code quality at the 
time, although I must say it also allowed them to easily 
outsource parts of the applications to replaceable developers a 
few years later.

> Was GC an issue in the end?

In the beginning, yes. Most developers did not understand that in 
GC aware languages you need to change the way you code. So that 
was a learning process for many of them.

But the JVM has lots of nice monitoring tools to help you track 
down the issues, which allowed us to refactor the places that 
were giving problems.

Just some small parts were later also written in C, for 
deployment into network elements that were not capable to run a 
JVM with the desired hardware requirements.

So depending on where in the globe you're located, your phone 
calls data might be processed by those applications.

>
> Thanks,
> Dan




More information about the Digitalmars-d mailing list