PDA

View Full Version : Choose a language.



rburley
26-04-2006, 06:17 PM
Hi all.
WARNING : programming nooB
In a month or so's time I am going to be starting my first Programming Language, and ATM I dont know which one to choose. Which would be the best to choose ITO careers(local and abroad) and difficulty wise, which is the hardest as I understand some of these get quite difficult.
I have a choice of these, dont have the details on me.

C++
C#
Java
VB. NET

sorry if all sounds nooB, but i am:)

ettubrute
26-04-2006, 07:04 PM
For ease of use, VB would be the easiest, then Java, C# and finally C++. If you want to become a real programmer, go for C# or C++. If you just want to go for the money (shortterm IMO) go for VB or Java.

Others might have different views, but that's their prerogative... ;)

Gazer
26-04-2006, 08:59 PM
If you want to program to get a quick application that works...then go for VB. If you're really interested in getting into the nitty gritty of programming and you're a geeky person then go for the C++...C# and Java are much of the same with Java being 2nd best to C++...no real pointer manipulation or memory management. If you know C++ then Java and C# are very easy to learn. The basic programming constructs are identical.

bullfrog
26-04-2006, 09:33 PM
Doing java at the moment and it seems quite basic to get started in. Don't know how powerful java really is. Seems like a really good way to get into programming.

Once you have the basics its very easy to learn a new language. There are mostly new commands and a few changes going to different languages. I think C++ and C re probably the msot powerful of all.

So in a nutshell Java --> C++

thisgeek
27-04-2006, 12:08 AM
Robin, have a chat to XEye. He's got programming degrees out the wazoo.

rburley
27-04-2006, 12:56 PM
okay thanks for the replys, still undecided...
I think i will take a look into C++ but I have heard that it is most difficult so that puts me off a bit, considering I have only 75 days to learn it.
@ thisgeek will speak to XEye

swordfish1
28-04-2006, 11:03 PM
ok, here are my 2 cents:

C++ - the real stuff, if you know C++, you can call yourself a programmer

C# - it is ok, kind of a subset from C++, with few add-ons from java, nice for GUI if you work with the VS .NET

Java - quite basic language, not too powerful, people push it over its limits, often with disasterous results, only benefit is that it is cross-platform, although not exactly, I would say it is a mess, I wouldn't bother really, and anyway if you know C++ or C#, switching to java is just like 30 min figuring out what you can't do in Java

VB. NET - I will always choose C# over VB.NET although at the end of the day the results in respect to the software will be the same more or less. The VB language is like a 30 year old hack, very difficult to maintain applications written in it, easy to understand but difficult to use for real stuff and especially for big projects that will require lots of maintenance.

So, I would recommend going for C++ or if you scared, maybe for C#. C++ is extremely complex language but also extremely powerful. Most stuff that you use on your PC are written in C or C++, especially under Linux, where virtually all software is written in C/C++. It is absolutely impossible to learn it in 75 days or anything close to that number, but you can pick up the basics and the most essential stuff in that time.

hope this helps

rburley
29-04-2006, 04:34 PM
thanx swordfish...
I am at CTI, there time schedule is ludicri$$ (notice the $ sign, thats all they care about @ R58000 per year).

I wil think long and hard about this, either C++ or C#.

rburley
29-04-2006, 04:45 PM
oh and another thing...
do any of you know of a website that compares langauges for n00bs or maybe even like a guide or something?

tibby.dude
29-04-2006, 05:05 PM
Java - quite basic language, not too powerful

I take it you never used J2EE :).
I would go for C# and concentrate on .NET development as a stepping stone into a programming career.

Nickste
29-04-2006, 05:16 PM
I have been learning Java in school (computer science) and it's pretty easy. Haven't tried any C. Out of interest, what language is in the most demand?

Cheers, Nick

swordfish1
29-04-2006, 08:43 PM
I take it you never used J2EE :).
I would go for C# and concentrate on .NET development as a stepping stone into a programming career.
I have used Java quite a few times, have to say that the time that the garbage collection is supposedly saving you, gets wasted 3 times over figuring out why the hell the garbage collection doesn't do its job properly ... no thanks, I will rather have a "delete" statement wherever necessary ... java is good for small run-once stuff or something attached to a web server which is managed by the web server ... writing applications that need to run for long periods of time in the same process without being restarted is a no no!!!

swordfish1
29-04-2006, 08:45 PM
oh and another thing...
do any of you know of a website that compares langauges for n00bs or maybe even like a guide or something?
you won't find a decent review, all are biased, if you want just a feature comparison that is another story

swordfish1
29-04-2006, 08:49 PM
I have been learning Java in school (computer science) and it's pretty easy. Haven't tried any C. Out of interest, what language is in the most demand?

Cheers, Nick
C/C++ make up about 40% or so, java is about 20-25 I think, PHP is quite big (12-13%), all others have much smaller shares ... I think .NET will slowly become more popular while Java will decrease in popularity

tibby.dude
29-04-2006, 09:44 PM
java is good for small run-once stuff or something attached to a web server which is managed by the web server ... writing applications that need to run for long periods of time in the same process without being restarted is a no no!!!

http://www.s1.com/products/atm_pos_postilion_esocket.jsp

Realtime ... mission critical piece of software that talks between merchant and bank networks ... handling other people's money ... all written in Java.

I can give you many other example of mission critical enterprise applications that uses Java.

There is more to the I.T world than Microsoft.

tibby.dude
29-04-2006, 09:47 PM
I think .NET will slowly become more popular while Java will decrease in popularity

.NET only runs on Windows and unsupported on Linux if the Mono guys ever manages to finish.

Java runs supported on many more platforms and OS than that.

swordfish1
29-04-2006, 11:20 PM
when you say "uses java" you mean that the business logic is in java code I suppose ... and then this gets run by a normal web server like apache, which is written in C? Isn't the JVM written in C as well ... see what I mean

swordfish1
29-04-2006, 11:26 PM
.NET only runs on Windows and unsupported on Linux if the Mono guys ever manages to finish.

Java runs supported on many more platforms and OS than that.
I use to believe that java is cross-platform as well, but it turned out to be quite false statement. True, the libraries, threading and few other things are cross-platform, but then you get to the GUI, which is cross-platform as long as you find the exact same JVM for all platforms, which is not quite possible. Then you get to things like desktop integration etc which are really badly supported if at all. So for the easy stuff it is cross-platform, but for the difficult things it is the same as doing it in C/C++

tibby.dude
29-04-2006, 11:42 PM
when you say "uses java" you mean that the business logic is in java code I suppose ... and then this gets run by a normal web server like apache, which is written in C? Isn't the JVM written in C as well ... see what I mean

You use middleware J2EE application servers to deploy your Java apps to the web ... JBoss which Redhat recently purchased for few hundred million dollars is written in Java itself.

Also the Tomcat webserver which handles Java server side scripting is written in Java itself.

Prometheus
30-04-2006, 12:08 AM
The number one misconception is that C++ is the most difficult language. It is not. I have found that if you only use the features that exists in the other languages then it's just as easy to learn. C++ gives you that edge of being able to manipulate pointers and memory directly and to insert asm code if you need it. You don't however need to learn or use all these features and there are a number of very good programs that don't use any of it. It's just there for when you might need it.

We could say that whenever you need these things in other languages you will probably be stuck. In which case you would then have to find a different approach to the problem leading to code that is illogical and hard to impossible to understand. So go for C++. Learn only the basics and then learn other stuff as you go along. It's easier to learn the rest of the stuff onch you have an actual program where you will implement it.

Once you know C++ you also know 90% Java. The syntax is the same. The only thing you will have to learn there are the library functions and their uses. If you then have to write a cross platform application or a quick "test app" you can then write it in Java and later port it to different platforms using C++.

Opera is a perfect example of this. You have the mini apllication written in java that can theoretically run on an internet equiped television. Then you have the full featured browsers for both the pc and phone written in C++ or some other language.

If you're going to write an application that will run in a users browser you will obviously have to go for Java to ensure compatibility.

So my recommendation: C++, Java, C#, then VB.
Remember that VB is largely Microsloth owned and that none of these languages may legally be used in any mission critically application e.g. hart machines, nuclear reactors, missile control systems, etc.

ettubrute
30-04-2006, 12:19 AM
Anybody out there still using Fortran? I loved the power of it's numerical engine! But I suppose it's almost dead...

Also, what's the SA market like for Delphi? I know it's quite big in Europe, and growing as well. Again, liked it very much. (Have to, since I was a beta tester for Delphi 1... can't fail Borland now! :D)

tibby.dude
30-04-2006, 12:32 AM
Anybody out there still using Fortran?

We still use Cobol ;).

ettubrute
30-04-2006, 12:38 AM
:eek: So that's where you learned to type such a lot! :D

Did Cobol as well, and actually still have a diploma for it! But all that typing made me mad!

Prometheus
30-04-2006, 12:46 AM
Anybody out there still using Fortran? I loved the power of it's numerical engine! But I suppose it's almost dead...
Isn't that the one where you have only 7 predefined variables to use?

Also, what's the SA market like for Delphi? I know it's quite big in Europe, and growing as well. Again, liked it very much. (Have to, since I was a beta tester for Delphi 1... can't fail Borland now! :D)
I think the market is quite good. They still teach Pascal in schools and Delphi is just a variation on it. It's very easy to learn, but not very powerful unless you combine it with another language.

ettubrute
30-04-2006, 12:50 AM
They still teach Pascal in schools and Delphi is just a variation on it. It's very easy to learn, but not very powerful unless you combine it with another language.
Not powerful? I beg to differ... have seen the most amazing programs written completely in Delphi!

But, like with all things in life, people's tastes differ... ;)

swordfish1
30-04-2006, 09:00 AM
I think the market is quite good. They still teach Pascal in schools and Delphi is just a variation on it. It's very easy to learn, but not very powerful unless you combine it with another language.
I doubt that the market for Delphi is too good, with .NET which have stolen most of the Delphi's IDE, I think Delphi is going to die for new dev in a few years time. Pascal in general, although very easy language, it is very difficult to maintain and last time I used Delphi (version 5 I think) the IDE was crashing every 15 minutes ...


The number one misconception is that C++ is the most difficult language. It is not. I have found that if you only use the features that exists in the other languages then it's just as easy to learn. C++ gives you that edge of being able to manipulate pointers and memory directly and to insert asm code if you need it. You don't however need to learn or use all these features and there are a number of very good programs that don't use any of it. It's just there for when you might need it.
I agree that you can learn only the basics of C++, which are not much more difficult than Java or C#, but then what's the point in learning C++ on first place ... I doubt you know STL and Boost C++ libraries, but the stuff those libraries do are virtually unachievable in any other language that I have heard of. When I say unachievable, I mean that you cannot program certain things in other languages that are so generic and reusable and so short to write as in C++. One of the ultimate examples is the Boost's Spirit library.

swordfish1
30-04-2006, 09:12 AM
You use middleware J2EE application servers to deploy your Java apps to the web ... JBoss which Redhat recently purchased for few hundred million dollars is written in Java itself.

Also the Tomcat webserver which handles Java server side scripting is written in Java itself.
I can't comment on what you saying, but all I can say is that the couple of times I have used Java, there have always been some memory issues. After an application runs for a while, its memory usage inexplicably grows to a point where the OS refuses to allocate more memory to the JVM, and then of course the Java application crashes! I had to do numerous hacks to go around the problem, and I am sick of it. In C++ if you have a memory leaks, there are libraries that you can use to detect all memory leaks. Usually before making a release one checks all memory leaks and fixes them, it takes minutes. If it depends on me, Java is the very last language that I will ever use!

Also I happen to use some Java application for long periods of times (like 10-15 hours a day). They will always use too much memory (hundreds of MB for just streaming and displaying text data!!!), will often freeze, be unresponsive etc etc ... I am sick and tired from java

stoke
30-04-2006, 09:14 AM
C# FTW ... and you can do pointer manipulation and assembly in C# [with difficulty]
C# is for managed code, C++ for unmanaged.
If you are writing business apps then C# is fine.
If you are writing performance apps / games you need C++ / Pascal for proper control.

Prometheus
30-04-2006, 10:45 AM
I can't comment on what you saying, but all I can say is that the couple of times I have used Java, there have always been some memory issues. After an application runs for a while, its memory usage inexplicably grows to a point where the OS refuses to allocate more memory to the JVM, and then of course the Java application crashes! I had to do numerous hacks to go around the problem, and I am sick of it. In C++ if you have a memory leaks, there are libraries that you can use to detect all memory leaks. Usually before making a release one checks all memory leaks and fixes them, it takes minutes. If it depends on me, Java is the very last language that I will ever use!
Afaik you can't delete any specific memory you are using in Java, so you have to call the garbage remover to remove all the unused memory.

C# is for managed code, C++ for unmanaged.
I disagree. C++ was written specifically with Object Oriented Design in mind. C++ code written properly is very manageable. If a person doesn't know how to program properly then even C# will become unmanageable.

swordfish1
30-04-2006, 11:03 AM
Afaik you can't delete any specific memory you are using in Java, so you have to call the garbage remover to remove all the unused memory.
I know, but have you tried that in practice ... it doesn't work! It may or may not happen! Nothing is certain with the Java garbage collection!



I disagree. C++ was written specifically with Object Oriented Design in mind. C++ code written properly is very manageable. If a person doesn't know how to program properly then even C# will become unmanageable.
he means "manageable" like manageable by the .NET framework, not that the code itself is manageable or not

rburley
30-04-2006, 01:31 PM
thanx for feedback guys.
great stuff:)

devnull
30-05-2006, 03:13 PM
java sux, its too slow, the point of web applications is that you don't want to install software on the clients pc. c rocks its small and fast but be prepared to do allot of typing. c++ compilers suck. the language is ok tho its a bit of a black hole it just gets more and more complicated the longer you look at it. i (have to) use a number of different languages in my job and i rate perl as tops!

Moederloos
30-05-2006, 03:19 PM
horses for courses, once again.

My current pet-language is PHP. I have coded in everything from assembler to logo (you know, the thing with the turtle? rp 4 [FD 40 RT 90]? Anyone? :D )

The bottom line is: if you can code, you can do so in any language - they are all the same, only difference is syntax.

devnull
30-05-2006, 03:24 PM
horses for courses, once again.

My current pet-language is PHP. I have coded in everything from assembler to logo (you know, the thing with the turtle? rp 4 [FD 40 RT 90]? Anyone? :D )

The bottom line is: if you can code, you can do so in any language - they are all the same, only difference is syntax.

this is the ultimate, to use the best language for the job, each one has its own good features, once you know c/c++ you should be able to pick up the rest quickly. i think it took me about 4 days to learn php well enough to write a decent webpage with quite a bit of functionality, obviously with a book open infront of me but still.

Prometheus
30-05-2006, 05:18 PM
java sux, its too slow, the point of web applications is that you don't want to install software on the clients pc. c rocks its small and fast but be prepared to do allot of typing. c++ compilers suck. the language is ok tho its a bit of a black hole it just gets more and more complicated the longer you look at it. i (have to) use a number of different languages in my job and i rate perl as tops!
Perl is a cgi language. This thread is about application programming if I remember correctly. Yes Java is slow compared to other languages, but if you want to run an application on the client side then it is really the only alternative. Other applications like Flash require even more installations and plugins. There are a lot of good C++ compilers out there. Forget Borland, it's a real dinosaur. Haven't had a real update in over 5 years and it's resource linker is still "broken" :rolleyes: ever since.

devnull
31-05-2006, 11:52 AM
Perl is a cgi language. This thread is about application programming if I remember correctly. Yes Java is slow compared to other languages, but if you want to run an application on the client side then it is really the only alternative. Other applications like Flash require even more installations and plugins. There are a lot of good C++ compilers out there. Forget Borland, it's a real dinosaur. Haven't had a real update in over 5 years and it's resource linker is still "broken" :rolleyes: ever since.


perl is not a cgi language, it has a cgi module, but it was designed for generating reports. there is also perl script much like java/vb script for the browser

Prometheus
31-05-2006, 04:15 PM
perl is not a cgi language, it has a cgi module, but it was designed for generating reports. there is also perl script much like java/vb script for the browser
But it wasn't intended as an advanced language. It's a scripting language to be more precise and is interpreted by another application. This was originally about choosing a full fledged programming language to write applications with. :) The options listed were C++, C#, Java, and Visual Basic. Which reminds me... RBurley, if your listening, what did you choose?

Also saw this just now:

oh and another thing...
do any of you know of a website that compares langauges for n00bs or maybe even like a guide or something?
Maybe this ties in somehow...
http://mybroadband.co.za/vb/showthread.php?t=43066