• Need help choosing a course
    13 replies, posted
Due to some community college mishap I have to take an extra class and decided I would take a programming course but I would really like some advice on which class to take for a hobbyist game maker. Here are the class descriptions: [QUOTE=Introduction to C#]Introduction to Microsoft's .NET Programming Language C#. Includes introduction and simple compilation and execution of programs from the Visual Studio IDE, data types and declarations, using methods, creating classes and objects, selection and repetition, and creating and using arrays. Also includes inheritance, exception handling, GUI objects and controls from the Visual Studio IDE, and handling events.[/QUOTE] [QUOTE=Java programing]Introduction to Object Oriented Programming (OOP) using the Java programming language. Includes writing stand-alone programs and applets. Also includes strings, files, exception processing and threads.[/QUOTE]
C# is a good all round language, easy rapid prototyping for al your utility needs (think map editors, animation editors etc.) and can be used with game frameworks like XNA. Its probably personal preference but I would go with c#
C#.
Java.
language fanboism aside the description for the c# course looks better. but to what do you wish to progress in the future?
Thanks guys I had to choose tonight and I decided to take the c# class due to the popular opinion.
If you read the descriptions, the Java one seems to be more in-depth. Plus: most of the concepts discussed have 95-100% identical syntax between C# and Java
Everyone's hating on Java. C# is basically the same thing in every respect, except being newer and less portable. It doesn't run on VM like Java does, but it's still compiled just-in-time. I'm sure it's better at [i]something[/i] than Java but that doesn't account for the very strong preference for C# here. It's probably just a positive feedback loop resulting in C# being more popular here. (New programmers come here and choose C# because people here are already using C#, which results in more people using C#.) He's already enrolled in the C# course, and in the end that's a perfectly fine choice. I'm just pointing out that it wasn't nearly as obvious of a decision as everyone made it out to be.
Just wanted to add on that while C# is a good language for game dev, Java is much more practical for other applications, as it runs on all PC operating systems, Android, and can even be used as a server-side language. If you are planning on making applications that run cross-platform, java might be a better option for you.
[QUOTE=Speedfalcon;37340399]Just wanted to add on that while C# is a good language for game dev, Java is much more practical for other applications, as it runs on all PC operating systems, Android, and can even be used as a server-side language. If you are planning on making applications that run cross-platform, java might be a better option for you.[/QUOTE] Yeah, C# is great for gamedev, but there are better languages for a lot of other things. Also note that C# can run on Android and iOS as well (and I think Sony just added a C# SDK for the PS3 or something)
[QUOTE=Speedfalcon;37340399]Just wanted to add on that while C# is a good language for game dev, Java is much more practical for other applications, as it runs on all PC operating systems, Android, and can even be used as a server-side language. If you are planning on making applications that run cross-platform, java might be a better option for you.[/QUOTE] I just wanted to add on that both languages are exactly the same in these (and most other) respects. C# isn't any better for games than Java, and Java isn't any better than C# for other applications.
[QUOTE=qqqqqqqq;37369025]I just wanted to add on that both languages are exactly the same in these (and most other) respects. C# isn't any better for games than Java, and Java isn't any better than C# for other applications.[/QUOTE] Well, for a start - Java juns on JVM, while C# runs on .NET. C# is considered slightly faster in most applications, while Java is platform independent. Java is supported by a lot of IDEs while C# can only be coded in Visual Studio. Yes, the syntax is practically identical, but there are still slight differences. Furthermore, C# supports pointers and multiple public classes per file as well as goto statements (discouraged but sometimes useful) and more primitive types. They are definitely not exactly the same.
[QUOTE=Speedfalcon;37369314]Well, for a start - Java juns on JVM, while C# runs on .NET. C# is considered slightly faster in most applications, while Java is platform independent. Java is supported by a lot of IDEs while C# can only be coded in Visual Studio. Yes, the syntax is practically identical, but there are still slight differences. Furthermore, C# supports pointers and multiple public classes per file as well as goto statements (discouraged but sometimes useful) and more primitive types. They are definitely not exactly the same.[/QUOTE] C# is not considered slightly faster, in fact the Java JVM is considered best in class although the difference between it and the Microsoft CLR and even the Mono runtime are not large. Java and C# are both supported by multiple IDEs. The syntax is largely irrelevant. Unsafe code in C# is an interesting difference, however you can always code in an unsafe language and use JNI to interface if that's necessary. Java doesn't have goto, but it does have labeled break and continue which cover a number of use cases. Lack of unsigned in Java is annoying but not the end of the world. Regardless my point is that aside from surface level differences Java and C# are designed to fill the same gaps and hence are really quite similar in scope and design. I'd probably write in C# before I'd write in Java (having done both) but the choice is mostly arbitrary. If you're targeting Microsoft platforms only, C# may be the better option at least until Windows Phone gets native code support (only for windows phone and maybe xbla if anybody actually cares about that anymore, and no this does not mean C# is not useful on other platforms, which it is). You could make a reasonable argument that the CLR APIs are generally cleaner than Java's but once again this is largely superficial.
[QUOTE=qqqqqqqq;37369583]C# is not considered slightly faster, in fact the Java JVM is considered best in class although the difference between it and the Microsoft CLR and even the Mono runtime are not large. Java and C# are both supported by multiple IDEs. The syntax is largely irrelevant. Unsafe code in C# is an interesting difference, however you can always code in an unsafe language and use JNI to interface if that's necessary. Java doesn't have goto, but it does have labeled break and continue which cover a number of use cases. Lack of unsigned in Java is annoying but not the end of the world. Regardless my point is that aside from surface level differences Java and C# are designed to fill the same gaps and hence are really quite similar in scope and design. I'd probably write in C# before I'd write in Java (having done both) but the choice is mostly arbitrary. If you're targeting Microsoft platforms only, C# may be the better option at least until Windows Phone gets native code support (only for windows phone and maybe xbla if anybody actually cares about that anymore, and no this does not mean C# is not useful on other platforms, which it is). You could make a reasonable argument that the CLR APIs are generally cleaner than Java's but once again this is largely superficial.[/QUOTE] C# has P/Invoke for native code (similar to JNI), unsafe is a completely separate thing. It lets you directly access some CIL opcodes that deal with stack allocation, pointers, pinning memory from the GC, etc. And I personally find CLR APIs to be cleaner just because of properties, but the QUALITY of APIs in any language really depends on the developer(s).
Sorry, you need to Log In to post a reply to this thread.