• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Is it worth to learn C++ if you use Java?

 
Ranch Hand
Posts: 101
Netbeans IDE Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It is not enough to learn one language if that programming language supports all you need to do. I mean, if you are focused in web developement, for instance, when are you going to need C++?
 
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Can you please give us an idea. I have the same question
 
Ranch Hand
Posts: 477
Eclipse IDE Tomcat Server Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I think C++,gives you access to memory level operations using pointers etc.Which are handled inherently by the JVM in java.
 
Marshal
Posts: 79239
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If you go back a few years on this website, there was a lot of discussion about whether Java™ was easy enough to learn programming with, or too easy. I see a similar question came up recently: try here.
There are problems migrating between the two languages; there are differences in meaning hidden behind similar syntax.
Many people think Java™ is too easy, not exposing people to enough difficulty.

You can have all sorts of long discussions about that sort of thing.
 
Sheriff
Posts: 22784
131
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
When you need to use JNI, you will need to use a lower-level language. C and C++ are often used for this, as 1) there are plenty of good (and free) compilers available, and 2) most operating systems and libraries have support for using C / C++ for accessing them directly.
 
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Joey Sanchez wrote:It is not enough to learn one language if that programming language supports all you need to do. I mean, if you are focused in web developement, for instance, when are you going to need C++?



I'd start by saying that no single programming language supports all we need to do for app development (in particular for web development.) Then, I'd add the following:

- "The act of trying to learn a new language will make you a better developer." ---- StackOverflow Podcast, episode #42



The path to a successful career in software, or in anything for that matter, is to always, always, always differentiate between your job and your career. Obviously, time constrains will dictate how much leeway one can have in learning stuff that is not directly applicable to one's current job tasks. However, it is important to be acquainted to the intricacies of both systems-level and application-level developer.

Now, this is just my opinion, and as objective as I think it is, it cannot escape the subjectivity of my own pre-conceptions. Ergo, please take this with a grain of salt.

Plus, you never know if web development is all you are going to do for a living. If we limits our knowledge to application development (or systems-level development for those sitting on the other side of that fence), how can we make informed decisions about our career paths.

Putting that aside, just for the sake of constant improvement in one's programming skills, learning a new language (in particular one very different from our bread and butter) is a must that should be done every once in a while. We are not talking about excellency or proficiency (that only comes from doing actual work.) A simple acquaintance suffices.

And IMO, knowing the basics of C or C++ sufficiently to write, compile and debug a not-too trivial toy program (even with the help of google), that should be a desirable trait.
 
Sheriff
Posts: 67747
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
In my opinion, it's always useful to learn a new language.
 
Ranch Hand
Posts: 90
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
C++ is a good choice for writing high performance servers. Or software where performance is a big issue. You will have to deal with platform differences however which will be different from Java.

C++ is also a good choice for writing native programs for specific platforms. Eg a spreadsheet or word processor would be written in C++ (or C). Software houses writing platform specific software very frequently use C++. With C++ you can compile everything into a single executable and that is all you need to run the application.

Of course, if you need to write web applications then C++ is not so suitable.
 
Ranch Hand
Posts: 1246
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If you have time (rarely i know), love programming and curious why not? It would look good on your resume. Is it enough t learn one language that supports all? There is no such thing. Look at web development for example, C# , Java, Ruby.. You get the idea. They all have their advantages and weakness. Someday you might ended up in a game company working on C++ but then again they might have a web position that you could go to. So having more options is a good thing.
 
Ranch Hand
Posts: 92
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I think the dicussion is about whether it would be necessary to learn another lanugauge, if the existing one supports everything you need to do. Well, my answer would be "Yes, you will still need to learn!". Consider Mr.X who is great at assembly for a h/w platform that has transcended a time of 4 decades. He has done such a great deal of programming in Assembly, that pretty much anything the platform offers, he can do it, in his program. He can even emulate and simulate virtual env. of other systems. But still he will have to grow up, learn a new set of abstractions, sometimes simply to improve productivity, sometiimes simply to improve clarity of code, sometimes to build a feature in a more maintainable and flexible way. More often than not, it is not ability but usability that determines which langauge-tech environment givens quicer ROI/TTM that really matter. Yeah, with web-deveploment you may be fooled into believing Java is/will be sufficient...but truth shows otherwise. Why else do we have groovy-grails, ruby-rails and huge number of scripted platforms today?
 
author
Posts: 36
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi. Elsewhere I have stated that learning C#, Java, C++ etc. are like learning Spanish, Latin, Italian, and French... once you understand one, the rest of the languages in the same family are a lot easier.

But it is also true, as someone stated, that similar languages can be tricky because although there are just a few differences here and there, those differences are aboslutely critical and losing sight of them will cause you headaches.

So as you go from one C-family lang to another, keep those vital differences in mind.

One huge thing to keep in mind about C++ vs. Java... Java is much more restrictive in its use of objects. If I'm not mistaken, objects in Java are only created by using "new", and you never have an object variable as such -- only references to objects.

C++ is far more flexible and gives you far more choices. One really nice advantage is that you can treat classes and objects not just as reference types, but as user-defined primitives. That is, I can define a "Fraction" data type, for example, in this case making a equal one half and b equal one third:

Fraction a(1, 2), b(1, 3);

Now I can define operator functions that work on these variables just as I would with primitive integers or floating point:

Fraction c = a + b;

Now I can print c, and the answer is what I'd like to see...

cout << c; // This statement will print "5/6" as expected.

Maybe you don't need this ability to define new data types, but it is one of the exceptional features of C++. But in going back to Java, you have to keep in mind that nothing like this is possible, you treat all "object variables" as references to objects only.

Hope this helps,

Brian Overland
 
reply
    Bookmark Topic Watch Topic
  • New Topic