Jump to content

Java vs C#: Can both make similar applications?


alienA2

Recommended Posts

So to kick my friday off, I would like to ask what are the differences in the two languages. I know this might turn to a debate. But I am still a newbie in the Java world. I have been over articles via google searches, and have seen comparisons of the two languages. My question: Can both Languages make software like: Games; Music Production Software; and Business Applications (eg MS Excel). Or is certain software more dependent on a certain language's functionality and packages etc etc.

Edited by alienA2
  • Like 1
Link to comment
Share on other sites

I not get familiar with C# so have just ask my friend about this question. Here is his answers: - Microsoft (in his words, mimics Java) developed C# so they are almost the same.- Java has JVM (>java test.class) while C# has .NET framework (>execute test.cs)- They all can make those softwares (VisualStudio integrated Office, when you create New project, u can find it in wizard dialog) Hope it helps :)

Link to comment
Share on other sites

- Microsoft (in his words, mimics Java) developed C# so they are almost the same.
In terms of syntax and philosophy, yes, although they differ in implementation and integrations, i.e.
- They all can make those softwares (VisualStudio integrated Office, when you create New project, u can find it in wizard dialog)
- Java has JVM (>java test.class) while C# has .NET framework (>execute test.cs)
Not exactly. C# source (.cs files) compile to ".exe" files. The ".exe" file however is similar to JAVA's ".jar" files in that after Windows realizes they're .NET files, it passes them to the .NET runtime (which Microsoft calls "Common Language Runtime" or CLR). Both JAVA and C# are optimized for "business" applications, although they can both used to make games, multimedia software and the like, if you have the right framework around the framework (if you can call the core JAVA and C# classes a "framework"). In the case of C#, that's XNA and WPF for games and multimedia software respectively. I'm not sure what JAVA's equivalents are (the landscape seems to be more fragmented - multiple packages, none of which seems as mature as the .NET equivalents). JAVA applications tend to work more seamlessly across platforms due to the higher level of abstractions provided by JAVA, whereas the seamlessness of .NET apps depends on whether Microsoft themselves have written a runtime for that platform and/or if the developer was wise enough to write the application with portability in mind. .NET applications tend to load and work faster, because CLR is running as a service (as opposed to JVM, which runs on demand) combined with the fact CLR hooks directly into Windows' GUI libraries, whereas JAVA depends on separate OS independent libraries that are loaded in addition to the app itself. Again though, these things are "tendencies", not inherent problems of the language or the platform - they can be worked around. You can probably find a JAVA app that's faster than a similar .NET app (if the .NET developer was silly enough), and you can probably find a .NET app that works more seamlessly across platforms than a similar JAVA app (if the JAVA developer was silly enough). Personally, I prefer .NET, but that might be because I care primarily for Windows, and take cross platforming as a bonus rather than a must.
Link to comment
Share on other sites

H

In terms of syntax and philosophy, yes, although they differ in implementation and integrations, i.e. Not exactly. C# source (.cs files) compile to ".exe" files. The ".exe" file however is similar to JAVA's ".jar" files in that after Windows realizes they're .NET files, it passes them to the .NET runtime (which Microsoft calls "Common Language Runtime" or CLR). Both JAVA and C# are optimized for "business" applications, although they can both used to make games, multimedia software and the like, if you have the right framework around the framework (if you can call the core JAVA and C# classes a "framework"). In the case of C#, that's XNA and WPF for games and multimedia software respectively. I'm not sure what JAVA's equivalents are (the landscape seems to be more fragmented - multiple packages, none of which seems as mature as the .NET equivalents). JAVA applications tend to work more seamlessly across platforms due to the higher level of abstractions provided by JAVA, whereas the seamlessness of .NET apps depends on whether Microsoft themselves have written a runtime for that platform and/or if the developer was wise enough to write the application with portability in mind. .NET applications tend to load and work faster, because CLR is running as a service (as opposed to JVM, which runs on demand) combined with the fact CLR hooks directly into Windows' GUI libraries, whereas JAVA depends on separate OS independent libraries that are loaded in addition to the app itself. Again though, these things are "tendencies", not inherent problems of the language or the platform - they can be worked around. You can probably find a JAVA app that's faster than a similar .NET app (if the .NET developer was silly enough), and you can probably find a .NET app that works more seamlessly across platforms than a similar JAVA app (if the JAVA developer was silly enough). Personally, I prefer .NET, but that might be because I care primarily for Windows, and take cross platforming as a bonus rather than a must.
In terms of syntax and philosophy, yes, although they differ in implementation and integrations, i.e. Not exactly. C# source (.cs files) compile to ".exe" files. The ".exe" file however is similar to JAVA's ".jar" files in that after Windows realizes they're .NET files, it passes them to the .NET runtime (which Microsoft calls "Common Language Runtime" or CLR). Both JAVA and C# are optimized for "business" applications, although they can both used to make games, multimedia software and the like, if you have the right framework around the framework (if you can call the core JAVA and C# classes a "framework"). In the case of C#, that's XNA and WPF for games and multimedia software respectively. I'm not sure what JAVA's equivalents are (the landscape seems to be more fragmented - multiple packages, none of which seems as mature as the .NET equivalents). JAVA applications tend to work more seamlessly across platforms due to the higher level of abstractions provided by JAVA, whereas the seamlessness of .NET apps depends on whether Microsoft themselves have written a runtime for that platform and/or if the developer was wise enough to write the application with portability in mind. .NET applications tend to load and work faster, because CLR is running as a service (as opposed to JVM, which runs on demand) combined with the fact CLR hooks directly into Windows' GUI libraries, whereas JAVA depends on separate OS independent libraries that are loaded in addition to the app itself. Again though, these things are "tendencies", not inherent problems of the language or the platform - they can be worked around. You can probably find a JAVA app that's faster than a similar .NET app (if the .NET developer was silly enough), and you can probably find a .NET app that works more seamlessly across platforms than a similar JAVA app (if the JAVA developer was silly enough). Personally, I prefer .NET, but that might be because I care primarily for Windows, and take cross platforming as a bonus rather than a must.
To keep it simple, are you saying .NET is the way to go? Sorry for asking, but is .NET a computer language of its own, or is it C# its langauge?
Link to comment
Share on other sites

To keep it simple, are you saying .NET is the way to go?
Yes.If you primarily care for Windows PCs and Phones: yes. For those environments, .NET is better.If you care for Windows PCs, Linux, OSX, Solaris, and pretty much all phones with the notable exceptions of Windows Phone and iOS devices, then Java is a better choice.
Sorry for asking, but is .NET a computer language of its own, or is it C# its langauge?
.NET is the platform on which C# programs run. The platform includes:Common Language Runtime (CLR) - Microsoft's equivalent of Java Virtual Machine (JVM).Intermediate Language (IL) - Microsoft's equivalent of Java Byte Code.Standard set of classes, similarly to Java's standard classes (accessible on a IL/byte code level)From that point on, things diverge.The Java platform only contains a compiler for the Java language to turn it into Java byte code.Visual Studio contains by default compilers for C#, VB.NET, C++.NET, all of which are compiled to IL. There are also other compilers (not bundled with Visual Studio) for IronPHP, IronPython, which, as you might guess, are .NET flavors of PHP and Python, respectively, and there are others too. The idea is that whatever language you prefer, if it's compilable to IL, CLR will run it. This ability is in fact why Microsoft calls it "Common" Language Runtime, rather than "C# runtime".
Link to comment
Share on other sites

These are the two high end smart phone devices with the most market share, yes. If you also include Symbian and other low end (smart) phones, those devices are not the top ones.But on the high end smart phone arena, there is "Windows Phone 7" too, which was released around the time of Windows 7. And it has native support for .NET and Silverlight.I've used one (it wasn't my phone...), and I actually like it better than Android (which I have on a tablet I'm selling...). And iOS, for me, is out of consideration, as iPhone is not only too expensive, but I hate the fact I must go through the market for apps, while Android and Windows Phone allow you to install from arbitrary files you've downloaded from a computer and transmitted without any filters to the phone via cable. Ahhh... that's freedom!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...