• Advertisement
Sign in to follow this  

suggestion for a choice(.NET or JAVA)

This topic is 4246 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hi there~Im a student.I had a choice recently.My school gave 2 things let me choose:.NET or JAVA.I really confused in this time. Please gaves some suggestion for me.

Share this post


Link to post
Share on other sites
Advertisement
Here is some information which may help you decide whether to choose Java or .NET. Java is platform independent. It is almost completely portable across all major systems, and in the case that it isn't, it's pretty easy to deal with. .NET is Windows only, although it's possible to get it working in Linux. Java and .NET languages are all hybrid languages. That is, they both use Just-in-time (JIT) compilation. Rather than using an interpreter, which is roughly 10 times as slow as machine code, Java and .NET both compile to intermediate code. In Java's case, it is called bytecode, and in .NET's case, it is called MSIL (Microsoft intermediate language). A sophisticated virtual machine then interprets this intermediate code and compiles any bottleneck code to machine code on the fly (by way of sophisticated runtime profiling). All in all, this makes for very quick execution speed, approaching languages like C.

.NET contains a plethora of languages which all share a common library. Thus, it's very easy to use multiple .NET languages in a single project. .NET aims to be something more than simply a language/API/virtual machine like Java. .NET aims to take it one step further than that and introduce new programming concepts and a whole new operating environment for Windows. Java is a single language with an enormous high-level library similar to .NET's. To be brutally honest with you, Java and C# (C# is the flagship .NET language) are very similar. If you learn one, you will be able to pick up the other in no time at all.

Share this post


Link to post
Share on other sites
I would recommend you try them both out and see which one you prefer.

Quote:
Original post by Kevinator
...
Very well put [wink]... For clarification of .NET on Linux/Mac, you'll be looking at Mono.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Kevinator
.NET contains a plethora of languages which all share a common library. Thus, it's very easy o use multiple .NET languages in a single project. .NET aims to be something more than simply a language/API/virtual machine like Java. .NET aims to take it one step further than that and introduce new programming concepts and a whole new operating environment for Windows.


Well, what bothers me sometimes is the "marketing speak". Don't think marketing speak comes only from marketeers, it comes from developers too!!

- Why would be desirable to have "many languages" inside one project? Or even inside one company?

The only thing other languages would be useful for would be for scripting and Java has been able to do that for years.

BUT No sane manager would allow the developers to pick their "favorite languages" to work in one project, given that all developers would need to have the skills in all languages chosen, not to mention the replacement of developers would be quite difficult. So why is this brought up as "something good"?

How many of you here is a professional developer and used many languages in one project (not counting the scripting case which happens oftentimes)?

The second affirmation:

- What .Net brings of "step further"? What programming concepts?

There is zero innovation in .Net. If it wasn't copied from Java it was copied from somewhere else, so I fail to see the "step further".

If by "step further" you mean a different way of developing Windows applications, a way which resembles Java, then you are a bit late. Java has provided much of what .Net has for some time now, and not Windows only.


Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Quote:
Original post by Kevinator
.NET contains a plethora of languages which all share a common library. Thus, it's very easy o use multiple .NET languages in a single project. .NET aims to be something more than simply a language/API/virtual machine like Java. .NET aims to take it one step further than that and introduce new programming concepts and a whole new operating environment for Windows.

- Why would be desirable to have "many languages" inside one project? Or even inside one company?

For the same reason it would be desirable to have many tools at a construction site. That is, unless you enjoy hammering nails with a bowsaw or something. [grin]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Kevinator
For the same reason it would be desirable to have many tools at a construction site. That is, unless you enjoy hammering nails with a bowsaw or something. [grin]


Answer lacking in substance. The languages in .Net are nothing but "skins", using one or the other have little difference since the class library will be the same, the class library being the same it means you are stuck in ONE PARADIGM, and one paradigm only.

Try again.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Quote:
Original post by Kevinator
For the same reason it would be desirable to have many tools at a construction site. That is, unless you enjoy hammering nails with a bowsaw or something. [grin]


Answer lacking in substance. The languages in .Net are nothing but "skins", using one or the other have little difference since the class library will be the same, the class library being the same it means you are stuck in ONE PARADIGM, and one paradigm only.

Try again.

Well I believe Lisp, Boo, and F# are functional(-type) language that are .NET. So obviously you are not bound to one paradigm.

Also, the .NET library is much much more intuitive than Java's Swing and AWT libraries. No I'm not a professional developer, nor do I have to be, but I've used and programmed in both languages. So I've gained the right to make that comment and critique.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Alpha_ProgDes
Well I believe Lisp, Boo, and F# are functional(-type) language that are .NET. So obviously you are not bound to one paradigm.


Are all of them 100% compliant production-quality languages?
Do they have enough documentation for the developer not to be in trouble?

If you want to count "languages" as a metric for "good" then the JVM runs tens of it, I saw a site pointing to over 70 of them. But I would be cautious of recommending any of them to a developer because for production code production-quality level and support are expected.

Quote:
Original post by Alpha_ProgDes
Also, the .NET library is much much more intuitive than Java's Swing and AWT libraries. No I'm not a professional developer, nor do I have to be, but I've used and programmed in both languages. So I've gained the right to make that comment and critique.


I have worked with .Net for some time and I must say that .Net's library is poor if compared to Java's.

The funny thing is that I have heard some recently-converted-to-C# C++ developers talking about the class library of .Net as being a step forward:

point 1: Java has such class library since 1995
point 2: .Net's class library is only a fraction of Java's. Java's is more complete.

Maybe if C++'s developers weren't too busy spreading the FUD "Java is slow", they would have noticed it.

Now if the library looks good or bad, that's entirely subjective. I, for example, love Java's library and didn't like .Net's, especially the Collections which were ridiculous (not sure if they fixed it).

Share this post


Link to post
Share on other sites
also IIRC the .NET just in time compiler, once you run the program in your pc it compile a version of the "code path" in native code for your machine, which will make the aplication runs better the following times you use the program.

i will preffer using .NET its so much easer to use IMO, and about the multiple languages thingies... i thinks is very cool that you can use a library that
somebody else programmed in another language and you don't have to make the library your self.

Also programming windows interfaces are WAY much easier to do in Visual Studio than anything i have seen for java.

my vote goes to .NET... ( especially C# ) all the nice things from Java and C++ together :D

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by smitty1276
You could always use the .NET version of Java.


You must be joking right? The Java in .Net is the code that Microsoft got sued over by Sun because it was an incompatible version of Java 1.2. I think the version is 1.2, which dates back to 20th century!!! The current version is 5.0, which has generics and lots of other stuff, and later this year 6.0 will be released.

Ok, if you want Java, 100% compatible Java, the greatest and the latest, not the broken stuff from Microsoft, then there's only one place to go... Oh wait, there are several places to go like Sun, IBM, BEA, Apple, you choose...

BTW, I recommend for those that are studying Java to give Java 6 a try. It's still in beta but it is impressive.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Quote:
Original post by smitty1276
You could always use the .NET version of Java.

The Java in .Net is the code that Microsoft got sued over by Sun because it was an incompatible version of Java 1.2. I think the version is 1.2, which dates back to 20th century!!! The current version is 5.0, which has generics and lots of other stuff, and later this year 6.0 will be released.

I think he reffers to J# which is a Java-Like language but in .NET

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by idloco
also IIRC the .NET just in time compiler, once you run the program in your pc it compile a version of the "code path" in native code for your machine, which will make the aplication runs better the following times you use the program.


That's old news. Several platforms are JIT compiled besides Java and .Net. In Java this is called HotSpot compiler, which compiles code at runtime, not sure if differs from JIT in any meaningful way or it's just "marketing speak". And in the case of Java the VM does optimizations to the code at runtime.

Quote:

i will preffer using .NET its so much easer to use IMO, and about the multiple languages thingies... i thinks is very cool that you can use a library that
somebody else programmed in another language and you don't have to make the library your self.


As if you could simply run whatever language under .Net. You would need in real world:

- To have 100% compatible implementation of the language;
- To have decent speed in running that code, because it may be that the VM doesn't know how to optimize it;

Quote:

Also programming windows interfaces are WAY much easier to do in Visual Studio than anything i have seen for java.

my vote goes to .NET... ( especially C# ) all the nice things from Java and C++ together :D


http://www.netbeans.org/
http://www.jetbrains.com/idea/
http://www.eclipse.org/

Your answer for draggin'n dropping and killer functionality, functionality that Visual Studio developers can only dream of (Refactoring? :) )

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by idloco
Quote:
Original post by Anonymous Poster
Quote:
Original post by smitty1276
You could always use the .NET version of Java.

The Java in .Net is the code that Microsoft got sued over by Sun because it was an incompatible version of Java 1.2. I think the version is 1.2, which dates back to 20th century!!! The current version is 5.0, which has generics and lots of other stuff, and later this year 6.0 will be released.

I think he reffers to J# which is a Java-Like language but in .NET


Really? That's what I was talking about. What do you think that code (from J#) was based on? Do you think that's the latest Java?

Share this post


Link to post
Share on other sites
VS has refactoring, and to be honest I think you have some real serious misconceptions about how the .NET runtime works. Also, there's a complete JVM implementation on .NET -- that is, there is a system that translates from JVM bytecodes to CLI bytecodes. There is also an implementation of .NET on Java, that does exactly the reverse.

Anyways, for games .NET generally has stronger library support than Java. Other than that, it's personal preference...my preference goes to .NET. Can't stand Java.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Quote:
Original post by Alpha_ProgDes
Well I believe Lisp, Boo, and F# are functional(-type) language that are .NET. So obviously you are not bound to one paradigm.


Are all of them 100% compliant production-quality languages?
Do they have enough documentation for the developer not to be in trouble?

Good questions. I'll have to look that up.

Quote:
If you want to count "languages" as a metric for "good" then the JVM runs tens of it,

STOP! No one (ie. ME) said anything about "'languages' as a metric for 'good'". I was strictly responding to the paradigm statement you made.
Quote:
I saw a site pointing to over 70 of them. But I would be cautious of recommending any of them to a developer because for production code production-quality level and support are expected.

Even though you are an AP so you can't make links linkified, you can still provide the link. It would be helpful.

Quote:
Original post by Alpha_ProgDes
Also, the .NET library is much much more intuitive than Java's Swing and AWT libraries. No I'm not a professional developer, nor do I have to be, but I've used and programmed in both languages. So I've gained the right to make that comment and critique.

Quote:
I have worked with .Net for some time and I must say that .Net's library is poor if compared to Java's.

Again, I said intuitive not how robust or "how many functions and classes" it is.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Quote:
Original post by smitty1276
You could always use the .NET version of Java.


You must be joking right?


Halfway joking. But the fact of the matter is that if the OP used J#, he would 1) Know java syntax and 2) know the .NET framework. The version 1.2 thing (assuming that is still true) isn't an issue, because he wouldn't be using the class libraries. Swing and everything works, to my understanding. And once you know the java syntax, it is a 10 minute ordeal to move to C#.

So I was halfway serious, and halfway joking.

Share this post


Link to post
Share on other sites
Quote:
Original post by raiden56
hi there~Im a student.I had a choice recently.My school gave 2 things let me choose:.NET or JAVA.I really confused in this time.

Please gaves some suggestion for me.

Java has its advantages and disadvantages just like any other language, and is built with OOP paradigm in mind. You are a college student. I suggest that you take Java, and take whatever programming and data structure classes they want you to take. The good thing about it is that most data structures and programming techniques can be easily accomplished with OOP, and Java is a great language to teach you OOP. However it's not enough to know just OOP, you need to know other paradigms to broaden your knowledge (functional, procedural, etc). In addition to that, Sun Microsystem has defined some good programming practices and coding convention for Java that every Java programmer should follow; it's a good thing. It has great support and is available to almost all programmable devices out there.

Now .NET, think .NET as a platform, rather than a language. Code that is written in .NET languages can only run on system that has .NET platform installed. There are many .NET languages (C++ .NET, C#, VB.NET, even a .NET's version of Java: J#, etc). Their syntaxes are different and unique in their own way, but they share a common library. It's fairly new, and its availability is limited. So far, only Windows that has full support of .NET.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Quote:
Original post by Kevinator
For the same reason it would be desirable to have many tools at a construction site. That is, unless you enjoy hammering nails with a bowsaw or something. [grin]


Answer lacking in substance. The languages in .Net are nothing but "skins", using one or the other have little difference since the class library will be the same, the class library being the same it means you are stuck in ONE PARADIGM, and one paradigm only.

Try again.


I would buy your rebuttal IF the library you use 100% affects your ability to solve a problem. You seem to be ignoring the fact that different languages affect your expressivity toward different problems, even if they share the same library.

Share this post


Link to post
Share on other sites
Quote:
Original post by alnite
So far, only Windows that has full support of .NET.


Windows is the only platform that will EVER fully support/implement .NET, because .NET is a non-standard implementation of the CLI standard... or, rather, the full CLI standard is a subset of the non-standard .NET platform.

The actual CLI standard, on the other hand, is fully implemented, very mature, and fairly widely used on Windows, Linux, MacOS, Solaris, etc. at the Mono project.

Share this post


Link to post
Share on other sites
Quote:
Original post by Alpha_ProgDes
Quote:
Original post by Anonymous Poster
Quote:
Original post by Alpha_ProgDes
Well I believe Lisp, Boo, and F# are functional(-type) language that are .NET. So obviously you are not bound to one paradigm.


Are all of them 100% compliant production-quality languages?
Do they have enough documentation for the developer not to be in trouble?

Good questions. I'll have to look that up.



Being a .NET language implies compliance i.e. Compliance is a requirement. As for production quality, what is meant? Industrial strength applications may be written in F# which is arquably as fast as C#. Each language is "production" level with respect to industry and task in consideration. Support for all languages are quite substansive with active forums, clean sites, fair to good documentation, wikis and responsive developers.

With respect to Languages, I will state my opinion (subjective) that the level of interoperability and ease of use is far greater in .NET . The .NET architecture is dare I say cleaner and benefits from being younger with respect to lessons learned and mistakes of the past corrected.

*Note that neither Lisp nor Boo are functional languages with Lisp probably having more evident support for the functional paradigm.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by smitty1276
Quote:
Original post by Anonymous Poster
Quote:
Original post by smitty1276
You could always use the .NET version of Java.


You must be joking right?


Halfway joking. But the fact of the matter is that if the OP used J#, he would 1) Know java syntax and 2) know the .NET framework. The version 1.2 thing (assuming that is still true) isn't an issue, because he wouldn't be using the class libraries. Swing and everything works, to my understanding. And once you know the java syntax, it is a 10 minute ordeal to move to C#.

So I was halfway serious, and halfway joking.


Well, I think you need to check the state of Java. In the version 5 there were major changes to the language, like the inclusion of Generics and some other stuff. And probably there will be others in the future (version 6 no, but version 7 probably).

So, the "developer" would have a snapshot of what Java looked like 1998, without all the libraries that make it a productive environment. Wow! That's so... dumb.

For what I heard J# was made as way of people with legacy Java code bases to migrate to .Net with little trouble. See, the word legacy makes a whole lot of difference.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
i think thats a win32 specific technique, not needed on linux.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Daerax
Being a .NET language implies compliance i.e. Compliance is a requirement. As for production quality, what is meant? Industrial strength applications may be written in F# which is arquably as fast as that of C#. With respect to industry and task at hand each language is "production" level. Support for all is substansive with active forums ,wikis and responsive developers.


You didn't understand the point:

- if you talk about an extra language it must be 100% compatible with the original. If you implement 95% of Python for running on .Net then not all applications would work. And the "implementation" include the ability of using all libraries from the specified language, or else it's just a "skin" for C#.

- production quality means stable (it won't fail for unexplainable reasons), with little security flaws or when found are corrected quickly, periodical updates and some security regarding the improvement of it, and with a decent documentation.

Would you like to have a giant project in your hands and discover that the language you used is no longer maintained? Or there are undocumented stuff you need to figure out by yourself or stuff missing?

Ok, now:

- a page on sourceforce.net is not enough for documentation;
- a forum like this is not enough for support. Professional people are needed if you are serious about using it, for not depending solely on help of random strangers;

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Quote:
Original post by Daerax
Being a .NET language implies compliance i.e. Compliance is a requirement. As for production quality, what is meant? Industrial strength applications may be written in F# which is arquably as fast as that of C#. With respect to industry and task at hand each language is "production" level. Support for all is substansive with active forums ,wikis and responsive developers.


You didn't understand the point:

- if you talk about an extra language it must be 100% compatible with the original. If you implement 95% of Python for running on .Net then not all applications would work. And the "implementation" include the ability of using all libraries from the specified language, or else it's just a "skin" for C#.

- production quality means stable (it won't fail for unexplainable reasons), with little security flaws or when found are corrected quickly, periodical updates and some security regarding the improvement of it, and with a decent documentation.

Would you like to have a giant project in your hands and discover that the language you used is no longer maintained? Or there are undocumented stuff you need to figure out by yourself or stuff missing?

Ok, now:

- a page on sourceforce.net is not enough for documentation;
- a forum like this is not enough for support. Professional people are needed if you are serious about using it, for not depending solely on help of random strangers;


I did miss the point. This requirement for 100% compatibility is a strange one and one that does not strike as sensible. The languages are as compatible as is possible while remaining consistent with the CLI specs. It also helps to simply not remake the language and to implement new features and discard old to reflect the new platform. People moving to .NET should usually be developing new codebases and generally not importing but even if, the languages have enough compatibility to ensure the movement will not be too painful nor long.

A skin for C#? Many of these languages produce either their own IL code or run consoles with no need for C#. F# for example is strongly cross compilable with OCaml thus reading about OCaml and knowing .Net architecture while noting the minute differences is all that is required to know how to use it. There is plenty of documentation there. The same for Boo (pythonish) and Lisp. How do you skin C++ with Standard ML? Tell me this and I can tell you how to skin C# with F#. It is much better to have a feast which consists of roasts and potatoes, chicken or duck, pork or steaks , pastas, rices , pies and many sauces to mix and match to your taste buds' delight than one which consist of pots of bland brown rice.

EDIT _> The point though is that you really should not be narrowing yourself to one langugage, the door is opened to you and you can simply choose and mix what portion of whatever language you wish, and even if it is dead, so long as that portion which you wish is verified then all is fine. This must all be done carfully. Ofcourse.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement