Jump to content

  • Log In with Google      Sign In   
  • Create Account

[java] Sharp Java


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • This topic is locked This topic is locked
51 replies to this topic

#1 eSam   Members   -  Reputation: 100

Like
0Likes
Like

Posted 18 October 2006 - 03:39 PM

I'm not posting to declare a flamewar between, neither it's a troll. I have good experience in Java, but never in C#. However some guys in the computer programming domain suggest that I'd better switch to C# as it's more capable in terms of library, more widespread and demanded by enterprise companies, and it's fast and sometimes it runs faster than native code, because optimization occurs at run time where the CRL can optimize for the machine the program is running on. I that true? if it's then can we assume that Java is nnear it's end. And by the way any real commercial application has ever been written in either Java or C#? I think both langs are for Academic use only or inside a lab.

Sponsor:

#2 Alpha_ProgDes   Crossbones+   -  Reputation: 4692

Like
0Likes
Like

Posted 18 October 2006 - 04:01 PM

I think I should direct you to this thread as it will answer most of your questions.

But! Seeing that all .NET languages compile to the same bytecode (correct if wrong) and Java and C# are very similar in function and code, maybe you might wanna to code in J#?

#3 Aldacron   GDNet+   -  Reputation: 3273

Like
0Likes
Like

Posted 18 October 2006 - 11:28 PM

Quote:
Original post by eSam
I have good experience in Java, but never in C#. However some guys in the computer programming domain suggest that I'd better switch to C# as it's more capable in terms of library,


I don't know where they get that from. Java's standard API has had over a decade of development and testing. Some Java programmers even complain that it's too bloated because of all of the features it includes. I've never heard anyone complain that it's not capable.

Quote:
more widespread and demanded by enterprise companies


That statement is false. Java is firmly entrenched in the enterprise world. C# is the newcomer there, but it is not even close to being more widespread. I have no numbers to back this up, but if you look through enterprise-related job announcements you'll get the real picture. C#'s strength is in the desktop market where Java has never really caught hold.

Quote:
and it's fast and sometimes it runs faster than native code, because optimization occurs at run time where the CRL can optimize for the machine the program is running on.


The same can be said for Java. The Sun distribution contains the HotSpot virtual machine, which compiles bytecode to optimized native code at run time. HotSpot has had several iterations and has improved with each release.

Quote:
if it's then can we assume that Java is nnear it's end.


Not even close.

Quote:
And by the way any real commercial application has ever been written in either Java or C#? I think both langs are for Academic use only or inside a lab.


Thousands of commercial applications have been written with both languages in many different domains.



#4 Son of Cain   Members   -  Reputation: 480

Like
0Likes
Like

Posted 19 October 2006 - 12:26 AM

Aldacron said it all, so I'll just second his post.
Guys... it's time you get rid of that FUD about Java!

#5 eSam   Members   -  Reputation: 100

Like
0Likes
Like

Posted 19 October 2006 - 10:51 AM

Thanks!

After reading your posts, following up the suggested links, and researching other resources, I came to a conclusion that C# is only an attempt to relplace or at least to gain attention as an MS propretary language. .NET as I understand can be served by any language that has a .NET compiler, and for the best of all there's managed C++.

Java's well formed syntax, and high portability make it a language of choice and for both enterprise and desktop, what can be better than Limewire? I wished that GoogleEarth was written in Java.

C# only resembles Java, and adds more complication and malformation to the structure so that it fits the .NET intermediate code or whatever, ...

#6 Promit   Moderators   -  Reputation: 7608

Like
0Likes
Like

Posted 19 October 2006 - 11:01 AM

Both Java and C# are alive and kicking (though not necessarily in exactly the same markets) and both are basically mandatory skills in today's world.

Quote:
Original post by eSam
After reading your posts, following up the suggested links, and researching other resources, I came to a conclusion that C# is only an attempt to relplace or at least to gain attention as an MS propretary language.
C# is an ECMA and ISO standard. It's substantially less proprietary than Java.
Quote:

Java's well formed syntax, and high portability make it a language of choice and for both enterprise and desktop, what can be better than Limewire?
Clearly you've never done much with Limewire. Good god. I'd say Limewire is one of the standing applications out there that really honestly hurts Java's image.
Quote:
C# only resembles Java, and adds more complication and malformation to the structure so that it fits the .NET intermediate code or whatever, ...
The usual term is expressivity -- the ability of a language to succinctly convey at a conceptual level the tasks that are being performed.

#7 Alpha_ProgDes   Crossbones+   -  Reputation: 4692

Like
0Likes
Like

Posted 19 October 2006 - 11:09 AM

Careful young padawan. Reread those links again and carefully. Or Promit will come through here and slap you with the truth! [grin] (edit: I'm 8 minutes too late) Seriously, let's take a quick look at what you said.
Quote:
Original post by eSam
Thanks!

After reading your posts, following up the suggested links, and researching other resources, I came to a conclusion that C# is only an attempt to relplace or at least to gain attention as an MS propretary language.

Not quite. C# is actually ANSI/ISO standard which means anyone can write a standard implementation. It's not a Microsoft-only language. Though MS puts alot of effort and resources into it.
Quote:
.NET as I understand can be served by any language that has a .NET compiler, and for the best of all there's managed C++.

Allow me to slightly add to that. Yes, J#, C#, VB.net, Boo, F#, IronPython all can use the .NET library and because they all compile to the same bytecode you can even intermingle one language with another. But please please don't use managed C++ when you can use C#. Believe me you WANT to use C#.

Quote:
Java's well formed syntax, and high portability make it a language of choice and for both enterprise and desktop, what can be better than Limewire? I wished that GoogleEarth was written in Java.

I'm not sure what GoogleEarth is written though I have a feeling it's Python (or partially Python) for some reason. I'm curious as to why you think GoogleEarth would be better if it were written in Java.

Quote:
C# only resembles Java, and adds more complication and malformation to the structure so that it fits the .NET intermediate code or whatever, ...

C# and Java do resemble each other. But that's the keyword resemble. C# at this point in the game, language-wise, is a far more powerful language than Java (though that may change with Java 6). You should check the C# 3.0 spec (actually there's a thread about it if you search for it). Very flexible and powerful.

Don't knock C# because MS touts it rather publicly. It's a good language with a wonderful editor. C# works with Visual Studio (MS compiler) and Mono (open-source, Novell backed compiler). So technically C# is as open sourced as Java. It's just that MS' version of C# is more mature than Novell's version, but that's changing as well.

#8 eSam   Members   -  Reputation: 100

Like
0Likes
Like

Posted 19 October 2006 - 11:55 AM

GoogleEarth is wirtten in C++ and it uses the Trolltech lib for gui. Gfx is both OGL and DX.

Well it could be more portable and written only once instad of having a crash-every-moment linux port.



#9 Son of Cain   Members   -  Reputation: 480

Like
0Likes
Like

Posted 19 October 2006 - 04:37 PM

Something that nobody disagrees with is the fact that, what really counts, is your ability to solve problems using good OOP (and generally, programming) practices, in whatever language you decide to use.

And also, being proficient in more than one language helps a lot; If you can, learn Java, C#, and perhaps one or another scripting language, or languages like Python and Ruby. Being tied to a language may "tarnish" your ability to judge the best solution for a given problem.

#10 Si Hao   Members   -  Reputation: 166

Like
0Likes
Like

Posted 19 October 2006 - 06:49 PM

Java still has plenty of years in its lifespan, it is not even out of its teens yet. Don't just listen to some people who talked like they know everything, do some research on what type of people is being hired by companies.

#11 Lucidquiet   Members   -  Reputation: 199

Like
0Likes
Like

Posted 20 October 2006 - 06:44 AM

Quote:
Original post by Son of Cain
Something that nobody disagrees with is the fact that, what really counts, is your ability to solve problems using good OOP (and generally, programming) practices, in whatever language you decide to use.

And also, being proficient in more than one language helps a lot; If you can, learn Java, C#, and perhaps one or another scripting language, or languages like Python and Ruby. Being tied to a language may "tarnish" your ability to judge the best solution for a given problem.


I agree with this totally.

How long does it take anyone who has been programming for a while to learn a new language? A week? If you know how languages work -- it doesn't take long to pick up a new language.

The same goes for libraries. The ideas are the same, and most of the patterns are the same, and where they differ can be learned as work progresses.

Language comparisons are difficult to quantify, because most ideas that are central to a language create a double edged sword (there's always a trade off).

If you go with C# how many different liscenses are you going to have to pay for yearly? From your competitor MS?


L-

#12 Son of Cain   Members   -  Reputation: 480

Like
0Likes
Like

Posted 20 October 2006 - 07:36 AM

To learn a new language certainly takes more than a week, even if you are already a somewhat skilled programmer.

Why?

Because, syntax apart, the real asset a language has is the standard API it carries, plus the community developed libraries that give support to it. Even if you learn how to use a language in one week, to use it efficiently is a matter of weeks, at the very least.

But, it's true that, once you program in a concept-related language, you can pick up a new one faster than when you switch from a structured or procedural to an OO language, for example. It's easier to learn C++ from Java, than to learn ol' Pascal from Java.

#13 Promit   Moderators   -  Reputation: 7608

Like
0Likes
Like

Posted 20 October 2006 - 07:41 AM

Quote:
Original post by Son of Cain
Because, syntax apart, the real asset a language has is the standard API it carries, plus the community developed libraries that give support to it. Even if you learn how to use a language in one week, to use it efficiently is a matter of weeks, at the very least.
More than that, each language has its own quirks, idioms, and conventions that take time to pick up. Java and C# are closer than most in this respect, but they are not the same.

#14 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

0Likes

Posted 20 October 2006 - 03:45 PM

Quote:
Original post by Alpha_ProgDes
Not quite. C# is actually ANSI/ISO standard which means anyone can write a standard implementation. It's not a Microsoft-only language. Though MS puts alot of effort and resources into it.


And that means what? A standard doesn't guarantee interoperability, if you use .Net on Windows you are locked with Windows and to Windows specific APIs.

Quote:
Allow me to slightly add to that. Yes, J#, C#, VB.net, Boo, F#, IronPython all can use the .NET library and because they all compile to the same bytecode you can even intermingle one language with another. But please please don't use managed C++ when you can use C#. Believe me you WANT to use C#.


Yes, and Java has more than 70 languages running on the JVM, so what?

Quote:
C# and Java do resemble each other. But that's the keyword resemble. C# at this point in the game, language-wise, is a far more powerful language than Java (though that may change with Java 6). You should check the C# 3.0 spec (actually there's a thread about it if you search for it). Very flexible and powerful.


C# is bloated. Bloated without hope. Microsoft adds whatever it wants, the way it wants without any consideration with backward compatibility (that's why .Net is a joke in the enterprise). Trust me, in a few years C# will be the new Perl, 10 ways of accomplishing the same task.

Questionable choices such as operator overloading alone should keep conscious developers away from this Microsoft trap.

Quote:
Don't knock C# because MS touts it rather publicly. It's a good language with a wonderful editor. C# works with Visual Studio (MS compiler) and Mono (open-source, Novell backed compiler). So technically C# is as open sourced as Java. It's just that MS' version of C# is more mature than Novell's version, but that's changing as well.


No, it's not. We are able to run Java code unmodified in many platforms and you can't do the same with C#. Visual Studio relies on Windows specific APIs, that means that an application written for Windows can't run on Linux.

I have been reading this forum for awhile and notice two things:

- There are a lot of .Net cheerleaders around, trying to push it to any newcomer, and creating FUD about Java all the time;

- I am not sure how these so-called Java developers stand this quiet. Why don't you just answer to this obnoxious behaviour? By any chance the "cheerleaders" are the owners of the forum?

Seriously, this is a Java forum, anyone marketing Microsoft proprietary stuff (yes, doesn't run on any platform unmodified) should be considered a Troll and treated as such.


#15 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

0Likes

Posted 20 October 2006 - 03:49 PM

Quote:
Original post by Promit
The usual term is expressivity -- the ability of a language to succinctly convey at a conceptual level the tasks that are being performed.


A.k.a "bloat", a language misdesigned from the start that had "new concepts" added as an afterthought based on the latest fashion.

Microsoft could really have done much better, oh they could! But they decided to just copy Java plus with a bunch of C++ crap in it (operator overloading anyone?), now they are adding stuff like crazy in the hope of beating Java, someday.

God, I wouldn't like to be a .Net programmer in 5 years, that will be a hell to work with.



#16 Aldacron   GDNet+   -  Reputation: 3273

Like
0Likes
Like

Posted 20 October 2006 - 09:47 PM

Quote:
Original post by Anonymous Poster
- I am not sure how these so-called Java developers stand this quiet. Why don't you just answer to this obnoxious behaviour?


Because it's a total waste of time. Correct the FUD when you see it and move on. It's pointless getting into "My Daddy can kick your Daddy's ass" sort of flamefests. Put the info out there and let people form their own opinions. Be comfortable in the fact that Java works for you, you know how to use it, and that you see benefits in using it. Everyone else will follow their own noses, whether it lead them to Java, C# or other pastures. If Joe Blow thinks Java sucks eggs and C# is the best thing ever -- who cares? We are all wired differently, there's no one-size-fits-all solution, so on and so forth.

Let the ranters and ravers rant and rave by themselves and keep writing your Java apps.



#17 Son of Cain   Members   -  Reputation: 480

Like
0Likes
Like

Posted 21 October 2006 - 12:17 AM

Quote:
Original post by Aldacron
Quote:
Original post by Anonymous Poster
- I am not sure how these so-called Java developers stand this quiet. Why don't you just answer to this obnoxious behaviour?


Because it's a total waste of time. Correct the FUD when you see it and move on. It's pointless getting into "My Daddy can kick your Daddy's ass" sort of flamefests. Put the info out there and let people form their own opinions. Be comfortable in the fact that Java works for you, you know how to use it, and that you see benefits in using it. Everyone else will follow their own noses, whether it lead them to Java, C# or other pastures. If Joe Blow thinks Java sucks eggs and C# is the best thing ever -- who cares? We are all wired differently, there's no one-size-fits-all solution, so on and so forth.

Let the ranters and ravers rant and rave by themselves and keep writing your Java apps.


Seconded. Couldn't have said better myself.
Blind Evangelism is as vicious as FUD - it distorts facts and mislead people.



#18 Alpha_ProgDes   Crossbones+   -  Reputation: 4692

Like
0Likes
Like

Posted 21 October 2006 - 02:58 AM

Quote:
Original post by Anonymous Poster
Quote:
Original post by Alpha_ProgDes
Not quite. C# is actually ANSI/ISO standard which means anyone can write a standard implementation. It's not a Microsoft-only language. Though MS puts alot of effort and resources into it.


And that means what? A standard doesn't guarantee interoperability, if you use .Net on Windows you are locked with Windows and to Windows specific APIs.

Remember that J2ME doesn't work the same on every mobile device (cell phones anyone?), so in that respect Java falls into the same trap. Also, there are people who have programmed in Java for Win, Linux, and OSX and have had to change their code slightly to get it to work properly for each platform. So if a user looking for cross-platform development wants to use C#, then that user will use Mono. If he targets Windows, he'll use .NET. The library/code changes are minimal when switching from a Mono-C# to a .NET-C# and vice versa.

Quote:
Quote:
Allow me to slightly add to that. Yes, J#, C#, VB.net, Boo, F#, IronPython all can use the .NET library and because they all compile to the same bytecode you can even intermingle one language with another. But please please don't use managed C++ when you can use C#. Believe me you WANT to use C#.


Yes, and Java has more than 70 languages running on the JVM, so what?

So, I was answering his question about language interoperability in .NET and also responding to his statement about Managed C++ being the best to use in .NET.

Quote:
Quote:
C# and Java do resemble each other. But that's the keyword resemble. C# at this point in the game, language-wise, is a far more powerful language than Java (though that may change with Java 6). You should check the C# 3.0 spec (actually there's a thread about it if you search for it). Very flexible and powerful.


C# is bloated. Bloated without hope. Microsoft adds whatever it wants, the way it wants without any consideration with backward compatibility (that's why .Net is a joke in the enterprise). Trust me, in a few years C# will be the new Perl, 10 ways of accomplishing the same task.

True, .NET 1.1 code breaks in .NET 2.0. But at least MS has taken it upon themselves to improve the language and the library setup. I'll admit to not having use Java or C# in anything non-trivial. But the MS library setup is far more intuitive than Java's. That alone makes my coding life much easier.

Quote:
Questionable choices such as operator overloading alone should keep conscious developers away from this Microsoft trap.

Well that's a coding philosophy issue. But C# allows function overloading as well as operator overloading so a developer can use whatever style is more intuitive and comfortable to him.

Quote:
Quote:
Don't knock C# because MS touts it rather publicly. It's a good language with a wonderful editor. C# works with Visual Studio (MS compiler) and Mono (open-source, Novell backed compiler). So technically C# is as open sourced as Java. It's just that MS' version of C# is more mature than Novell's version, but that's changing as well.


No, it's not. We are able to run Java code unmodified in many platforms and you can't do the same with C#. Visual Studio relies on Windows specific APIs, that means that an application written for Windows can't run on Linux.

As I bolded, in many but not all platforms is Java able to run unmodified as I noted above. Mono also can run C# unmodified on many platforms as well. Just to be clear, I only mentioned .NET when the OP asked about it. Other than that I kept my discussion to the languages. You seem to be arguing that Java is a better platform and language than .NET and C#. This kind of subtle back and forth can confuse the OP and other readers when it's not clear that you are about the Java Platform or the Java language.

Quote:
I have been reading this forum for awhile and notice two things:

- There are a lot of .Net cheerleaders around, trying to push it to any newcomer, and creating FUD about Java all the time;

Nowhere in my post have I cheerleaded C# or even .NET. I only responded to dispel misconceptions about the both. Also, nowhere in my post have I knocked or said anything ill about Java (language or platform).

Quote:
- I am not sure how these so-called Java developers stand this quiet. Why don't you just answer to this obnoxious behaviour? By any chance the "cheerleaders" are the owners of the forum?

If anything, they cheerlead Python [smile]

Quote:
Seriously, this is a Java forum, anyone marketing Microsoft proprietary stuff (yes, doesn't run on any platform unmodified) should be considered a Troll and treated as such.

The OP is on a Java forum asking about C#. Also as it has been said before, C# is not MS proprietary. So for a meaningful discussion maybe [in another thread] we should discuss Java, the language and Mono & C#.

#19 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

0Likes

Posted 23 October 2006 - 03:54 AM

Quote:
Original post by Alpha_ProgDes
Remember that J2ME doesn't work the same on every mobile device (cell phones anyone?), so in that respect Java falls into the same trap. Also, there are people who have programmed in Java for Win, Linux, and OSX and have had to change their code slightly to get it to work properly for each platform. So if a user looking for cross-platform development wants to use C#, then that user will use Mono. If he targets Windows, he'll use .NET. The library/code changes are minimal when switching from a Mono-C# to a .NET-C# and vice versa.


Terrible analogy. Cell phones aren't PCs. Cell phones, unlike PCs, have the most varied configurations of hardware that could cause an application to run differently. Java does its job in keeping a standard API to work with.

The problem with .Net is not cell phones, it's PCs! I have worked with Java for some time now, and I develop for various platforms (Unix and Windows), and I never had the need to "change the code slightly" from one platform to another.

Quote:
Well that's a coding philosophy issue. But C# allows function overloading as well as operator overloading so a developer can use whatever style is more intuitive and comfortable to him.


The problem is that we don't work in shells, we work in teams. The developer doesn't have a choice at all. Would you turn down a job because you found out whoever designed the application used operator overloading and you "don't use operator overloading"? That's ludicrous.

At each new feature added, the developer MUST know it, even if he doesn't use it because he might work with some system that uses it.

BTW, it's clear how operator overloading can be terribly misused.

Quote:
As I bolded, in many but not all platforms is Java able to run unmodified as I noted above. Mono also can run C# unmodified on many platforms as well. Just to be clear, I only mentioned .NET when the OP asked about it. Other than that I kept my discussion to the languages. You seem to be arguing that Java is a better platform and language than .NET and C#. This kind of subtle back and forth can confuse the OP and other readers when it's not clear that you are about the Java Platform or the Java language.


If you know what Java ME (cell phones) then you know that is subset of the Java's APIs. YOU CAN'T REALLY EXPECT TO RUN ECLIPSE IN THERE, DO YOU? So what's the point of "not able to run unmodified". PCs applications should run fine.

Quote:
Nowhere in my post have I cheerleaded C# or even .NET. I only responded to dispel misconceptions about the both. Also, nowhere in my post have I knocked or said anything ill about Java (language or platform).


What about "language-wise C# is far more powerful"? If that's not cheerleading then Microsoft advertisements aren't advertisements.



#20 Promit   Moderators   -  Reputation: 7608

Like
0Likes
Like

Posted 23 October 2006 - 04:24 AM

Readers should be aware that the AP in this thread is both a liar and an idiot.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS