The programs you plan to learn will depend on your interests and what platforms you want to develop for. I wouldn't make the mistake of thinking C and C# are overly close. The differences outweigh the syntactic similarities. C, C++, C# and Java are syntactically similar, so if you find one comfortable, you'll probably find all agreeable. Java and C# are probably the closest to VB of those.
"Syntactically" is a brilliant word. I didn't think it existed, but a quick check on syntactically - Definitions from Dictionary.com proves me otherwise. You learn something new every day, eh?
Depends what your industry is. Python isn't a mainstream language in the desktop market on Windows no. It is very much a mainstream language in terms of web development on Unix/Apache platforms. In fact I'd say that C# isn't even in the same ball park as it in the web and there are more jobs there than on the desktop.
TIOBE Software: The Coding Standards Company
According to those metrics Python is bigger than C# (which doesn't surprise me at all).
I'd pick Ruby out of the languages the OP has suggested. It's an interesting language that will enable him to learn a lot of concepts without jumping around much.
So let me ask you guys another question then. Is Ruby not a mainstream language either? It's not even included on the main forum (Python is though), so is it just that it's not a popular programming language, or is it just no good.
There's been many opinions about Python and C#, but none about Ruby.
Ruby is behind Python and has really come to prominence recently because of Rails (which is a web app framework). I think it's more than just Rails now but it takes time to cover the ground.
It really all depends on what you do. There's not really any such thing as mainstream. What there are is industry areas. If you want to program web pages then you won't go far wrong with Python or Ruby (of course you will have to learn HTML, CSS and the rest). If you want applications and aren't concerned about running cross platform then C# is better than Python or Ruby (if you are a Unix user then Python can be great for desktop apps, just don't expect to find the libraries on Windows). If you are into low level systems programming then C and ASM is the right way to go usually. C++ is usually used where you are writing desktop programs but need performance, it dominates the games industry though it's increasingly a place where scripting languages are used on top of a C++ core.
For all the hype though there aren't all that many C# jobs about. It's talked about a lot but hasn't shaken the world yet and doesn't seem likely to any time soon (mainly because most major apps have a C++ legacy, dynamic and functional languages are taking over the web and Java is far and away dominant in the server room and will remain so for technical reasons). Not that it won't be big, it will, it just won't be as big as the noise is suggesting and Java won't simply roll over because the main reason people use Java is it doesn't require an Intel machine with a Windows Server license.
I'd suggest Ruby because it's a nice language and at an early stage it's more important to learn to program than it is to worry about which language is mainstream or not. Once you have learned something like Ruby you will be able to pick up other languages in a weekend anyway. You will quickly find that most languages are identical but use different names for the same thing, learning these languages is trivial (for example, Java -> C#. 2 hours maybe).
//edit - the main thing to remember with web apps (if the web is your interest). The user doesn't see the server room. You could write a web app in COBOL and the user would be none the wiser.//
Last edited by G_Morgan; 04-15-2008 at 04:22 PM.
I am planning to use the knowledge I learn from programming to create my own software. I will eventually go into learning Web design and stuff, but now I'm concentrating on creating my own software.
I never really thought about making my software cross-platform though. I was only interested in creating Windows based applications, but I suppose it wouldn't hurt to try making cross-platform software too.
True - the IDE's available from Visual Studio 2008 Express Editions.
I have Visual Studio 6.0 Enterprise and Visual Studio 2008 Professional. Though I have Visual C#, I haven't tried using it (or anything else other than Visual Basic O_O).
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks