Will Java Replace .NET?

S

Saeid

Hello news,
Most people know the Java language mantra "write once, run everywhere" from
a few years back, referring to the Java Virtual Machine. After working with
early renditions of Java, some developers used to joke that the phrase should
really be "write once, debug everywhere." The designers of the .NET Framework
certainly got the "write once, run everywhere" concept right.
 
J

Jon Skeet [C# MVP]

Saeid said:
Hello news,
Most people know the Java language mantra "write once, run everywhere" from
a few years back, referring to the Java Virtual Machine. After working with
early renditions of Java, some developers used to joke that the phrase should
really be "write once, debug everywhere."

Indeed - although I believe that it applies far more to client apps
than server apps, and although you should test everywhere (just as you
should test a .NET application on every version of Windows you plan to
support) there usually aren't many problems with server apps. That's
certainly my experience.
The designers of the .NET Framework
certainly got the "write once, run everywhere" concept right.

Um, in what way does it apply to .NET, which only runs on Windows?
There are CLRs for other platforms, of course, which isn't quite the
same thing, and those CLRs are either explicitly not for commercial use
(Rotor) or have the threat of IPR action hanging over their heads
perpetually.

It's a shame, really :(
 
S

Saeid

Hello Jon Skeet [C# MVP],
Jon, i think you must go to java newsgroups:)
Java has succeeded in two key areas: as the dominant language for writingserver-
side applications and as the top language for teaching computer science in
colleges. The. NET Framework is better for both these areas, although obviously
it is not inevitable that it will become dominant in either. For writing
client applications, there is no question that C# clearly outstrips Java.
 
N

news

Yech. I wrote a couple of those Natural language systems, in Prolog, and I
can tell you that there is nothing "advanced" about describing an algorithm
in English. When I want to communicate an algorithm in an article or book,
I write it in code. Why? Because it is more "advanced" to describe things
in a language that is designed for the description. If you want to discuss
philosophy, use English (or French). But if you want to describe complex,
mathematical operations, use code.


I know Gates has his teeth is trying to crack self-adpative algorithms which
are more advanced than self-tuning. Most postgraduates know that limits in
logic make it impossible to use current programming to solve complex
problems, like vision control, speech analysis. Although simple programs
exist, they still exist mainly using hardware to process and digitise
signals, eg voice, and not actually process the conversation, eg single word
answers.

You probably know that predictions of "thinking" algorithms were widely
predicted 20 years ago, but no one has been able to crack the problem.

I included one link below:
http://research.microsoft.com/nlp/

Is it cold? or is it less than 0 degrees? Try coding "cold" in c#, and find
you need 20 conditions, try coding the logic for a conversation and find you
need 20 million conditions.

Anyway, I want to upgrade my c# systems, and am looking for a new language.
 
J

Jon Skeet [C# MVP]

Saeid said:
Jon, i think you must go to java newsgroups:)

I've certainly done a fair amount of posting in Java newsgroups in the
past. Not so much recently. I think it helps to have a fair degree of
experience in both platforms before judging the two though.
Java has succeeded in two key areas: as the dominant language for
writingserver- side applications and as the top language for teaching
computer science in colleges. The. NET Framework is better for both
these areas, although obviously it is not inevitable that it will
become dominant in either.

I'm far from convinced that the .NET framework is better for server-
side apps - especially when there are so many servers which don't run
Windows!
For writing client applications, there is no question that C# clearly
outstrips Java.

Again, I'm not entirely convinced. Start-up time is better for .NET in
general, although it clearly slows down with complex Windows Forms
apps. It's quite possible to write very responsive, good-looking apps
in Java though - Eclipse is the most obvious example.
 
G

Guest

How can a programming language claim that it is the most suitable way of
coding an application on both client side and server side. We have today
almost our cell phones as servers or clients. So a language preference is not
merely the things it promise, but the ease you find in it.

What makes .NET attractive to me is that it provides me with extensive
usability, which I can hardly find in Java development.

- Baran Ozgul
 
J

Jon Skeet [C# MVP]

<"=?Utf-8?B?QmFyYW4gT3pndWw=?=" <Baran
How can a programming language claim that it is the most suitable way of
coding an application on both client side and server side.

Well, I'm actually talking about platforms rather than languages, but
either way - what do you think inherently makes server-side development
different from client-side development in terms of platform/language
needs? What is *stopping* one platform from being better for both?
We have today
almost our cell phones as servers or clients. So a language preference is not
merely the things it promise, but the ease you find in it.

What makes .NET attractive to me is that it provides me with extensive
usability, which I can hardly find in Java development.

What exactly do you mean by "extensive usability"?
 
G

Guest

First of all, they're two different things. Java is a programming language,
and .NET is a system of programming languages, runtimes, and execution models.

Java isn't a standard. It's a proprietary language owned by Sun.

Java is on its way out. This is the opinon of many industry analysts. (For
example see http://www.robert.to/Predictions05.html ).

Java is an incomplete, ineeficient "toy" language not suitable for many
types of programming. For example, Java does such a lousy job with desktop
applications that they are few and far between. All large software houses
have abandoned plans to ship Java version of their applications. Even Sun's
so-called "Java Desktop" is a suite of native C/C++ language applications.

Finally, the people behind Java aren't a bunch I want to associate with. See
this reference
http://www.rotten.com/library/bio/crime/criminals/patrick-naughton/ for more
info.
 
G

Guest

The reason that most hosts disallow Java work on servers is simple: Java
J2EE(Tomcat and/or JBoss, which are free) are heavyweight solutions. They
run in a single persistent process that takes a lot of system resources.
Further, these processes aren't really very good for sharing, since simple
programming mistakes can take down many different websites.

PHP is a lightweight solution. Each time a user accesses a web page, it
runs a process that cleans up after itself when it is done. So the operating
system does a much better job of protecting users from one another on the
same machine. On the negative side, there is overhead associated with
running a process, deserializing and serializing state, etc., that the Java
process does not have. But in many cases, the isolation is much more
important.

So most hosts tend to use PHP over Java. If you are running your own data
center, you might choose Java over PHP because it is a much more robust and
complete solution. Or, if you have Wintel servers, you can't go wrong with a
..NET server-side solution. :) Honestly, if you compare performance
between Microsoft's technologies and the really heavy J2EE stuff, you will
note that Microsoft kicks the pants off of Java in most cases.
 
I

Ivar

Seems get funny, most big compaines use java and toy stories begin.
Pretty many places use jsp insted asp.net, Sybase,Ibm,Orcale,HP,Cisco,...
have world best software with java support.

And what about java applets, I'm sure that it has big usage - net won't
support things like that at all.

To me seems that .NET user say net it the only one java java users that java
is only way.
As I said once .NET is only good for windows, but once you need to get you
applications to run everywhere, then you are in big shit.
 
J

Jon Skeet [C# MVP]

<"=?Utf-8?B?SmFzb24gU21pdGg=?=" <Jason
So most hosts tend to use PHP over Java. If you are running your own
data center, you might choose Java over PHP because it is a much more
robust and complete solution. Or, if you have Wintel servers, you
can't go wrong with a .NET server-side solution. :) Honestly, if you
compare performance between Microsoft's technologies and the really
heavy J2EE stuff, you will note that Microsoft kicks the pants off of
Java in most cases.

Well, that's certainly true if you look at PetShop. But then to get a
balanced view you'd have to read the many critiques of each of the
versions of PetShop.

You clearly have major axes to grind against Java, and don't appear to
be looking objectively at it at all. (Java is the name of the runtime
as well as the language, by the way.)

Somehow I doubt Java will be dying any time soon. As well as on the
server, it's doing pretty well on the mobile phone end of things, in
case you hadn't noticed.
 
G

Guest

I think both Java and .NET are here to stay and compitition among them is
proving tobe good for us.
I've been using Java for last 5 years and .NET since 2 years. I suppose .NET
is the best option to write windows based client applications, because it's
really fast and with tools like VS .NET development is atleast 80% faster.
for similar reasons (and a lot more) ASP.NET is again better choice for web
development because it's really quick. I've used JSP for more than 2 years
and it's pain in the neck. I suppose things have changed with Java
ServerFaces but java clearly lacks good IDE like VS .NET Because I personally
belive that Eclipse or Jbuilder are not as good as VS .NET

Also most of security issues are addressed in Windows 2003 and IIS 6 and
there is no good reason for not developing new systems using .NET. Having
said that Java is still best choice when u want robustness and stability. I
can leave an TCP/IP Server written in Java running and go on holiday, but I'm
not sure if I can do the same with .NET (tobe honest I haven't tried it out)
again end of the day quality of the code determines stability of application
and not the platform.

At work we are experimenting architecture where our web sites are running
ASP.NET and the clients are written in C# and they communicate over Web
Services and the most critical Server components are running in Java on Linux
machines(We'll soon move to them to Win2003) and I think so far we haven't
faced any problems. what I'm trying suggest here is Java and .NET are here to
co-exist and with Web-Services they can seemlessly communicate, also future
development in both camps will be (or should be) to co-operate with each
other.
And for us developer it doesn't really matters what platform we use as long
as development is quick and efficient and program works every single time :)
 
G

Guest

Seems get funny, most big compaines use java and toy stories begin.
Pretty many places use jsp insted asp.net, Sybase,Ibm,Orcale,HP,Cisco,...
have world best software with java support.

And what about java applets, I'm sure that it has big usage - net won't
support things like that at all.

That is the point every time when we compair .NET and Java why should we
allow ourself to think that Sun has stop adding new features in Java. Why
should we ignore Java 5 for advanced construts, existing facility of object
metadata, new IDEs like NetBeans.
The best thing for .NET developer is that they don't have to adopt handling
skills for multiple IDEs :)
 
I

Ivar

The best thing for .NET developer is
Another best thing is that .NET runs only on Windows ....
 
A

Alvin Bruney [MVP]

Another best thing is that .NET runs only on Windows ....
not completely true
mono allows .net to run on *nix
 
I

Ivar

Have you tried it ? Have you got some thing running on it (I don't mean
Hellow World) ?
Mono takes long time before it's usable, one thing is sure this won't happen
in this year.
Before enterprise applications won't run on it, it isn't usable (Ok, I don't
mean WindowsForms, I mean DataAcess,WebServices,Sockets,.... .).

Alvin Bruney said:
Another best thing is that .NET runs only on Windows ....
not completely true
mono allows .net to run on *nix

--
Regards,
Alvin Bruney
[ASP.NET MVP http://mvp.support.microsoft.com/default.aspx]
Got tidbits? Get it here... http://tinyurl.com/27cok
 
G

Guest

Alvin Bruney said:
not completely true
mono allows .net to run on *nix

Just being curious: Anyone knows whether MS has any plans to support the
efforts of the "mono" project? I never got the point why MS ported Internet
Explorer to SunOS, but not to Linux. What a big relief it would be if VS was
able to offer cross-compiler abilities!

Of course, I am well aware that MS's biggest business still is the sale of
OSs, but as long as Linux keeps emerging (at least in the server market), I
find it like "the three apes" to refuse any form of contact (not to say
embracement) with the "evil world" of open source based, but long-accepted
standards like Linux, MySQL and the like.

MS may have or may not have the marketing power to persuade interesting
customers of the superiority of their server and database products, but all
those so-called "companies" selling and serving Linux, like RedHat and SuSE
didn't even start developing a real marketing power.

As far as my abilities in augury reach out into the future, I see a
side-by-side. Something like 40% MS servers, 30% Linux/BSD/OpenSource servers
and 30% from other vendors like Sun, IBM, HP. Something like 80% Windows
clients/desktops, 10% Linux (KDE/Gnome) desktops, 10% other stuff like Apple,
SGI, Sun. So, there will be a demand for interoperability, thus a market for
developer's tools offering interfaces and tools to develop enterprise
applications in even more heterogeneous environments than they are already
today.

VS, even the older versions, but notably VS.NET, is, imho, an outstanding,
if not unique, toolbox that no other OS has to offer to developers. In fact,
developers working with Sun's stuff are far behind in terms of tools they
have at hand, and in fact, for Linux developers, there is not much more than
Emacs and GCC.

If MS were to support the "mono" project, maybe even in helping it creating
a .NET-compliant System.Windows.Forms namespace, I am very convinced that VS
eventually would become one of the -- if not THE -- development tools of
choice for *NIX systems as like as it is for Windows.

After writing so much, just a last one regarding the OP's
question/statement. As far as I am concerned, without a fully-compatible
"mono", Java has one single advantage: cross-platform abilities. Comparing
the current Java with the upcoming .NET 2, I don't see any essential things
in Java that the average desktop- until enterprise developer needs so much
that he/she has to switch to Java. In contrary, Java lacks performance, Java
lacks stability, Java lacks standards, Java lacks a lot of features. More
important, the Java "framework" is far away from comparing with the deep and
broad structure .NET is already supporting and even farther away from
comparing with .NET 2. Java is a (ugly, imho) programming language, .NET is a
philosophy, plugging it's tentacles deeper and deeper into the OS and
offering developers a more-than-just-elegant way to achieve their goals.

As someone said (someone did, isn't it?), Java is a nice toy to develop
applets every browser is able to display and deal with, while on the other
hand most home users don't have the .NET framework installed. But with
Longhorn this is also going to change.

Nobody has to pray to Bill, but men should accept that MS has "adult"
concepts and objective visions what's going to happen to computer usage. And
as far as I can remember, MS's schedules never were reached in time, but they
were reached, and their concepts more than often changed the whole IT
industry.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top