suggestion for a choice(.NET or JAVA)

Started by
27 comments, last by smitty1276 17 years, 9 months ago
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.
Advertisement
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.
i think thats a win32 specific technique, not needed on linux.
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;

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.
Quote:Original post by Anonymous Poster
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.


So, your arguing that knowledge of the Java language without generics (which, lets face it, is the only major difference in the language itself) so profoundly cripples the OPs future as a Java developer that the notion of learning it while simultaneously learning the .NET framework is "dumb"? I suppose that using JDK 1.4.2, then, is also "dumb", since it also does not include generics.

Where on EARTH did you get the idea that generics are so amazingly complicated that the OP couldn't train his or her self (rather quickly) to throw in a pair of angle braces in the appropriate places, which really are confined only to containers. Generics in .NET, for what its worth, are completely optional and reside in their own collections namespace (and I'm not sure J# doesn't allow them).

So your point, really, is a complete non sequitor. In fact, I would argue that your post is evidence that you (not I) are lacking in practical exposure to Java, if you really believe that the core language has evolved so dramatically on a superficial learner level (it hasn't).

Does anyone have a valid criticism of my suggestion that someone could, if they were inclined, learn Java and .NET simultaneously by using J#? There are some, but this guy hasn't provided one.

EDIT:

I should also add that I'm not necessarily endorsing the idea of using J#. I was merely suggesting that one certainly (inarguably, even) could learn Java syntax while learning the .NET framework. This last response was only so emphatic due to the juvenile nature of the comment to which I was responding.
I definitely agree that you'll learn the language itself.

The problem is that it's so difficult to separate Java the language from Java the API and Java the language from Java the virtual machine, as they are quite intertwined. There are a lot of intricacies pertaining to the VM and API you just won't learn using the .NET platform and J#.
I really appreciate for you whom warmhearted gave a good suggestion for me.I think
that I will choose the JAVA.I read some article about the spirit of Open-Source.Maybe Microsoft is not only choice to me.

all in all I really thanks everyone gave a great advice.
am a newbie with game programming.let us learn together..hhh
Heh, no problem. Java is a good choice. I enjoy programming in Java, and, truth be told, if you know Java you can comforably switch to C# in about 20 or 30 minutes of reading.

This topic is closed to new replies.

Advertisement