The verbal punches tossed in the clash between Java and .NET may never end — but for now it seems that the app servers supporting these software environments both have a place. Evidence suggests that most large companies will support both Java and .NET. The ‘battle,’ in reality, falls short of the hype. The scene is almost like that in a heavyweight prizefight, where the weigh-in holds more terror than the fight itself. Read the rest of the article at ADTMag.
The last thing I need is a “wizard-like” design environment. Do they think Java developers are simple-minded and can’t code?
Write some of your own common components and you should be far ahead of anyone using a wizard.
One quick way to simplify J2EE development, some observers note, is to use the simpler elements of the platform, skipping complex EJB component elements if possible.
Well, duh. I have yet to work on a project where EJB’s would have made any sort of sense. They are still a great solution awaiting significant problems. Yes, yes, I know there are several good uses for them. But it seemed like when they came out some companies were trying to use them for everything. As if Java isn’t slow enough sometimes, let’s throw in network overhead on every function call (yes, that’s been fixed somewhat but still…).
As far as Middleware Company test from last year, it should have been questioned by anyone with the slightest web programming knowledge. It was such a biased comparison as to be laughable. What it did is that a highly optimized application that caches everything and is written for speed ONLY and not maintainability, fault tolerance or scaling will be much faster than an application that has a different design strategy. It also showed that the technology should fit the problem. And when doing benchmarks, applications being compared should use the same design strategy (that should be a big “duh” to almost everyone but apparently something they didn’t consider).
Ok, rambled enough, off to bed
toodles
All I have seen ANYWHERE are java apps. Even browsing the web, all I see are java applets. Where are the .net apps. .net still sounds like vapourware to me.
I am using .Net for past 8 months. From my experience, corporates are using .Net for building applications(B2B)(B2C). I have yet to see .net used in web applications.
If people tells you that .net is not complex well then you are not programming .Net you are still doing VB. .Net is a poor copy of Java and yes deployment of .Net is million times more complex than a ear file. Even the build of Java apps is easier than .Net. if you want to write .Net yes you be a true programmer who knows UML and modelling similar to what Java requires.
.Net is still immature and unstable for us Java is the stable and scalable platform. Development tine in Java in our case is smaller than .Net since there is change to .Net every day from MSDN fixing holes and bug.
“All I have seen ANYWHERE are java apps. Even browsing the web, all I see are java applets. Where are the .net apps. .net still sounds like vapourware to me.”
That is a whole different subject. They are talking about server-side java and server-side .net, not client-side applets.
“In sum, said Fricke, “if Java skills are scarce or not readily available, use .NET. If new applications are to be deployed on non-Windows [operating systems], use J2EE.””
WTF – thats just the most stupid comment I’ve heard in long time! Just beacuse there are no Java developers available, doesn’t mean that:
a) he can get .NET developers
b) the existing developers can use .NET
On the client side applet thingy, how does one deploy a crossplatform browser component in .NET?
The only thing I can think of, is Active X, which is hardly crossplatform.
Java has either Applets or Java Web Start. (of which the latter cannot be integrated into a browser window).
.NET is great for many things, but I seeing lots of people using it, just as they used Visual Basic 6, which results in equally crappy unmaintainable code. – “but hey! we’re using .NET!!” (*sigh*)
If people tells you that .net is not complex well then you are not programming .Net you are still doing VB.
My experience doing .NET programming was much less complex than doing Java. A big factor in this is that I am using #Smalltalk- not J#, C#, or VB.NET. Some people may not think that it’s fair for me to say I’m doing .NET when I’m really using Smalltalk on .NET, but they’re wrong. #Smalltalk is a first-class .NET language and uses the same API (in addition to the ANSI Smalltalk class library). I can use the skills I’ve built over the last 4 years with Squeak Smalltalk and IBM Smalltalk on #Smalltalk. And yes, I’m using the .NET API for a lot of this stuff, like the GUI and web access, etc. It is a lot easier than doing it in Java, that is for sure!
.Net is a poor copy of Java and yes deployment of .Net is million times more complex than a ear file. Even the build of Java apps is easier than .Net.
Maybe you’re using some silly tools, but for me it’s pretty simple. In .NET, I compile like so:
cs somefile.cs -or- sst someSmalltalk.st
and run with ./somefile.exe.
Java is pretty similar. I use Makefiles to control the builds for both C# and Java, although luckily with #Smalltalk I don’t have to deal with even that. I always get a kick out of it when Java guys seem to think they have it so good, simply because they grew up using C++ and COBOL. I guess some of us lucky ones know that it can be a lot easier than that and take advantage of the potential.
.Net is still immature and unstable for us Java is the stable and scalable platform. Development tine in Java in our case is smaller than .Net since there is change to .Net every day from MSDN fixing holes and bug.
I don’t pretend to think that .NET is mature- it certainly isn’t. MS doesn’t pretend that it’s done and hence bug fixes. Call me nuts, but I’d rather have a vendor that aims for some sort of progress, even if it is MS. Sun prefers to stick with rubbish. After all, if they fixed the various problems with Java, all the Java programmers of the world might get confused! Something written in Java that works, certainly, the code must be fixed at once!
I think I’ve only updated my .NET runtime once or twice- what are these daily fixes which are needed?
Java is still quite immature, compared to a truly mature system like Smalltalk or Common Lisp. Thanks to the billions and billions of dollars behind it, Java if approaching the technology we had in 1980. Maybe in another 5-10 years Java will have the maturity and features we had in the year 2003 in Smalltalk and Lisp.
Just out of curiosity, which Collection system do you find easier to use? .Net’s one or Smalltalk’s?
Thanks
From the article:
– And, said Fricke, .NET?s relative ease of development (with plentiful and useful program wizards) fades as large-scale, high-complexity applications are pursued. Those are, almost by definition, heterogeneous, and not a Microsoft strong suit. Also, ?you can?t ?wizard? your way to a complex supply-chain app,? quipped Fricke, who added that ?those advantages dissipate at that level.? –
WTF is this guy talking about? We build heterogeneous apps all the time using .NET remoting, serialization, and the data adapters. Are there wizards in Visual Studio? If there are, I’ve hardly noticed them, unless he’s talking about the option that automatically creates projects of various types. But all this does is throw in the default text files and you just edit and compile. Development with .NET is very similar to development with Java, which I’ve also done, let’s see:
.NET
using System;
public class Watusi
{
static void Main(string[] args)
{
Console.WriteLine(“Watusi!”);
}
}
> csc Watusi.cs
> watusi.exe
Java
import java.lang.*;
public class Watusi
{
public static void Main(String[] args)
{
System.out.println(“Watusi!”);
}
}
> javac Watusi.java
> java Watusi
Personally I think this Fricke guy didn’t delve deeply enough into .NET. I like both .NET and Java, but given the option I prefer .NET.
I just wish they could have chosen a better name than “.NET”. I hate it. Java is a much cooler name.
All I have seen ANYWHERE are java apps. Even browsing the web, all I see are java applets. Where are the .net apps. .net still sounds like vapourware to me.
An example of a web site using ASP.NET is CafePress, http://www.cafepress.com/
If nothing else, .NET allows you to sandbox ASP so it doesn’t take down IIS when it crashes. For that alone it is very useful to anyone who currently has deployed an IIS/ASP solution…
What is toto on about?
“people tells you that .net is not complex well then you are not programming .Net you are still doing VB. .Net is a poor copy of Java and yes deployment of .Net is million times more complex than a ear file. Even the build of Java apps is easier than .Net.”
A poor copy of Java? well many people would call that an opinion, especially when you point out no claims as to why. I’d argue the point that .Net has many improvements, and yes some drawbacks from Java, but I’ll just say that is my opinion.
And yes, .Net is soooo much harder to install.
You install a framework, be it the Jre or .Net Framework, and COPY the compiled program to the machine in question. A simple batch file could do either install.
Neither is harder than the other.
“.Net is still immature and unstable for us Java is the stable and scalable platform. Development tine in Java in our case is smaller than .Net since there is change to .Net every day from MSDN fixing holes and bug.”
How is this? The .Net framework was released over a year ago as Version 1, after a couple of months a few bug fixes were released, and you had Service Pack 1 and 2. Neither of which, as far as I am aware, causes any breaking changes in code.
And now version 1.1 has been released. Which again has no major breaking changes, I admit there is 1 or 2 obscure functions that were changed, but that is a moot point. As both versions of the framework, work side by side, and a simple config file will tell your program to use the NEEDED version. Which if not installed, will alert the user.
And lastly “Even the build of Java apps is easier than .Net.”
How is this so? You use an IDE like Visual Studio and compile is as easy as F5. You don’t have any money as a poor developer, then use SharpDevelop, which again protects you from the command line.
If you are on Linux or something other than windows, then you are out of luck, but maybe when mono is finished, you will have an IDE written for you OS.
If you don’t like IDE’s then use the command line. I’ve never done a Java command line compile, but I wouldn’t expect it should be too much easier/harder than the .Net command line compile.
All things aside, it comes down to a simple decision.
If you are writting a client/server app, and all clients are windows based, then use .NET. If you are writting a client that could be used on any number of computers, then use Java. Not a big deal in the end.
http://www.hsn.com is using ASP.NET…..thats a pretty big site.
http://www.asp.net/Default.aspx?tabindex=8&tabid=40
Go to the very bottom of the page for current users.
One of the amazing things I find is how biased and/or uninformed people are about .NET. In general, I try neither to criticize nor to praise technologies with which I’m not intimately familiar. I have long and extensive experience with Java, and lately have acquired similar expertise with .NET.
I hear so much rubbish about .NET that it’s funny. The two times I’ve had the opportunity to give anti-Microsoft Java zealots live .NET “demonstrations” head-to-head against Java, they’ve been very impressed.
I still love Java, and I think Tiger will address some of its shortcomings. For instance, one of .NET’s great strengths is custom metadata, but you never hear that mentioned. For those of you who wonder why you’d want custom metadata, here’s an example. In Java, if you want a serializable object, you implement the java.io.Serializable interface. .NET has a similar interface, System.Runtime.Serialization.ISerializable, but it is only used if you want to customize your serialization. Instead (in the syntax of C#), .NET uses the Serializable custom attribute to mark an object as serializable, like so:
[Serializable]
public class MyClass
{
public int SomeData = 0;
}
No other code is required. If you use the object at runtime, you’ll find it implements the ISerializable interface, although it wasn’t necessary to specify it yourself. Custom attributes are also used in web service programming, where methods you want to expose as web service methods are marked with the WebMethod custom attribute.
However, my understanding is that Tiger or possibly its successor will have metadata as well, to be used for much the same purpose as in .NET.
I have built 3 applications (distributed and non distributed) in java and now 4 in .NET. Java was a good start in it’s language, but has tremendous performance issues. It is actually un useable unless you are a huge corp that can afford 100k servers. As for .NET it fixes the performance issue and the tools are so FAR superior it will make you laugh once you have used .NET. Java is one of those technologies that a salesmen from Sun sold to a big corporation on the golf course and did not consult with us bottom feeders who are resonsible to make businesses work with technology. I have tried both, Java is a very poor implementation of a decent idea. .NET is an extremely good implementation of many great ideas.
Java was a good start in it’s language, but has tremendous performance issues. It is actually un useable unless you are a huge corp that can afford 100k servers.
I think this has always been the main concern with Java. Java currently does not have any persistent cache of JIT’d code. Any run-time optimizations which occur, such as the inlining of virtual methods that Java zealots love to tout as if it would make up for all Java’s other performance issues (and go further to make the laughable claim that Java is faster than properly designed/optimized compiled code), are lost and must be reconstructed every time a particular application is run.
The GAC is one of the best features of .NET, and reduces application start up time to about the same as the time required for dynamic linking of a compiled application (since that, essentially, is what is happening)
As for .NET it fixes the performance issue and the tools are so FAR superior it will make you laugh once you have used .NET.
I certainly agree. Java zealots continue to argue about how wonderful Eclipse is, but I’ve found it too slow/unresponsive to make for a nice development experience. Furthermore, it lacks many of the features provided by VisualStudio.NET.
As for documentation, I really dislike MSDN. The Java API reference is nice (though navigating Sun’s web site trying to find it is quite a pain, though googling for “java api” seems to do the trick) I’ve seen some very nice 3rd party documentation for .NET, but it is far from complete.
Java is one of those technologies that a salesmen from Sun sold to a big corporation on the golf course and did not consult with us bottom feeders who are resonsible to make businesses work with technology. I have tried both, Java is a very poor implementation of a decent idea.
This is how I feel as well. Java is not worthy of the enormous amount of mindshare it has seemed to garner. Its only successes have been server side, and this may just be me, but every time I’ve used a JSP it’s had horrible performance issues, or has been broken in other ways. I’ve used several web sites built with ASP.NET and never had a problem with any of them. On the Unix side of things, PHP seems to do wonders, and I think a scripting language is much more befitting of web development than Java.
As for SOAP/XML, I merely see this as a low-end substitute for a proper middleware solution (i.e. CORBA) and I’ve yet to see any installations with a CORBA solution dump it for SOAP/XML. Using a text-based description language to transfer data between two computer programs seems like such an enormous waste to me…
In the case you are still reading this thread (which you prolly aren’t!)-
But I prefer the Smalltalk collections system. I also prefer it quite a bit over Java’s Collections API. I think a good part of this is that I am a Smalltalk programmer and it is what I am used to. That said, the reason I became a Smalltalk programmer was the flexibility Smalltalk provides, and that flexibility and power is very evident in the collections API. Methods like #collect:, #select:, #inject:into:, #sort: and others are part of that power+flexibility+simplicity. These methods rely on Smalltalk blocks- closures and I think it’s a really good way to do things. Part of that is the smaller syntax for creating a block in Smalltalk compared to, say, an anonymous class in Java. Far less to say, it makes a lot more sense. (to me)
Rev, you are really preaching to the choir here :-P.
I am relatively new java programmer, i hava coded in c, visual c++, perl, php in past. I dont know much about .Net, maybe it is good stuff. But i have to say i really like java and i dont understand few comments here. First java is fast, i dont have any perfomance problems. Second there are very good tools for java development, i use Intellij which is super good IDE, show me better IDE i want to see. I dont believe there is something better for C# development than Intellij is for java.