Join 132,672 Programmers for FREE! Get instant access to thousands of experts, tutorials, code snippets, and more! There are 1,160 people online right now. Registration is fast and FREE... Join Now!
Hi, I've been researching and comparing languages, but I can't make a decision as to what to pick as a second language to learn. I'm learning Java this year in my programming class, and I will probably continue with it senior year. I think I'll be writing mostly smaller apps, with some bigger/low level stuff thrown in there. A RAD language would be nice, but I'm willing to sacrifice RAD for power and speed. Maybe join some projects down the line too...
So based on this criteria, what should i pick for a second language? (I refuse to learn VB, and I'd rather not learn C# but i will if it's recommended)
c++ is my recommendation, you can make any software you would almost dream of if you know it, from previous experience Microsoft changes c++ to their own version of it, not a big deal but all in all learning software programming in Microsoft Environment would probably get you more out of this world, of course depending on where you work but in my experience nobody has needed Linux programming, but i do work for a production company and all of our clients are regular users, engineers and what not as well, and government work, but we still do windows environment programming so even though its Microsoft it will probably be more beneficial for you in the long run, and in learning c++ you should catch up on c# they are similar, and c# might be quicker to program in than c++ if you get the hang of it, but with c++ you can take your back end of the program and take it to any environment with minor modifications most of the times, (of course gui would probably be different ) but with c# your limited to windows, unless you modify it for mono develop. anyway enough chitchat just go out and research it a little bit, some sampling wouldn't hurt either.
P.S for quick and reliable development, python is really good, as well as ruby, but you loose speed in most cases and you need an interpreter, though those times might have changed with compilers coming out for them.
Thanks! I saw not needing a platform as a huge plus for C++, but a lot of people are claiming that C# is the future and i want to be up to date on the languages. To tell the truth, i would rather learn C++ over C#.
This post has been edited by xCraftyx: 13 Sep, 2008 - 11:11 PM
If I were you, I'd chose C++. It's similar to Java(because Java was based on it) and it gives a large amuont of power and control over the software you write. But if you did choose C#, then you'd either have a Windows only community or you'd have to go to Mono to make it cross platform.
C++ is my favorite. You can write large and small apps of all kinds with it, and seeing as your taking java now it only makes since to take C++ and see how much better it is over java.
Python is really simple and can be picked up easily.
This post has been edited by carltech: 14 Sep, 2008 - 01:01 AM
Thanks guys, I'd been leaning towards C++ for a while but my only concern is that there have been a lot of claims that C++ is becoming outdated. Thoughts?
c# does offer some flexibility over c++, but seeing as how c# is only for windows development (well linux too with mono develop), I don't think c++ will go out dated any time soon. and if it does picking up c# wont be too difficult, its based off of c++ and java.
Thanks guys, I'd been leaning towards C++ for a while but my only concern is that there have been a lot of claims that C++ is becoming outdated. Thoughts?
In my opinion, c++ will never become outdated. The C programming language is now thirty (correct me if I am wrong) years old, and its still widely used today (for systems programming). C++ has been in use for over 20 years now, and as far as I see it, its position is not even shaking. Sure, C# may be newer, but its not nearly as powerful as c++. C# is .NET specific, and therefore, even considering all of its advantages, its usage is limited. Try writing an operating system in C#
Although my most favorite language of all time is C, I cannot fully recommend it to you because I don't know what your target field is. If you plan on doing systems development, you really don't have a choice but to learn C and ASM. If you want to develop software, you should definetly learn C++. Even if you get a job developing .NET applications one day and will be forced to learn C#, its gonna take you no longer than 3 days to get a hang of it with professional knowledge of C++.
So, my advice would be to definetly go down the C++ road. This language will never be outdated, if anything, maybe only updated. Other languages do become obsolete, and new ones appear, but C++ is a standard, and therefore being able to program in it, you will never find yourself out of luck.
Thanks guys, I'd been leaning towards C++ for a while but my only concern is that there have been a lot of claims that C++ is becoming outdated. Thoughts?
In my opinion, c++ will never become outdated. The C programming language is now thirty (correct me if I am wrong) years old, and its still widely used today (for systems programming). C++ has been in use for over 20 years now, and as far as I see it, its position is not even shaking. Sure, C# may be newer, but its not nearly as powerful as c++. C# is .NET specific, and therefore, even considering all of its advantages, its usage is limited. Try writing an operating system in C#
Although my most favorite language of all time is C, I cannot fully recommend it to you because I don't know what your target field is. If you plan on doing systems development, you really don't have a choice but to learn C and ASM. If you want to develop software, you should definetly learn C++. Even if you get a job developing .NET applications one day and will be forced to learn C#, its gonna take you no longer than 3 days to get a hang of it with professional knowledge of C++.
So, my advice would be to definetly go down the C++ road. This language will never be outdated, if anything, maybe only updated. Other languages do become obsolete, and new ones appear, but C++ is a standard, and therefore being able to program in it, you will never find yourself out of luck.
Thank you so much, that cleared up a lot of questions that i had. To tell the truth, i really don't want to go into programming/computers in general for a living, so I really wanted to focus on 2 languages and become proficient with both of them instead of learning several. Realistically, I doubt I'll ever write an operating system or anything low level, such as a game server emulation or drivers, even though I'd someday like to.
My real debate has been between C++ and C# (as you can see) and then if i choose C++, should i learn C? The reason I'm having such a hard time making a decision is because, like I said, I want to stick with 2 MAYBE 3 languages (the 3rd probably being PHP or some other internet language) and i need them to do what i want...So right now it looks like I'm down to Java and C++, is there anything else i should learn or learn instead of C++ based on this?
This post has been edited by xCraftyx: 16 Sep, 2008 - 07:48 PM
Well, if you have a good knowledge of Java, i would suggest you C#. C# syntax is java-like so will be easier for you to learn. In addition C# is very very stable, secure and is supported by the great IDE Visual Studio and yes, is fast, even if it uses the .NET framework.
Obviously if you are searching EXTREME speed ( see games ) and need many low level optimizations, the choose is only one: C++ .
So to sum up, I think it depends from what you have to do, they are both valid but I say: choose C++ only if you really need, because is a lil bit difficult to learn
This post has been edited by Salv0: 17 Sep, 2008 - 07:24 AM
Thanks guys, I'd been leaning towards C++ for a while but my only concern is that there have been a lot of claims that C++ is becoming outdated. Thoughts?
In my opinion, c++ will never become outdated. The C programming language is now thirty (correct me if I am wrong) years old, and its still widely used today (for systems programming). C++ has been in use for over 20 years now, and as far as I see it, its position is not even shaking. Sure, C# may be newer, but its not nearly as powerful as c++. C# is .NET specific, and therefore, even considering all of its advantages, its usage is limited. Try writing an operating system in C#
Although my most favorite language of all time is C, I cannot fully recommend it to you because I don't know what your target field is. If you plan on doing systems development, you really don't have a choice but to learn C and ASM. If you want to develop software, you should definetly learn C++. Even if you get a job developing .NET applications one day and will be forced to learn C#, its gonna take you no longer than 3 days to get a hang of it with professional knowledge of C++.
So, my advice would be to definetly go down the C++ road. This language will never be outdated, if anything, maybe only updated. Other languages do become obsolete, and new ones appear, but C++ is a standard, and therefore being able to program in it, you will never find yourself out of luck.
Thank you so much, that cleared up a lot of questions that i had. To tell the truth, i really don't want to go into programming/computers in general for a living, so I really wanted to focus on 2 languages and become proficient with both of them instead of learning several. Realistically, I doubt I'll ever write an operating system or anything low level, such as a game server emulation or drivers, even though I'd someday like to.
My real debate has been between C++ and C# (as you can see) and then if i choose C++, should i learn C? The reason I'm having such a hard time making a decision is because, like I said, I want to stick with 2 MAYBE 3 languages (the 3rd probably being PHP or some other internet language) and i need them to do what i want...So right now it looks like I'm down to Java and C++, is there anything else i should learn or learn instead of C++ based on this?
No problem
As for the C++ vs C# and C dilemma:
If you learn C++, you won't have to learn C. However, knowing C will help you learn C++. I would suggest learning C anyway, just for the heck of it. Knowing such a low level language will get you very familiar with how computers internally work, and this will therefore ease almost any task you will be stuck with later (regarding anything low-level). You won't have to stick with C, just experiment with it in DOS for the heck of it, to get a hang of as to how computers actually work (memory allocation, bits, etc). However, if its imperative that you stick to two or three languages, I'd say go for C++. Its unlikely you will need C, unless you are planning to write drivers or kernel modules. But knowing C++ will make learning C easier, since they are in the same family. Also, C++ and C# aren't that different. The APIs that they use are, but the languages themselves aren't. To compare it to the real world, think of knowing C++ as knowing Latin. A person who is proficient at Latin will have no problem at all learning English, French, Italian, etc. very quickly. Same thing in this case. Knowing C++, you'll master C# in a couple of days. Another advantage of C++ is that its limitless. There isn't anything that you cant write in C++ (software-wise). Really, the only major difference between C# and C++ is the API that they use (in the matter that C# is .NET specific). But then again, you can program in .NET using C++ as well. So in my opinion, unless .NET programming is your only goal regarding the second language you wish to learn, you are really limiting yourself if you stick to C# at this point.