Avatar of heiba
heibaFlag for United Kingdom of Great Britain and Northern Ireland

asked on 

Which programming language to adopt ?

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
Programming Languages-OtherEditors IDEsProgramming

Avatar of undefined
Last Comment
heiba
Avatar of John Tsioumpris
John Tsioumpris
Flag of Greece image

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 C...so 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
Avatar of Bernie Bsen
Bernie Bsen
Flag of Germany image

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....
Avatar of heiba
heiba
Flag of United Kingdom of Great Britain and Northern Ireland image

ASKER

@tsgiannis

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 ?
Avatar of F. Dominicus
F. Dominicus
Flag of Germany image

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
Avatar of heiba
heiba
Flag of United Kingdom of Great Britain and Northern Ireland image

ASKER

@brb6708

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.
Avatar of heiba
heiba
Flag of United Kingdom of Great Britain and Northern Ireland image

ASKER

@fridom

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 ?

Well Visual studio is the ruller in every case.Just set backup and think
In Visual Studio u have in 1 package C++,C#,VB.net 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 gamedev.com
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 ASP.net 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.....
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
Avatar of F. Dominicus
F. Dominicus
Flag of Germany image

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.

Avatar of heiba
heiba
Flag of United Kingdom of Great Britain and Northern Ireland image

ASKER

OK

what can't I do with C++ that could be done in other programming languages ?
ASKER CERTIFIED SOLUTION
Avatar of John Tsioumpris
John Tsioumpris
Flag of Greece image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of heiba
heiba
Flag of United Kingdom of Great Britain and Northern Ireland image

ASKER

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

Programming includes both the specifics of the language you’re using, like Visual Basic, .NET, Java and others, but also the best practices in user experience and interfaces and the management of projects, version control and development. Other programming topics are related to web and cloud development and system and hardware programming.

55K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo