Question about Programming

01/31/2013 09:04 jedi20111#1
Sorry if this is the wrong section.

I would like to know the differences between the different languages. I research it a little but didn't really understand all of it. I'm thinking of learning python, from what i read its the easiest to begin with. But could someone explain this:
What is the language used for?
What type of stuff can you make with it?
What are the pros and cons of it?

If someone could answer these questions regarding each language, that would help a lot, thank you.( C++, C, Java, C#, Python, etc)

P.s: I'm not looking to make bots in conquer,
01/31/2013 19:26 itachi26#2
Yop,

well... my answer won't be the most accurate one, since I know(which I use very often) only one language... That beeing said, you have to know that the first thing which differences the languages is its level.

Higher is its level, closer from your langage (english) it will be. Python looks like a high one. Like AutoIt.

Now, each langage has its specifics points : C# won't be as easy to learn as AutoIt, but it will permit you lots of things since there are lots of public frameworks on the net.
C++ won't be easy aswell, but it will be very efficient (builds fast programs), than AutoIt for example which is very slow, due to the fact it's an interpreted language...

That's all I have, hope it will help you, at least a little bit! :)
02/01/2013 00:47 Super Aids#3
C is probably the lowest of the languages that you have mentioned and if you're a lot interested in programming to the kernel as well hardware then C is probably a good language of choice, but C is not really an OOP language and there is no support for classes, only structs.

This is where C++ comes in the picture, it is derrived from C and was intended to be more OOP, because it supports classes and such.

Both C and C++ is native languages and is not platform specified and compiles to machine language (assembly) and that makes it easy to make cross platform.

I could go really deep into their difference and when C is better than C++ and the other way around, but as with all languages. Each one got their pros and cons.

Now to Java. I've never really used Java, but as far as cross platforming goes then it's probably the easiest one to port from one platform to another, because it's not compiled to assembly, but to the java jit (Just in time compiler). That means you can just take a .jar file that you made on one platform and then take it to another and it will run perfectly fine. (Most of the time) However the performance of Java is not really anything near to C/C++, because they're compiled directly to assembly and that makes their speed/performance better. I won't really go into judge Java as a language, its framework or anything, because as I said, I've never really used it.

C# is basically Microsoft's answer to Java, but well don't let that confuse you, because both languages are different and far from close. They only share a bit syntax-similarities, because both C# and Java is really high level languaged and uses the c-syntax (Using braces like { } for scoping). C# compiles to IL which is the instruction set that their JIT uses. About portability is C# probably the language of those you've said, which has the lowest amount of options to make cross platform, because of the .NET Framework, however it's possible with things like Mono, Wine etc.

At last Python is not a compiled language at all and it's interpretered. It was made in C (or C++) if I am correct? There is some "homemade" compilers though that will parse the interpretered Python code and compile it. Python is a powerful language and a lot popular. It's easy to make portable to other platforms as well, because it does not require any huge frameworks or platform specific things to run. Python's syntax is different from C, C++, Java and C#'s, because it does not use { and } etc. and a completely different syntax. It's all about whitespaces when creating scopes, actually.

I cba to write more and I got such a huge headache, so I will go sleep. I could be wrong at a lot of my points and I am really tired, so excuse me. Also I do not know everything, is just what I could pck up on the top of my head. There is a million other things that could be said, but if you want my honest opinion then use Google.
02/01/2013 18:26 jedi20111#4
Thanks to both of you. With that information, I've decided to learn python. This will allow me to understand the basics of programming and when I get it down, I will be able to learn another language a lot faster( probably C++ or C#). Thanks
02/01/2013 21:03 KraHen#5
Pseudocode. Then move on to something real.
02/01/2013 21:19 CptSky#6
Quote:
Originally Posted by Super Aids View Post
[...]I won't really go into judge Java as a language, its framework or anything, because as I said, I've never really used it.[...]
As a forced user of Java due to my school, I can say that Java is shitty :o
02/01/2013 21:33 KraHen#7
Java isn`t bad or good, it has it`s own uses, you wouldn`t use a screwdriver under normal circumstances to chop wood, would you?
02/01/2013 22:03 CptSky#8
Quote:
Originally Posted by KraHen View Post
Java isn`t bad or good, it has it`s own uses, you wouldn`t use a screwdriver under normal circumstances to chop wood, would you?
I can't find a specific case where Java will be better than other languages. Well, compatibility across platforms ? Maybe, but I see better alternatives :)
02/01/2013 22:50 Autogamer#9
Quote:
Originally Posted by CptSky View Post
I can't find a specific case where Java will be better than other languages. Well, compatibility across platforms ? Maybe, but I see better alternatives :)
Native Android apps my friend.

My suggestion is to learn C# first. It really depends on what you plan on doing, but if you are looking for a future in programming then .net is the way to go IMO.

Even though C# is a managed language it can be used everywhere.

It can be used to program on Macs and Linux(Mono)

It can be used to program Android and Iphone(Monodroid and Monotouch, and all the other ports available)

It can be used to develop robust web apps.(Asp.net)

And now it can be used to develop embedded systems(Micro framework)


So really like I said it depends on your goals, but it's easy and universal and jobs are in high demand. You can basically learn one language and do everything. I would of mentioned vb.net aswell since it is a part of he .net framework, but monodroid and monotouch doesn't support it yet.
02/02/2013 11:53 Super Aids#10
Quote:
Originally Posted by Autogamer View Post
Native Android apps my friend.

My suggestion is to learn C# first. It really depends on what you plan on doing, but if you are looking for a future in programming then .net is the way to go IMO.

Even though C# is a managed language it can be used everywhere.

It can be used to program on Macs and Linux(Mono)

It can be used to program Android and Iphone(Monodroid and Monotouch, and all the other ports available)

It can be used to develop robust web apps.(Asp.net)

And now it can be used to develop embedded systems(Micro framework)


So really like I said it depends on your goals, but it's easy and universal and jobs are in high demand. You can basically learn one language and do everything. I would of mentioned vb.net aswell since it is a part of he .net framework, but monodroid and monotouch doesn't support it yet.
Even on Android C# beats Java with Mono.

Also you can't do everything in a single language.

Ex. working with kernelmode drivers in c# would be impossible
02/02/2013 15:30 CptSky#11
Well Android... Where I'm currently working, all the application is done in C++ as it is portable to both Android (Linux) and iOS (BSD) systems. The GUI is done in Java by some russians... and will be done in Objective-C for iOS at some point. But, well, the only reason for that ? Both don't have really native C++ GUI. C++ applications are native application allowed by both platforms. Soon enough, Qt should be ported to Android and iOS, allowing to remove need for Java or Objective-C GUIs...
02/02/2013 21:23 Autogamer#12
Quote:
Originally Posted by Super Aids View Post
Even on Android C# beats Java with Mono.
[Only registered and activated users can see links. Click Here To Register...]

Also you can't do everything in a single language.

Ex. working with kernelmode drivers in c# would be impossible
I think you took my post a little bit too literal. I was explaining the advances and to why it is a good idea to learn C# first. Not saying there isn't anything you can't do with it. I am not sure it is the OP's top priority to create kernel-mode drivers.:p

Cool video though, I use monodroid almost daily. I can definitely say I use it alot more than Java for android apps. Although I am working on something for Android in Java that I think you guys will love.