Jump to content
Sign in to follow this  
alienA2

Java vs C#: Can both make similar applications?

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

Share this post


Link to post
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 :)

Share this post


Link to post
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.

Share this post


Link to post
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?

Share this post


Link to post
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".

Share this post


Link to post
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!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...