473,788 Members | 2,924 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
19 1436
[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:
But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?


Well, Java might keep you awake better but it can also kill you in
extremely large doses.

May 17 '06 #3
Noah Roberts wrote:
Well, Java might keep you awake better but it can also kill you in
extremely large doses.


The lethal dose is only ~50 cups.

--
Phlip
http://www.greencheese.us/ZeekLand <-- NOT a blog!!!
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.


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 #5
(Sorry for my bad english)

I used to work for pharmaceutical companies. The standards for GaMP4
are set so high that doing ALL you development based in these
recomendations is almost impossible, or just plain unaffordable. When I
read "FDA approved development process" I picture unethical consultants
thinking "good, we can squeeze every penny from these poor bastards".

You should make some risk analysis (I like to use FMEA) and concentrate
your FDA-approval eforts in the specific modules that may endanger
public health. It will save some serious money.

Java syntax is very close to C++, but java has a very a large (and
somewhat confuse) codebase of best-pratice driven frameworks to deal
with common computational problems. I would keep the original language
unless I was changing paradigms, like going from client/server to 3tier
model.

--
Paulo

May 17 '06 #6
pa************@ gmail.com wrote:
Java syntax is very close to C++, but java has a very a large (and
somewhat confuse) codebase of best-pratice driven frameworks to deal
with common computational problems.


Next: I thought the Java license disclaimed use in life-critical situations.

I'm sure that never stopped anybody...

--
Phlip
http://www.greencheese.us/ZeekLand <-- NOT a blog!!!
May 17 '06 #7
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 #8
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 #9
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 #10

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

Similar topics

28
2511
by: Timothy Madden | last post by:
Hello I've read here that only C language has a standard 64bit integer. Can you please tell me what are the reasons for this ? What is special about C language ? Can you please show me some references to this integer type ? When was it introduced ? Thank you
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
2180
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...
11
3326
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
26224
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
1858
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
8598
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
9498
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
10364
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
10110
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,...
0
8993
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development projectplanning, coding, testing, and deploymentwithout human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6750
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
5398
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5536
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4069
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
2894
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.