• C#, C++ or Java?
    68 replies, posted
I'm looking into software engineering, obviously not a specific yet, and I have a bit of programming knowledge and a proper education. I'm nowhere near looking for a career yet, but the main question here is what would be more versatile to learn and get advanced with first? I'm not sure what kind of programs I will be making/working on yet, and I know it seems vague but the question is pretty simple. Which one would be the most useful and look better to know and get good with first? I have experience with all of them, mostly making games though, but the point is I don't care what the answer is. EDIT: After some thought, I'm leaning towards Java because that leaves me open to program for mobile phones with ease as well. Answer away though.
C++ is probably the most common in the industry. Also, as for programming for mobile phones, Android is one of the few modern phone platforms that supports Java that I know of (correct me if i'm wrong). You can program for nearly any phone platform with AirPlay SDK in C++. [url]http://www.airplaysdk.com/[/url] You can install it into your IDE of choice.
[QUOTE=ProWaffle;27808762]Also, as for programming for mobile phones, Android is one of the few modern phone platforms that supports Java that I know of (correct me if i'm wrong).[/QUOTE] Symbian, SonyEriccson, Samsung all the old mobiles platforms had a JVM
Well Airplay looks wonderful, I'll probably start up with C++ where I left off (it's the language I got farthest with). Actually it would probably be better to start from scratch. How much C++ should I know before moving to Airplay and experimenting?
[QUOTE=sLysdal;27811429]Symbian, SonyEriccson, Samsung all the old mobiles platforms had a JVM[/QUOTE] My mom's cellphone has a JVM. Not a smartphone, a Cellphone.
[QUOTE=AgentBoomstick;27811663]How much C++ should I know before moving to Airplay and experimenting?[/QUOTE] It's never too early to start experimenting, but you really want a good grasp of the language and what you're doing. Make sure you understand can use OOP.
[QUOTE=sLysdal;27811429]Symbian, SonyEriccson, Samsung all the old mobiles platforms had a JVM[/QUOTE] Yeah, just Android doesn't use a JVM.
[QUOTE=Crhem van der B;27837416]Yeah, just Android doesn't use a JVM.[/QUOTE] It does, unless programs are compiled to native code?
Apps are compiled into Dalvik Executables. They are launched in Dalvik virtual machines. Thus no Java is actually read/parsed/whatever you want to call it. Check Wikipedia for further information.
I would personally learn C# first, as it's more practical than Java, yet is incredibly similar. It's also easier than C++ to start with.
I'd recommend C#.
I find getting into C++ isn't as hard as everyone makes it out to be, just get one basic beginners book and one intermediate/advanced book and you're good to go
[QUOTE=ProWaffle;27808762]C++ is probably the most common in the industry.[/QUOTE] Nope it's Java by a huge margin, but this doesn't necessarily make it the best.
[QUOTE=bootv2;27933004]I started with c++ and a book, at the moment pointers and classes were mentioned I hit a dead end. took me half a year to get to understand those two.[/QUOTE] Yeah that's why I got two books, one is basic and one is more comprehensive. I read the basic book's chapter first to start at the shallow end, ignorant of advanced details but gaining an understanding of what I'm actually doing and not really how I'm doing it. Then i read the comprehensive chapter and that wraps it up for me.
C++ is incredibly low level, to the point you can (and I have) manage individual bytes of an object or number, and from that, individual bits. It's not safe if you don't know what you're doing.
[QUOTE=Jookia;27941910]C++ is incredibly low level, to the point you can (and I have) manage individual bytes of an object or number, and from that, individual bits. It's not safe if you don't know what you're doing.[/QUOTE] But you don't have to.
[QUOTE=SteveUK;27933683]Nope it's Java by a huge margin, but this doesn't necessarily make it the best.[/QUOTE] But I think that most popular applications are written in C++
C++ = C# > Java
[QUOTE=FalcoLombardi;28020520]C++ = C# > Java[/QUOTE] c++ = c# > * > java
[QUOTE=deloc;28020786]c++ = c# > * > java[/QUOTE] Java isn't the worst. Take something like Visual Basic and it'll be much worse than Java.
[QUOTE=sim642;28022241]Java isn't the worst. Take something like Visual Basic and it'll be much worse than Java.[/QUOTE] VB is a more practical language to learn than Java for a beginner, to be honest.
Don't care how computers work? Java. Don't understand how computers work? C#. Don't understand how to use Java or C#? C++.
[QUOTE=Jookia;28023551]Don't care how computers work? Java. Don't understand how computers work? C#. Don't understand how to use Java or C#? C++.[/QUOTE] stop trolling
[QUOTE=Jookia;28023551]Don't understand how computers work? C#.[/QUOTE] hello [editline]13th February 2011[/editline] It's not like I've ever written any Assembly and I certainly haven't written several compilers of varying functionality.
The types of projects you work on depends on the shop. Almost no one in my area uses C++ for "normal" application development, because of the increase of development time for the same set of features. For example, the place I work uses C# or SQL in most projects, while Deloitte has mostly Java development. I personally like C# because you can hammer out pretty sizable projects in short order, technologies that use it (ASP.NET/MVC/ect) are very amenable to, or even designed for, popular development patterns. However, the one thing I love above anything else in C# over Java is LINQ, hands down. It allows you to do some crazy stuff in a few lines of code, and can be ported into any LINQ provider, or even a custom one - which means I can write the whole application and then switch from MS server to Oracle to MySQL, and I only need to modify/make a few repository classes, with all my code still functional. However, if you plan on developing multi-platform applications or apps for phones, then Java may be better as it is far more portable. Or if developing (3D) games C/C++ is almost ubiquitous because of its speed and multi-platform environment. In short, again you just have to choose based on the problem you are facing, because no language is a magic bullet.
Java is fucking terrible, don't bother with it.
I have been starting to use Delphi lately, and I have really come to like it because it has a lot of the features of a higher level language like C# but also most if not all of the lower level features of a language like C++ (and a syntax almost similar to lua in some respects). A major thing I like about it is that it compiles to machine code so you don't need any frameworks installed, but a major drawback is that there are no free compilers for it, and not many good books on it. I don't use Java because it's slow and requires a VM, and C# for the same reason. C++ is excellent and can do anything you can imagine. It is my number one language. Java and C# were either directly or indirectly written in C/C++, like almost every other piece of software in the world.
[QUOTE=yakahughes;28054054]I don't use Java because it's slow and requires a VM, and C# for the same reason.[/QUOTE] And C++ requires a run-time. By the way, slow code is slow. Not Java, not C#. Just shitty code.
[QUOTE=gparent;28061734]By the way, slow code is slow. Not Java, not C#. Just shitty code.[/QUOTE] No, slow code makes already slow Java slower.
The difference is that natively compiled languages can statically link against their runtime library. [editline]15th February 2011[/editline] Although I guess you can AOT C# anyway...
Sorry, you need to Log In to post a reply to this thread.