473,772 Members | 2,349 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Language change question

Hi,

I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.

Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate.

We are all professional programmers here, so learning java is not a
problem for those of us who dont know it. But the time to learn the
tools and environments may take a bit of time. But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?

I would be interested to hear any thoughts, stories of similar
experiences or pros and cons.

Thanks!
May 17 '06 #1
11 3324
[followups set to C++ newsgroup]

Bryan wrote:
I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.

Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate.


Polish your resume.

Someone has sold FDA compliance to your director, and with it comes the kind
of disruptions and "reorganization " that will increase your bug rate.

Your director could have sped up development time by ordering all
programmers to write unit tests as they write the tested code. These
systems have been shown to reliably speed up production, leveraging
existing code bases.

However, your IT director fell for the oldest trick in the book - promising
that Java development is faster than C++ "because you can't have dumb
memory errors". Ever since Java came out, we have seen companies follow
this exact path to ruin: "Rewrite it all in Java, and development will be
rapid and bug-free!"

Then the monkeys start flying out your butt.

--
Phlip
http://www.greencheese.us/ZeekLand <-- NOT a blog!!!
May 17 '06 #2
Bryan wrote:
I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.

Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate.

We are all professional programmers here, so learning java is not a
problem for those of us who dont know it. But the time to learn the
tools and environments may take a bit of time. But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?

I would be interested to hear any thoughts, stories of similar
experiences or pros and cons.


It will be a disaster. Your working, debugged code is going to have to
be both translated and extensively (especially from C++ to Java) redesigned.

The 3rd party programmers who will be doing the work will have never
seen your code before. They'll know nothing about the design of it, why
the code is written the way it is, and will not know that the ugly
detritus in the code are undocumented fixes for specific problems.

Chances are good that if it took your company 6 years to get to where it
is now, it'll take the 3rd party 6 years to duplicate it and bring it up
to the same level of capability and bug-free-ness.

In the meantime, you'll fall 6 years behind the competition.

Essentially, you're stuck with using C++ for your existing applications.
Switching to a significantly different language only pays off for new
code, or if you're forced to by things like severe unfixable compiler
problems.

The number one, proven, way to improve productivity with an existing
code base is to improve the test suite. A thorough test suite means you
can change code without fear of breaking things. The better the test
suite, the less fear. The less fear, the faster development goes. Best
of all, test suites can be improved incrementally without interfering
with your release schedule.

I suggest starting with a good C++ code coverage analyzer, and work from
there.

-Walter Bright
www.digitalmars.com C, C++, D programming language compilers
May 17 '06 #3
In article <9%Iag.18202$Lm 5.16023
@newssvr12.news .prodigy.com>, sp**@nospam.com says...
Hi,

I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.

Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate.
You haven't said a lot about what your code really does,
and that makes it impossible to say much with any
certainty.

That said, for this to accomplish anything positive at
reasonable cost depends upon your doing things that are
substantially better supported by Java, Hibernate and
Spring than they are by C++ and whatever libraries and
such you're using with it right now. Since we don't know
what you're doing or what libraries you're using, it's
very hard to say that couldn't possibly be the case.
Assuming you've been doing much that's worthwhile for
those six years, however, my guess is that it'll take at
least three or four years with Java just to get back to
where you are right now...
We are all professional programmers here, so learning java is not a
problem for those of us who dont know it. But the time to learn the
tools and environments may take a bit of time. But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?


Learning the language and environment is more or less
trivial. The real question is how much you gain -- and
for this to be a positive thing at all, you need to gain
a _lot_. In fact, you need to gain so much that my guess
about how long it'll take to get back to parity is off by
an order of magnitude or so. Personaly, I find that hard
to imagine. Unless you (collectively) have spent most of
the last six years sitting around and twiddling your
thumbs, re-creating what you've done in less than (say) a
year sounds awfully far-fetched to me. People can argue
back and forth about the benefits of this feature or that
in one language or the other, but few even go so far as
to claim that there might be such a large benefit to one
or the other (not to mention actually showing it).

The only possibility I can imagine that would allow this
would be if your C++ was sufficiently Java-like that you
could do a mostly-automated translation from one to the
other. The problem with that is that it doesn't support
any sort of re-architecture and such, so there's almost
no chance you'd gain anything from it.

I'd view this proposal with _extreme_ skepticism.

--
Later,
Jerry.

The universe is a figment of its own imagination.
May 17 '06 #4
Bryan wrote:

I work for a company that is heading towards an FDA approved
development process. We have always used C++ in a windows
environment, and we have more than 6 years of code, applications
and libraries developed.

Our IT director has made the decision that to speed up development
times we need to re-architect all of our existing code, and has
hired a 3rd party (offshore) company to do this for us. They have
recommended that we change from C++ to java, spring and hibernate.

We are all professional programmers here, so learning java is not
a problem for those of us who dont know it. But the time to learn
the tools and environments may take a bit of time. But the real
question is what do we gain from moving to java? Or conversely
what do we lose by moving away from C++?

I would be interested to hear any thoughts, stories of similar
experiences or pros and cons.


Please tell us the name of your firm. It is time to sell its stock
short, assuming that these products are a significant part of its
output. We also want to know the name of the offshore outfit,
which is going to make a short term profit. It obviously has your
management under good control, and will milk it for all it can
get. Publishing the name of your "IT director" would also be
helpful, in the quarantine sense.

A useful move for you might be to collect your cohorts and leave,
forming a firm whose purpose is purely to service your old firms
products. Take all the source you can legitimately lay your hands
on. If you can't access enough legally, then this won't work. But
you will be needing new jobs regardless. Run, Spot. See Spot run.

--
"If you want to post a followup via groups.google.c om, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson
More details at: <http://cfaj.freeshell. org/google/>
Also see <http://www.safalra.com/special/googlegroupsrep ly/>
May 17 '06 #5
Hello Bryan,

On Wed, 17 May 2006 17:24:21 UTC, Bryan <sp**@nospam.co m> wrote:
Hi,

I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.
An FDA process is fine and shouldn't be a problem with C++. I'll also
make a guess that with six years of development that most of the code
performs well and that your team knows the implications of their
decisions and limitations of their design.
Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate.
You've not mentioned why your IT director made this decision or if
you feel that it is a valid course of action to improving the
development timeline.

I get very worried, and verbal, whenever the higher powers decide
that they know far more about how the business should operate and
start making sweeping changes. The change from C++ to Java is more
than just a language change and will affect more than just the way
the code is written. Reliability and dependability are much
different in Java than C++. I'm presuming that your director thinks
that the maintenance will improve along with the development.

Just switching languages by itself will never, ever be a quick path
to an improved process. I doubt that Java offers any real advantages
over C++, but you've not said anything about the tools or products
you develop. Stating that Java development is faster than C++
development just shows the lack of intelligence of the person who
said it.

Any third party brought in to help you has exactly one goal in mind
-- to bill you now and try to continue to bill you later. All
contractors have this basic mentality as it is part of why they
exist. I can't comment on their conclusion, but it seems rather
suspect. Cetainly if your development team doesn't agree with the
"conclusion " perhaps there is far more at stake than just who will
be performing some of the work and what it should accomplish.

I've seen such battles before and it helps to know why the "powers
that be" made their decision and why the current process isn't
meeting the desired goals. Sometimes they make the correct decisions
and other times they don't. I've never seen a "golden bullet" scheme
work yet. There must be an internal plan for it to really achieve
the goals and success. Furthermore, you must allocate an appropriate
transition period that accounts for the risk involved to your
products. A simple rewrite, even in the same language, is fraught
with many problems.
We are all professional programmers here, so learning java is not a
problem for those of us who dont know it. But the time to learn the
tools and environments may take a bit of time. But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?
As professional programmers, I'd hope that you could make suggestions
with your leadership and help decide how best to meet their expectations
or at least change some of their expectations.

Since you have no idea how Java could impact your products as they stand
today, any decision to trust "the recomendation" is likely to lead your
company down an unpredictable and possibly unprofitable path. Plan to
learn the implications of other tools and see if Java meets your needs
and goals.

C++ under Windows is basically a standard, predictable language on top
of a reasonably trustworthy and reliable operating system.

Java must have a run-time package on top of any operating system that
runs it and is limited by certain constraints that operating system
has. Java code may be easier to port to other Java systems, but
FDA certification would still dictate that the entire platform be
recertified.

Any change in language may cost you the familiarity and trust that
you currently have in your tools. You will also make mistakes that
perhaps you wouldn't have made with the current system due to an
unfamiliarity while determining how best to use your new developemnt
tools.

Rearchitecting parts of, or the entire, product within the same
language generally has a more predictable certainty of achieving
the desired goals. Again, we cannot judge the impact to development
speed or whatever the problem is that your team is not achieving
from what was mentioned. Perhaps there are simply better ways to
go about developing your product. For instance, a heavily hard-coded
product might benefit from reusable tools that help developers create
solutions faster. Again, I have no idea if your product already has
something like this.

What do you and your team mates feel are the weeknesses in your
process and how best to remedy them?
I would be interested to hear any thoughts, stories of similar
experiences or pros and cons.
I've worked with all kinds of products in my 30 years of development.
The path you seem headed down is one of the most unreliable promises
toward improved development performance. However, I've seen at least
two management groups (both in the financial industry) that repeated
this mistake at least four times in a row. I was just a spectator
hearing about their woes, but I knew better than to accept
responsibility for fixing their unachievable expectations.

My recommendation would be to talk with your development team and
leadership to decide what expectations are not being met and then
figure out what can be improved and how. An infinite amount of
cheap, outsourced labor, will not simply improve your development
timeline without affecting other factors... like meeting FDA
approvals for your products.

I've worked on FDA and FAA approved devices, both of which have
hefty requirements and goals. The development cost is usually
a minor portion of the costs involved with gaining the approval
for new or revised products.

I'd also agree with some of the other responses that you might
want to keep your resume updated.
Thanks!


David
May 17 '06 #6
Bryan wrote:
Hi,

I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.

Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate. [snip] I would be interested to hear any thoughts, stories of similar
experiences or pros and cons.


I went the other way. I started off developing a client in C#/.NET, and
my server in Java. It was a reasonably high-volume system that had to
process pretty much the entire Australian Stock Exchange activity for
stocks and options. Performance was woeful, and I ended up redeveloping
both the client and the server programs in C++. It was a great. On the
server, the CPU was pretty much idling all day, and it was only a DL380
that had to process everything twice (once for live data, once for 20
minuted delayed). The client? Ha. The client no longer grabbed up to
70mb of RAM simply because the user moved the mouse around the screen.

A friend of mine consults for another company that did a huge
redevelopment in WebSphere and Java. Again, woeful. They figured out
that they need something like five times the processing power to get the
same performance out a Java implementation as a native one. Oh, and
then, part way through the project, Sun went and end-of-life'd all of
their hardware.

Phil.
May 18 '06 #7
Bryan wrote:
Hi,

I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.

Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate.

We are all professional programmers here, so learning java is not a
problem for those of us who dont know it. But the time to learn the
tools and environments may take a bit of time. But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?

I would be interested to hear any thoughts, stories of similar
experiences or pros and cons.

Thanks!


Why on earth is a _director_ making a decision like that? Approving the
decision, yes, because only a director has the authority to approve a
plan that will set the business back to the stone age.

OK, maybe this is America, where it seems everyone above the tea lady's
biscuit fetcher's assistant's gopher's assistant is some kind of
director, vice president or some other grand sounding title; here in the
UK a director is at or slightly below board level, and to be below board
level there has to be several layers of management: plebs, team leaders,
lower management, middle management, senior management - this last
category or higher is where you'd expect to find someone with "director"
in their job title. Directors (even the IT director, who is on the
board to represent the IT dept) make business decisions, not technical
decisions, and the decision to make a language switch is most definitely
a technical one that should be firmly outside the remit of a director.

So I agree with those who suggest you polish up your CV. This business
is going to go seriously down the pan; at the end of it there's going to
be a seriously retarded product that nobody will want (I've been in a
company that decided to port its main product from VMS/Pascal to C/Unix
and the finished product was years behind the main one that was still
being developed. It wasn't helped though by the use of a Pascal to C
convertor that knew nothing of Pascal, C, VMS or Unix and output C that
resembled the original Pascal at best in the same way a pavement pizza
resembles yesterday's evening meal - bits of it were recognisable
although horribly munged, and there were diced carrots all over the
place with no sign of carrot in the original). It'd be nice if you
shared the company name so that those with stock can do something useful
with the cash instead of watching it plummet in value.
May 18 '06 #8
Bryan wrote:

We are all professional programmers here, so learning java is not a
problem for those of us who dont know it. But the time to learn the
tools and environments may take a bit of time. But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?


Hmm, how would you estimate time necessary to accustom
Java in your company?

I've read about time necessary to enter new programming language may
estimate in >=6 months. The cost may be very hight.

I think you should try to organize your current development path in
a better way first.

Cheers
--
Mateusz Łoskot
http://mateusz.loskot.net
May 18 '06 #9
Bryan wrote:
Hi,

I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.

Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate.

We are all professional programmers here, so learning java is not a
problem for those of us who dont know it. But the time to learn the
tools and environments may take a bit of time. But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?

I would be interested to hear any thoughts, stories of similar
experiences or pros and cons.

Thanks!


If the 3rd party offshore, which is of course in India, is going to do
the work, then there would seem to be nothing to do except update
your resume. The next step would be to trim local staff down.

Of course, what is more likely is that, despite what you have written,
the 3rd party is not going to do the work, but has analyzed your code
and come up with this solution, and won't be around or responsible for
the result.

The likely result is that none of this will occur. Management will tire
of the project, and layoffs will result on declining sales.

Why any of this matters to you is the question. If you own stock, sell
it. If you know Java, you can lead the project. If you don't know Java,
the company is about to pay you to learn it.

Some of the best jobs I ever had were companies that were failing. The
pay is good until the end, and having your old company empty with a
for sale sign on the door looks great on your resume. Nobody faults
you for either quiting or being fired.
May 18 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
359
by: OM | last post by:
Hi, I have a simple Access application, for recording fuel use, and generating a few reports. It is necessary that the forms (such as the menu, and data entry forms) be in Thai as well as English. There are 4 ways that I have imagined how to do this, but I'm not sure which are practical, or easiest etc. 1. I was considering just adding the Tai to the existing labels and
2
2243
by: Thomas G. Marshall | last post by:
Arthur J. O'Dwyer <ajo@nospam.andrew.cmu.edu> coughed up the following: > On Thu, 1 Jul 2004, Thomas G. Marshall wrote: >> >> Aside: I've looked repeatedly in google and for some reason cannot >> find what is considered to be the latest ansi/iso C spec. I cannot >> even find C99 in its final draft. Where in ansi.org or the like do >> I find it? > > The official C99 specification is copyright ISO and distributed by > various national...
114
3701
by: cfmortgagepro | last post by:
Hi, I know that I'm an extreme newb by asking this overly beaten question, but I am leaning toward C#, becuase the perception is that it is better to learn than VB.Net. I guess it makes you cooler.:-) Anyhow, I am a novice programmer, and I will remain one as well...I have no plans to make programming my life ambition, but I think that it would be fun to make my databases do some cool tricks and maybe write a simplistic client to...
3
2178
by: Gidi | last post by:
Hi, I've a form with few TextBoxes and in all i'm writing in language A except one which i want to write in language B (both A and B are installed on my PC). how can I make the specific textBox to write in language B when it has the focus and get back to language A when it loses it. I tried to send Alt+Shift and it's working when i move from one TextBox to the other, but then when i leave the form (OnClosing i.e.) i'm stuck with...
19
1434
by: Bryan | last post by:
Hi, I work for a company that is heading towards an FDA approved development process. We have always used C++ in a windows environment, and we have more than 6 years of code, applications and libraries developed. Our IT director has made the decision that to speed up development times we need to re-architect all of our existing code, and has hired a 3rd party (offshore) company to do this for us. They have recommended that we change...
37
4203
by: Jan Wagner | last post by:
Hi, can't figure this one out, what's the CSS way to specify the language? In HTML it would be simply an lang="xx" attribute, or XHTML xml:lang="xx", but, how about in CSS? This would be required for a screen reader (text to speech) for accessibility, to help the reader software use the correct presentation method (e.g. correct language module).
669
26212
by: Xah Lee | last post by:
in March, i posted a essay “What is Expressiveness in a Computer Language”, archived at: http://xahlee.org/perl-python/what_is_expresiveness.html I was informed then that there is a academic paper written on this subject. On the Expressive Power of Programming Languages, by Matthias Felleisen, 1990. http://www.ccs.neu.edu/home/cobbe/pl-seminar-jr/notes/2003-sep-26/expressive-slides.pdf
17
1857
by: sloan | last post by:
I found these (2 links below). Does anyone know of any (neutral) reference sites for this kind of information? http://www.itjungle.com/tug/tug121406-story03.html Microsoft's Visual Basic 6 and Visual Basic.NET language is taking a serious beating in the development cubicles of the United States and Canada. http://www.eweek.com/article2/0,1895,2065392,00.asp Study: Developer Use of Visual Basic Plummets
84
8595
by: aarklon | last post by:
Hi all, I found an interesting article here:- http://en.wikipedia.org/wiki/Criticism_of_the_C_programming_language well what do you guys think of this article....??? Is it constructive criticism that needs to be appreciated always...???
0
9621
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, well explore What is ONU, What Is Router, ONU & Routers main usage, and What is the difference between ONU and Router. Lets take a closer look ! Part I. Meaning of...
0
9454
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10264
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10039
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
1
7461
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupr who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6716
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5484
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4009
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2851
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.