PDA

View Full Version : forget C++ and learn Java



Brain Cell
03-09-2005, 05:20 PM
Sorry if this has been discussed before , but the marvelous "search" invention couldn't find any topics related.

I met my C++ teacher in a computer shop today (by coincidence) and we chatted for a while about programming in general , programming jobs and mainstream programming languages.

I told him that i like C\C++ and i would love to get a C\C++ programming job. He told me that lots of students who got hired by companies didn't care much about C++. He suggested leaving C++ and getting into something called JDeveloper and Java because thats what companies mostly want (as he claim. I don't know what the hell is JDeveloper) , and C++ will become obsolete sometime in the near future.

He mainly focused on these points when i tried to insist that C++ is still around :

- C++ is turning into an academic language. (helps beginners unerstand the OOP concepts)

- Companies choose Java (or JDeveloper) over C++ because you can make programs in much less time.

- C++ needs lots of coding to mak applications with a GUI whereas Java (or JDeveloper) don't. (or atleast much less coding)

- Companies who need C++ programmers are either "old" companies (like prefer using console programs) or companies that make specialized software, "because C++ can deal with the system better internally" as he put it.


ok this actually scares me. I'm thinking "he doesn't know whats he's talking about" but it sounds kinda serious. What do you guys think?

i'm totally lost. I hate having these arguments with my teacher(s) :mad:

7smurfs
03-09-2005, 05:23 PM
I know somebody who just graduated from some Canadian university where they only really learned to use Java. I don't know if he was a CS student or not, but that's all I know.

Personally once I finish my C# database program I'm going to be switching to Java.

axon
03-09-2005, 05:33 PM
man, I thought this topic has been covered enough times already. It is not the syntax that you know, but whether or not you know COMPUTER SCIENCE. If you have a good computer science background and know at least one high level language, learning syntax for another language is a piece of cake.

Until pretty recently all I knew was C++, then I was thrown into a pretty advanced class were I had to use Java - it took me all of two weeks to get a hang of the syntax and to complete complicated programs.

So please, don't waste you energy on this discussion - as once again it is pointless.

prog-bman
03-09-2005, 05:37 PM
1. Listening to a teacher about C++ is ussually the worst idea in the world. It would be like a blind man telling you about what he saw.

2. C++ will be around for a long time.

jverkoey
03-09-2005, 05:38 PM
Mhmm, another typical case of a Java junkified teacher.

axon
03-09-2005, 05:38 PM
>>C++ is turning into an academic language. (helps beginners unerstand the OOP concepts)<<

Wrong; Java is the current trend in academia.

>>Companies choose Java (or JDeveloper) over C++ because you can make programs in much less time. <<

You can't generalize like that; most companies do not specialize in a single language, but rather chose the best one depending on project's requirements.

>> C++ needs lots of coding to mak applications with a GUI whereas Java (or JDeveloper) don't. (or atleast much less coding)<<

That is quite true. You could build Java Swing GUIs in a rather rapid pace - this allows great options for rapid prototyping.

>>Companies who need C++ programmers are either "old" companies (like prefer using console programs) or companies that make specialized software, "because C++ can deal with the system better internally" as he put it. <<

look at number one.


If these are things he really said; well then he isn't much of a professor. Is his name, by any chance, Mister C? :p

prog-bman
03-09-2005, 05:45 PM
So how is everyone doing today?
:)

Brain Cell
03-09-2005, 05:47 PM
hehe , chill axon . I'm just feeling skeptikal about this and wanted to see your opinions. :)

prog-bman, DO NOT HI-JACK MY THREAD :mad:











please? :D

prog-bman
03-09-2005, 05:48 PM
Too late the thread hijacking has begun now everyone will respond to my how there day is going.

jverkoey
03-09-2005, 05:57 PM
My day's goin' good, just spent my prize money from the last competition and am quite happy with what I got :D *caresses his DS, pocket PC, half gig sd ram, GT4, and mario 64 DS*

And btw, chemistry's still a bit*h >.< yuck

axon
03-09-2005, 05:57 PM
hehe , chill axon

I am "chilled"; it's just threads like that seem quite pointless to me.


So how is everyone doing today?
:)

I'm quite good; tired, but good. I had two and a half weeks of pure hell in school, and to top it off I was sick over the weekend and am just getting over it. Other then that, life is fscking peachy!

Brain Cell
03-09-2005, 06:01 PM
lol , ok nevermind hi-jack it :p

this doesn't mean i don't care about it anymore though. People can still state their opinions about the main subject.

dpro
03-09-2005, 06:08 PM
Ehhh I see both used, currently using C++ myself at my programming job. Haven't touched java for a bit, BUT, really I think people shouldn't concern themselves with which is "better" simply if you can use C++ more than likely you can use java too.

Zach L.
03-09-2005, 06:31 PM
>>> Companies who need C++ programmers are... companies that make specialized software<<<
That's a ridiculously vague statement, and says nothing. Just because something isn't the Swiss Army knife of software doesn't banish it to the realm of obscure software.

At any rate:
a. Don't bank on getting hired because of a particular language (besides, trends in languages will change).
b. C++ is a very widely used language.
c. Java also is a widely used language.
b and c are not contradictory. This person sounds clueless.

Cheers

Lithorien
03-09-2005, 07:11 PM
Write me an OS in pure Java (or C++ for that matter). You can't do it - so why try? People today still use assembly to program things (device drivers, bootstrapping, etc).

Your teacher is wrong just for telling you to only learn and focus on one language. Learn what you can when you can and you're all the more valuable.

Hunter2
03-09-2005, 07:16 PM
>This person sounds clueless.
My uncle works as a software engineer, and he told me that companies are mainly looking for developers who use C# and Java (RAD-ish, and something to do with standardized certification too). Of course, there are probably tons of companies looking for developers in just about every language, depending on the specific requirements of the project, but it does seem to me that RAD is quite the fad at the moment.

jverkoey
03-09-2005, 07:17 PM
What's this about radishes?

Hunter2
03-09-2005, 07:24 PM
:rolleyes: I noticed that a second after I typed it...

Zach L.
03-09-2005, 08:41 PM
Well, if you look at all of software development as programming applications of the sort your average user (used loosely for a purpose -- home user or corporate business user) will pop-up on their screen and tinker around, then sure, RAD is a very useful thing. But there is more to it than that. There are many more applications: there are the game programmers, the network programmers, the OS programmers, the scientific programmers, etc.

nickname_changed
03-09-2005, 08:53 PM
- C++ is turning into an academic language. (helps beginners unerstand the OOP concepts)

I don't believe this to be true, although it does help beginners understanding. There are many more academic languages out there.

- Companies choose Java (or JDeveloper) over C++ because you can make programs in much less time.

Of course they do. Most business applications aren't usually overly comlpex, and don't need to be close to the hardware. Java is a good platform for many businesses, although specialized companies writing software for controlling railways, steel and vehicle production etc. have much different requirements and often require more control over hardware.

- C++ needs lots of coding to mak applications with a GUI whereas Java (or JDeveloper) don't. (or atleast much less coding)

This is true. But GUI's in Java aren't pretty.

- Companies who need C++ programmers are either "old" companies (like prefer using console programs) or companies that make specialized software, "because C++ can deal with the system better internally" as he put it.

This is also true.

However, that doesn't make C++ a poor language to learn. In fact if I were hiring, I would pick a C++ programmer over a purely Java programmer and get them to learn Java.

okinrus
03-10-2005, 01:58 AM
- Companies choose Java (or JDeveloper) over C++ because you can make programs in much less time.

By suitably changing your development environment, you can make your code like java, in that you can use a bound checking vector class and garbage collecting. The only difference, then, between C++ and Java are a few semantic and syntax issues, but nothing that would drastically affect programmer efficiency, I think.



- C++ needs lots of coding to mak applications with a GUI whereas Java (or JDeveloper) don't. (or atleast much less coding)

Depending of course on the C++ library and tools.

nvoigt
03-10-2005, 03:53 AM
I met my C++ teacher in a computer shop today (by coincidence) and we chatted for a while about programming in general , programming jobs and mainstream programming languages.


Don't get me wrong, teachers are good and respectable people, but they spend their time theorizing about stuff, teaching it. You learn a lot by teaching, but if you are teaching the same things over and over, you tend to lose reality. Other people have spent 10 years "in the industry" and this guy spent 10 years in a classroom.



I told him that i like C\C++ and i would love to get a C\C++ programming job. He told me that lots of students who got hired by companies didn't care much about C++. He suggested leaving C++ and getting into something called JDeveloper and Java because thats what companies mostly want (as he claim. I don't know what the hell is JDeveloper) , and C++ will become obsolete sometime in the near future.


What you really want, is to learn both. And some more. Whatever you learn, if it's just one language, you will always be "the x language programmer". There will always be languages tooled for a certain job and companies want people to get a job done. If you know how to get many jobs done most efficiently, you are good. If you know only one tool, for only one job... well, you wouldn't want to be "the hammer guy" in a construction company, right ?



- C++ is turning into an academic language. (helps beginners unerstand the OOP concepts)


To the contrary. Java is used to help beginners understand OOP concepts without the hassle of pointers or other C++ traps. C++ will never be an academic language. It might die in the future, but I can't see how C++ should be used primarily for teaching when it's so easy to make mistakes using it. Pascal is used for teaching. Java is used for teaching. You don't learn to drive in an 500PS Ferrari and you don't learn to program in C++ if easier models for learning are available.



- Companies choose Java (or JDeveloper) over C++ because you can make programs in much less time.

- C++ needs lots of coding to mak applications with a GUI whereas Java (or JDeveloper) don't. (or atleast much less coding)


Correct in a way. GUIs are easier and faster built in Java or C#.



- Companies who need C++ programmers are either "old" companies (like prefer using console programs) or companies that make specialized software, "because C++ can deal with the system better internally" as he put it.


No companies prefer console programs. Specialized software, yes. But also server systems. Can you imagine a server running Java ? Welcome to lag-land. Servers that have a high load will be written in unmanaged languages, which means C++ right now. And behind every great client is a server doing the clients work.



ok this actually scares me. I'm thinking "he doesn't know whats he's talking about" but it sounds kinda serious. What do you guys think?


There is no best language. There is always one or more languages best suited for a job. And companies want to get jobs done. Only a few care how you do it. They care for time and money. Learn as many languages as you can, so you will grasp the concept behind them. If you know 5 languages, learning the 6th is just a matter of finding the right book to look up the syntax.

Is there a problem best solved with C++ ? Yes, there is.
Is there a problem best solved with Java ? Yes there is.
Will there be a problem best solved with hjke8 ? Yes, there will be.

Don't switch to hjke8, at least not until someone put a meaning behind those random letters on my keyboard. Learn both C++ and Java and you will be able to chose the tool best suited.

bithub
03-10-2005, 04:51 AM
Companies dont hire java programmers, or c++ programmers. They hire software engineers. Software engineers use languages as tools to solve problems. They choose whatever tool is best for the job at hand.

My advice (which I'm sure has been stated in this thread already) is to learn to be a software engineer. Once you've done that, familiarize yourself with many languages, and never stop learning.


Write me an OS in pure Java
I would, but its already been done (http://sourceforge.net/projects/jos).
Sorry, couldn't resist :)

Lithorien
03-10-2005, 06:25 AM
I would, but its already been done (http://sourceforge.net/projects/jos).
Sorry, couldn't resist :)

This is 100% pure, from boot to fully loaded, Java? (Assumption made since the site is down.)

...color me suprised.

nickname_changed
03-10-2005, 06:56 AM
It wouldn't be 100% pure Java. The bootstrapper wouldn't have a JRE.

Dante Shamest
03-10-2005, 07:53 AM
I can understand why people think C++ isn't used much anymore; that's because unlike Java, it usually isn't advertised in applications. Most of the time, if you use an application made in Java, you know it's written in Java because of the clunky Metal user interface, or the webpage ends in .JSP.

But C++ is actually pretty widespread...

The popular Mozilla and Firefox (http://www.mozilla.org/) browsers are built on a C++ codebase. :D

The popular Linux K Desktop Environment (http://www.kde.org/) is also built using C++.

Adobe (http://www.adobe.com/), the creators of Photoshop, also use C++ in their products.

The iPod (http://www.apple.com/ipod/) user interface uses the Pixo application framework written in C++.

If you're intending to work for a game company. you had better know C++.

On the Blizzard (http://www.blizzard.com/) (creators of Warcraft, Starcraft) resume page, they say this: For Programmers: Programmers are expected to only have a good resume and cover letter, but if they wish to include a sample of their code that would be a definite plus. Make sure your code sample is written in C and C++.

And here's an Electronic Arts (http://www.ea.com/home/home.jsp) job Software Engineer posting: Have expertise in C, C++, Purl, Python and TCL to write automated test tools and scripts.

VirtualAce
03-10-2005, 08:07 AM
Games use C++ ...period. There are some attempting to use compiled Java but we will see how that turns out.

As long as their is a need for real-time interactive programs that can slam millions of triangles to the screen in seconds, process AI, scripts, sounds, and 3D mathematics...there will be a need for C/C++.

It's not dying any time soon. Your professor is just telling you to switch to Java because that is probably what will get you hired. In my experience companies do not use C++ because very few of their employees know squat about it. So they opt for VB or Java because they simply cannot code in C++.

Look at some popular game producers and companies. Then theorize all you want..but C++ and assembly are all here to stay.

If C++ were on the verge of extinction then a lot of stuff would have to be totally re-written. Almost every thing out there is somehow related to C++. Engineers often learn C pseudo-code and if you look at pseudocode, scripts, etc., a lot of it takes concepts right from C/C++. Almost every API is geared towards C++ in some form or another. Why do you think .NET has come along? So that we can interface Java and VB? Even though it's possible that is prob not the core reason. There are VB programmers and C programmers out there that wish to use each other's DLL's. One for speed, and one for simplicity of creating GUIs. Now the best of both worlds can be at the programmer's fingertips. I highly doubt C/C++ will die any time in the near future.

Just one more example of an ignorant Javaite.

CornedBee
03-10-2005, 12:27 PM
Can you imagine a server running Java ?
Errm, yes (http://jakarta.apache.org/)?

IfYouSaySo
03-10-2005, 12:46 PM
By suitably changing your development environment, you can make your code like java, in that you can use a bound checking vector class and garbage collecting. The only difference, then, between C++ and Java are a few semantic and syntax issues, but nothing that would drastically affect programmer efficiency, I think.


I just read a segment of Bjarne Stroustrup's FAQ, where he says "Despite the syntactic similarities, C++ and Java are very different languages. In many ways, Java seems closer to Smalltalk than to C++. "
Here is the link:
http://www.research.att.com/~bs/bs_faq.html#Java

Will he compare C++ with some other language?
"Several reviewers asked me to compare C++ to other languages. This I have decided against doing. Thereby, I have reaffirmed a long-standing and strongly held view: Language comparisons are rarely meaningful and even less often fair. "
Here is the link:
http://www.research.att.com/~bs/bs_faq.html#compare

subdene
03-10-2005, 01:13 PM
I personally think if you know C++, this is all the grounding you need to be able to move freely between different languages. The majority of all languages have the general same logical constructs such as selection and iteration, migration to another language is usually just a matter of syntax, and possibly a few other weird concepts depending upon the language.

So I really wouldn't worry about knowing every language under the sun, or just knowing C++. A potential employer will be able to tell whether or not you are a capable software engineer from other attributes, not just by the number of languages you know (no French though ;-)). It is then their responsibility to provide you with the necessary training required to facilitate their objectives. Companies are always looking for good people, and are prepared to put the time and effort necessary to develop their skills.

okinrus
03-10-2005, 01:24 PM
I just read a segment of Bjarne Stroustrup's FAQ, where he says "Despite the syntactic similarities, C++ and Java are very different languages. In many ways, Java seems closer to Smalltalk than to C++. "
Here is the link:

Yeah, I've read his FAQ before. I've ignored some differences such as the Java's Object rooted heirachy and its large class library, but I don't think these differences should matter too much in comparing programmer efficiency. C++'s runtime doesn't have to be drastically different from Java.

CornedBee
03-10-2005, 02:07 PM
You should, IMHO, learn not only multiple programming languages, but also multiple programming paradigms. And unlike learning multiple languages, this is not at all easy. Functional programming and logic-oriented programming (I learned them using Haskell and Prolog, respectively) offer new and interesting perspectives on programming.

Lithorien
03-10-2005, 02:26 PM
It wouldn't be 100% pure Java. The bootstrapper wouldn't have a JRE.

I thought as much, but hey, I don't know everything. ;)