Which programming language to adopt ?

Posted on 2010-11-08
Last Modified: 2012-05-10
Hello Guys,

I've started programming over 2 years ago, I'm doing communication systems engineering (part of electrical engineering) not Computer science, so I'm not that advanced, but I know a good bit about C++ and Java.

For C++, I use the Microsoft Visual C++ 2008 or 2010. For Java I use Netbeans. I've done few simple projects in both.

What I want to ask is, which Programming Language should I adopt to be my main language on the long run ? and which IDE ?

I prefer C++ more than Java, but Java is easier to import libraries from (GUI, network , etc), I could dedicate myself to C++ if it's better on the long run.

I need the programming language I adopt to be good with GUI, network programming, software engineering techniques, etc.

I learned some design patterns in Java (using Interfaces for example), which language has better design pattern implementations ?

From the market prespective. a friend tells me, more developers use Java, therefore Java developers are becoming cheaper, therefore more programs are written in Java, but C++ developers get paid more cause they're getting to be rare, is that right ? cause I also heard Microsoft Office Word for example was all written in C++.

Please also take into consideration, which language is good for threading, interaction with the internet, graphics, etc

I just dunno, I need to adopt a language and its IDE and use them my whole life, I'm not a software engineer, but I do programming on my own time a lot to make some programs for example that will do sth for me automatically, I also do programming in University to build GUI programs etc.

Should I consider anything other than C++ or Java , Objective-C for example ? new languages ?

Please advise
Question by:heiba
  • 5
  • 4
  • 2
  • +1
LVL 15

Expert Comment

by:John Tsioumpris
ID: 34083861
Well this is my personal opinion but it goes like this
Everything and i mean everything in serious programming is in some implementation C
This goes to Visual C++,Apple's Objective C ,Linux uses certainly Ci think the platform of Samsung Bada uses just stick to C++
Its powerfull beyond every other language and u get the best background if u decide to do soemthing more.
In the .NET world the King is **guess which** C# and yes this is another implementation of C/C++
So it has to do more about what kind of programs u like to make...a quick hint if u go to Bussiness Application then preferably u have to follow the C# current...if u go to games programming C++ is the One and Only

Expert Comment

ID: 34083960
I think you are pretty good prepared to take part in the market of programmers.

C++ can be the choice if you want to produce software for a particular Hardware/OS combination. You should expect problems if one component changes (Win 7 caused a lot of c++ programs to be modified). And you should be aware that your c++ programs are not portable to a different OS.

Java is generally compatible (with some restrictions you can respect in the development process). So regarding future I think Java is very important.

The third way is some kind of scripting language (e.g. PHP) which ist very often used for WEB applications. As those become more and more common I think you should definitely deal with it. There are other scripting languages as well but having the choice I would use a language independant from a particular OS. Web apps can also be written in java but then need special things (e.g. a particular application server (Websphere, Tomcat....) or downloaded applets....)

So if somebody asks me for a program in a defined environment I choose java as language and if I'm asked to make some web apps I choose PHP. But PHP has grown very mighty so it often makes sense to use it for normal applications as well. Simply install apache, php some kind of database and you're done....

But most important for you ist to feel comfortable with the language you use....

Author Comment

ID: 34083982

Thanks for your helpful comment, I also know C++ is faster than Java for example, but Java is portable (cause of JVM). so should I go for faster or portable ?

what about new languages ? is C++ being updated ? what about templates ?

also which editor (IDE) should I use ? Microsoft Visual studio ? Netbeans ?
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

LVL 24

Expert Comment

ID: 34085357
sorry the first answer is simply ridicoulous. There are tons of applications out there which are not written in some C dialect. Of course some of the "base" programs are written in C but that does not mean one can not do serious programming in whatever. I also bet that many applications in he business area do not use C and they have good reasons for that. C++ itself is one of the most complex languages around and well nobody really knows everything of it. And there a quite a few languages which are more understandable and less error-prone than some C. E.g the diverse Smalltalks, or Common Lisps. The GUI-stuff has (more than less)started with Smalltalk workstations and code browsing in todays Smalltalks is simply better than anything you can find in C++. C++ has the big disadvantage of requireing manual memory managment and this is simply a thing we are not convincing good at. Java has GC for good reasons so does C# and many other application building languages. If Java is really that portable is still an open discussion. I know in my area Java is much used but only "supported" under Windows. If I use a CincomSmalltalk e.g I can run my code on Mac OS X, Linux and Windows... And there are other languages which are quite portable accross different operating systems

Author Comment

ID: 34085536

Thanks for your comment, not sure if I'm prepared to be a software developer, I just know a small bit.

It's good that you mentioned windows 7, is C++ a good language to use ? when you said many programs were modified, does that mean that other programs written in other languages were not ?

"So regarding future I think Java is very important."
That's a really important statement, does that mean that on the long run, and for the future, C++ would be a bad choice ?

I didn't know web apps can be written in Java, I thought they all need Java scripts.

Regarding PHP: PHP is newer, and there are compiled versions of it now (facebook uses it I think), but is it as good as C++ ? considering GUI, libraries, threads, network programming, all that stuff is covered by PHP ? So if I learned PHP, web development will be the same syntax ?

I feel comfortable with C++, I'm willing to take on the complexity of it, but if there is another language which is much better and much strong to adopt on the long run, then I'de prefer it.

Author Comment

ID: 34085592

I know C++ is complex, but when I say long run, means I'm gonna spend a lot of time learning all of it, so complexity isn't an issue, I'm more concerned about capability.

Smalltalks and Common Lisps: never heard of these, and I certainly can't use them in algorithm competitions for example, or in software roles interviews, they're just not known. that's why I'm considering either Java or C++ or other well known programming languages.

I never had to deal with manual memory management so far, but I know I will face it one day, manual management : is that a disadvantage or a better capability ?

Why does Google for example use C++ a lot ?

LVL 15

Expert Comment

by:John Tsioumpris
ID: 34085656
Well Visual studio is the ruller in every case.Just set backup and think
In Visual Studio u have in 1 package C++,C#, and Complete Web Design
And not to forget the Intellisense and Debugging.
Because there is some criticism about my opinion just do little research.
Probably every major application in bussiness is build on some Variation of C/C++,every OS is built also around some implementation of C/C++ and yes probably every serious Game is made with C/C++
Yes is a very difficult language (@fridom) but this is why i written
"If u go to bussiness go to C#"
"If u go to Games go to C++"
And something more..which shows the trends...probably 70% of all the extra .NET components (Telerik,DevExpress...etc)sold is for C#,also this goes for books
For the Games part its just impossible to do something if it is not on C++....take a look at
And last about the portability...just think which portability...are u thinking about an application that u could make e.g in Windows and then it could run on Mac....give me a break...this is something to laugh...the real portability is the Web...if u want to make and plan for multi platforms then ASP.NET - HTML5 (or maybe PHP) is ur future and for yes its again C#
What i really want to say is at first learn a language as good as u can...and i strongly believe that C++ gives u the Best background...after that when u have excelled on one language its just a piece of cake to jump to an implentation (anyway u like it an implentation/variation is a cutdown from the C++ mainly unloading the load of memory handling)
Lastly for me ....just forget Java...if u know C/C++ u know Java so if it is not paying your salary there is no need to restrain yourself.
Probably i will see more critisism so do something clever...spend some on the NET trying to see what is the "flow" in programming.....
LVL 15

Expert Comment

by:John Tsioumpris
ID: 34085675
My last comment is this
"Probably i will see more critisism so do something clever...spend some on the Internet trying to see what is the "flow" in programming....."
Wrong Typing
LVL 24

Expert Comment

ID: 34085687
Sorry complexity kills, it does not appeal to me that not even the expert of a language can pin-point trouble spots immediatly. You can not use C++ with  very heavy tools.... Of course one can write readable and maintainable code in C++. But you have to have too many concepts on your mind. And if you never heard of Smalltalk, than you have not done much investigations. Smatllalk is one of the first OO languages (and it still is at the top on that regard). Many language were inspired by Smalltalk e.g Objective-C, Ruby, Python and many more. But why should one not use the original?

You will not have to face manual memory managment if you choose the proper tools for different jobs. And application development is not the best area for choosing either C or C++. You may get better of with Objective-C, but the only system which really has good support for Objective-C development is Mac OS X. Why does google use C++ a lot is easy, because it's a decision to just use C++, there one langauge I think it's named Go and Python. And well I doubt that you will have to handle petabytes of data, there it pays of soon to spend much time on efficiency. But it's not cost effective for someone not handling that many data.

What you should considere is using the different language on where they have their merits. E.g I'd n ot use anything but C (maybe D) to interface to "low-level" things. C is very good at it. But I would not use C for application development but in the case I've terrible good libraries.


Author Comment

ID: 34086716

what can't I do with C++ that could be done in other programming languages ?
LVL 15

Accepted Solution

John Tsioumpris earned 500 total points
ID: 34086944
Mainly other languages provides u with ready classes so that u don't have to "reinvent" the wheel.
take for example .NET ...with each Framework u get thousands of classes with just about anything a programmer will need ...
C++ has all these libraries that provide a great functionality but unfortunately they are not so organized as .NET. and they come with different vendors each carrying their own pros and cons.
For me get a good knowledge of C++...not extreme and then the wagon to jump is C#....just about everyone on the planet is going there....and to be honest MS rules

Author Closing Comment

ID: 34087015
Your comments have made me confident about taking C++ as my language. You've provided all the information, thanks.

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
This code tracks birthdays 3 82
MacOS and programming in React 7 41
Filename to be appended with DateTimeof Download 3 62
Create .bat File 16 37
This is an explanation of a simple data model to help parse a JSON feed
If you’re thinking to yourself “That description sounds a lot like two people doing the work that one could accomplish,” you’re not alone.
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question