Why .net at all? ASP could be valuable at some point, but I just don't get the whole infatuation with it. As far as I can tell, it's a corporate thing only. Stand alone sites really aren't going to reap any reward for the awesome amount of time it takes to learn it. After you learn it, you are then chained to the Microsoft machine - for life. Who's to say it won't be obsolete by this fall?
There are some excellent content management packages out there right now. Sure, some are pretty pricey, but they do _everything_. There are even some perl open source projects that are basic mini-portals in a box - some with good ecomm features too.
What MS has done is to stop supporting java in IE out of the box. This means that if an IE user wants to see java applets embedded in a web page, they have to download a java runtime seperately. This has no effect whatsoever on server-side Java, which is by far the biggest push for Java now. Applets are pretty much dead in the water if you ask me anyway since they're so slow loading. They're used very rarely now. All MS has done is put the final nail in the coffin for applets IMHO.
I agree with all your other comments though Brett.
James, If you want to choose between .net and Java from a point of view of making yourself as employable as possible, the only real solution is learn both, but this is a very big mountain to climb.
If you do plump for .net, I would advise you to learn C# - this language is so close to Java in architecture its incredible - its the usual MS apprach as far as I'm concerned: find something that works and buy it. If you can't buy it, then bring out your own version that changes just enough aspects to stop you being taken to court. Even most of the keywords are the same. The upshot of this for developers is that it doesn't really matter which you learn, migrating from one to other will be fairly easy since they're so similar.
The reason that jobs using languages like Java pay well is that its not a trivial matter to learn them, but there is still much demand for the skills.
Everybody's talking about 'web services' now, apparently its the coming thing, but its pretty hard to pin anyone down to exactly what they are beyond an extension of what we all already do.
My personal opinion is that both .net and server side Enterprise Java will both have good uptake, so which you learn is largegy a matter personal preference.
Its worth pointing out that Java is still in the top 3 of expected 'most required' IT skills for the next couple of years (according to silicon anyway).
I think MS made a big mistake in not supporting it and will probably backtrack quietly.
Real Java is the core of any J2EE operation and JSP web languages.
Web services are coming, albeit slowly, and either JAva or .Net will be used. The theory is that they will be interchangable once written since the underlying languages will be XML.
If the end goal, however, is to be a programmer, there are many more languages than Java or .Net. There is still a good market in RPG, VB, C++, and web technologies such as ASP/JSP/PHP.
If you are looking forward, many community colleges are giving crash courses in .Net and XML.
<added>
.Net allows interface with client side applications and runs your ASP.Net pages on the server like a client side app. It really is an amazing technology. It is very easy to learn and thats what makes it so appealing to web coders.
</added>
(edited by: korkus2000 at 1:48 pm (utc) on May 17, 2002)
.net isn't any one thing: it's programing languages such as VB.NET and C#, and the underlying Common Language Runtime (CLR). It's a set of classes in the .net framework. It's a web platform in ASP.NET. It's a platform for calling and serving Web Services. And more.
Java is a programming language.
I've been using .net heavily for the last month. The productivity gain from using it is amazing. It is so easy to do things that were darn-near impossible with previous tools.
Theres two main differences that I can see - the Common Language Runtime supports a range of languages - C++, C#, ASP+, VB - whereas the Java Virtual Machine Machine supports only Java.
The flip side is that .net is going to tie you in to the MS platform and Java can run on any platform enabled with a JVM - Unix, Windows, whatever. You're not tied down.
What you also get with .net is a bunch of ready made components for stuff like networking and database access. The Java equivalent is the Java APIs (which people seem to mean really when they talk about the 'Java language')- a set of ready written classes covering that stuff and a fair bit more. In practice at work I use a fairly small subset of the whole Java APIs - database access, JSP (roughly equivalent to ASP), servlets (all the HTTP request and response handling) and the odd supporter class for string processing and the like when I need them.
One thing .net _will_ give you is a nice visual programming environment to bolt components together in. I'm no MS fan, but Visual Studio 6 is a nice environment, and I'm sure the .net version is too. I would expect it to be pretty easy to build powerful web apps with a .net programming GUI.
That said, its not that much effort to learn how to compile Java code from a DOS command line or a Unix shell. maybe its a bit less friendly but its still not rocket science.
They're really very similar.
If you do all your stuff on windows, chances are you'll find it much easier to work with .net, especially if you only use ASP because all you do is web stuff and the components provided are supplying everything you need. I'm sure in the vast majority of cases they will be.
From having done a bit of web programming in ASP and VB and a bit more in Java, I personally much prefer Java, but thats probably because I learned Java before I did any VB.
Basically no-one has a looking glass. I think its very difficult to predict whether one will come out dominating web development or not. If this happens the detemining factors are more likely to be business related than technology related. Personally I think they'll both be around for some time time to come.
The real silver lining is that on the back end, and for persenting what you see in your browser, they'll both be interfacing with XML, and thank god thats a standard, we only have to worry about one version!
Xoc - are you an ex - ASP user who'se moving over to ASP+? I'd be interested to know what kind of tasks you find easier to get done with the .net framework?
I've got the impression that the majority of people here work independently, have to wear many hats and therefore are scripting in PHP primarily for its ease of use and widespread support by hosting companies. Sadly I havn't found time to look at it yet - I'm curious to know what support PHP has for interfacing with XML? I would have though that this will be pretty crucial for its future on the web. Are there any PHP users here who are also using XML? (sorry to go a bit off-topic)
If I was forced to learn something for a job (I would choose .NET, not that I already don't know Java, C++, and VB)
Java I find annoying, Can't explain it. But I just hate it. Runs everywhere, but runs everywhere slow. I was on one of the few teams that completed a Java API to NetSol to register domains. There where so many problems. I think only one other company completed the integration. (but sadly after completing the Java API NetSol killed it because of the difficulty lots of other companies had interface with it using Java)
Corporate America will embrace .NET, so learn it if you want to work in corporate America. Personally, I would hire an open source developer over a .NET developer. No licensing fees and all the other nightmares. Plus, the developer can utilize thousands of free programs w/ source. Seems like all the standard components that ship with .NET all have just basic functionality. You see people all over the place selling more improved versions. And they all want money for it. You just don’t have this problem in the open source world. Everyone shares. What a nice world that is.
Let's just take two examples from things I have needed to do that were really hard that .net made trivial:
1) I had a web page with a listbox on it filled from a database. I needed the capability of clicking on an add button to go to a dialog where a new item could be added to the list. Then when the dialog is closed, refresh the page to have the new item show up in the listbox. This had to happen without losing the current contents of any other textbox or other control on the web page. Very difficult in ASP, almost trivial in ASP.NET.
2) When a web page was downloaded, I needed to grab a .png file, draw on it based on the contents of some data maintained in real time, and supply it to the IMG tag at that moment. Very very difficult in ASP, trivial in ASP.NET. I expected to spend at least 3 days on it based on my ASP experience. Took half an hour in .net.
Almost everything that I try in .net is easy. I needed to validate an XML file when I read it into the DOM. The class they supplied in the .net framework didn't do it, but by inheriting from their class, overriding the constructor and adding the validation (using other .net functionality) at that point, I then had a class that did what I wanted. Easy.
The hardest thing about .net is that the framework is so large that finding what you want to do in the framework sometimes takes some time.
Yes, I used C#, but I could just as well have used VB.NET. Or, heck, even COBOL (there is a version done by a third party that compiles to the common language interface). Languages become irrelevant in .net since they all compile to the same intermediate language.
The main difference between .net and Java is that Java uses P-Code. That means that running code is always interpreted. .Net uses true native code. That means that .net applications will always run faster that Java.
To get back to the original question, it seems .net is the one to go for. You'll be up and running much quicker and there'll be plenty of work for you.
Stand alone sites really aren't going to reap any reward for the awesome amount of time it takes to learn [ASP].
I'd have to disagree. I didn't find ASP very hard to learn - at least if you're learning VBScript. The learning curve on it is lesser than that of C rooted languages (which excludes, then, JAVA, JScript, and C#) not to say that those are hard, per se, but harder than VBScript.
Unless you're looking for real ripping performance for ultra-high end applications, then VBScript will serve for most any task. It does not require data-typing, it's flexible on variable declaration and use - though aside from getting a job with it, I'd stick to PHP (the whole reason I learned ASP is for a job, but I found it very easy-to-use).