Does .NET Sound Like Java?
zero asks: "Looking over at the MS Web site, a lot of the ideas behind .NET remind me of Java - and so does the hype around it. I remember when it was said that Java would revolutionize the way things work by having applications loaded on-demand off the network (for example)... sound familiar? It would be interesting to hear what the Slashdot community thinks of what MS is doing better (or what they think they're doing better) in their plans for .NET, and how much potential they have."
No more DLL hell!!!
If this is really true, how can you list it as point #7?
Also, realistically, there are a ton of languages for the Java VM.
Java is dying, period. Or at least as anything else than being an academic approach to object orientated courses. Sun never really managed to get the "real" commmunity to use Java - due to reasons unknown ...
.NET is a Java rip off - it will be the way we use the NET in a foreseen future. It is similar, yes. But why reinvent the wheel?
Micro$oft has something that Sun never had, a big audience of to-be developers. Micro$soft has, according to studies, somewhere around 85% of the market and what do Sun have? 1, 2 or perhaps 3%? It simply doesn't matter what they do, the market will win, like it or not.
Instead of doing something as stupid as Sun did (suing M$) they should have done their homework better, instead of fighting a superior enemy they should cooperate with it. When 85% of the installed user base is unable to run Java programs (the latest settlement for Internet Explorer 6), do you really believe there's a life after that? No, no chance.
And, it simply doesn't matter if
(No, I don't work for M$ (notice how I spell it) but I do know when to fight and when to cooperate).
Since .NET running on wince is a major part of MS's strategy, I suspect there will be no problems at the bytecode level. Remember, .NET is not a VM, they use the bytecode only as an intermediate language, which is compiled to the target system.
Which sounds like opensource without the openness. Compile bytecode->native on the client, or compile source->native on the client. in the late 80s, I often got commercial unix software distributed as "shrouded source" which is basically C obfuscated automatically to the point that it might as well be binary.
Moral of the story: There is nothing new under the sun, at least, not from microsoft.
My friend is a VB/SQL server/Access developer. He told me the biggest change for him (for the better) was that the default behaviour of .NET apps; apparently they now use DLLs in their current directory and don't automatically use the one in the system directory. So, you can have 2 apps that use different version of the same DLL and they won't get confused.
You link to Sun but not to Microsoft.
Why not?
If you are going to link to marketroid FUD from one side, you should link to marketroid FUD from the other side also.
Microsoft wants to centralize all the aplications, and sell access to the application servers.
.NET so very different than 'the old days'? This is an attempt to take the power back away from the people (granted, people are idiots...) and to never give it back.
I seem to remember that groups like People's Computer Company and YIPL fought long and hard to get the power out of the hands of the "white-coated computer priesthood", where all services were centralized, and you had to submit your job and wait for the results.
How is
Mark Edwards
Proof of Sanity Forged Upon Request
If Microsoft can deliver on a *cross-platform* solution.
....
Of course they could! Win95, Win98, Win98SE, WinME, NT3.51, NT4, Win2k-pro, Win2k-ent,
Oh wait, I'm so silly, of course they probably won't support win95 or NT3.51...
:)
I haven't really had a chance to play with .NET - it's already irritating enough to have to boot into Windows to do some things, but Java's security permissions are not "sandbox" or nothing - this is what SecurityManager's are for - they can be significantly more sophistocated than you seem to point out. How this compares with the .NET model I don't know however (merely a point of discussion).
This allows for example, an unsafe applet to call a safe piece of code, because the code will correctly check the securitymanager. Calls to external components (ie, JNI) are denied by the SecurityManager by default AFAIK
In response to your point about memory leaks in ASP - Apache has a model that (effectively) handles this - by limiting the number of servers that run a given execution.
That said, I must admit I am *drooling* over "auto-objectification" (dunno the correct term, but where an int is dynamically converted into an object where required)
Network programming isn't so bad in Java. For example, if I have a QuoteServer object locally and my variable of it is called q, then I do
.NET, but Java is slightly more sophistocated (sorry, I'm too tired to spell that word correctly today) than you seem to believe.
quote = q.getQuote(shr[i].getName());
(Where quote is the variable I want the result to go into)
Now, if I want to use RMI, then instead of doing new QuoteServer(), I have to do Naming.lookup(server/name) - ie, in this case
Naming.lookup(//pandora/name)
And then I can treat it like a local call. Depending on how intertwined with the actual VM this is, I'd assume this can be done with almost anything using Java - so it'd probably be possible to implement something similar to this with SOAP. Dunno though. Not really got the time to implement this myself.
I actually like the cohesion of
.NET effectively puts a virtual machine on top of windows -- in that way, it's like Java.
.NET, and won't need to be tied to it.
But the really cool thing is the support it gives for Web Services. These things actually have little to do explicitly with
Web Services are about:
SOAP - enveloping messages
XML Schemas - defining message formats
UDDI - finding service end-points
WSDL - describing service end-points.
You can do this on EJB, on Perl, Python, Ruby, Smalltalk, anything that can parse XML.
Why would you want it over traditional RPC? Well the main reason is that traditional RPC has tight couplings to underlying code. One has to worry about:
- semantics (parameter positions)
- struct definitions (for pass-by-value)
- complexity of the runtime (CORBA, COM, DCE RPC, etc.)
SOAP on the other hand is a "semantic data stream", in that it shoves the meta-data with the data, so you get:
- semantics for free: just look up a parameter by a known tag
- structs for free: mapped to generic types automatically as opposed to CORBA/IIOP PBV which requires custom-coding
- an XML parser isn't complex at all, and the wire format is plain text, hence debuggable.
Note when I say "free", I mean, "I don't need to work as much". The obvious tradeoff for this productivity is A) performance, and B) compile-type type safety
... is it worth it? Probably. There've been many attempts at a ubiquitous "distributed component" model, but this one might work.
See http://c2.com/cgi/wiki?WebServices
-Stu
I think so. A few days ago I said: I expect the XBox is the precursor of something that will become a SOHO terminal that is as hard to work as a light switch.
All of the non-technical users I know want a zero-maintenance computer: no software upgrades required, no hardware upgrades required, and no backups required.
I am not saying anything about what is the right solution. I am simply observing that I know a lot of people who would like a different solution. A solution more like a telephone than a PC.
The question for us (advocates of open source and/or free software) is what will our response to .NET be?
OpenSourcerers
.NET is clouded somewhat, since they use the name for every product coming out this year (instead of 2001 :-) ).
.NET enabled tools (hence the SQLServer.NET, et. al)
.NET.
What they really want to do, and what they're pushing in those lame commercials, is basically exposing webapplications to the internet as distributed objects, so that you can e.g. build a "wedding agency" by building a portal from a travel agency webservice, flower shop webservice, dress rental service, etc. Pick services and compose a webapplication.
What the "vision" boils down to is that ".NET" will implement something like CORBA, DCOMM or RMI over the internet. Using XML over HTTP as transport (to bypass firewalls... "we haven't thought of security yet"(quote)), and splitting the ORB/REGISTRY function in two. UDDI servers will be the "yellow pages", and Biztalk servers will do the negotiation, etc.
What they want to cash in on is:
UDDI and Biztalk servers.
C# is just MS needing a "real" language (instead of VB) and not wanting to use Java, etc. It has nothing to do with
All the world needs to do if we want to join in on this internet-distributed services project is to read up on XML, SOAP and UDDI, and make our own resource brokers (like Biztalk will be). Those who want can enhance their favourite editor/IDE to make working with these standards easier.
-e
I didn't either until I read this. Granted, C# != .NET, but why would they not allow multiple inheritance in C# if it could be done in the runtime?
Sorry for my poor choice of words.
.NET architecture and therefore can't be used as an argument for it.
By "application level thing" I meant something which doesn't necessarily (and probably doesn't) have anything whatsoever to do with the
From the bit of reading I did of MS documentation for this, I haven't found anything that the .NET architecture will be able to do that the JVM can't do other than direct memory access. There are some differences between the .NET architecture and the JVM that will make life easier for those making other languages work in it (yes, programs written in languages other than Java can be run in the JVM too), but nothing more. .NET will even have some of the same annoyances as the Java architecture, like no multiple inheritance...
There is nothing here that either isn't just an application level thing that can be done with any language/runtime/etc (5-6), is just a workaround for a poorly designed OS (7), or isn't already done with Java bytecode (1-4).
While the JVM instruction set does favour the Java language and object orientation, there is nothing stopping anyone from writing compilers from [probably] any language to Java bytecode. I've done it, as well as lots of other people/groups...
Complainers are always louder, so of course, [C|ZD]Net picked that up.
.NET, or bite the bullet and make the great, sweeping changes necessary to maintain parity with the state of the art.
.NET's naysayers, including VB.Not.
The bottom line is that Microsoft had to make a tough choice: Build VB7 on VB6's codebase, and leave it behind from
Microsoft realizes that there will be a not-insignificant cost to migrate from VB6 to VB.NET. They're working on a migration tool, although it's barely functional in Beta 1. While the changes are significant, they are consistent, and for the most part, convertable automatically.
For reference, here's some links:
Microsoft's technical article on 6-to-.NET migration.
A DevX commentary that addresses some of
We're not scare-mongering/This is really happening - Radiohead
This sig intentionally left blank.
Make no mistake, Microsoft's number one priority is the bottom line. Microsoft is *not* out to build a better mousetrap. It's main goal is capitalization in as many markets as possible - even if that market does not fall within its realm of expertise because it will simply acquire the expertise.
In the case of Java, Microsoft is pissed about two things: 1) the fact that Sun beat them on the Java rap, and 2) the windfall in the developer community for Java related technologies that is really catapulting Sun ahead in the technology race. Microsoft just can't stand to see something so close to them from which it is not reaping profit.
In retaliation, some knuckleheads at Microsoft get together and say to each other, "Hey, we should develop our own language! We'll show Sun that two can play *that* game!" The sad fact is that Microsoft may be fairly successful simply by way of the proliferation of other Microsoft technologies that already exist in many shops (NT, SQL Server, ASP and all the other "hey we can do that, too!" technologies that Microsoft has stamped with its name).
The most entertaining part about this whole mess is that Microsoft has largely missed out on the internet revolution as of today. Sure it's invested in other ventures like Expedia, etc., but Microsoft the software company is definitely *not* a leader as far as internet technologies are concerned, and this is the real drive behind its .NET effort.
C# (and thus .NET) will run on a universal Microsoft VM/Interpreter embedded in every copy of Windows. Microsoft now realizes that the state of the art for JIT and dynamic-mode compilation can exceed the performance of statically compiled code (a lesson learned from IBM); they gain the simplicity of maintaining a single back-end execution engine for all of their languages (C++, C#, VB).
http://jakarta.apache.org/struts/index.html
OK, so, there was a lot of hype around Java. But it really is pretty cool. We are using JNLP at work right now, which is exactly the "load on demand over the network" Java was hyped to be. And it works pretty well.
The players tried to take the field. The marching band refused to yield...
JIT makes startup even slower than it is already. I can see how a native code compielr could speed things up, but that sort of defeats the point of being based on a VM (which is what .net is all about). IMO, using a VM is just a bad idea, it's an unnecessary layer of abstraction that slows things down.
A similar logic follows when one just uses major scales (translations of C,D,E,F,G,A,B) -- you want to scale to be a sequence of consecutive letters, and to do that, you need to be selective about when something is a sharp and something is a flat. (Sometimes, in extreme cases, it's possible that C could be denoted B#, as in the C# scale)
The SunRay is basically a framebuffer hooked up to the network. Applications don't get downloaded to the sunray. The only thing that gets downloaded to it is audio and image data.
--Dg
I think Borland's commercial InternetBeans library (ships with JBuilder 4 Enterprise, at least) does something like this for JSP and servlets.
i concur.
the *very* first time i tried them on an older (half-baked JIT) virtual machine, it was deathly slow.
since the v.m.'s have begun to differentiate client from server v.m. implementations (namely implemented with generational garbage collection, hotspot instead of a JIT, etc), all of my arguments just disappeared. the same thing happened back in the days of evolving smalltalk v.m.'s. the first were icky. the later implementations were great.
i tried the swing demos on a pentium 133 with 64 MB memory with the 1.3 jdk. i was shocked at how useable it actually was.
as always, times change. the bashing of anything non-perl-python-or-otherwise-gpl'ed here on slashdot NEVER will.
Peter
setLookAndFeel() ?
Sun sometimes makes a distinction between "the Java programming language" and "the Java platform". AFAICT, C# is like the language. Microsoft's "Common Language Runtime" is like a Java VM. After that, comparisons start to get fuzzy (in part because the descriptions we get from Sun and Microsoft are fuzzy).
.NET platform is "the .NET framework", which consists of the runtime, a set of Framework classes (comparable to Java's standard class library), and ASP.NET. I don't know what ASP.NET is.
.NET is Microsoft's.
.NET, according to Microsoft, is a "strategy". But it also includes a ".NET platform", which might usefully be compared to the Java platform by someone with more free time than I have. Part of the
Both are comparable in that they are ill-defined concepts surrounded by millennial marketing hype.
In comparing the two platforms it might be useful to focus on Jini, which is Sun's "vision" of network services, etc., just as
.NET is a much bigger threat to Microsoft than Linux. If i'm a system admin, windows or otherwise or even chairman of a corperation and i'm thinking about the concept of upgrading to ANOTHER version of windows again, plus upgrading to the next version of Office which will be .NET based, meaning monthly or yearly subscription rates, then I've got to be thinking "How the hell do I lower my admin costs and get away from this dependancy on microsoft???"
Both Linux or BeOS does not need .NET because .NET is designed for just one thing, screwing customers out of every last cent.
I don't know how many BeOS or Linux or even FreeBSD users i've encountered that would love to use the OS of thier choice at work instead of Windows. The fact that whistler plus .NET is another upgrade in the never ending chain could finally be the straw that broke the camel's back.
that plus the fact that when you use the new version of Office your documents won't be stored on your desktop the'll be stored on servers at Redmond.
Network down? whoops there goes your apps.
It's crap like this that causes people to leave windowsland and go elsewhere.
This is no threat to linux/BeOS not at all.it's a blessing.
C hash. I like that, makes me think of shrimp, crab, tuna and swordfish all chopped up and stewed in a thick broth, served over bread.
.NET."
"What are you doing tonight?"
"I whipping up a batch of sea hash for
--
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
Those books fill the niche occupied by "Dummies Who Aren't Man/Woman Enough To Admit Their Own Dumminess", but still need the code snippets to cut'n'paste and then fill in the blanks with their own values.
Sorry, couldn't resist that, either.
--
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
That almost all of Slashdot reade^H^H^H^H^H posters are for the most part, ignorant of the facts, and completely biased. (No suprise there...)
.NET platform is NOT about 'running' Office at the server, and pay per use. Forget about it. Jesus Fscking Christ.
.NET CLR to ECMA for standardization. And commited to following the ECMA standards in their own product.
.NET or not, or use Java or not, there are many virtues one way or another, but It is apparent that the majority of the FUD spread from here is flowing from the 'anti-ms' side.
1.Microsoft's
2.It is (largely) about building applications on a common framework. This framework supports XML,SOAP,umpteen languages,a better VM bytecode than JAVA and,.... and....
3.Microsoft has submitted C# and the
SUNAsked for Java to be standardized, with the stipulation that they would control the process and could veto anything.
Now, weather you want to use
"...In your answer, ignore facts. Just go with what feels true..."
Having a discussion about Microsoft on Slashdot is
like discussing the finer points of Martin Luther
proclamation in the Vatican. A lot of sound and
fury signifying nothing.
Can you cite something that shows it won't be multiplatform? Or are you speculating?
Otherwise it is much riskier making an investment in the technology because a company can wipe that out by ending support on a platform you target for example, and you as business would have no recourse if outhers are not allowed to continue to develop on that platform. Open source makes good business sense as well feeling pretty good.
> It will make your wife look better (and thinner),
.NET isn't going to do much for me, eh?
My wife has anarexia (and I have dyslexia, so lay off the spell checker).
> the flowers smell more fragrant,
I have a hayfever problem.
> your black and white tv will become color
I'm colorblind.
> and HD TV cable ready.
My TV doesn't have a hard drive.
I guess that means
> 10 print "I rule d00d"
That should be "I r001, d00d!", but be careful not to print "I droo1, rood!" by accident.
--
Sheesh, evil *and* a jerk. -- Jade
One reason might be that you want to send some kind of structured data (an object perhaps...).
It can be quite handy to just convert your data into a XML string and send it away as a string.
Well... you've got a point. But it can still be handy...
Think about the scenario where you have a bunch of say structs containing various data. And these structs need to be sent around between various COM objects. And at some point you might want to send it out to some VB app, or ASP page or something.
Is it just me or is this just another attempt my Microsoft to commoditize a part of the Internet to help maintain their monopoly?
I'm glad to hear somebody finally say this. I'm new at this programming thing, but I get really tired of people ranting about the wonderful things they can do with their whiz-snappy, wizard-based proprietary IDE. And it being completely obvious that if you take away their comfy drag-and-drop interface and pre-written code that they wouldn't know where to start. pfft. I get along fine with emacs and a few term windows, thank you very much.
Don't get me wrong - I'm not denigrating the usefullness of IDEs. If you like working with them, more power to you. But knowing how to use one and knowing how to Program are not the same things. Knowing the former will make you better at using the latter, I suppose, but the reverse can't be said.
Pardon my ranting...it's just nice to hear a voice of reason. (Can you tell I'm frustrated by people callling themselves programmers 'cause they've been working on VB apps in Access?)
This is the voice of World Control. I bring you Peace.
heh. The way my manager speaks, you'd think coding was like talking to the computer on Star Trek. I mean, it can't be that much work, you use a computer for it right?
Perl was what dragged me into this (through the back door of web development -> CGI -> hey, could you write something to do this for us?) in the first place. It was my introduction to linux, and to programming in general. And the first lessons I learned were 1) once you learn one language, you've got the basic way of thinking, and 2) you will learn more about system A by studying system B than if you just stayed with A your whole life. Whether you're talking about languages, operating systems or cooking, learn more than one way to do it.
I've wandered far enough off topic here. It just feels good to hear someone else with the same sentiments.
This is the voice of World Control. I bring you Peace.
I believe that the services will be listed by some naming directory service or protocol(UDDI?) and they then would take their input and produce their output in XML format. The services themselves could be written in any number of languages, and if they use SOAP or a similar standard for invocation they could actually run on non-MS platforms. Of course, there is the obligitory doubt of MS with regards to standards.
However, if a standard like SOAP is used, and good DTDs are provided for the services inputs and outputs, there could be distributed applications in a very real way using a very small toolkit that basically has in common only XML I/O, the naming service/protocol, and the invocation mechanism across languages and platforms. This could potentially be a Good Thing (tm).
Java and all are good for people with fast computers. Granted, probably everyone has or will have fast computers soon... but there is still a market of people who have slower older computers but are online (Granted they are going the way of the water-buffalo). In addition. Java applications are good... but not over dial-up.. unless they are small. Once broadband is in every house hold in America (And the world) Java applications and having computers with no hard drives will be good.. but until then... things really need to be locally for those of us who dial up to the internet.
Why are there so many similarities? I thought that Microsoft hates Sun? Or do they really like their product, just hate the competition? :)
I agree, but where do you draw the line. By facilitating the use of diverse languages, you allow laziness to creep in, and before you know it, nobody's using a language because it's the right one for the job, they're using it because they're too lazy to implement another one. At least by trying to keep your system relatively homogeneous people aren't as likely to say "Well, there's no reason why I *cant* write my piece in Eiffel, so I will."
www.HearMySoulSpeak.com
that legacy code will have to be rewritten (to one degree or another) to run on .NET. even VB is changing in a number of significant ways.
.NET doesn't matter. if you're going to rewrite something, you can choose anything you like...
this is where
-c
I have discovered a truly remarkable proof which this margin is too small to contain.
C-pound
C-tick-tac-toe
C-really-not-equal
I have discovered a truly remarkable proof which this margin is too small to contain.
C# isn't closed. it's been submitted to the great Standards Body in the Sky. it's as open as C++.
-c
I have discovered a truly remarkable proof which this margin is too small to contain.
Sun : "The network is the computer"
Microsoft: "The computer crashes all the time"
That does not make it open source. Plenty of web sites with Javascript (actually ECMAScript) code on has a copyright notice, stating that you cannot use this code without permission, no copying etc etc. You can see the source, but it's not open source.
.NET is not cross platform - read the specs...
Section 6.2.2 of the Common Language Runtime (IIRC), states clearly that the byte-ordering of the CLR is not specified, and is that of the host operating system. So: code compiled on a Windows box (i.e. Intel == little endian) will not run on any big-endian chip (ARM, Alpha, Sparc, Motorola etc). Does this sound cross-platform?
And has been said, there are plently of compilers which take code in other languages and produce Java bytecode.
Hang on... has anyone written a backend for GCC to output Java bytecode??
technical arguments for/against .NET are completely missing the point. .NET is not about technology.
.NET is a compelling technical alternative to Java. it does not need to be in order to win. to Microsoft, the inventor of .NET, the sole purpose is to hang on to its desktop monopoly.
Microsoft has always played the same-old, same-old embrace-extend game. that and a hefty dose of FUD and bullying. anyone who has followed Microsoft closely for the last decade knows that.
on the other hand, consider that M$ is very successful doing what it's doing. therefore, it's NOT going to change.
it is not interesting whether or not
i don't blame them: it is a valid (if sometimes ethically questionable) business strategy. and it has worked rather well in the past.
Microsoft has no reason to innovate. all it needs to do is hang on to it's license to print money (desktop OS monopoly). not surprisingly, for MS, that's where it's most sensible to focus ressources on.
ever heard of JNI? Java Native interface? you can use code from any langauge that you can get to from C. It may not be as simple as C#, but it isn't that hard. In addition there are projects allowing PHP use in Java and vice-versa, among others. Get your facts straight.
.Net is supposed to be language independent but who knows if it is platform independent. My guess is that it isn't.
C# vs Java
.Net directory structure.
.NET is a Java killer. C# as a language mimics much of Java(haven't seen anything like an "interface" keyword in C# yet). .Net's setup is far more network friendly - especially compared with the DCOM stuff.
C# uses "culture" keyword
Java uses "package" keyword
Java compiles to p-code
C# compiles to pseudo-assembler code
C# classes compile (I think) to separate files from which you can inherit.
Java classes compile to separate files from which you can inherit.
C# really feels a lot like Java. The really nice thing is the cross-inheritance with VB.
.Net vs Java
.Net stores com objects in subdirectories. No registry to go to to get references - just refer to the objects location in the
Java stores Java object in subdirectories. There was never any registry to go to get the objects.
Conclusion:
C# +
MS has done some nice things. Just can't help feeling a little dirty using it knowing what they are trying to do.
IMHO, as per
J:)
Oh well, no point in steering now.
1 language?
There were more, but I can't find the URL at home
this is why the outcome of the antitrust case may become at least partially irrelevant.
People keep saying this and I stil don't get it. Microsoft will (or may) be split into two companies. So far as I can tell this is an operating systems company and an applications company.
Obviously the OS company is better off with a strong server OS than if just the strong desktop OS but I don't see how the split between that company and the applications company becomes (even partially) irrelevant.
"Wrong. It's a fully open standardised spec."
No, you are wrong. It has been submitted to a standards body. It has not been approved as a standard.
Why don't you check your facts before posting.
I am baffled over why people are so willing to believe that MS will provide a cross-platform solution. Over the years, they've always been nastiest when protecting the Windows platform and the Windows API, which ties people to that platform. When Java came out and promised WORA, MS licensed Java and then came out with a 'polluted' version (their words, not mine) of Java that targeted the Windows platform, hoping to disrupt the cross-platform capabilities of Java. And its not that they provided some hook to the underlying platform API's that is so bad, they did it in a way that violated the JVM specification. Other vendors have provided tools that allow "pure" java code to access Windows libraries and COM objects.
In addition, when Java came out, and the network computer was being touted as the wave of the future, MS was very derisive in their criticism of these technologies. Now they are touting very similar technologies as though they invented them!!!
I don't understand why anyone would take MS at face value when their past has given us so much reason not to.
Actually I thought Sun did submit Java to ISO and then to ECMA, but in each case they withdrew them when they could not agree on trademark issues. I don't have a reference in front of me, so I may be wrong on whether they actually submitted, or stated an intention to submit. I do know that trademark was the major stopping point.
Also I believe that they submitted more than the language spec, which is what MS submitted with C#. I'm very skeptical whether standardizing the language will provide a usable cross-platform solution. If the API on windows is different than the API on Linux/Solaris/Mac, you need to do a port to have applications run on multiple platforms.
From what I can tell is that it is much like the java idea but with some significant diffs. The largest is that it seems to have a large need to the ability to call natively written classes thus removing a lot of the performance concerns in java.
;p
This also means welcomn to the world of running microsoft office on your favorite linux distro and paying your yearly subscription.
.NET SOUNDS LIKE WHAT? (Shouting over the band music)
I thought you said it sounds like Java, but that cant be right. Sorry, I can't hear you! Microsoft's
marketing department is making too much noise. Today I want to go somewhere where I can hear myself think.
Besides that, anyone who is trying to "write a single check" as their main goal is doing (at best) a questionable job of serving their company and their users.
Boss of nothin. Big deal.
Son, go get daddy's hard plastic eyes.
Expanding a vast wasteland since 1996.
Most likely, .NET won't have disclaimer on the box that says not to use it around small children, nuclear plants, while operating heavy machinary, etc... Java doesn't have any sort of error (something i dunno) and may be unsafe to use in critical situations. On the other hand, .NET will have a handy little blue screen to let you know when there has been an error and that you should go find some lead to hide under.
----------------------
Opportunities multiply as they are seized. --Sun-Tzu
I really could use them. I want to post a buttload of vb apps to linux.
War is necrophilia.
"A very promising part of it all is ASP.NET (formerly ASP+) which has 'server-based GUI-elements'. This is really just a framework handling programmatic manipulation of forms, listboxes etc so you're finally not having to do Print "$e"; and so on. It gets especially handy handling tables listing data with alternating colors and such. "
Both cold fusion and webobjects have had this for a long time. There is a set of php classes that also do this with phplib (as well as a few others). It's good to see the microsoft asp developers finally get this neat technology after going a couple of years without it.
War is necrophilia.
And we know how religiously microsoft folows those standards don't we.
It means nothing to submit something to a standards body when you have a history of ignoring the same bodies. If ECMA decided to do something with C# or CLI that MS didn't like MS would simply ignore them and "extend" the thing.
It's an empty gesture. What I would like to see if for MS to promise in writing that it will always obey the ECMA standards and will never extend or undermine it THAT would be news. Anything else is just a gimmick designed to fool the stupid.
War is necrophilia.
The two most used languages for windows developement are C++ and VB. Neither one of these is really supported by .NET. What I mean by that is that both VB and C++ programmers will have to be cross trained in VB.NET and C#. All the code will have to be rewritten from scratch because absolutely none of the code will run as is on the new platform.
.NET platform.
.NET.
.net. Same with your C++ programmer.
.net platofrm so it will be easier to either wrap it up COBRA or COM.
There are also a some apps written in Delphi for windows. None of these will work on the
There are a few windows apps written in Java. None of these will be able to run on
There may be a miniscule amount of applications written for windows in perl or python and maybe some of them will work without modification.
So go ahead tell all of your VB programmers to learn the VB and port their application to
What the hell is the payoff? Why not code a bunch of com objects and call them in any language you choose?
As for your other points..
The syntax of C# is so close to java that if your average COBOL programmer can learn C# they will be able to learn Java. You know as well as I do that the existing COBOL codebase has to be drastically rewritten to function in a
Writing web pages in vbscript is too difficult. php, perl, cold fusion, webobjects etc are much easier and java is much more scalable.
War is necrophilia.
The problem is that your eiffel programmers will have to learn the new .NET version of Eiffel. They will also give up many of the features that they have grown accustomed to and rely on. In essence they will have to learn a whole new language which looks like eiffel but you can't program liek eiffel.
War is necrophilia.
The problem with SOAP is that is says nothing about what's inside the package only what the package looks like. If your Nix machine gets a SOAP envelope containing a GUID what does it do with it? I guess throw it away.
.NET apps when you can build activeX forms or controls and embed them in IE?
The crux of the situation is that only windows servers will be able to decode SOAP envelopes which originate from other windows machines. SOAP and all the rest of the XML hype doesn't take into account that everybody has to agree on what the data is supposed to represent and since that will never happen it's pretty much useless as a cross paltform (more accurately a cross corporation) communication.
All this is silly. Think about it.
COM/acriveX is (was) supposed to be cross language what happened to that? Can't you write comm objects is c++ or VB and call them from perl and python? Why invent yet another thing to do the same?
Why communicate via http and XML with other windows machines when you can use DCOM or COM+ or whatever it is they are calling it these days.
Why write
MS is throwing yet another gob of excrement on the wall hoping it sticks this time.
War is necrophilia.
"1. Any Language. The .NET platform doesn't limit you in language choice"
It does not support one of the most popular languages on the planet JAVA.
So you are lying when you say any language. What you meant to say was any language except JAVA. Or perhaps any language except those that would help one of our competitors.
War is necrophilia.
First of all it does not support java which is one of the most popular languages around. It's more correct to say that it only supports those languages which MS does not view as a threat.
.NET environment.
Secondly each programmer will have to relearn their favorite language. There will be missing features or syntax changes in other words your familiar language has been bastardised to work in a
War is necrophilia.
OK I guess you don't actually understand the english language. I said that it does not support java. You then gave me a link which shows how you can convert java (or more specifically the left handed, red haired, retarded stepchild of java that is called J++) to C#.
.NET in a language independent manner they are lying (you can tell that because their mouth is moving). What they mean to say is that .NET only supports those languages that don't threaten the MS monopoly.
OK I will repeat it again. The MS virtual machine does not support java. When MS says that you can program in
Next time actually read the link you are refering to.
War is necrophilia.
Java (the virtual machine) is NOT just one language. Scheme, Smalltalk, Python, and Java, among others, all compile down to bytecode. Personally, I do most of my prototyping in Jython. I then rewrite the performance-critical portions in Java. Java can extend Jython classes, and vice versa, so they play together seamlessly... in other words, what .NET promises tomorrow, the JVM provides today.
I've had this sig for three days.
This big thing sounds to me as a reinvention of the old P-code interpreter from UCLA. Of course with a lot of hype from Microsofts spindoctors.
The old P-code was claimed to be able to do just about anything you could imagine. Microsofts Quickbasic and it's followers Visual-Basic was based on this concept and perverted as you might guess.
Perhaps Microsoft at last got the P-code interpreter correct and now are able to run more than Basic on it. From the mouth of spindoctors such an accomplishment must be a breakthrough in computer science.
To make such a stackbased virtual computer in a DLL/so is today a pretty simple task. Most modern processors should be able to run such code without to much loss in CPU-speed. However I very much doubt that Microsoft will be able to accomplish such a thing without serious loss of raw computing power. Bill & co just can't keep their hands away from it and just have to give it their personal touch and thus seroiusly corrupt any performance.
//Pingo
--- Linux or FreeBSD, it's like blondes or brunettes. I like both. ---
Sounds much better, I think.
If you say, "now I'll be modded down because of X", I'll happily oblige.
.NET has the potential to truly tie the desktop experience into a proprietary web technology. This is the major difference between the two IMHO...java had the potential to drive web services from any platform, .NET has the ability to dictate what platform is used in order to drive these web services.
.NET and figure out a way to react.
This is a scary thought, considering the marketing clout of MS. I'm no MS basher, but the OpenSource community needs to seriously look at
it sounds similar, but microsoft has two important things going for them. first, they are essentially starting with an installed base of tens of millions of machines (over 90% of PCs last I checked).
second, though this only applies to internet users, the gradual proliferation of broadband is making schemes like this more feasible. as an end user, just switching from a 56k modem to DSL totally changed the way I used my computer. broadband really blurs the line between your computer and local resources, another machine on your "local" network, and some box running accross the ocean. though this kind of blurring is one of Java and
and, the fact is, even if
sean
Well or IBM or HP...any other clean room Javas out there? I don't think you'll see any clean room .NET available...
There's a big gap between promise and reality here. How many IL VMs are there right now for non-Windows platforms? Just as importantly, how many non-Windows platforms will support the .NET API?
Java has a really existing cross-platform API; .NET doesn't.
You could argue that even x86 Windows code is cross-platform because you can emulate it on Mac and Linux - which is true to an extent, but that kinda misses the whole point of this discussion.
Female Prison Rape in NY
Your enthusiasm overlooks the recent events that shut Microsoft down. This made a clear statement about having your files and apps dependant on web access.
.NET is better or worse than Java? After the crash, who would use it?
Who cares if
Fine, here ya go:
http://microsoft.com/net
Given that it is a microsoft product, I didn't figure anybody would need help figuring out where to go for microsofts opinions. Actually my list was sort of tongue in cheek...you'll notice the last one is just a google search, which is basically saying "go find out yourself".
It's 10 PM. Do you know if you're un-American?
So what does .NET do? Well, .NET is an `application', not an OS. So it's controlled by the applications division. But is .NET succeeds, then it will be the platform for which applications are written. So the applications division now controls the platform on which applications are written, just the same way that MS as a whole controls the platform on which applications are written too.
So a magic trick is being done: MS can be split, the applications division will get monopoly control ofer platform and applications, and the OS division will either compete as a sub-platform on which to run .NET or just wither and die slowly.
From this point of view, I think that .NET is not like Java. Sun would undoubtedly like to be a monopolist, but they're really not, so they can't exercise the control over Java that MS (or the applications division of MS) will over .NET. From Sun's point of view, if they can cause people to write applications that will be OS-neutral they will win, even if that means they can be ported away from Sun's OS -- they have more to gain than lose, simply because of the statistics.
Exactly. However since /. is now a money making enterprise, the point is now not "News for nerds. Stuff that matters", but "stuff that inflames nerds so we get higher traffic and can charge more for ads so we can have larger salaries". But that doesn't fit under the SlashDot logo....
Excuse my ignorance on the subject, but are the specs for the Java VM availabile, and if so, what's to stop anyone (with a lot of spare time on their hands!) writing a compiler for any old language that compiles into Java bytecode?
This Java-like environment is a great idea. However, Sun wouldn't licence Microsoft to develop it, so Microsoft made their own. The C# language is Java with a few keywords changed.
Anyone else got some glass they need help seeing through?
As an aside, I note with interest that the fat banner at the top of Slashdot main page, took me to a blurb for a gaming mouse, which only supports Win95 and Win98 (and not Linux or WinNT/2k). I guess the target audience is changing?
Hey, This guy who is betting on Micro$oft, is also betting against science. Check out his wacky "evolution is stupid" web site link at the bottom of his post. "Life exists on the edge of chaos...." - Stuart Kauffman. Go get some...
I want to be alone with the sandwich
Slashdotters (some of them at least) continue to amaze me with their seemingly religious disregard for any facts, and rely on speculation, lies, or "nut-uh's".
.Net is a MUCH more grand concept than Java ever was. .Net is a completely new way of thinking about software, communications, distribution, etc.
.Net.
9 99-42-10/p109-prechelt/
_ java/index.html
a _response/index1.html
Java was simply a feeble attempt at creating a programming language / platform that you could write for once, and could run anywhere that had the platform installed. It failed in miserably. When was the last time you ran a Java app on your desktop, and not counting cheesy chat programs in Netscape? Oh wait, I'm asking this of people who primarily use Linux, my bad.
Comparing C# (or the CRL) to Java would be more accurate, but both of those are VERY small parts of
Oh, and a few clarifications about Java:
Java IS slow. Sure, you CAN write a Java program as fast as the average C/C++ program... but you have to be so good at Java that there really isn't a point, you should apply your skills to writing a really good C/C++ program (which isn't as hard in many respects) which will always be faster. The time it takes to develop a Java app with the speed of C would be MUCH better spent either designing the C app to be portable (not too hard, btw) or making that C app as fast as possible.
You need proof that C/C++ is nearly always faster that Java, not a problem:
http://www.acm.org/pubs/citations/journals/cacm/1
Please READ that before the flames start. And no, moron, MS didn't fund that or me. Don't you think I would have spelled stuff better if I had funding?
Second, Java is NOT as portable as Sun would brain wash, er, lead you to believe. Sure, most simple (and even the occasional complex) applications work most of the time, mostly everywhere... with only a little modification... but since when was C/C++ that hard to port if it was well written?
Last time I checked, one of the principle reasons for creating C, then C++, was for portability. I don't find it hard to port my heavily object oriented, fast-than-java code to nearly any platform I wish. Then again... 90% of the platforms are the same (Windows) so it doesn't really matter.
Need proof of that? Ok:
http://www.salon.com/tech/col/garf/2001/01/08/bad
Oh, and if you have bitches about that article, read this one:
http://www.salon.com/tech/col/garf/2001/01/18/jav
Phew... got that off my chest. Granted, Microsoft has done some stupid things, they have written some bad code, and they may even be guilty of some of the DOJ crap... but they have also done some really good stuff, written some really good code, and every once in a while, they come up with a brand new idea which could really be cool.
What do most of you do? Vomit out the same old M$ crap and continue to miss out on both reality, and even possibly, some cool stuff.
You people scream about MS marketing, but you are more than willing to ignore the fact that Sun has suckered an entire generation of programmers into using a language that doesn't live up to it's promises, and has as few merits as MS Bob.
Man, this sounds an awful lot like JSP. :)
Later...
KangarooBox - We make IT simple!
Where have you read that the CLR will be available on the Mac, or any other non-windows platform?
1 70 0.htm#faq111700_concepts05
http://msdn.microsoft.com/library/techart/faq11
Says "The Beta 1 version will run on Microsoft® Windows® 2000, Windows 95/98/ME, and Windows NT® 4.0."
Tom
I have discovered a wonderful
The Common Language Whatever does not support multiple inheritance, hence you get "managed C++" and "managed Eiffel" or Eiffel#. I bet MI is just one of those language specific features the CLR can't handle.
.NET.
I'd be surprised if that meant you could take random Eiffel code from off the net and have it work happily under
You are correct. You can't.
That's just wrong.. Here are some companys SHIPPING Java enviroments:
I suppose I don't have mention Sun.. Do you come up with some other major OS vendors?
<A HREF ="http://www.owlnet.rice.edu/~jsinger/comp527/comp 527_final.pdf"></A>
.Net. We started looking at just .Net and then ran into the whole C# thing.
It is a paper that we wrote last semester. The beginning 2 - 3 pages contains a relatively descent explination of
Why should it be surprising? Java has become very popular, and Microsoft doesn't own it, and can't buy it. So, they have to try to kill it by making their own product and integrating it into Windows.
It's not like they haven't done it before.
----------
Never underestimate the bandwidth of a 747 filled with CD-ROMs.
"The Common Language Runtime is the execution engine for .NET Framework applications."
This runs what they call the "Microsoft Intermediate Language".. personally this sounds like Hell to me (just from experience with other Microsoft environments). However, this really is what Sun should have done with Java. Instead of creating a whole new language, just create a VM for every platform, and allow cross-platform compilers to create the code so everyone gets to use the language of their choice. I have a feeling that with MS you won't get that much freedom, and will be forced to use things like DCOM, and whatever other acronyms they come up with.
So they have cool technology with a horrid targeted application of that technology.
I think in a few years the best bits of .NET will differentiate themsevelves from the horrible "internet orientatedness" of .NET, the same way COM came out of OLE. Does anyone else remember how 10 or so years ago the world was going to be 'document centric'. That didn't happen, but the best idea's of 'document centric computing' are still with us (like components). Now the world is going to be 'internet centric'. I have an odd sense of deja vu. I can see some good things in .NET that will probably outlast the whole internet craze like the Common Language Runtime thing and using a VM that isn't tied to a specific language (yes there are other languages for the Java VM but there are very few of them).
I can see this happening when MS's marketing department get's wind that 'internet centric' is not going to be the next big thing. They will then go through .NET, look at what is usefull, rename it and start promoting it under the new name. You will still be able to do this internet centric stuff with .NET's successor, but it will be pushed to the background - the same way you can still do document oriented computing with COM - just that nobody does.
At some point, somewhere, the entire internet will be found to be illegal.
Get it right. Sun created a spec and called it Java. MS made one and called it Java. Sun said. That won't work with Java.
Court agreed. MS is barred from inventing Java.
They're not barred from making products for Java.
The message on the other side of this sig is false.
Java is multiplatform (.NET will not be unless Microsoft is split up, then it may be ported to Linux)
.NET to other platforms.
.NET is controlled by Microsoft and is even less likely to be an open-standard
.NET will be more open than Java ever will be (since sun ran away from ECMA and ISO).
No. Microsoft plans to port
Java is relatively stable now that most of the bugs have been worked out
No. Ever looked at bug track on java.sun.com? There are 2 year old bugs that are critical to applications that have not been fixed.
C# and the CLI (Common Language Infrastructure) have been submitted to the ECMA for standardization.
I work in that field. Java, while not fully open, is much more open that .NET or the ridiculous C#.
C# and the CLI have been submitted to the ECMA for standardization. Java was retracted from both the ECMA and ISO. How do you figure that Java is even slightly 'open'.
No. .NET also includes the CLR (Common Language Runtime/VM) and huge .NET class libraries.
Ex-squeeze me? You don't honestly believe that Microsoft is going to support its competition??
What you will see is just like what everyone sees that tries to use the Microsot web services like Windows update, Knowledge base etc etc. A redirection to download Internet Explorer.
After all, with Netscape, or a secure (i.e. non-Microsoft) OS, Microsoft couldn't as easily spy on their users than with their own products. It's funny how IE barfs out completely when I block msid.msn.com with a couple ipchains rules. Even if I didn't access MSN at all.
Brave New World, indeed. Take a little SOMA.NET and all will be well.
(Just don't ask any questions.)
Home Page
Follow the bouncing ball people.
.NET a software 'platform' so you create applications for it and not the OS
1 : M$ gains OS monopoly.
2 : M$ uses monopoly to monopolise applications
3 : DOJ threatens to break up M$ so they can't abuse the OS monopoly
4 : M$ creates
Just like before M$'s programmers will have access to undocumented features to ensure that M$ Office etc will run better than anyone elses.
Welcome to your new monopoly.
--
Steve Jobs: We're better than you are.
Bill Gates: That doesn't matter.
'Welcome to Rivendell, Mr. Anderson...'
"Java is an interpreted language and can run on any platform"
Java does not run on any platform. I hate when things like that are said. Don't get me wrong, I like Java a lot. But, in the end, Java "officially" runs on three platforms Windows, Solaris, and Linux.
If you want a portable language (if that really is all that of a deciding factor when put up against factors such as performance, robustness, maintainability, etc. -- notice, I am not saying that Java isn't any of those), go with Perl. Or, *gasp* C/C++ or Python. I can reliably run any of that source on my *BSD boxes, a HP-UX box, IRIX, AIX, etc.
Java is portable. It is just not as portable as Java-folk like to espouse.
Jeremy
I still maintain html stuff like what they do in MSMoney could be done in any language. In java for instance their are HTML components that work quite nicely, the Ice browser for one, and one of lesser quality the JEditorPane even comes included with the JDK.
All you really need a is good framework behind your application to do this. Maybe JScript, etc. are a good start but that's not to say there aren't other choices. Java isn't as limiting as you make it out to be. I will admit there aren't very many java apps out there right now that do this, publicly available anyway.
Java is slowly getting better performance on the client too, 1.3 is a vast improvement over 1.2, I just wish it didn't take so long between releases. 1.4 is supposed to have substantial performance and memory requiremnt impovements.
I'm tempted to mock something up in Java to show you how easily an add/remove "like" dialog could be done but I'm sure it would be a complete waste of my time.
You don't need C# or .NET to do so called "html-based" apps, you can do this in a lot of languages including Java.
C# vs. Java article. How many of these have we seen in the last 6 months alone?
This is a manual virus. Copy it to your sig and help me spread!
Java, however, is sort-of multi-language. I remember seeing once a list of different compilers for a whole bunch of different languages that could compile down to java byte-code.
Asking slashdot about Java and Microsoft technical/business strategy is like asking the Republicans what they think Clinton's legacy will be or the Democrats whether a right wing Christian fundamentalist should hold the highest law enforcement office in the country. You are going to get answers that are more informed by ideology than by reason. Slashdot readers are demonstrably anti MSFT and anti Java.
I don't know too much about .NET in general, because I choose not to. But from the comments I've read here, let's just assume that .NET lets an appropriate virtual machine run code written in any language supported by .NET. And now let's throw in that the virtual machine runs on Windows on PC's, because that's where Microsoft will realize the greatest profit, because it forces everyone to run Windows on a PC in order to take advantage of .NET. What's the difference between running a program written in any language that Microsoft condones so that it will run on .NET-enabled systems, also a Microsoft-controlled market, and running a program written in any language the developer pleases on whatever platform you choose? Basically, the difference is performance and choice. Logic says that either the original assumption about what .NET is is wrong, or that Microsoft is creating .NET solely to unfairly exploit its monopoly status. (Note that I used 'or' and not 'xor'. ;-D)
> Have I done enough to earn a "redundant"?
No, because you failed to repeat my assertion that they obviously didn't sound alike.
:-)
--
http://www.gimbo.org.uk/
Microsoft is making a big deal out of the fact that developers can code using C++, C#, VB.NET or whatever, while Java developers have only the one language, and this much is true... However there is no reason why bytecode compilers cannot be written for other languages. What always struck me about Java was Sun restricting the coder in this way. If you look at the new Amiga platform you'll see thay took a better route - different compilers for the virtual machine (and a better virtual machine at that...)
According to Microsoft, they're working with Rational to do exactly that...
And who's to say that Microsoft won't yank it from submission after a couple of years just like Sun did? It seems as though they are using every other idea from Sun in creating this...
Typical .NET service
030EDF8C997A34658D2C...
...
MS has been working on the XML side for some time now, so that shouldn't really come as a surprise. As for C# being "like Java," see my (now probably outdated) impressions of the language based on a Dr. Dobb's article.
Microsoft embraced java, which included a license that said nobody but Sun could extend it.
.net: a java that only works atop Microsoft OS's.
Microsoft extended java (to block out the competition) and effectively killed it.
Sun sued and won... but Java had already been killed.
Microsoft's new extension of Java is
Warning: Apache is next. With Netscape and Java killed, Microsoft will extend IE to not be compatible with Apache, so everybody will have to buy W2K servers.
This is what the old Justice dept. tried to stop (the new Justtice dept. is in the hands of the crooks).
When I die, please cast my ashes upon Bill Gates -- for once, make him clean up after me!
Good rundown.
(I think the days are finally coming when the bright people at MS are finding that the combined efforts of (i) putting up with Bill's ranting and (ii) putting triphazard code in bloatware are sorely testing their patience, especially given the recently lengthing rise times on the share price.)
All that aside, I'd say that Dflat represents only marginal improvement over Java as a language; and not so much improvement as to justify using it or switching to it given the strong base already in Java in terms of capability and bug-fixing that has already polished most of the rough edges of that language. To be sure, there are still some warts on Java, the major problem being Sun's desire to keep it locked up far longer than would be beneficial for the community at large.
The .NET XML thingy does sound pretty cool. I'm hoping that a nicely thought out design will result that can be built upon, that B doesn't pollute it with marketing driven squirrely behavior "to protect Windows" or some other equally misguided objective.
I think the proactive company here in this context is IBM, what with releasing initial SOAP examples as well as various tools like the XML parser.
MS Windows and Java have both been examples of potentially useful standardization that have been needlessly thwarted into beasts with built-in impediments. They became architecturally necessary for programmers due to some inherent usefulness, but they were built with the objective of making some particular corporation the gatekeepers and toll collectors rather than simply providing the purest technical solution.
There REALLY needs to be a better mechanism for migrating emerging technology from the outer limits into the core. I like to think of the process along the same lines as what took place so that we now are able to refer to substances called dry ice or bandaids without capital letters and without fear of trademark/copyright infringement. The current situation takes far too long.
As I've said before: 17 months, not 17 years.
"Provided by the management for your protection."
If Microsoft can deliver on a *cross-platform* solution
Yes, if M$oft did this, then they could compete with Java and may even beat it.
But that's not what they're doing. .NET works on any platform that's Windows, or is prepared to think down to Windows' level. If .NET gains any cross-platform capability, it's because the platform goes out of its way to accomodate .NET, not the other way round.
3. Cross-platform. Let's just say that more than Win32, MacOS, and WinCE are on the roadmap
I've got a "roadmap" that tells me where Captain Kidd's treasure is buried. We want product, not "Trust us, we're M$oft" promises about future coverage.
If either of these coding platforms were to bind itself (and they don't) to any client model (and there's more than two), then it would immediately be dead in the water.
There's no need to restrict the client model, and developers will run a mile from any tool that tries to limit them like this.
So if you have it all figured out, why don't you clue them in? (for a hefty consulting fee)
My consulting fees are already hefty enough, thanks for asking. I'm doing pretty much what you suggest, only I'm not doing for M$oft. 8-)
Only because SOAP is a broad standard, and can contain multitudes. If you use it with .NET though, M$oft have pushed it about as far as possible to avoid interoperability with other non-M$oft SOAP services.
Look at the change history from 0.9 -> 1.0 -> 1.1
Why do we need to do everything by serialising objects anyway ? That's only of interest if you're stuck in the "Everything is a COM object" mindset. That's a terrible starting point for starting to build eServices.
you Linux bigots
Oh come on, I might be bigoted, but I'm no penguin-squeezer. I just write apps, I'm not into OS flamewars.
I'm an ASP guy. I assume when you say browse .NET pages using a Linux you mean webpages. Well, ASP+ is for the most the most part server side. Also, it automatically generates different code depending on if the browser(Netscape) doesn't support some of their cool propertary stuff. Of course NS 4.76 can't render even the alternte code but Mozilla does.
Hollow words will burn and hollow men will burn.
Addressing your points:
.net - when there are definitely exploits out there that take advantage of broken ActiveX controls? No, .net is not a sandbox.
.net and the VS alpha (what is called "beta" by Microsoft) installed on W2K; it crawls on a PIII 650 with 256 MB.
1. Any Language - but only those languages castrated so much and to that extent that they fit into the scheme imposed onto them. Eiffel is not Eiffel. VB is not VB. Of course that is what Microsoft wants you to believe
2. Native execution - Open for reverse-engineering. No means to test binaries, because at the deployment site any interpreter (remember how badly Microsoft's C compiler misoptimises a few things?) may be around?
3. Cross-platform - Where? I see something tied to 32 bit Windows. Microsoft want everyone to believe that this thing is cross-platform, but it is not in Microsoft's interest! But since cross-platform is hyper-cool, that's one more thing that needs to be on the marketing cheat sheet.
4. Security. Native x86 code is unverifiable - as demonstrated by VMware, for instance? And why can I call COM objects from
5.-6. - Don't care
7. Distribution. With desktop apps - I will have to ship a multi-megabyte download to each deployment site. I will have to install that. Can you spell logistics and maintenance nightmare?
"These are just some of the improvements" - Improvements? Where?
FWIW, I have
"The reason there are many languages is that different languages have different strengths. "
.net requires that the languages be severely castrated before they can actually run on .net.
...)
True. But
Microsoft want you to *believe* that you can use different languages. In fact, you use exactly one language (C#) with a variety of different syntaxes (Eiffel, VB,
How does Microsoft figure? If we are dumb enough, we can use their "Jump" tool to port our java code to c# (which would be making platform independant code platform dependant -- I don't see any benefit). Sounds like MS is thinking of removing the Java Virtual Machine from IE and trying to take over the thin client world.. not by quality of product.. but by bullying their way in. -Celtic
=-=-=-=-=-=-=-= - The Celtic - =-=-=-=-=-=-=-=
Hmmmm... what's this X-box thing??? Is Gates trying to out-Japanese the Japanese?
The IPCC has purposely engineered a massive scientific fraud.
Well, one of the things *should* (but probably wont) be better performance since they're only targeting one platform. :-)
One of the downsides of Java is it's relativetly low performance.
On the other hand, that doesn't really mattar anymore since cpu's are so ridicoulusly fast these days.
(Well... It matters in most 3d games, but we're talking office applications here, right?)
/.Mattsson - My native language is not English, so please don't whine over linguistic errors. (That's lame anyway...)
Seriously, some of the benefits of .NET are pre-compiled pages and no more "scripting" languages: actual C# code in the page. When I asked the presenter what the difference between what C# gave me and Java Server Pages were, he looked at me blankly and then stammered out a response about scalability issues and how several "industry-standard" metrics show the MS platform to be clearly superior to anything that serves as a JSP container.
psxndc
ps: Yes, I know C# != .NET, but C# is the foundation of future development in the .NET architecture.
pps: There is one cool thing about .NET: Supposedly you can extend say a C++ class using VB or C# or whatever. .NET has a common runtime library that allows you to inherit and extend object using a language that the original object was not written in.
The emacs religion: to be saved, control excess.
As usual, we got a FUD fight with this one.
Might I first direct anyone with a true interest in the issue to this month's Dr. Dobb's Journal, and the C# vs Java article in there. I think it's very slightly biased to C#, but is has some excellent points and a good summary. .NET isn't touched.
Java openness:
http://java.sun.com/docs/books/vmspec/
http://java.sun.com/features/2000/06/jls2.0.html
That looks to me like the specification is open to the world, as it always has been. True, it isn't ISO or IEEE or anything, but the standard is there, and Sun enforces that standard zealously, as the lawsuit to MS showed. JCP (Java Community Process) is forming up and gaining steam. It will be interesting to see if the evolution is as open.
C# is a very good language. I think some of the language will be adopted back into Java, and some hopefully won't be.
Take a step back, and remove said corporations from the equation.
C# is continuing the C and C++ traditions of power and comprehensive "I can do anything I want". Java is moving to the "simpler is better" philosophy. They both work people. Don't get so bent out of shape about it. They are both going to exist. With luck, C# will at least wipe VB out, and maybe ditch the MFC morass while it's at it. As a Java developer, I also hope it will push the evolution of the language that little bit faster, but I also hope the "trust no one" philosophy of Java continues, and C# can continue the "trust everyone". I oversimplify on that point, but the base levels of security still extend the ActiveX and Java base lines as I see it.
But then, I suppose it's been said, everyone wants to back a winner. Then back them both. The great coders don't only know one tool. I know a number of languages beyond Java, and every coder should. It creates perspective. Specialize by all means, but don't throw away all the other good ideas out there.
2 cents. Invest in your thinking and you'll gain interest.
Sure, a lot of things could prevent them from doing that. First, the "layers" could be complex beasts which simply aren't very easy to implement for Apache. A probably far more likely stumbleblock would be if these features were so tightly integrated with other MS servers and protocols that it would be virtually neutered if pulled out of that context. Look at ASP. It has virtues but most ports to other platforms are seriously lacking because it's so dependant on other MS widgets. You end up with the bad parts with none of the functionality.
This isn't "stupidity", it's just "extend and conquer" as MS has played it before. Integrating the client into Windows allowed MS to shoot down Netscape (never mind that MSIE is better than NSN). Microsoft dominates the desktop profoundly and is doing everything it can to leverage that dominance in the server market. Just as they used their desktop OS dominance to conquer the application space. Will they succeed? I don't know. But impossible it's not, and try they will.
IE on the client is _key_ to this strategy, and it can happen. I might be paranoid, but stupid I am not:-/ Thank you.
-
-
Listen. Strange women lying in ponds distributing swords is no basis for a system of government.
-
-
Listen. Strange women lying in ponds distributing swords is no basis for a system of government.
Actually as it's ".NET" rather than ".net" it is more sensible to pronounce it as an abbreviation. That is: en-ee-tee or "any tea" in which case it sounds even less like java.
The other purported advantages you list for C#/.NET/CLR/MSIL are similarly specious. Large-fraction-of-native-speed, cross-platform, secure distribution is already available with the Java-the-platform, and the other advantages you mention are at least as easy with Java (Java-the-language and Java-the-platform) as with .NET. Further, free Java/JVM implementations are mature and widely available (from, for example,
IBM,
Blackdown,
TransVirtual (Kaffe),
and
Sun, for varying definitions of "free").
.NET is not an example of Microsoft "getting it." .NET is an example of Microsoft continuing not to get it -- reinventing the wheel, rather than building on perfectly good existing systems.
--
``Life results from the non-random survival of randomly varying replicators.'' -- Richard Dawkins
Both solutions from Sun and MS are designed to connect systems together over the net -- this is nothing new and we have been doing it for years. The big difference is how they are doing it.
Sun does it via API while MS does it via *data* (using XML). That is MS is making the data to be the central communication protocol, not the API or SDK.
Because MS's solution is based on enabling the *data*, this solution is better as it is not an "invasive" one; i.e.: the client and the server don't have to be "one" (i.e.: Java)
For example, must every new device that we come up with support Java in order for it to talk to a server that supports only Java? With Sun's solution this is the case, the client (the new device) must support Java in order for it to talk with the Java based server. MS's solution removes this requirement; both the server and the client (the new device) can be anything using any SDK or language as long as they understand XML.
Karma stuck at 50? Add 2-5 inches.. err.. 2-5x Karmas Count to your pen1es.. err.. Karma all naturally and private
Your point holds when you are writing new code. However, there are a lot of diverse (as you pointed out) code out there that are still in use and won't go away anytime soon (or ever) that must be supported AND work with new code.
.NET shines.
If anything, this is where
Karma stuck at 50? Add 2-5 inches.. err.. 2-5x Karmas Count to your pen1es.. err.. Karma all naturally and private
You obviously never tried out Microsoft "Promise but never deliver" Support. You'll love Linux "www.google.com" Support soon enough. HTH.
Pi.
Even then, developers architecting applications in C# face another set of pitfalls: lock-in. Any nontrivial application will need to use higher-level APIs (e.g. for database access, etc.) that are unlikely to be in the libraries turned over to a standards body. It doesn't take 100% of your application to be tied to .NET to result in platform lock -- just one critical piece. Therefore, by definition, any nontrivial .NET application will likely be extremely difficult to port to another operating system. The result is vendor lock in, the vendor being Microsoft. The Java language, VM, and APIs are all vendor neutral. There is no vendor lock in.
(Emphasis mine)
Microsoft, by upgrading all of its (by now fairly standard) development kits to .NET versions will be encouraging mainstream development to take place exclusively on the .NET platform.
By only releasing nonciritical libraries, any application developed on .NET will be locked to Microsoft-supported operating systems.
Therefore, mainstream development will be locked to Microsoft-supported operating systems, I.E. Windows. This, if adopted, will put one hell of a dent into third-party development and porting efforts on Linux/BSD/OS X development systems [which, incidentally, are all quite close to one another and might very well present a big challenge to Windows dominance in the future in the absence of developer incentives {see .NET}].
Microsoft, just like everyone else, probably knows that renting Office applications has as much of a chance to fly as my 17" monitor. The futore of .NET is in development, and that's really scary.
"Evil company X is threatening to restrict our rights! Let's all get together to stop--OOOH! SHINEY!!!" -- AC
Oh good grief. Why "obviously the pages were fast compared to Java servlets"? Without any corroborating evidence it sounds rather as if you've swallowed the MS bait hook line and sinker.
Andy Armstrong
with none of the licensing restrictions Sun likes to impose to keep companies like IBM in line
These restrictions are to ensure that Java remains cross-platform. Otherwise the benefit and 'promiss' of Java would be compromised.
If MS (or IBM, or anybody) was allowed to muck with Java as they saw fit, their version of Java would cause a fork, negating the whole cross-platform idea.
I guess MS isn't interested in me getting into their wonderful new technology since they have made it so that their .NET FAQ makes Solaris Netscape crash :)
Oh well - it won't be too difficult to live without it... :)
Umm. We're talking Microsoft here. What the hell do YOU think the answer is?
Go have some coffee. You're apparently not awake yet.
What ever the hell Microsoft had planned for Visual J++ 6.0 and above, they are simply shifting those plans into the C# Visual Studio.NET crap. Fuck Microsoft, Java is better, C++ and X86 assembly will always rule! Thanks, Travis forkspoon@hotmail.com
Thank you. I wish there was a way to moderate above 5 -- your post corrects a mistake in the question and answers the question that was probably intended.
-- @rjamestaylor on Ello
Sorry, but we've done some quite healthy EJB development that's accessible via servlets, COM clients, and XML front-ends. If you do it right, it doesn't matter what language or platform you use, it just works...to the tune of brisk coinage.
As far as using Java to write monolithic applications, that's just the wrong model. I suspect that quite a few of these monolithic development (dot-com) organizations wound up feeling the 'Big Crunch' last April.
As WHO?!? Who's paying your MSDN subscription for you? How about your DevStudio subscription? BackOffice SDK subscription?
I'm sorry but I have to flat out disagree with that statement: I have yet to see a Microsoft development tool or technology that didn't involve deep pockets and restrictive licensing.
And then there's the various Java IDE products...pick a winner and run with it. The biggest liability I see in that market is that good client application development tools don't make for good server application development tools and vice-versa.
I do agree with your assessment that Java's failing on the client side, though, and if Microsoft plans to focus on data- rather than API-delivery as the route to .NET nirvana, I think the Java contingent really needs to get its act together and provide some meaningful competition...or claim no contest and get out of the pool. alphaWorks and java.apache.org notwithstanding, widgets != useful applications.
Sure they are making the specification for the language open, but you can get the entire source to Java: VM, runtime, and JIT.
journalistic standards?
you must be new here
"The Empire Strikes Back"
Yes, but the bytecode stucture Java is set up for the java programming language which is the point that he made.
This Wiki Feeds You TV and Anime - vidwiki.org
I don't really understand much about the .Net framework yet, but I've been playing around with the VB7 beta for a couple weeks (I'm primarily a VB6 programmer, basically because my previous boss, while being a nice guy, and a lot of fun, is a fucking idiot. Under my current boss, we're trying to move our heavy-duty data processing to VC++, but my major app has ~500K of VB source that I wrote over the course of two years.).
My basic impression? VB is dead! Long live VB! My first year and a half as a programmer was spent maintaining (and heavily recoding) old QBX 7 (Microsoft Professional Basic Development System 7, QuickBasic eXtended, whatever) code, with some rare VB4 work. From there, I went to VB6, and VB.Net bears far less resemblance to VB6 than VB6 does to QBX. When I made the previous move, I brought a lot of my QBX code directly into VB6, just adding variable predeclarations; I couldn't remotely do that with VB6 and VB7. However, they're including an upgrade wizard that should take care of most of the changes, like getting rid of set statements and changing variable types. The articles that Microsoft has telling you what to what to avoid are mostly about what the wizard can't cope with.
Anyway, I don't like to talk about what they changed or upgraded, because it's just not the same thing at all. VB7 actually looks like something I won't be embarrassed about making my living at. I am pissed at their making all arrays zero-based, however.
I expect that VB7 and C# development was pretty much parallel. They made a new RAD system, with two sets of syntax, one line-oriented and verbose (VB.Net), and one semi-colon oriented and more cryptic (C#). It's just too bad that my preference is semi-colon oriented and verbose. I want to see QuickPascal.Net, damnit!
P.S. Microsoft Basic goes back to the one Bill Gates personally wrote for the Altair in 1975, not just to the 80's.
I'm a VB6 developer and, frankly, I'm exstatic at what they've done. VB6 deserved to die, and I'm shocked, and incredibly impressed, that Microsoft had the balls to do it.
7. Distribution. With desktop apps, an x-copy will actually suffice as the install routine. All apps install their custom components into their own dirs. The system repository tracks all versions of all DLLS installed, and automatically produces the proper version for the proper app at launch time. No more DLL hell.
Granted, this will be a massive improvement. However, why not just use static linking in the first place?
Ignorance is what binds the chains that hold you down.
Java=.NET
.NET is a direct rip-off of java.
.NET doing thing better?
.NET, I like Java.
Package=Namespace
Byte Code=ILASM
JIT=JIT
Reflection=Reflection
Sandbox=Cooler Sandbox
GC=GC (no more ref counting)
Serialization=Serialization
Exceptions=Exceptions
Plat-Ind=Corel? (doubt it)
I'm sure this is only the beginning of the similarities, but in my opinion,
As far as
Threads that you know how they work.
Remoting is a snap.
Very slick Call context.
I like
.NET will win.
My freshman year, a friend in CS had the project of writing a program to convert C++ code to Java (or maybe it was the other way around).
He pulled it off (I can't remember if the code had to compile and execute, or just look right)... and C# is patterned on Java is patterned on C++.
You're missing the point. If .NET takes over the mainstream, it will be the final piece in the puzzle that large corporations have been constructing to have total control over mainstream users' computers. Sure, we programmers can always use Linux and all of our wonderful, intelligent GNU software, but at some point, the mainstream is going to spill over and affect us. What are you going to do when all digital entertainment content (tv, radio, music, movies, books, etc.) is encrypted by some proprietary system that only runs on .Net enabled Windows boxes? What about people (family, spouses, etc.) we care about that don't know any better and end up having to use .Net in their workplaces or for personal use because there is no alternative for them. Saying that Open Source should stop at 'programmers software written by and for programmers' is very short sighted. But unfortunately, this elitism seems to be the view of most Linux advocates. I'm not for the commercialization of Linux anymore than anyone else. I don't like RedHat or see a need for them. But I do know that ordinary users CAN benefit from Linux if a quality web browser and office suite is available--the existance of which will not affect those of us who prefer vi to wysiwyg. As a side note, mass acceptance of Linux would also result in new job opportunities for Linux enthusiasts and sysadmins.
Java is no longer really that slow. With a good hotspot compiler, Java code can be executed faster than C++ code. Not all the time, of course, but sometimes. Ars Technica had a rather extensive article on why dynamic compilation can be a win compared to static.
Oceania has always been at war with Eastasia.
Yes it would be interesting for the leaders at MS to hear what the Slashdot community thinks while .net is still in the early development stages. After all why not have a few thousand computer geeks analyze your strategy and point out its strengths and weaknesses while there is plenty of time to change. By all means, let's help Microsoft capture a new monopoly. Look at how well behaved they were with their OS monopoly!
Not obvious. Servlets are among the fastest way to get dynamic content, capable of hundreds or even thousands of page generations per second from a single uniprocessor. Please prove your claim.
and also C# can use classes written in other languages which i found very interesting.(and java has yet to find a way to do it).
Incorrect. First, there exist compilers for numerous languages that translate to bytecode. Second there are interpreters like JPython and Jacl, if you want to marry scripts to your Java classes. Third, projects like gcj offer an alternative to pure Java that lets you easily marry Java/C++ code.
>> and HD TV cable ready.
.
>My TV doesn't have a hard drive.
Um . . . HD stands for High Definition . . .
-b
N -eht
Jah -vah
Don't sound anything alike.
(Hey you try to type a schwa OK?)
---
This
Regardless of its similarities to java, it is not java and Microsoft is "betting the farm" on it. When Microsoft puts this much effort into something, you should be nervous. I am.
There is no doubt that Microsoft has made some great software. But never forget that the .NET initative is not only Microsoft's "revenge fantasy having been denied the right to 'embrace, extend and exterminate' Java," it is also Microsoft's cunning plan to effectively nullify the anti-trust lawsuit should the company be split up. Once .NET becomes a standard, Microsoft is no longer reliant on the sales of its Windows OS. Therefore having Windows and the rest of the company split apart will make little difference to Microsoft.
Also, as moral and responsible citizens, we should not embrace a product simply because it is efficent. As consumers we vote with our or our employer's dollar on companies and what they stand for. If what they stand for, in terms of ethics, is not in the interest of citizens, then we should seriously reconsider our investments. Therefore other factors must be considered as well.
Given the potential political ramifications of .NET, I would strongly fellow Slashdot readers to not simply weight its programming and efficiency benefits, but its politicial and ethical ramifications as well.
Mystx
There are some simple rules that microsoft is going by. 1. They can not use Java 2. Because of 1 they have to produce a product that is better than 1 3. They are a big company 4. Because of 3, bullying and stealing of other products is legal to them. 5. If 2 can not be met, 3 can be which means they can make it appear to be a big deal 6. If 5 can't be met than it can be forced onto the consumer because of 3.
There's nothing to stop that - it has been done a number of times, but never very successfully, if memory serves me correctly. Can't seem to remember what languages, but Pascal was one of them....
Black holes are where God divided by zero
I've been running Visual Studio .NET beta 1 for a while now, and the only real improvement over Java that I've found is the ability to subclass in different languages. If I design a class in C#, I can subclass it in VB.NET (which is nothing like Visual Basic of old) seamlessly. This is a really cool feature IMHO. At work we do numerous development projects in more than one language, and this could prove to be a much better way to integrate languages than other techniques (COM/DCOM, CORBA etc.).
The other features of .NET are so similar to Java that it's embarassing to listen to the hype around .NET as an innovation. I tend to think of it as what Java should have been all along, and practically *IS* with J2EE, cross-language subclassing aside.
Black holes are where God divided by zero
Person I think it sounds more like CORBA. Which IMHO provides a much nice environment. Cross-platform, language neutral, etc., etc.
...which means that it probably is! I don't know about my fellow /daughters but the whole hype of .NET seems like a snare. All the benefits of what Java promised && couldn't deliver in an enticing open standard??? This is MS we're talking about here. This seems quite likely to be a masterful ploy to slurp up Sun && most of the GNU/Linux/BSD threat in one fell swoop. If the whole werld can be unified under the (MS authored) .NET architecture, it can be cinched up at the right moment... even if it has been open for a long time.
If it becomes as ubiquitous as tcp/ip or html, it may be nearly impossible to fork away from MS's new platform for "innovation" (term used cynically). I imagine it's a gamble. Will geeks of the werld be able to dodge MS's bullets && pry this new gun away from this behemoth of a software-industry-by-itself && point said weapon in a globally beneficial direction should it's creator decide to turn the barrel against the standard's developers && supporters? [Please excuse me if that sounded Katzey. At least I didn't mention Colum... oops! =) ] I'm not sure. This is a big red flag to me. Maybe DirecTV outsmarted many right before the big game... maybe geeks werldwide aren't dumber than MS strategic planners && devious technology usurpers...
Hey, I want global open wonderful magical powerful standards as much as the next nerd but I don't want to unwittingly end up ultimately in MS's pocket again. The ONLY thing that's ever tied me to MS was gamez! Linux is increasingly viable as an excellent gaming platform and (as a coder) I love the ability to tweak anything about my tools or interface or preferences or whatever. It's still a joy to dive into neat tools just to see how they do things to manipulate my computer in ways I've taken for granted && never had access to until now. I don't know if MS can have a secret weapon or a plan to regain control of the computing werld (&& thus the future) but this sure seems to be it if they do. Please be vigilant fellow nerds. It is the price of freedom. Watch this fox like a hawk. TTFN.
-PipTigger
p.s. Initiate Nail Removal Immediately!
My spiel ends here.
rr
Quidquid latine dictum sit, altum videtur.
Go Corel!
rr
Quidquid latine dictum sit, altum videtur.
Execution speed is only one of the minor problems behind Java. What really frustrated me when I tried using it to develop applications was it's inability to generate user interfaces that were compliant with any of the platforms it runs on. The problem is that the UI toolboxes and guidelines for, say, Windows and Macintosh programs are very different and incompatible. Java is forced to use the lowest common denominator between those two platforms and all others so you're always going to end up with apps that look ugly on all of them.
Hear, hear, I couldn't agree more. The way some recruiters and managers speak, you'd think the fundamentals changed for every language.
Learning and using Perl hasn't taught me anything about fermenting grapes, but it sure has improved my Unix and C/C++ skills. Likewise, I've never professionally used Miranda, but knowledge of functional programming is an important component of my Programming repertoire.
Thanks for the post. (you're not by any chance hiring in Phoenix, are you?)
...and you may never be obsolete!
A lot of the ideas, and even the syntax of portions of .Net (C#) are similar to Java.
In one conference I was at, the presented typed out a quick little C# program. He promptly apologized, saying it was a Java program. He then changed the case of 2 things, and it was now a C# program.
.Net brings the VM more to the forefront, allowing languages using the VM (CLR) to interoperate. Want to derive a C++ class from a VB class that is in turned derived from a COBOL object? Go right ahead. There are limitations - single inheritance only is the major one.
It also standarizes interactions between components to SOAP, and provides framework for using those messages. It's basically an interlanguage RMI that isn't limited to Java or CORBA objects.
... if they follow through, will best java in usability, at least.
.NET, microsoft has decided to keep the pseudo-code interpreter concept for the 'run anywhere'. but has actually decided to open things up. from what i've heard, they will allow various language support. that is, if someone can write a Perl compiler - that compiles down to .NET pcode - then you can use Perl programming on the .NET interpreters, with garbage collection, and the marketing items.
.NET is more than slightly unnerving.
with Java you get a particular language with which to 'write once', compiled down to pseudo-code and then 'run anywhere' having an interpreter.
with
I personally see this as a Good Idea(tm) - as one of the fundamental flaws of Java is the absurd amount of crap required to do the simplest tasks. even though the thought of COBOL or ADA
// "Can't clowns and pirates just -try- to get along?"
Comment removed based on user account deletion
So how can you not want to use .NET for all your software?
Bugrit! Millenium hand and shrimp!
You are all so ignorant. Please don't post if you have no idea what you are talking about. I would suggest actually learning what .Net brings to the table. Comparisons between it and Java are not intelligent b/c you are not comparing equivalents. They do entirely different things. You might have somewhat of an argument in comparing C# and Java but C# is only a small fraction of the MS movement. If you would like more information, I suggest reading up at http://www.msdn.microsoft.com/net/
can you really do this: .NET;
.NET 2.0
.NET though? Probably not, now there is one conversion you may have missed:
.NET)
java =
I don't think there is any current type cast for this. Maybe in
does java ==
if (c# ==
cout << "Duh...";
else
cerr << "core dump...equality test error.";
:p
I'll try to be short. And I'l try to answer most of the posts here with a simple thought.
The language one uses on a project isn't as half important as the API's you are writing to.
For most of the cases - exept for some handy scripting - the hardest part is to get to know the APIs. The most productive programmer uses the cleverest API for the job, with the suitable language. Once you know C, Objective C seems just a little effort to learn. Once you know Objective C, you can make a small step to Java.
The biggest trouble is learning the frameworks and the platform APIs, rather than learning Smalltalk or Objecive-C or whatever language you choose to do your thing.
I don't even know .NET enough to go into detail,
but my guess is that if it's not a specific language, its the control over the API's or the specs that scares me. Be it called open or closed. And extensible it is, if you can implement all the specs to start with. And who will be first, allways if not the only one, do you think?
This is maybe where it resembles Java: it tries to be The API, but then with many skins, the same actor still.
Scary really, this .NET
--------
* Sigh *
Other differences include that Java, by its very nature, is open source (that means that you can always read the source - that doesn't mean that it is free though...). OTOH, .NET can be kept so that it is not open sourced.
Further more, Java is an interpreted language and can run on any platform. .NET is comiled and must be run on platforms that it is compiled for. And since M$ has its dirty hands all over it, we can presume that it will be some time before compilers are available for non-M$ systems - and even then not 'legal' compilers.
So, difference or no differnce? Difernce...
The problem with capped Karma is it only goes down...
SIG: HUP
Reading two comments up in this thread, you'll note that I said that even though I referred to it as "open source", I did mention the fact that it isn't alwalys free (copyrighted).
The problem with capped Karma is it only goes down...
SIG: HUP
This asp.net thing you're talking about is the one cool thing I see coming of out .net. Does anybody know if there's a Java and/or open source effort anything like this? I know Cocoon uses XSLT to deliver differently-formatted content to different browsers, but it's not the same as the event-driven stuff asp.net does.
If it ain't broke, you need more software.
Yes, if you can afford multi-million dollar licence' then I bet the software you buy, run by people with EE degrees will run far better then stuff on a Win2000 machine. But to me this is horribly elitest and exactly what I don't like about Unix. It's a club for elitest. While MS is really software for the people. The proof is in the numbers. MS is by no means a perfect solution from the CS POV like a Unix box but Windows software generally does alot more work for the user (UI, on-line help, self administration) then say a piece of Sun or Oracle software which does nothing for you. And most people don't care what CS types think anyway. Oracle has like 400 user adjustable parameters while SQL Server has 50. SQL server's engine does the rest of the work itself. For most companies(most compaies being small to medium sized) the MS approach is a better appraoch. The proof again is in the number of licenses MS sells as opposed to Oracle or Sun. If you work for a huge corporation that can afford engineers to hold Sun, Oracle, or even Linux' hands then fine. Personnally, I would hate to be working for one the these huge corporations where my job was to do one thing for 20 years and then get my gold watch. I prefer to work for the comman man companies and for them Win2000, VB, MS SQL Server are most often the best solution because the DBA can also be the developer which is what I am.
.net is going to eat a chunk of flesh from their dying carcuss. Because .Net will have easy to understand tools and common themes that Windows programmers *will* be able to port to Unix and other platforms. And using a language like C# which *has* been submitted to a standards body rather then using clunky Java which SUN HAS STILL NOT RELEASED!
So you Sun people are generally a part of the largest multinational corporations while us MS people are a part of the smaller Mom and Pop operations. So of course there is a different mindset. We are about getting things done with a team of one or two devs and you are about maintaining kingdoms and the status quo.
All I have to say is that if Sun, Oracle, and Linux don't improve their software which to me means better documentation, better administration tools (how *do* you set the refresh rate on a Linux machine's display?), and better inter-operability (ADO and OLE DB rock while JDBC kinda sucks) then MS's
Have you ever tried to rely on Oracle or Sun as a small to medium sized company? Good luck.
And with Linux you are also essentially unsupported.
expecting to find more than 1 in 20 answers that aren't basically 'Microsoft sucks, they can't have a good idea?' from THIS site?
The Game Guy
Is the platform independence and the 'run once run away'-strategy simply just a classical MS-promise© ? I can ensure you that none of the .NET products my company have aquired, works on any mac, linux, sun or irix os's I've heard about.
Actually I must say that when Steve Balmer informed us that Microsoft was betting it all on one horse (Win2k), I was quite relived. The only side-effect is that this horse seems to be a little bit more than a whole familiy, just to make the most expensive of them seem like it actually worth it. Consider this: We've got WinMillenium, Win2k professional, Win2k Server, Win2k Enterprise Server and Win2k advanced server. What kind of system administrator is going to buy anything between the advanced server and Win Millenium. When given the fact that the advanced server is the only one that is server enough to run a SQL-server (add atleast $600) and Ofcourse you should be a good system-dude and run the SQL-server on a different host than the one you run the webserver on, so that you can spend even more money on another advanced server license and ofcourse ms don't even have to mention that this is a performance issue, the just call it best practice.
I'd stick to a java enegine that runs on a free OS and is made by a company that send me a mail when they have found a bug with it. Runs on any server even if it's not advanced. Why pay more than 60$ for the licence when the product is the same even if it's distributed? Why not choose a language that have been developed and tested since 1983, and we pretty much know it works.
Kinda sounds like a dream, a pretty inexpensive dream, you might even be able to buy your wife a car for the money you can spare.
Just spare a thought to the consistency of Visual basic, if then else if endif, but for god sake not elseif. This is really fun to debug, I can promise you.
-Luguber
1. It's not the moderators who have turned /. into a pile of flaming filth. .Net means Java in Etruscan.
2. There's a big demand for flamebait.
3. Parrots do not whine, neither do they dine.
4. Microsoft is bad and mean.
5. So are all the other corporate interests.
6. If Linux doesn't save the world from doom, who will?
7.
8. Stop reading my posts, everyone.
Have I done enough to earn a "redundant"?
No, your children are not the special ones. Nor are your pets.
With Microsoft's new .NET, you can write programs for many different platforms at once! Seamlessly develop for Windows 95, Windows 98, Windows NT, and Windows 2000 all at the same time! Isn't that amazing? No more worrying about which version of Windows you're customers use, program for them all!
Got Apathy?
In most cases Java's memory management is just... dying. Take a really long (say 300k) string and do a simple search and replace (in the dumbest way of a=substring(a)+b+substring(a) ). Run it. Go eat, drink, play poker, watch an episode of Futurama, come back and - whoopie... it's about to finish.
:) Go with the one who has more money...
Java is easier than C++ but you pay for that. C-Pound on the other hand could be more optimized because there will be no "run everywhere" thing. So compiler will be able to do its job once and do it right. No Java Virtual Machine, and more built-in classes...
But hey... why would you care is Sun or Microsoft owns you?
-----
Hyperom.com
Microsoft is dead to me until they come up with some original ideas. So far, they have methodically and persistently ripped off everything SUN did. It seems like they have a special "Ripping SUN" department that works 24/7. .NET's multi-language support, when the JVM supports 150+ languages. .NET supports a mere 30.
.NET may seem cool. But Microsoft's always lacked that. They've never had NEW, breakthrough ideas.
- -
It's easy to take existing technology, tack a few new features onto it and sell it as your own, which Microsoft is good at. Everything they've ever done, from BASIC to NT are rips of already existing software.
.NET IS JAVA + a couple of other features. A lot of you are impressed with
This C# BS is so close to Java, I can't even imagine how they dared develop it. It's like stealing your friend's clothes and wering them in his presence.
For the people who don't care about the originality, innovation and dedication behind software development,
dot_NET = Java_platform + Microsoft_specific_bs;
release_dot_NET_and_make_money();
------------
--------------
$_='hfflbwfsbhfzp vs';s/(^.{4})(.{7 })(.+$)/$3 $2 $1/
Hum... Why would you want the Open Source community to jump in and "save the day?" I'm sure that this is a company like RedHat's dream, but RedHat is slowly disconnecting from what Open Source stands for.
The Open Source community is doing fine the way it is. If all the newbies and "usability freaks" got their hands on Linux, they would turn it into a piece of crap like MacOS and Windows. Open source software is great because it's built by programmers for programmers. You don't have a boss pushing you around, telling you how to make software "Easy to use" -- because that's what would eventually happen. Look at applications like mutt, vi, srn, etc. They're great because they're "powerful", no pre-set usability limits. They don't assume that the user is stupid (Which Macos and Windows do and they're popular because of it)
So think again. I despise the thought that one day Linux will be "easy to use." There.
--------------
--------------
$_='hfflbwfsbhfzp vs';s/(^.{4})(.{7 })(.+$)/$3 $2 $1/
"i tried the swing demos on a pentium 133 with 64 MB memory with the 1.3 jdk. i was shocked at how useable it actually was. "
Hell, there is a huge difference between something being useable and being up to the current standards.
Comparing swing app with native (GDI or even X11) app on the same system is very revealing.
Why would anyone go for something that is visibly slower (even if useable.)?
After all, on the desktop things like app responsiveness are very important and underlying technology is of no interest to users if particular app is not up to standards set by other applications available for that system.
www.ridiculopathy.com
Applications/servlet plugins, etc. run on the server that apache runs on, and html comes out of the far end. This is what the client (browser) sees, and no developer wanting to use jsp (for example) is going to have it generate code that can't be viewed by a luser running IE.
Microshaft can't do anything about apache. Apache served millions of netscape-friendly and IE-friendly html all day today, with no ill effects.
"Next Generation Web Server"? Hmm... I know about next-generation html, which is supposed to be xml, which no browser yet supports (do you hear that, Michael? You are wasting your time, idiot) [an aside to my clueless (soon to be ex-) boss]. Any future versions of web servers will only be vehicles of serving future html, nothing more, and apache should have no problem then, either.
Need a Linux consultant in New Orleans?
It sounds like M$ has another way to stick it to the end user. The control the application. You never get your hands on it. In some ways that might be good. You know you won't have to worry about breaking it, and if you do break it, they have to fix it. It will also mean no using applications without paying for them. I wonder also if they control your documents. Will you be able to save them locally? I can see why they want to control the whole ball of wax. It might be good for them, but I think people will fight adoption of it tooth and nail.
If I look at what platform the big business players are using it is a J2EE platform (WebLogic, WebSphere, ATG Dynamo). There is no way that MS will penetrate this market within three years as a) the companies already invested heaps of dollars into J2EE and b) the admins simply go for Unix platforms to have reliable service. .NET might be nice for people doing some basic web stuff but if big dollars are involved people will go for THE solution, and that is Java.
You missed the point. The advantage of this is:
1) It will become easier to integrate really old systems that are still running banks etc, with new ones or just make them available on the internet through simple xml dumps. The Java approach more or less requires you to scrap your old (and working) system completely and then build the old logic all over again. This often leads to massive and very expensive projects.
2) Hordes of old senior programmers who could never learn to think in OO-terms get an oppurtunity to stick around and deliver competitive software to the market. These guys, and there are a lot of them, will probably all choose the MS platform over Java. This will probably be the biggest blow to Java delivered by .NET.
3) The entrance cost for a programmer is low. Building in java requires a lot more experience and knowledge than building a webpage with VBscript. This means that .NET allows you to mix junior and senior programmers more easily and still come out with a pretty solid product. This can cut costs dramatically. I know that jsp is pretty easy to use, but it's still nothing that you would see the average script-kiddie playing around with.
Will code a sig generator for food
You have some interesting stuff to say, but its clear for all you know about .NET that you don't know squat about java. Examples:
2. -There are compilers which will compile Java to native.
3.Java already supports half a dozen platforms and has for years.
4. Security? Java has had code verification since the beginning.
7. Xcopy will work fine to install Java apps too. But Java has something better called Jump-Start which will auto-update your users apps from the server. And they still have the option to work off-line.
Sounds to me like M$ is playing catch-up ball here, not leading the way.
It's nota my planet, monkey-boy - Dr Lizardo.
...why not have Java support. If M$ doesn't want to do it, maybe Sun could if M$ opens up the architecture a bit. If it's so easy to port other languages to .NET, someone could do Java. If we could all play nice together, maybe all of us could get the benefits of both platforms.
But I guess that would be in a perfect world, the "anti-earth". Beam me up snotty, this planet has sucked for a long time.
Keep coding and peace out!
I remember years ago when I read what Sun Microsystems plan was for distributing apps. Everything will sit on a server. If you want to use a word processor or web browser, it will sit on your ISPs app server and you will use it from the server. Their whole idea was to go away from PCs to diskless clients. This has been their idea for years. They have diskless clients called SunRays which can do just that. "Where the network is the computer" is their slogan. Well, M$ seems to follow suit with the whole .NET idea. I don't know if they are copying the idea of Java distro apps, but whatever M$ does in the business world, they steal from others. This has been known for years. Everyone on /. will vouch that M$ steals ideas from other companies. If M$ finds a smaller competitor that has something better than them, they'll buy them out. They just steal ideas from other companies. No big surprise for anyone on here at all.
:-P
I've heard things about programmers using .NET having to register their project through Microsoft. I hope that isn't true, and if it is, I'd be flabbergasted. Either way, I'm sticking with Visual C++ 6.0 unless Microsoft promises not to meddle with my projects in any way.
"Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
Wrong Java is now supported on .NET so now you can start whinging about MS stealing the Java language and compiling it to something other than Java byte code.
You left a couple of major points... such as...
.NET will run on PC's which can be purchased and configured up and running in a day for $4K Aus(I'm an aussie)... As opposed to Sun who generally make you wait 3 months for an order and cost you $30K Aus.
.NET makes web development very fast and very easy and has the potential to reduce you development costs dramatically.
.NET. The administration of W2K servers is all GUI... you dont need to know Perl or Unix scripts... it's all point and click. Because of stability many will argue the costs of administrating MS servers exceeds that of Solaris or Linux... but knowing the average wage of a Unix admin ($120-180K pa) compared to that of a MS admin ($40-$120K pa) I'd have to disagree.
.NET is the stability and reliability of the development environment and operating systems... For all those who haven't been totally anti MS and have had a look at their Win 2K line you will know they have made huge improvements in the past year and at their current rate are well on track to eventually meet or surpass Sun in reliability and stability.
1.
2. As was with VB...
3. Web serving is going to be cheaper on
which leads to:-
3. The remaining issue with
For us in Australia when you factor in the costs and weigh it against reliability unless you're hosting web services where people's lives are at stake (which is hardly ever) you'd have to have a blatant bias that well exceeds the size of your wallet considerably not to opt for MS.
For most of us who will be faced with the bottom line business decision there will be no rational choice but MS.
java is write once,run everywhere. .net?
write once,run nowhere,except m$ platform.
if u think m$ is everywhere,then java is equal to .net.
xcyber """"""Complexity for the sake of complexity is not a solution, neither is simplicity for the sake of simplicity
And in a world where connections to the Net still go down far too often, or it's not possible to get reliable high-speed connections without paying exhorbitantly, knowing that you can only get access to your information when you are connected is not yet acceptable. Connection goes down, business grinds to a halt? No thanks.
________________
________________
Private Essayist
I don't know about the others, but the ARM6 and above (StrongARM included) is either big- or little- endian at the choice of the OS.
Still, you have a point.
You underestimate MS. Look at it's history. It's common theme is taking an inferior product and FUD'ing the fuck out of everyone until it's an industry standard/leader. Trust me, .NET will push J2EE into 'fringe' within 3 years. (Not that I'm happy about this, I just see it happening.)
Yeah, but M$ got kicked off Java by the Sun lawsuit. Now they want to develop their own competing technology. And since M$ makes it, it *must* be better ;-)
:)
But really, Java sucks. It has lots of great features, but when you get down to it, it's simply slow and bulky. In school they're trying to teach us to program using the least time/space resources possible - in Java. How ironic.
The opinons expressed are those of the voices in the author's head and are not necessarily those of the author.
I remember talking to an MS employee who was around when they were looking for a code name for C#. Apparently his suggestion that they call it "I-can't-believe-it's-not-Java!" was not popular...
C# isn't closed. it's been submitted to the great Standards Body in the Sky. it's as open as C++.
BWAAAHAAAHAAAAA!!!
Wipes tears from eyes
I hope you don't believe that propaganda? After all, they only submitted the syntax not the APIs. How is that as open as C++?
Javascript + Nintendo DSi = DSiCade
It's more like Inferno, expanded to provide more supported languages.
> My only fear about .Net on Linux is that .Net on Linux will
.NET thingy over to Linux. Not sure where this will all go (anyone using DCOM on Unix these days? Nope, I didn't think so). I see .NET as appealing to the MS shops out there; as a Java consultant working with J2EE solutions (iPlanet AS 6.0 and Sybase EAServer), there is no drought of work to be done. I guess I can get excited when the CLR runs on Solaris; until then, I'll keep plodding along nicely with J2EE.
> whoever ends up implementing
> probably not be too Linux-friendly
Isn't this where the Corel/MS connection comes in? I heard a while ago that MS's infusion of cash into Corel was to help MS port this
i happen to attend .NET seminar recently and being a PHP,CF, and Java programmer wat i can say is that.NET has edge over Java. bcoz, C# is used to implement .NET technologies using ASP+ and obviously the pages were fast when compared to Java servlets. and also C# can use classes written in other languages which i found very interesting.(and java has yet to find a way to do it). and also multiple class inheritence IS possible in C#. i guess once M$ finds a way to run NGWS (Next Generation Web Server..i am not so sure wat it stands for) on different OS..then Sun will have a tough time preventing the growth of .NET.
having said that, i would like to add that i am not well versed in .NET. i may be wrong too..and i would be very happy if someone could prove me wrong:)
It all boils down to this, basically: .NET includes a Java-like language called C#. It's another C++ - derived language, with automated garbage collection; one of its main claims to superiority is that it has an XML-based auto-documentation feature. It also offers some other XML manipulation features built-in.
But .NET is also a complete reworking of the Windows development platform. At its heart is a common language runtime (CLR)-- essentially a virtual machine, just like Java. The difference here is that .NET will allow you to write objects in different languages -- C++. C#, Visual Basic.NET, COBOL, Eiffel, etc. -- and mix and match them in the same project. You can have procedures in C#, VB and COBOL in the same application. Everything compiles down to the same CLR bytecode.
Microsoft also just announced a Java porting strategy called Java User Migration Path (JUMP) which will allow Java code to be compiled to run on the CLR.
So, what's Java got going for it? Well, Microsoft is only going to produce a CLR for Windows (though they are working on a reference implementation of the CLR and C# -- and, according to Tony Goodhew, a MS product manager, that implementation, which will be of everything they've submitted to ECMA as a standard, will be on Linux.) The Java VM is already running on multiple OS's and OS-less hardware platforms. Also, most of the advantages of the .NET platform design can be easily incorporated into Java through existing XML API's like the Apache Group Xerces. Xalan, and other SML oriented projects (look here). In the end, it all comes down to marketing and developer religious preferences.
.NET sounds like it will work for integrating large programs such as Office and stuff to the net better, but I don't see any application for it in the small program market.
Hype is hype however, though the whole premise behind .net isnt the same as java which was the write-once run-anywhere kind of thing. The marketing tools added the buzzwords such as "application server development" blahblahblah..
-
Hmmmmm... ".NET" is a stratagy thats looks strikingly similar to "Synapse" Well MS isnt gonna be broadcasting all over the world, but the push for a singular purpose is rather frightening considering that NURV was doing the same. .NET might be more successful than we all fear. And it will avoid the DOJ thoroughly.
___________
I don't care what it looks like, it WORKS doesn't it!?!
Just dounds like world domination to me. Other options are become too numerous for microsoft's liking.
While we can all debate the "Which is better" question forever, the real point is that Microsoft has come up with a solid competitor for Java.
Nothing sparks innovation like the fear that someone will beat you to it.
Sparks are flying!
Not to mention JPython/Jython, which is an implementation of Python running on the JVM.
Get your teeth into a small slice: the cake of liberty
If MS were to be split up, it's not clear to me which side would get which components of the .NET architecture, though some guesses seem reasonable.
.NET is carefully crafted to be middleware, which means it goes with the App Company in a breakup. This is unlike COM which is pretty clearly a API facility and therefore belongs to the OS Company (DCOM is arguable). Which gives them the right to control "the platform" for upcoming versions of MS Office etc., if they do happen to get broken up. Then the OS Company can go out of business for all the app company cares, because the can just move the .NET VM to Linux or OS/2 or whatever else.
.NET onto millions of machines and keep Java off them, just like they did with IE. Or at least until some judgement or settlement comes down.
Read the trial documents. The interesting thing is that it does not that much about web browsers. Instead it generally classifies a whole bunch of software as "middleware" -- the accusation being that MS is using their OS monopoly to selectively take over middleware markets (browsers and Java to be specific).
So,
And if they don't get broken up, they can use their OEM contracts to push
They should have left VB mostly the way it was.
.NET betas and boning up.
They should have. Either that or support VB6 on future platforms until the end of time.
But, this would be to ignore one of Microsoft's biggest strategic advantage in their war with Java -- the hoard of lower-paid internal corporate VB developers. These are basically people that can't be converted to {C-style} syntax, or they would have been hacking at Java or J++ at least a long time ago. By giving them a BASIC with most of the features of Java, Microsoft can make a major appeal on cost and on the "do it internally versus hire it out" question.
Now if I was a person or corporation that had invested pretty heavily in VB6 and DCOM and all of that last year's stuff, I'd be pretty pissed that Microsoft is breaking my apps and pulling the rug out from under my standard technolgoy. But these folks are accustomed to doing what they're told, and most are busy downloading the
Me coder. Me eat languages for breakfast.
One language is mathemmatically equivalent to the next, they are merely tools. What does it matter if the common runtime supports multiple languages? Most programmers today can switch languages quicker than their clothes.
For me, Language independence isn't as big a draw as the component-based architecture. But then, we had that already with CORBA. Come to think of it, CORBA is already language independent anyway. Also machine independent. Also more mature.
Remind me again what the big deal is about? :)
f u cn rd ths, u r prbbly a lsy spllr.
I don't think Java sounds like .Net
.Net will succeed like Java did. .Net is greedy, Java is not.
I don't think that
In other words, there's nothing here that can't be done with... a computer
.NET to do things that a computer can't do? Are you aware that .NET is a piece of computer software? I think your expectations might have been a little bit too high.
Are you saying you expected
Come to think of it, I'm pretty disappointed with Linux 2.4. Everything it does is the same that my computer can do. The stupid kernel can't even make me coffee in the morning! I don't know what all this Linux hype is all about.
The global economy is a great thing until you feel it locally.
Well, you said that it can't do anything that can't be done with a computer. That seems like a pretty redundant question considering the topic is about computer software. I just don't understand what the argument is when you say that.
.NET can't do anything that can't also be done by the JVM. That's a better argument because it's on topic (unlike this post :P) and if expanded can refute the post at the root of this thread.
I think a fairer comparison would be to say that
The global economy is a great thing until you feel it locally.
C# = Java
.NET = uh... sorry, no equivalent here.
.NET, only C# and the CLR. Read a few of the other posts to find out what .NET itself is.
CLR = JVM
That's the difference right there. Sun has nothing to compete with
The global economy is a great thing until you feel it locally.
When does someone invent ".COM" technology?
So, what needs to be done? Certainly not create another, even more locked and proprietary system like C#.
Java isn't an open standard. It's Sun's property, just like Win32 or the .NET libraries are Microsoft's. When you use the Java class libraries, your code may be able to run on diverse hardware, but you're writing to the Java platform, and you're beholden to Sun.
As the applet/application runs, it gets faster due to dynamic optimization based on actual usage. The JIT can even make compiled copies of polymorphic methods (superclass and derived class) and call the appropriate one at runtime. These are things that C++ can't do because it's optimizer is static (pre-run), not dynamic (runtime).
Bottom line is that Java2 performance is as good as or better than C++.
So why's Java in trouble? Because MS controls IE, IE is the most widely used client-side Java platform (hate to say it, but it's true), and MS has prevented Java2 from getting into the browser, so you'll never see all the great performance unless you go to the trouble to install the plug-in.
Sad, but this is nothing new. MS is merely repeating the pattern of abuse that got them where they are today (and convicted of anti-competitive practices in a court of law).
My only hope is that Sun doesn't sit back and let MS kill Java on IE. If the default VM becomes "no VM" and we let MS win, we'll all be without Java on the client side for ever. Run a good swing app on a good Java2 VM and you'll see what you could be missing.
I've come to the opinion that .NET is an answer for, not necessarily a derivative or rip-off of Java.
.NET shapes out. I've always been a advocate for using the right language for the job, and .NET will hopefully be a step in the right direction.
As for C# specifically, the similarities to Java are noticeable, but not necessarily remarkable. In truth, any strictly OO language will have a similar look and feel to Java, and the languages both have the same syntactical roots.
I'm interested to see how
It's not Java, but the Java mentality is certaintly there, plus a little innovation, which is a breath of fresh air from our friends at Microsoft.
My sig sucks.
Since .NET is a server side, multi development language solution. It sounds MUCH more like a MS version of PHP (since ASP is dead!) than a Java killer.
Any agreement on this?
Isn't the answer quite clear? Java!
Read all the others submissions above and you would agree.Don't tell me how hard you work. Tell me how much you get done. -- James J. Ling
.....:::[Svante]:::.....
.why .does .everything .have .to .start .with .a .dot .these .dayz?
The combination of the Windoze$criptingHost and ActiveX on the insecure Windozes is really crazy enough, but to spread this insanity to other systems with C#/.NET sounds insane to me. Aren't there already enough backdoors and security holes for hackers? A company in which marketing and new features outweigh security/stability issues shouldn't be able to survive for long. But as long as users and managers buy their stuff and keep complaining about stupid computers (when they should blame the OS), we all have to live with those smart salesmen from redmont. My only hope is that someday the big companies will realize that they throw tons of money into the M$ trashcan while they could get the same (if not better) results with GPL'ed software. Until that day I have to work with Mi$erable software on Intelligent CPU's (at home its linux@athlon ;-).
PS: Someone please warn me if Mega$oft makes it into critical devices (How'd ya like a GP-Fault in your local Nuclear-Powerplant?).
Well, I could have told you that ;)
I didn't pay for my operating system either
Either your software can detect the sendmail bug or else it must disallow software "like" sendmail. Assuming the former, if you can verify x86 code, you should be able to scan Linux for ALL possible exploits and make it 100% secure.
Which would be cool, but somehow I remain doubtful. Or are you saying that you *could* do this, but it would take several lifetimes to run? ;)
I didn't pay for my operating system either
How would you verify, or detect, a case like this? It's a darling of pointer aliasing and data-as-code. If you have a method, I'm impressed ;)
Object-oriented bytecode is verifiable because it doesn't have loose cannons like pointers to functions. Once you have pointers to functions, it seems you can create an insoluble program flow quite trivially.
I didn't pay for my operating system either
Your definition sounds like a Java Programmer doesn't know the other languages. That is not usually true. MOST Java Programmers did C/C++ before migrating to Java.
I, for one, have programmed many languages at one point or another. I have (under duress of the University) programmed in many M$ languages. I also programmed in C(TurboC1.0+)/C++(until BC++4.5) for about 11 years. Perl/etc too. But I dropped them all for Java. Why? Because it made my job a HELL of a lot easier. Doesn't anyone else remember trying to figure out which of the 20-40 versions of Netscape to download for their machine? I went to Java so that I could write something once and it would run everywhere. And my first program actually worked on Win3.11/95/NT/Mac/Unix[was that VMS? Linux? BSD? Sco? Can't remember)... That was enough to convert me.
When I go applying for a job, it has to specify Java. If they say J++, I laugh at them and am gone. If they say C/C++ -- I look at whether they want the knowledge or expect me to code in it (because I no longer have an INTEREST in coding in something that is going to be a headache to make cross-platform)... And yes, cross-platform IS an issue. If the job requirements say that you are developing Windows-only apps OR unix-only apps, I am out of there. Why? Because that means that they do not know the market. Choosing any one platform means that my job would be completely useless and not something I would be proud to tell people I worked for.
But, hey, if you want to program in COBOL or ADA/LISP or VisualBasic or something -- more power to you. Personally, I want to ENJOY my job and the product we create.
http://www.google.com/profiles/malachid
While I agree on your point about reaching new markets, I think you are generalizing the corporate junkie portion. Corporations spend a lot of money on programs that are NOT cross-platform. For example, do you think that most corporations were satisfied with how "well" their programs worked when they moved from Win95/98 to NT like they were told? I don't think so. They have to get new software that worked under the new platform (specifically without DOS interrupt 13h I think). Sure, they can budget it in, buy new copies of the software, download patches to make it work on the new machines, call technical support, backtrack and reload win 95/98 until their NT systems are up and running correctly -- whatever.... But then, some bigwig decides that Linux is the "next big thang" and everyone has to figure out what the hell to do, what hardware to get, what software to get, how to use the software, etc... Oh, and their little programs that used to work one way MOSTLY work the same way when available on Linux (ie: Netscape, WordPerfect, etc), and some are just complete replacements (Gnomepad+, whatever)...
My point is, Corporations are starting to realize that being cross-platform can make things much easier in the long run (and cheaper). Sure, they are going to be a lot slower in changing than a small company -- but when is that NOT true about a large corporation?
When I get my community-access-computer-lab up, and I am running Linux and WinWhatevers and Mac and anything else people need/want (yes, I realize that I could FORCE everyone to use Linux or whatever -- but tell me how much smaller your target market is then) -- we are ONLY going to be installing programs that are cross-platform. Why? Because, I want ONE copy on the network that will install EXACTLY the same way on EVERY machine. We are probably going to have intern students from the local college working at the lab, installing the software -- and being someone who has been in that position before, I know that is the best way. And what OS is our customer running at home? Doesn't matter. What OS is on the laptop someone brings in? Doesn't matter.
To sum up -- if the corporation you are working for does not see the NEED for cross-platform coding, they are obviously not knowledgeable enough about the real world of HiTech and you might want to leave while you have the chance. If I ever went to interview someone for an IT job and they gave me some NT-solution to some question, they'd loose the job on the spot.
http://www.google.com/profiles/malachid
"Home users are in general leary of subscription services"... No, home users are in general leery of subscription services. I, however, am Leary.
The security systems in Java are a lot more than just a sandbox, too. You really should read up on how it all works. I agree, there is no sense in just having all or nothing.
"IT managers want to cut a single check and get everything they need to make the whole system work in one box". Aha! This would explain why almost every proprietary, fully integrated business system of the last 10 years is struggling to open itself, to adhere to POSIX, to embrace Java, etc.
Having worked for many Fortune 500 companies in senior IT positions, I can assure you that the CIOs do not want to be locked in to any one vendor.
It's called The Java Community Process Program. So, yes, you're right, this is not "open" in the true sense of the word, but others participate heavily in the process (IBM et al).
At least, I thought you did. I could be wrong... Nope, you did.
Protector of Capitalist views,
Protector of Capitalist views,
Meorah
The biggest difference so far between Java and .NET is going to be the battle between thin client and fat client and the philosophies of Sun and Microsoft.
Sun thinks in terms of big servers and small clients. This is because Sun sells lots of big expensive servers. Thus, Java works best when most of the computing is done on the server and the client is thin and dumb. This is why applets suck and Sun is pushing J2EE as the internet solution. With servlets/JSP/EJB's the client becomes a dumb HTML viewer and Sun gets to sell lots of big expensive machines to run all that stuff.
Microsoft sells on PC's. The more PC's are sold, the more money Microsoft makes. Thus Microsoft thinks in terms of making the PC do as much as possible. From what I've seen of .NET, it will allow Microsoft to do what applets were supposed to do---that is run and be indistinguishable from any other application. Of course this will only be true if you are running on Microsoft's OS.
While I make a living off of Java and J2EE, I'm hoping Microsoft shakes up Sun with this .NET. It makes more sense in terms of computing to do the fat client model and is much more economical for a company to push processing out to users running Pentium 2 and Pentium 3 computers than to buy more and more expensive Sun boxes.
It also will make Web-based UI's better if Sun goes this route. Right now making a complicated user interface with HTML+JavaScript is like making a house with bubble gum and duck tape. It just plain sucks. Even basic UI components such as Trees are painful in JavaScript when compared to just making a Win32 or JDK call.
Microsoft can come up with a good idea now and then (Sun stole ASPs, for example). Hopefully Sun will steal some ideas from .NET.
Brian Ellenberger
Ladies and gentlemen, Precisely a year ago my company was trying to develop a project. The company is history now, so is the project, but the plans are still there in my head, because it was my idea. When I heard .NET announcements, the first thing to think was "Crap. They stole my idea".
Of course, Microsoft didn't steal my ideas from me, they just set on the same path I was, and since I already have been to that place, here's what I tell you all:
If Microsoft really manages to do what they claim to do and promote .NET, we're in shit. Imagine that Microsoft becomes one huge VMS, and your (well not your, bot their) computers become VT220 terminals. Nice, yeah, data stored remotely, mobile, private, secure, but...
"r00t's got tha keys"
End of message.
> I made a subtle tweak to the algorithm in the VB version, and Lo! it outran the C++ version 12 to 1.
Do the same tweak in c++, how fast is it then?
On identical algoritms, Java will be much slower than C/C++/any compiled language.
It's inherited from the nature of it.
--
Two witches watched two watches.
Which witch watched which watch?
a) No, but if it had been C/C++/Pascal & had the time to train you, I would. You already has the right way of thinking, it's just to learn a different language, not a whole new way of thinking.
--
Two witches watched two watches.
Which witch watched which watch?
I've met a Basic programmer some (long) time ago that hated C, but was forced to learn it.
He would be interested to know that C is so much alike Basic, after all, it can't be much different if there is a tool to convert basic to C.
And I've a web developer here that got frustrated by ASP on *nix, so he is learning PHP, he would also be amazed to learn that there can't be much different between ASP & PHP because there is a tool to covert ASP to PHP.
--
Two witches watched two watches.
Which witch watched which watch?
> If .NET handles the 30 odd languages they claim to support, with easy extendability for more.
.NET a standard, allow others to freely innovate on it (with none of the licensing restrictions Sun likes to impose to keep companies like IBM in line).
.NET really is vendor neutral, so shipping the .NET foundation is not like shipping the JVM which is little more than a commercial Sun product.
.NET to linux.
Yes. Already it run over half a dozen languages, with more to come.
> If they make
They did.
I'm not sure about the licensing, though.
> If they can make sure
Check Corel & MS deal.
Corel will port
--
Two witches watched two watches.
Which witch watched which watch?
If .NET approach is write once, compile everywhere, I think that this is preferable to Java approach of write once, run everywhere.
--
Two witches watched two watches.
Which witch watched which watch?
Thatn leaves out half of the Java developers, and the linux world is small enough to be statistically meaningless for MS strategy, you know.
--
Two witches watched two watches.
Which witch watched which watch?
Not only this, but you can encrypt JS code, MS has a tool that does it (for free), I'm not sure how well encrypted code can be moved around, its main use is in distribuing ASP pages whose source you want to keep.
IE, server's pages are encrypted, even if you do get the source, you can't get any info out of it.
And JS is by no mean cross-platform, it's not even cross-browser.
--
Two witches watched two watches.
Which witch watched which watch?
> VisualStudio.NET (7) is buggy like hell.. languages aren`t even backward compatible any more. Sure, you can do all sorts of nice thigns with it, but you can also throw away every bit of old and perfectly healthy code..
Or UPward
--
Two witches watched two watches.
Which witch watched which watch?
The question should be does C# sound like Java?
And the answer?
C# is Java, with a few niceties added. C#'s additions seem to have a distinct nod toward performance, specifically in regards to light weight objects (structs) that can be created on the stack. Also, the addition of compile time grammer, to perform XML serialisation for example speeds development no end.
In the end, one OO language is just as good as an another, each with their pro's and cons. The winning language is the one with the best tools / dev environment. C# et al., win with that one! I've used all the major Java env'ments and Visual Studio beats 'em all!
Cross platform? Whats that in a production environment?
Not only are you not well-versed in .NET, you don't appear to be too well versed in the English language as well. C# is not that impressive of a language -- it's like a very proprietary version of C++, with a few built-in capabilities that are normally present in C++ as libraries. Then again, I haven't looked at C# too much, because my job involves things that are cross-platform (or platform independent), and so I prefer to work with things that are based on open standards (Perl, Java, C, C++, and PHP). ASP and C# tie me to the Windows platform, which is vastly inferior (in my opinion) for any enterprise-level computing.
Who cares if it's 25% faster? The important thing is _stability_. I could name a handful of companies that went with MS SQL because of its impressive speed benchmarks, and who ditched it months later after trying to get it to work right for something like Oracle or Sybase. Sure, it may be 10% slower, but your database will only go down when the batteries in the UPS have failed.
In short -- I'd rather get somewhere slowly than nowhere quickly.
The reason that Java can't use classes from other languages is that it would require either a very complex wrapper system (overhead), or dependencies for some features on a specific platform -- exactly what Sun was trying to avoid when they designed Java.
Sun will be just fine, thank you -- they deliver a complete package (hardware, software, and Sun engineers to install it), whereas Microsoft gives a half-assed solution (no hardware, buggy-but-fast software, and a ridiculously expensive technical support staff that most likely could not find their buttocks with two hands, a flashlight, and a squad of Marines).
--
--
I Hit the Karma Cap, and All I Got Was This Lousy
A compelling story of a woman who's life is destroyed when the server holding all her personal information, documents, financial records, and chocolate chip cookie recipies is annhilated by a boot sector virus written for DOS 3.3.
--
--
I Hit the Karma Cap, and All I Got Was This Lousy
I believe that this conclusion results from thinking in terms of software that exists today. For today's software, today's model works, and the .NET model doesn't make sense. Of course I wouldn't want my word processor, spreadsheet, or image editor to be a subscription-based service. However, web-based services create the possibility of new kinds of services.
I'll provide a very simple example.
One "web based service" that I like to use is driving directions available from maps.yahoo.com. The interface to this service is manual. I open the page in my web browser, enter a starting address and a destination address, click, and... voila, up comes up a page with driving directions (along with, of course, an advertisement that pays for the service).
Now suppose I want to incorporate this functionality into another system. I have an on-line store at which customers can purchase my goods. I provide delivery of these goods within a limited area, and charge for delivery according to the driving time and distance from my warehouse. In order for my on-line store to provide the delivery charge to my customers, it needs to determine the driving time and distance to the customer's address. When an order comes through, I want driving directions to be provided to my drivers automatically.
(Assume, for sake of this discussion, that it's not sufficient for my purposes to purchase a CD with this data. Suppose maps.yahoo.com provides useful up-to-the-moment information, such as road conditions. It's not an especially compelling example, but I chose it for simplicity.)
Conceivably, I could hack a solution, programatically constructing an HTTP/POST request together programmatically and parsing the returned HTML. This works as long as maps.yahoo.com is reliable and the format of the output doesn't change. Unfortunately, I have no such guarantee, and the service provider has no incentive to make this easy for me. (Today, the provider's revenue comes from ads; it does not want me using its service without a human viewing the ads.) Also, even if it does work, it will take considerable time and effort to implement it (well, not a huge amount, but this is a trivial example).
Now suppose there were a standard platform on which Yahoo (or Mapquest, or other) could provide this as a pay-per-use service, and on which I could invoke this service with a single method call. This would be a win-win for the service provider and for me.
Another trivial example would be day-trading software that relies on up-to-the-minute market information. (Yes, day-trading packages do exist today even without anything like .NET. Again, it's a trivial example.)
Now these services are attractive to me, despite the fact that they're not entirely within my control. By the nature of the services, which rely on current data from outside sources, they can not possibly be self-contained systems residing entirely on my own hardware. They must be web-based.
>Try running standalones on anything lower than a mhz computer.
I haven't had anything lower than a MHz since the mid eighties.
Quite apart from that, stop blaming your tools, O poor workman. Algorithmic deficiencies contribute far more to program overhead than the overheads of bytecode interpretation.
For example, I once proved this point with a stock implementation of that classic benchmark, the Sieve of Erastosthenes, in C++ and Visual Basic 3.0 (which also runs on a bytecode interpreter).
Naturally, the C++ version was faster for otherwise identical code.
I made a subtle tweak to the algorithm in the VB version, and Lo! it outran the C++ version 12 to 1.
Permit me to bring to your attention that the precepts underpinning the JVM are not original, but have a long history of high performance, high reliability use on mainframes, where the VM is the only way things are done.
The architecture of mainframe CPUs are targeted toward running VMs; x86 and suchlike are not.
To be fair, the overhead incurred by an interpreter is a function of the opcode granularity, which is to say that if you emulate machine code performance will suck, but if each bytecode does quite a lot then overheads will not be significant. For example, PORT (a Cray emulator for PCs) is pretty snappy, because Cray opcodes do things like read 32K block of disk at (track,sector) into this buffer or invert this matrix of floating point numbers and return the determinant.
Java treads an unfortunate middle ground between these extremes. Java opcodes are too fine grained for my taste in interpreters.
Notwithstanding issues of bytecode granularity or the relative merits of VM architecture, Java is a wonderful language for a variety of reasons. The language itself:
These things on their own are enough for me to prefer it as a language.
Again, don't blame your tools. If you don't have any talent, look for another career.
The whole point of Java "Write once, run anywhere" (well, _almost_ anywhere), is totally different from .Net's "Write in anything, run here". Java is platform independance. .Net is language independance. How can you compare a development platform that allows a developer to write a COM object in Cobol (yes, COBOL), extend it with C++, and use it inside a VB application, to a language that simply breaks part of the compile process out into a virtual machine?
Um...I think he was making, Um... a joke...
You're missing the point. .NET will interop with exisiting apps, so there is no rewriting involved. Just keep running your existing apps.
For new apps, the sales pitch is language neutrality. I don't have to retrain my C++ coders, COBOL coders, etc. before I start my new project. They can continue to use the syntax and language idioms that they're already familiar with, and they can write web pages using their existing language skill--no need to learn ASP, JSP, Perl ... Plus, new code that they write for .NET can be shared & reused later, even if my COBOL programmer retires to Bermuda and I have to hire a VB person to fill the vacancy.
Right now, .NET contains a lot of FUD.
Among other things, it is meant to enable software to move from shrinkwrap distribution to web services. Regardless of the pros and cons of this, the '.NET that looks like Java' argument specifically relates to the development environment and resulting executables.
1) It resembles Java in two ways: the language, and the idea of a hardware-independent virtual machine. This idea in itself is nothing new; the original IBM PC could be ordered with the P-system OS (a Pascal virtual machine). In short, the idea dates back decades.
2) It fits Microsoft's strategy of replacing Visual Basic (a very useful tool within the confines of its target market and make no mistake) with something with a cleaner, easier-to-learn language that is more extensible and open to new concepts (e.g. full OO, threading).
3) It makes a lot of Windows programming dramatically simpler. The traditional Windows program is based on a nasty mess of legacy Windows APIs and huge complexity (let's face it) of COM hidden under amazing hacklibrary ATL to make it at least usable. C# will eliminate huge amounts of the pain of writing advanced Windows apps, especially those involving writing COM objects (which are hugely useful and pretty good design, when used within their target market).
4) By abstracting the APIs from the code with an intermediate layer MS is also free to implement the underlying OS however they like without having to be afraid of deprecating legacy APIs that are still in use, and so on, which results in the huge frightening spaghetti mess that is the current Windows API.
5) The abstractions to support threaded and component programming, at the language level are hugely useful (compared to the pain of programming these against low-level APIs).
Absolutely on target--.Net is basically cloning Java (but losing Java's platform ubiquity, and some of Java's nicer syntax, which is a surprise..you'd think they'd try to make C# easier to read than Java, not the reverse), and then .Net relies on a "data cloud" accessed via XML. What's surprising to me, after studying .Net, is that it does not really do anything revolutionary, despite the hype. Heck, try to find a major vendor or OSS project that does *not* foresee XML and ubiquitous data access. One other surprising thing about .Net is that it puts MS into an arena where it loses many of its traditional advantages. Who will get the job done faster, a group of Java geeks who can read each others' code ("extreme programming" in pairs, etc.) or a group of people where some are using COBOL, some C#, some VB, etc...tied together by .Net services at runtime? Which group would you rather work in? Who will supply data via XML messaging more cheaply and efficiently: a farm of Win2K servers using Microsoft Transaction Server (ka-ching), MS SQL server with adequate licenses (ka-ching), etc. or a farm of Linux or *BSD boxes running open source Java app servers with EJB's? It's hard not to conclude that .Net is part of Microsoft's "Plan B", since Plan A (stopping Java from taking over middleware) has failed.
.NET has nothing to do with portability; it's much more like an ActiveX-ish component solution that embeds marshalling information in every bit of object code. I don't know about you, but I want to write my own IDL. I want to know which parts of my generated object code are mine, and which are generated communication stubs. Worse yet, Microsoft is setting itself up as *the* central repository for interoperability information. .NET will get all of its marshalling data from microsoft.com.
Bad news. Don't buy into the hype. .NET is nothing but an extension of the idea of COM to be completely transparent to the programmer. Appealing, I agree, but a horrible idea once you examine its consequences.
"I'm going to write everything in Java because that's the only thing I know."
Isn't that also a form of laziness?
More details on what they are changing in VB:
h tm
http://www.mvps.org/vb/index.html?rants/dotnot.
It's not entirely clear to me that they've entirely ripped VB apart. I have to test this theory, but my understanding is they have made it such that VB6 and VB.Net can coexist just fine. I just need to verify the development environments work.
VB was in need of a serious overhaul, anyway. There are a lot of inconsistencies throughout the language, and a lot of cruft basically left over from the very first versions of MS-BASIC from the 1980's.
They had to overhaul it in order for it to fall in line with the other CLR languages. This eases things because they will only have one runtime environment to maintain.
As far as the claim that they've made it impossible to develop desktop apps, I don't believe that's true either. From everything I've played with, C# and VB.Net are still capable of developing two-tier applications.
I'm going to dig into this deeper this week as I'm going to attempt to port a desktop client of mine from Visual C to C#. It has a lot of user-interface stuff and should be entertaining.
Hmm, I don't recall Microsoft ever claiming ActiveX was cross platform.
.Net. You don't need the C# language or the runtime in order to take advantage of this technology. IBM has committed to SOAP as have some other companies, even Sun is reluctantly talking about it.
COM on the other hand is, there are implementations of this for Unix, even Linux.
Microsoft has committed to providing a Reference implementation of C# and the intermediate language runtime for ECMA standardization. This reference implementation will contain the core subset of the language and runtime without any of the Windows specific libraries, etc. But they have said it will compile with gcc on Unix/Linux.
But really it's the web services which is key to all of
Actually, Java's VM spec is completely open, in as much as you can go down to your local B&N's and pick up the spec. Further, there have been at least a half dozen independent JVM implementations that I have heard of. You don't need Sun's permission to write or publish a Java-compatible VM, you just need to meet their testing standards (and pay the testing fee, of course) to call it Java.
Sounds reasonably open to me.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Actually, I'd argue that Java is monoplatform.. Java *is* the platform, whatever hardware and software underneath is largely invisible and largely inaccessible without creating a specially configured binary package with .dll's or .so's and JNI interfacing.
One advantage I can see to .NET, and one that Microsoft is clearly counting on, is that you could write software that deeply interacts with the hosting platform at the same time that it interacts over the net using SOAP. In this sense, I expect to see a specific piece of .NET code be a lot less portable, but for the .NET framework to integrate more platforms in a native way than Java tends to do.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
SOAP is based on Dave Winer's XML-RPC work, and supersedes it.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
- I work at a company that is currently building an EJB e-commerce backend, and I think Java completely rocks for that.
Most people do. Who gives a shit if Microsoft get's- MS is better at implementing kick-ass fast VMs than Sun is
And IBM is better still, by a factor of four. CLR isn't going to beat Java in the speed test with IBM around...Are you saying you expected .NET to do things that a computer can't do? Are you aware that .NET is a piece of computer software? I think your expectations might have been a little bit too high.
Um, you seem to have misunderstood my post somehow, though I'm not really sure how...
Whoops, apologies.
I have mixed feelings about this; on the one hand, standards submission is already a leap further than Sun went with Java. On the other, where's the IMPP standard that MS promised us over a year ago? (note: I'm not saying it isn't out there. But I certainly haven't found it on MS's site, anyway)
The bulk of the software, critical parts, etc., will be run server side. See above for the rest of it.
.NET.
I still don't agree on this, but I think we're talking about different bits of
My apologies for making that post innacurate through neglect. I now feel stupid for doing what I critisize so many other for on Slashdot...
Ah, me too... sorry I was so harsh, especially since I screwed up elsewhere in this very thread...
-- Yoz, calling everyone together for a group hug^H^H^H^H^H^H^H^H^Hbeer
There's a big gap between promise and reality here. How many IL VMs are there right now for non-Windows platforms?
.NET for Windows is still in beta. And there's nothing stopping anyone else building a CLR VM if the spec's completely open, as MS claim it will be (and yes, I acknowledge that claims are nothing until the spec itself gets published)
.NET API?
Oh, come on, give it a chance - after all,
Just as importantly, how many non-Windows platforms will support the
As many as run the CLR VM, I suppose. There's no point opening the VM if you're not going to open the API too, and besides, the API definition is going to be far easier to get hold of than the VM definition (since developers need to write to the API, not the VM).
I'm not anti-Java; hell, I work at a company that is currently building an EJB e-commerce backend, and I think Java completely rocks for that. It's taken a long time for Java to get moving and it's only now managed to get a real foothold on the server-side, which is well deserved because server-side Java is wonderful in all kinds of ways. Unfortunately it still sucks on the client side due to poor support and utterly abysmal performance (Swing is just mud). THAT'S why I want
No, The X Box isn't going to be an NC by any stretch of the imagination, which really kind of sucks. Developers of the X Box that I've spoken to have so much as said that they want the thing to be for games only. It's their friggin' Mantra. They don't even plan on having it used as a general purpose DVD player (ala the PS2). Another dumb move.
I don't know what their plans are, but it seems like they're trying to avoid at all possible costs appearing to, once again, try to swallow up a whole 'nother industry with their stanards, which they could easily do if the X Box became exactly what you say it would.
I'm not sure where I stand on the X Box yet... If I were a microserf, I'd want the thing to be an NC. It would not only be a kick ass game machine (which it will be) but it would be a pretty sturdy PC. Looking at the specs, it could certainly fit that bill.
Will Microsoft change their view of the X Box as a potential NC? Possibly. My guess is that it will not depend on the market as much as it will politics of Microsoft's monopolistic practices in regards tothe perception of the device in the industry as a competitor.
Time will tell...
Microsoft still owns the desktop. Including the desktop of many developers/programmers. And Microsoft has a significant market share of the server market, not so overwhelming as the desktop, but it's definitely not NULL either.
Admitted, the company is losing power and is not so influential as they once have been. Especially in the embedded devices they are not doing as well as they'd like. But still, Microsoft has a lot more influence on the market than Sun. If there is any company with the (marketing) power to have .NET succeed, it's Microsoft.
Will .NET change the world? Not really. It's not *that* special actually. Will it have impact? You betcha.
I'm personally hoping that Zend will release the PHP compiler soon and that PHP will allow stricter OOP such as private and protected members in classes. That might actually be a darn good alternative. (same applies to possible Perl projects heading that way, but I do not use Perl enough to know the situation wrt this)
I should have added that it's confusing because there's also the ".NET runtime" (like a cross between the JVM and COM). But still, .NET is more than that - it's a "vision" of XML services. At least, it's pretty clear that's the message we were supposed to get from the conference.
http://www.acooke.org
This is how they plan to win the Java war and it will work for them as it has in the past.
.NET is just another retake of the JVM.
.NET it's a paragon of virtue. Microsoft have made no significant technical improvements over the JVM (indeed, none over the TCL browser plugin) with .NET - the entire purpose of it is to take market share from Sun and all of the other Java companies. And it wouldn't surprise me if an internal Microsoft email turned up which says just that.
.NET platform.
.NOT, and go with more open standards and methods. I say computing power and storage is increasing so rapidly that a physically centralised server-push system like Microsoft's .NET/ASP vision is beyond silly.
As I have said before, C# is just another Microsoft retake of Java,
Microsoft's method is to publish something crappy (either by buying comething crappy like the SpyGlass browser, or by making a slightly broken variation-on-a-theme like J++), then re-work it and re-announce it as if it were the Second Coming, then do that again, and again, and again until the buying public gives in. It's a war of attrition.
Java may suck in some ways, Java may not be a truly public standard, but compared to
Meanwhile, in allowing a cracker to take them off air for a day, Microsoft have graphically demonstrated that they are not competent to provide the underlying distribution (lock-in) system for the
I say tell them where to stick Microsoft
Got time? Spend some of it coding or testing
> There's even a tail-call instruction for functional langauges, put in at the request of the brights at Microsoft Research.
pfft. wow, they implemented an alias for unconditional jump. when the model supports first-class continuations and activations that do not assume a stack model (e.g. the security monitor being able to track through continuation chains instead of "the stack") then i will believe that they gave more than lip service to functional languages.
mind you the JVM is much much worse.
--
I've finally had it: until slashdot gets article moderation, I am not coming back.
All I've heard about .NET are nebulous claims and non-technical marketing speak. .NET sounds like M$ has finally run out of engineers and is now just full of middle-managers. .NET might be renamed "The Dilbert PHB Project", except it's not that funny.
...is that Bill, his laywers and Anders Hejlsberg sat down, figured out all the things in Java that would need to be changed in a clone so as not to get sued (again), and then Bill told Anders "make it so!"
Heh, I tried to preview my comment by actually running the applet recursively, but the site was too plugged up. I'll try again later, this will be really demented :-)
Now this is a stunt that's only practical with Java. Oh by the way, after you've played with Nautilus you'll see why Microsoft id doomed.
--
Life's a bitch but somebody's gotta do it.
No, no, no, you use the .NET to catch the stuff to make the C Hash with.
Gee, whiz, don't they teach you guys elementary cooking theory in those CIS classes? (and if not, how come there's all those "The [insert programming style here] Cookbook" books, huh?)
Sorry, couldn't resist...
---
"They have strategic air commands, nuclear submarines, and John Wayne. We have this"
Hacker Public Radio is our Friend
An old MicroSoft tactic done again and again.
Sun didn't help. They made it hard to remedy
the flaws in Java by locking up the standards.
Politics aside, I think C#/NET is the first
interesting development platform from a company
that originated as a languages company (before
OS, apps, and games). COM was really horrible,
dubbed "C--" by my colleagues. C# fixes various
flaws in C, C++, and Java (mostly stealing from
Java). The main hesitation I have is that MS has
no serious plans to port it to non-MS platforms,
instead relying on flighty third parties. If I
was starting a new product, I would do I in C#/NET,
mainly from the power of the system.
.NET is Microsoft's answer to what Sun is building with J2EE and the like. The thing is, Sun has a huge head start, and they were very smart in the way they developed their iniative.
.NET. There are even open source implementations (Tomcat, JBoss...)
.NET to death, but Sun has gained critical mindshare and momentum in the developer community, and even more importantly, in the business community. If you want to build bullet proof distributed web sites these days, some form of Java platform is the de facto standard.
.NET is a day late and a dollar short. It will provide a migration path for those poor souls that chose ASP early on, but I doubt the platform will steal any significant business from the firmly entrenched Java camp.
Sun decided to define a standard and provide reference implementations, but leave the rest up to everyone else. Because of this there vastly more developers currently working on J2EE and it's supporting technical infrastructure than could possibly work on
Microsoft may be able to market
I think
-josh
If you're compiling it to native code, you're not *USING* a VM. The goal of Java is to provide the ability to execute a program on any platform. If you can compile to the native code, then more power to them. The source code can still be available in byte-code or specific to a platform.
Bloated? As in the API? The JVM does not require that you use Java's API. As for Java being write once, run anywhere, true it is. However, it is also write once, compile anywhere to native code. That is where Java is going to succeed in the long run.
Java is as slow as the optimization you allow it. There _ARE_ runtime optimizers (JIT) as well as native code compilers (GCJ) that allows Java to be executed _FAST_. Fast enough to compete directly with C++. There are also extensions to allow direct access to memory, native code, etc.
I'm sick of people calling Java slow. It was slow when its strictly interpreted, but you can't say that anymore.
As for the API's, they are VERY well thought out. Some utilities are hacked, but the overall structure of data structures is well done and will only get better.
Yeah, it sounds silly. But then, so does Pillsbury C&Ding a bunch of software developers for use of the term 'bakeoff'.
--
Editor Emeritus and Senior Writer, TeleRead.org
Any Language.
There are compilers (and interpreters?) for several languages, which create Bytecode for the JVM. .NET are only of academic interest.
Besides that, most of the non-Microsoft languages for
And, more interesting, they usually lack those features, the MSIL doesnt support, multiple inheritance in Eiffel for example.
Native execution.
I don't think, that performance is a point. The HotSpot technology looks at the execution hot spots and optimizes them at runtime agressively. Dynamic optimization can gather some performance improvements, no (static) compiler can do.
Cross-platform
The examples, which come with the .NET Beta are quite windows centric. And with the knowledge, that Windows NT started as cross-plattform, I doubt .NET will ever run satisfying on another plattform that Microsofts own.
In my eyes, .NOT (no typo) nothing else than Microsofts own version of Java. They started five years later with all advantages and disadvantages.
The main problem with this is the long tradition of copying Microsoft has. MS-DOS was inspired by CP/M (and a little Unix), Windows was inspired by Mac, etc. Copying Java will be a lot more difficult, because it's a little bit more than a single program.
I've never bothered to read much about .NET but it's my understanding that it doesn't actually work all that seamlessly. .NET doesn't run C code. It runs "managed C". It doesn't run Eiffel. It runs "managed Eiffel". I have no idea what that means in practical real world terms, but I'd be surprised if that meant you could take random Eiffel code from off the net and have it work happily under .NET. So you're back where you started. You need someone on the team with Eiffel experience to use that Eiffel code.
And how is this going to work for GUIs? AWT and Swing have proven remarkably piss-poor at handing platform-native UIs in a cross-platform way. Anyone who has tried to deal with a Java app trying for a Mac look and feel will know what I mean. Things just don't quite work right.
If MS succeeds in doing this, it'll be great news for Mac owners, since any program written to the CLR will run on a Mac. But I have a funny feeling that it's not going to happen.
-jon
Remember Amalek.
I think you missed the point of what I was saying. If you use AWT or Swing to make a Java app and run it on a Mac, it just doesn't look and feel like a Mac app. It feels like a pod person from "Invasion of the Body Snatchers." Something is just off about it.
I spend a large part of my days doing Swing work on Win32. For Win32, Swing comes a lot closer. But it's still not quite right. Theme colors, for just one example, don't quite show through.
Is the CLR going to make EVERYTHING look like a Win32 application? If so, it doesn't matter if it's ported to MacOS X; no one will buy apps that use it. Is it going to make everything look like native Mac/Linux/Solaris/Win32/whatever apps? I'd like to see how they plan to pull this off. The single menu bar/multiple menu bar problem alone will be entertaining, to say the least.
-jon
Remember Amalek.
It's all just a wrapper around a Turing machine.
MS has had Java for some time now, and eveb tinkered with its insides to make it more "their" product. Now, they have a competitive product, backed by the full marketing muscle of Microsofy, doing very much the same things that Java does, and you're surprised?
... and 4.0 broke damned near everything. Stuff needed to be totally re-written for it, libraried stopped working, etc etc etc. Not long afterwards, they came out with MSC version 5, and things started to stabilize ... and by then, Lattice, still not even at version 3, was dead meat.
:(
Look into the "way-back" machine a while, back to the VERY early days of the PC. The biggest-selling, most-popular C compiler of the time was Lattice C. Microsoft bought a license to re-sell Lattice C as their ows, Microsoft C compiler. Lattice had a different way of numbering what they called "major" releases, and Microsoft just upped the numbers when they felt like it. About the time they released MSC 4.0 (competing with Lattice C 2.something), they finally were writing their own C compiler, not using Lattice's
Lattice eventually got bought by a company who wanted a different compiler that they made. The new company dropped everything that Lattice had, except the part they wanted. The company I was with switched to Borland's Turbo C, and eventually we folded too - too much marketing "input", and not enough engineers to keep the ever-expanding code monster in check. *sigh*
So, anyways, does it make some sense, now, what MS is doing here? They seem to be following their own time-honored pattern of luring companies in with what looks like a good deal, then poisoning them from the inside. I really hope that Sun can survive this - I have a friend, GianPaoulo, who recently started work with them. He's brilliant, and I'd hate like asll Hades for him to end up RIFfed over this
Lemon curry?
The advantage of "Diverse Code" is in the bigger picture. .NET is a additional layer of abstraction from the code. Across a corporation maybe you have one team who is more proficient in C++, and another who are Java wizards, a group that works extensively with Perl... You get the point.
.NET has the potential to allow corporations to unify their teams, making management of the systems easier.
.NET allowing diverse code, its a management problem. If you can't maintain the code, as a responsible manager, you don't let a programmer use that language simply because its faster. Sure, your programmer may think it's great because it's nice and speedy, but you have to look down the road at it's long term effects.
As I see it
Not being able to maintain code isn't a problem with
Diverse code is an option, not something that is forced upon you. I'd certainly rather have a whole slew of options than only one choice.
I've got 3 words about what Microsoft is doing better. Marketing marketing marketing. That's all they seem to be doing with .NET.
This is how they plan to win the Java war and it will work for them as it has in the past. Throw millions at marketing your new product.
.net is sort of Java, EJB, JavaBeans and more... C# is the part that is analogous to Java.
The idea of hosted, load-on-demand applications isn't exactly a new idea -- even for Java.
Microsoft's approach is to make things XML/HTML based. JScript, DOM, C#, and SOAP... Much more "fluid" than having this VM bolted onto your browser... Simple apps are simple, small, and quick-loading, complex apps scale accordingly...
It's a very interesting approach actually... Very promising, and in some ways similar to Mozilla -- although somewhat more extensive in its goals...
-JF
MrJoy.com -- Because coding is FUN!
1. Java is the most common language used to develop programs for the JVM, but nothing prevents you from writing a compiler which translates the source of any given language into JVM bytecodes; Sun does nothing to prevent this, AFAIK. See www.jython.org for an example of this which exists today.
2. Java already does JIT and native code generation. JIT is more common because it is more flexible.
3. This is the first I've heard of .NET being cross-platform. But I'll accept your assertion and point out that Java already runs quite well on every significant enterprise platform.
4. Java already has a robust security model.
5. Java servlets are already garbage collected.
6. This sounds cool but I'm dubious about it's success. Besides, you can already achieve the same goal by using Java applets or Java WebStart.
7. Java already does this, but I am glad to see Microsoft finally address the "DLL hell" problem that they created themselves.
Keep in mind that Java delivers all these things robustly *today*. It will be years before .NET will be usable for real enterprise systems. I think the point of the original posted question is that .NET is almost a wholesale rip-off of the current Java platform. There is little to nothing proposed for .NET that is not already implemented in the Java platform.
.NET is basically two things: (1) an adminssion by Microsoft that Sun is right regarding the Java platform and its goals, and (2) vaporware to try to slow the "steamrolling" rate of adoption of Java for enterprise computing. Have you noticed MS's recent ads touting their "enterprise computing." They know where the money is going, and they know who currently owns that market...*today*!
As for automatically blasting MS, either you're really clueless about Java, or you are guilty of automatically preferring .NET "just because it's from Microsoft." As a beta tester, I think the latter is more likely.
Been doing this programming thing for over 30 years. I am a Programmer. I direct other Programmers. Note the caps. We're not C++ programmers, Java programmers, or any other "tool-set" programmers. We talk to machines given whatever language happens to be available on the machine. I hire other Programmers. Tool-set programmers need not apply.
Once you've picked up a couple of languages, the others come in less that two weeks, if you're a Programmer. That implies a good education and a flexible mind.
I believe ASP.NET (which Microsoft was refering to at VBITS Orlando as ASP+) is designed to speed up ASP by compiling the code on the server the first time it is requested (this was the part that was still giving them fits at the time). In addition, it helps facilitate n-tier programming for the Web by separating out the HTML code and the VB (or C# or C++, etc, etc, etc) code, essentially creating an environment where HTML form controls act as objects which raise events, and making an event driven model work in the HTML world is the Web server's problem. A series of objects they've bundled with Visual Studio .NET will take care of some of the dirty work of determining whether to validate controls client-side or server-side by detecting what the requesting browser supports and sending appropriate code.
.NET, they're able to pull the ASP coding into their, frankly, superior IDE and integrate it more tightly with the whole .NET thing. Visual Basic Script will go away, replaced by Visual Basic (or C# or C++, etc, etc, etc) code attached to the ASP+ files.
.NET common language runtime to Linux and allow people to develop apps in Visual Studio that run well on Linux, we'll see an explosion of enterprise (by Microsoft's definition) applications that run on Linux.
The real bonus that I see is that with their "Web-Forms" package for Visual Studio
It remains to be seen whether the cross-platform capabilities they've been touting will come to pass, and I'm quite skeptical about whether or not it will be possible to code pages that use a decent amount of DHTML inside of the Visual Studio environment. But it nothing else, it's going to be a wonderful upgrade to Visual Studio which is a very power IDE for rapid application development, and here's the kicker... if they can port the
- StaticLimit
It's interesting - the developers say that's what they want, management say that they have no deisire/intention, but I remember MS spending a lot of time slagging off platform independence, garbage collectors, bytecode verification, security models etc...
.NET will end up on is the X box. Then,....
I just wonder whether one of the platforms that
Any other good names?
*note(pun intended): For those not Music literate, I believe C-Sharp and D-Flat are two ways of writing the same note (I don't know why, maybe someone who has more of a musical background can enlighten us).
This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
Not sure about the first two points:
.NET handles the 30 odd languages they claim to support, with easy extendability for more.
If Microsoft can deliver on a *cross-platform* solution.
Java is cross-platform, there are VMs for about any system you could imagine.
If
You can run tons of languages on a Java virtual machine.
Java *is* used for numerical computing and the like:
Java Grande, Java Numerics
EJB is definitely providing the capabilities that deliver on Java's promise. It's just that it took 5 years (35 years in McNealy's Internet years = dog years equivalency) to finally reach that point.
In the meantime, others have developed similar (and arguably, in some cases, superior) capabilities. Also, Sun still has never really built and made widely available at low/no cost the tools to stitch all this stuff together as easily and transparently as Microsoft does. (Sun was *years* late recognizing the importance if real IDE's, a curious stance from the company that built the excellent Sun Workshop IDEs that were without peer for many years.)
I realize all this can be done, but it was too hard for too long, and so the world marched on - had Sun properly delivered on the promise of Java for components, Linux would be primarily a Java delivery vehicle rather than an apps platform in its own right, and projects like Gnome would probably not exist at all. My point was more that the Java backers missed the window of opportunity than that the concept is in some way invalid. Still, it appears to me that most Java developers (egged on by the host of "learn Java in the shower in 15 minutes" books) are indeed trying to use the language in ways that stress its weaknesses rather than its strengths.
And after all these years, there's still no good and standard way to find/locate/execute the local java environment(s) reliably across platforms. Java has enough of a head start that it may prosper on the server side, but it is quickly approaching irrelevancy on the client side - and if that happens, it means Microsoft WILL win in the end.
"The future's good and the present is nothing to sneeze at." - Roblimo's last
Of course it sounds like Java, it's a blatant ripoff intended to prevent Java from moving forward, especially now that Microsoft has been exposed poisoning the Java APIs to ensure that it is not truly cross-platform. (Never forget that preventing cross-platform capabilities is key to Microsoft's long-term strategy. Note that this means they could (in theory) ditch Windows and co-opt Linux and that doing so would suit their purpose just as well - Java, by it's very nature presents a very different sort of threat to MS, since it could make them irrelevant.)
.NET hooks will doubtless appear as vital and unremovable parts of all Windows operating systems extending the capabilities that are already present there.
.NET, and as much as I'd hate to, if I were betting I'd have to put my money on Microsoft right now...
The real reason Java hasn't already won this war, (aside from Microsoft's perfidy) is that people are still trying to use Java to write the same types of monolithic applications that Microsoft knows only too well are doomed to eventually fail under thier own weight.
Java *should* have become the premier way of building "software Legos" that would truly allow code reuse. There are a few bright spots in the enterprise space showing the promise of Java in this regard (IBM's San Francisco comes to mind), but by and large, Java developers and backers have only weakly delivered on Java's promise as a tool for making and using such software Legos.
It is this very failure to create good components in a timely fashion that led to Java's near-irrelevance on the client side. Microsoft will not make that same mistake, and they have a huge market share wave on which to ride thier new surfboard, as
Microsoft is not stupid and realizes this. If they are successful in creating a large and powerful set of such Legos, it's "game over, man!" for Java, and needless to say, the more conventional methodologies favored by the open source community.
As much as people here love to hate Java, this may very well be a case in which "there can be only one". It's shaping up that the final two are Java and
"The future's good and the present is nothing to sneeze at." - Roblimo's last
Standardizing the CLR without standardizing the libraries and API's above it is meaningless from a cross-platform standpoint. If you will not find the same API's on Windows and on the MAC or Linux, then your applications are tied to that one platform, or you must provide a portability layer for each platform. The result: applications end up existing mostly on windows, and the windows platform is strengthened by this.
Yes, it would be counter-intuitive for MS to build a cross-platform system. They have never done anything but protect windows in the past. You use the MS JVM as an example of why MS may be confidant in being able to write a fast JVM. Well, at the same time, MS tried to 'pollute' (internal MS e-mail term) java to destroy the cross-platform capabilites, by producing byte-code that not only would only run on Windows, but also only on MS's JVM. Why would you trust MS now. Warning bells should be going off!!!
Putting that aside, is .NET really Java?
No, because Microsoft said so, and I believe them.
Disclaimer: I'm what you would call a "Java evangelizer" so I'm biased... Keep that in mind.
.NET will actually be multiplatform even though Microsoft is not split up. Already there are ports being made for other platforms AND other languages; Perl and Python by Active State for instance. I talked to a MS guy who said Microsoft will port the common language runtime of .NET to at least one "open source os", "maybe two". Because I don't know enough about .NET, I don't know if .NET apps will be cross platform, but the platform itself will be supported on various OS's. I imagine than Microsoft with some interest in the Mac platform (they own a large-ish portion of Apple) would port .NET to Mac OS X soon too.
Some of your points were a little inaccurate..
Java is controlled by the Java Community Process, *NOT* Sun and there are lots of companies on the JCP! The process works by voting and is a true democracy. It is organized by Sun, yes, but it's definitely wrong to not recognize this and just say it's "not an open standard".
.NET will be standardized by Microsoft. Well, let me be more accurate.. The common language runtime will be standardized by Microsoft. If I recall correct, they have already submitted it to ECMA.. One of the reasons behind this is to win those people who have a problem with Java *NOT* being 100% open. For a lot of people, including me, this is not a problem at all. I don't mind Sun controlling it because I think they have done a great job so far.. Now with JCP, I have even more faith in the Java platform.
> The security systems in .NET are a lot more than
> just a sandbox....
So is Java's.
> you really should read up on how it all works.
So should you about Java.
> there is no sense in just having all or
> nothing, ala Java's method.
Java's security model includes a rich vocabulary of principals, permissions and access controls. Perhaps you're confusing Java with ActiveX?
> because of the way the security system works,
> the runtime will prevent the trusted library
> from doing anything disallowed on behalf of the
> untrusted program....
In other words, it does stack crawling to detect untrusted principals responsible for initiating a request. Guess what, the JVM provides this too.
> That is why Microsoft will win: IT managers want
> to cut a single check and get everything they
> need to make the whole system work in one box.
IT managers are getting sick of watching the size of that check increase every year, and getting a solution that is designed to ensure they will never be able to switch to another vendor.
> While the Java VM is not firmly tied to the Java
> language, it's a much stronger coupling than any
> other language, whereas the CLR is designed to be
> language-neutral
Yeah, the CLR is language-neutral as long as your language looks like C#. That's why they had to take multiple inheritance out of Eiffel to make Eiffel#.
Others have pointed out that most of the things on this list are already covered by Java. The ideas of compiling to native code, of having a decent code security model, and of providing cross-platform execution, are not new and your impression that they somehow give .NET an advantage over Java is laughable.
.NET Framework. CLR ports are good for PR but nothing more.
> Cross-platform. Let's just say that more than
> Win32, MacOS, and WinCE are on the roadmap for
> the Common Language Runtime. More will be
> revealed with this in time.
A cross-platform implementation of the CLR is irrelevant. What matters is ports of the
> IIS/ASP.NET will monitor all the processes and
> components... if there is a memory or resource
> leak detected (or a timer expires), it will
> spawn a new process and start funneling all new
> sessions to that process... when the last
> session to the old process closes, it will be
> terminated and the resources reclaimed.
Hey, sounds just like Apache! Nice catch-up play there, guys.
> With desktop apps, an x-copy will actually
> suffice as the install routine.
This is exactly the same language I heard a Microsoft manager use in his presentation. Either you are one or you've thoroughly imbibed their view of the world.
I asked the ASP.NET product manager whether there will be non-Microsoft implementations of .NET. He carefully answered that they expect other implementations of *CLR*.
.NET Framework. It's much harder to clone the API implementation than the VM, because it takes much more code to implement a big set of APIs (and the API implementation is harder to port).
.NET API? That depends on what you mean by "opening". Certainly the .NET API will be *documented* and therefore cloneable. (Although so is Windows, and that doesn't make it an easy task.)
.NET API. It's not yet clear whether Microsoft's submission of CLR specs to standards bodies actually implies that they'll hand over control of future directions to those standards bodies (or that they'll follow those directions even if they do hand over "control" ... look at the W3C). But I'll be very surprised if they even pretend to hand over control of the .NET API.
.NET, and use a variety of means to make .NET-related products depend on them. Other would-be implementors of .NET won't even hear about these interfaces until the Microsoft implementations are already shipping and third party developers are already depending on those implementations' bugs.
The difference here is crucial. The CLR of the late 20th century was x86 machine code, which Microsoft never owned. Microsoft's lock has always been in the APIs, which used to be Windows and will be the
So what's the point of "opening" the CLR definition without "opening" the
The issue is really who will control the evolution of the CLR and the
Assuming they do not, then we'll continue to see the "API of the month club"/"Keep the competition on a treadmill" strategy in action. Microsoft will frequently release new library interfaces, declare them part of
Actually, it sounds more like the next iteration of OLE/COM/ActiveX
Best Slashdot Co
Well, speaking as another Java evangelizer, there is just no way I could possibly sign up to Sun's soi-disant 'Community Process'. There's nothing 'community' about this - you have to, for example, grant Sun (not 'the community') an irrevocable license to use and distribute (under whatever terms they like) everything you do - and Sun (not 'the community') may even assign those rights to anyone they please!
I very much like Java, and I'm betting the future of my company on it - but there's no way you can claim that it is controlled by an open process. It is controlled by Sun, and Sun have not demonstrated they have anything but very narrow selfish commercial interests in their management of it. The 'community process' is a gossamer-thin device to enable Sun to pretend to the market that they are committed to open systems. If it weren't, Sun would set up a not-for-profit trust which would own the IPR licences, and would allow the community to elect the board of that not-for-profit.
I'm old enough to remember when discussions on Slashdot were well informed.
AWT and Swing have proven remarkably piss-poor at handing platform-native UIs in a cross-platform way.
Huh? Motif PLAF looks fine on my Windows box. Apple did release a Mac PLAF which did *very very dirty things and was not pure Java*, and would not run on anything but the Mac OS. This was bad of Apple, but certainly not Sun's fault or the fault of Swing. (AWT wasn't even designed for "cross-platform platform-native UIs", whatever that means).
Anyway, Apple has pledged that OS X will have a full 1.3 Java runtime (and beta testers can attest that this is currently working). If I were Apple I'd certainly go the Java route instead of the CLR/Microsoft route...no reason to be even *more* dependent on my #1 competitor.
It's 10 PM. Do you know if you're un-American?
As far as I can tell, .Net uses SOAP, basically an RPC via XML over HTTP. There is also another spec called XML-RPC which is, you guessed it, RPC via XML over HTTP. SOAP is a W3 spec. XML-RPC does not appear to be a W3 spec...seems like SOAP-"light".
.Net look very much alike. It seems like .Net is just Microsoft's attempt at J2EE, from the aspect of getting all its legacy C/C++/VB developers playing in a comfy enterprise world, which Java developers have been doing for a few years now.
Anyway, with a cross platform VM (JVM/CRE), support for multiple languages, and RPC via XML, J2EE and
It's 10 PM. Do you know if you're un-American?
...that the most interesting thing about these "languages/platforms/buzzwords" isn't the language itself. It's the environment in which it runs. Java itself solves nothing new, does nothing new, is nothing but previous concepts in slightly different syntax; it's useful, but hardly a silver bullet. The required VM, however, is quite fascinating.
This was brought up in an editor's letter of a recent C++ journal.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
Points 1-4 already exist in Java, as many other people have already pointed out.
.Net looks worse than a wash, you gain a little by using it,but lose even more. Infact, you might want to hire some coders to move you vb apps to say.... java since you'd have to re-write them anyway, and previous versions of VB won't be supported for very long.
/., if I am inadvertently spreading FUD, I apologize. Please post polite corrections, thank you.]
The remaining issues are only of interest if you already have a lot invested in those very specific technologies. And for that matter, you have to balance the ASP improvements vs. the through trashing they gave VB. Very basic VB concepts (like variants) no longer work under VB.Net, which will prevent a lot of people from "upgrading." (my source on this is the VB.Not homepage which was taken down, but may still be accessible via google's cache. The VB.Not homepage was started by a MS MVP, and apparently he may have been pressured to take it down.)
To me
[All of this was garnered from various articles on C|Net, linuxtoday and
---
RobK
Myddrin
These changes definately needed to be made. I'm a long time VB developer, and there are many, many issues in VB that need to be fixed. I do think the timing is poor, user tolerance with MS is very low right now. (Personally, I've been trying to get out of the VB trap for a while.)
---
RobK
Myddrin
Perhaps you misunderstood what the original poster meant by other languages. I understood that (s)he intended other languages compiled to the same VM. Native code is out of the question in any sort of distributed environment (can't be propagated over the net due to security concerns, different hardware...).
Of course, there are (as other posters have pointed out) any number of langauge that target the java virtual machine. The Java part of the name is important; there such a close correspondance to the Java source language that there's [almost] a one-to-one mapping between
The upshot is that languages such as Python, ML, Scheme, or Ada that have been targeted to the JVM, need several tricks and restrictions to make them usably fast.
Readers of comp.compilers would argue that
He's a smart man, and seems to think it will fail miserably. But microsoft have hired several smart men, and perhaps they can pull it off.
Well, the first principle that this kind of speculation starts from is that, whatever else may be said about Microsoft (evil, incompetent, etc ;), they Aren't Stupid. They may assume that they're going to win the case -- especially with the new King we've appointed -- but they also know that victory is not assured, and it's best to plan for all contingencies.
So, things like .NET are best examined in the light of the anti-trust case, and you have to ask why they're doing this, and how they can expect to gain from it, both in terms of the status quo (one monolithic organization) and in the possible future scenario (two companies, one apps, one OSs).
If MS were to be split up, it's not clear to me which side would get which components of the .NET architecture, though some guesses seem reasonable. It seems to me that they want a network-server based API for developing distributable object components, or applets by a new name. Most likely, the OS company would get to own the platform on which these services would run. On the other hand, the applications division could very likely end up with the toolkit for developing on this API, as well as the major .NET enabled software that they'll have by then -- the 2004 edition of the Office suite, IE7, etc. Maybe network services like MSN would go with the OS division, on the grounds that they would be the vehicle for delivering content that the other side makes. Who knows, it's probably too early to speculate.
In any event, the overall picture is that MS are doing with their products & services just what my software engineering classes said should be done with any complex system: they are decoupling the individual aspects of what they do (packaging the various functionalities into more or less atomic units) while ensuring that the components are tightly cohesive with each other (thus you have a vibrant collection of object that work flawlessly together). As a result, you could take each of the decoupled components of what is now Microsoft, spin it off into an autonomous company, and it will still effectively behave as if it were still part of the whole. Likewise, it will become more possible for the splinter companies to play to other platforms (.NET for Linux) without any great harm, because the control environment will be more decentralized anyway. Rather than having 100% control over the home PC market, they may have 65% control over PCs, servers, palmtops, etc. Right now they're the big fish in a medium-sized pond; afterwards they'll grow into the big fish in a series of ponds. Or something -- the analogy is rather harder to convey than I thought it would be before I started typing... :)
In any event, it seems unquestionable to me that, like a good chess player, MS are thinking ahead here and coming up for contingency plans for a post monopolistic world. I believe they are working with the assumption that, as one company or as a cluster of companies, they still want to retain control over the digital market, and .NET gives them a possible way to do that with or without a breakup. I can't guess all the facets of how this might pan out, but the general picture of it seems very clear to me, and I think the details will work themselves out over time.
:) </hand waving>
DO NOT LEAVE IT IS NOT REAL
All good stuff (except that you are no longer a fan of Java -- why?)
Note that you can already do SOAP/XML-RPC using Java right now, but as you say, it isn't that exciting.
Also, if Java had been completely open from day one I expect Microsoft would have fragmented it by now.
Tom
I have discovered a wonderful
The language you choose is irrelevant, the OS providing a .NET service is irrelevant.
.NET be condusive to non Windows platforms? Excuse me while I snicker for a moment or two..
.NET are wonderful new technologies for Windows programmers. Anything else is vapor-technology until we see something real.
.NET are bad. They definately have a cool-factor to them. But a good design should allow you to get under the covers and optimize where necessary.. Java and Perl allow C-extensions along with raw sockets / shared memory. The issue that I see is that .NET won't allow transparent communication through any other means than this high level one. Or maybe I'm mistaken, and DCOM still lives.
I'll have to dissagree with you here. The chosen language and OS are monumental choices. You have to get past the hyped burger dots. Depending on what you're building, the development platform lends itself very closely to the language(s) you choose.. Beyond that, I've never seen a language that was truely OS egnostic. C is a joke, Java STILL isn't stable or fast in Linux for the complete feature set. Perl is STILL being ported to Windows. And _anything_ MS developed is going to be advantageous to windows in one manner or another. Sure C# is supposed to be open and we'll soon see Linux / Solaris VM's.. But will they be as robust / fast as the one on Windows? Not if Java's history repeats itself. Will
Basically C# and
Do you not see the fundamental advantage of being able to make _function calls_ across HTTP ?
You're serious right? Yes HTTP is a widely accepted protol which lends itself nicely to random data-types, a-la inquiries on supported Content-Types and the general use of XML. But take note that we're extending the technology beyond it's initial intent - read as "warning sign". HTTP and XML have quite a bit of over-head, which is lost in large data-transmittions.. But what of simple function calls? Let's say I want to know what time it is on a master server (with extended resolution).. I can make a SOAP call to do this for me; No problem.. But now, let's say I want to use this timer in a logging function (that get's called some 50- 1,000 times a second during debug mode for example). Imagine the over-head of resorting to generic HTTP and XML. Any good profiler would take a look at this and try and find some hack to send the raw data with as little IO and filtering as possible. Of course you won't _design_ function calls that have such heavy overhead.. But what happens when the component you build starts getting used in such a way that these connection channels become unforeseen bottle-necks? You're stuck. The only way out is to break the protocol and make hacks for efficiency.
I'm sure a similar argument could be made about COM / DCOM, CORBA or even RMI. But I'm convinced that those component-model protocols are much better suited to performance related issues. GNORBA (though still in it's infancy) touts shared-memory and in-process operation where possible. Maybe SOAP can handle this as well, but given that the data-type is XML, I can't imagine you can alleviate all the issues.
Note that I'm not saying SOAP or the underlying building blocks of
-Michael
What's interesting is ... I don't think it would be that hard to make .NET cross-platform, even though it isn't yet. As M$ explained it an a conference I was at, the CLR (common language runtime) provides a set of common data types and classes to interact with the system. It is intended as a replacement for the Win32 API. If you implemented a "Pure" .net app which only used these calls (no API calls) and data types, why couldn't it run on another plaform which had a VM which supported the same classes, properties and methods? (see the system class in the beta docs here
---
DO NOT DISTURB THE SE
I have coded a good sixteen languages in my time, but that doesn't mean I can pick up 'Java in a Nutshell' and code great java in two weeks.
Most modern languages come complete with a large set of library classes/frameworks/whatever that can take a long time to really learn and master.
While you are learning you'll use techniques learnt in previous languages that are not ideal for the one you're in.
I doubt .net will gain too much momentum while Java will run on MS platforms though. It's the same problem we ran into with the OS/2 movement a while back; you could write to Windows 3.1 and everyone could run it. Similarly web developers can write to Java and everyone can run it. Or they can write to .net and piss off a few million web users. Having a couple of million people pissed off with you isn't good business.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
I forgot in my last post, to deal with the other problem with your post. You state that .NET will be server-side, like PHP. This is only half-true, in asmuch as PHP is server-side only, whereas .NET is supposed to allow both server-side, and client-side applications to be written (again, more like Java than PHP). And, in case you didn't know, there is a server-side version of Java. It is called JSP (Java Server Pages), and the Apache project is the maintainer of the Open-Source reference implementation of JSP.
Isnt the main problem behind Java twofold?
.02
1) The fact that it is *slooooow*.. (which is sort of to be expected, it attempting to be all things to all people, not an easy task)
2) MicroSoft kind of fuxored it *and* them up long enough to pretty much kill it at birth, thereby damaging it irreparably. (and yeah, they *just* settled on that one, but I suspect the blow to Java was swift, and fierce, and even a lingering death wont help it).
So.. what does MS need to do to make its app better?
1) make it (as they make everything) MScentric.. cause well, if you dont use MS, you are just a fringe nerd anyway, and your OS will be gone soon enough.
2) Not destroy it (or let it be destroyed) in the way that they have destroyed every decent piece of competition ever.
Seems to me this is a no-brainer for them. after all, MS is the only company in the world that can release nearly unuseable apps and get rave reviews for it.
Just my
Maeryk
Feminine Protection? What is that? A chartreuse flame thrower?
...then MS Office for .NET sounds a lot like Corel Office for Java, which was a total disaster... Wil history repeat itself?
Opus: the Swiss army knife of audio codec
XML won't cut it as a net-wide service. XML is great, as far as it goes, but it's a long way short of what you need to build real re-usable eServices. So far, M$oft have entirely ignored these extra parts, usually by pretending that they're not needed or are already covered by some half-baked feature in the latest version of Word.
It's worth noting that M$oft have finally showed up on the W3C RDF interest list. They still don't understand what semantics are, but they're learning.
If you're out on the fringes of this stuff, it's time to start swimming faster and watching your back.
"Torpedo in the water !"
Given these basically impossible goals, .NET is a triumph. OTOH, if you're not M$oft, and #2 doesn't apply to you, then what's in it for you ?
The WORA thing ha always been a trheat to MS's hegemony.
.NUT and C-Flat are clearly the next shot in the battle. Its no coincidence that MS finally stetled and agreed to stop tryign to poison the well at the same time as they are rolling all this out.
Having lost the battle to poison java,
I'm hoping that ".NET" will go the way of other bad Microsoft ideas like Talisman and Chrome. But that's wishful thinking.
You draw the line where it's reasonable. It wouldn't be reasonable to implement SETI@home in Java because you'd sacrifice a large percentage of your speed for the sake of being able to run on a couple of fringe platforms. You choose your language early on based on its suitability and accessibility. You don't let your developers write in whatever language they choose unless it's easy to replace their language expertise if need be. There's no need to cater to the one developer who happens to like Eiffel. However, if Eiffel is the right tool for the job, and all your developers are familiar with it, it might just be the language to use.
... it just can compile different programming languages in virtual machine code (that is it's languange indipendent) - for example at ethz we are developing Lightning Oberon - which is a release of the Oberon language for the .NET technology, see http://www.oberon.ethz.ch/lightning/
-steve
That said, we may see .NET on Mac OS X, I agree.
Oceania has always been at war with Eastasia.
.NET isn't just a response to Java. Think back to the findings of fact in the anti-trust trial. The thing that scares Microsoft even more than free software is "the middleware threat".
Microsoft's core asset is it's ubiquity, and any cross-platform middleware layer is a threat to that. They've been beating out brushfires on that front since at least "the browser wars" (Browser war is hell, by the way. Pray you never have to send your sons off to serve on the front lines. I lost my best buddy to a stray MIME type. One minute he was standing right next to me, the next minute all the helper apps in the world couldn't save him.)
MS has decided it can't afford to go after each new entrant into this territory, so it's going to have to colonise it. So we'll get a binary-only stripped-down windows emulator that runs on only those platforms MS feels it needs to support. My guess is this will be exactly the same platforms they've ported IE to, with promises to port to others once certain technical issues (related to the OS - FUD) have been addressed.
As for Microsoft's claims that .NET will be standards-based: anybody using ECMAScript? Isn't it great? Now nobody needs to be scared to use JavaScript anymore. Both Microsoft and Netscape worked on the spec, so obviously all browsers from them since have stuck to it, right? And doesn't CSS work like a dream in all the browsers that trumpet their support of this open standard? Microsoft (and Netscape, and Sun, and...) have been playing this game of "Kick the ball, Charlie Brown" with us for years. That's one reason why you should stick to free software.
MS can't leverage their monopoly if anybody can get their hands on the lever. If they are counting on the death of the desktop, and essentially giving their next platform away for free, you can be certain they've got a strategy for turning their dominance into a revenue stream. Whatever the strategy is, it's going to be bad news. Learn the lesson. Microsoft don't play nice, so don't play with them.
Microsoft may be saying that .NET will do everything from e-commerce to delivering you hot buttered toast in the morning, but on past performance it will be late, buggy and missing some of the promised functionality. It will then be hyped to death as the future of computing. Only this time Microsoft doesn't have the luxury of a competition-free environment like it did with NT5.
A guy from Microsoft (and alumni of this school) just visited NMT for recruiting, with half his presentation on .NET and half on the standard culture at MS. here's what i've gathered
.NET allows for one to program in nearly any language (except, given current legalities java - someone else will have to make an interface to .NET for java)
.Net is allegedly open - and is supposed to do the things that Java was supposed (and still could do) but it's really not like java. it's really like a new architecture thrown on top of the old web... supposed to be a better way to exchange information, utilizing XML...
.Net and provide .Net services. it just seems that what MS is selling is going to be an OS deeply tied into it... but it'd be open enough for OSS developers to bring in modules into their own products as well. (again, allegedly)
.NET internally, etc.
.NET will also allow for subscription based releases of software by microsoft to the public... but it seems others would be able to do this too - make their software subscription based using a Microsuck server, or possibly another server with modules written to the "open" DOM spec. but from the rhetoric i heard today, that's really number two when compared to what microsoft would be able to force their own installed base to do by radically developing their OS around .NET
1)
2)
3) we were told really that anyone could have their products work with
4) this is where microsoft makes money: they've got a large installed base on old NT and Win95 - if they want to take a hold of this "revamping" or exploitation of existing protocols, and still use MS software they're already invested in, they'll have to jump up. it looks like Microsoft is still makin the bucks with their OS... companies will want to deploy
5) of course,
6) it sounds like a good idea if others can develop around it too and we don't have to trust microsoft. but i'm wary.
Better or not? That's no longer relevant.
.NET or Java *is* needed.
Thanks to the stupid patent/trademark laws in the US, Microsloth can't continue along the Java path -- and a solution of the type provided by
Haven't you been reading Slashdot? That was big news last week.
--
Do daemons dream of electric sleep()?
Bullshit. C will still be in use when you are on your deathbed. Java will still be looking for an excuse to exist despite hype and funding from Sun. C# Will probably be a distant memory.
It looks like MS Marketting had you fooled.
VisualStudio.NET (7) is buggy like hell.. languages aren`t even backward compatible any more. Sure, you can do all sorts of nice thigns with it, but you can also throw away every bit of old and perfectly healthy code..
Here`s what a
Here is the list of milestones but if you read the list, you realise that we have to wait for a veeEEry long time to really enjoy
A
I was actually looking for the backward compatibility issues page for VisualBasic.Net, which explains that there are a LOT of broken compatibilities with previous code. Maybe anybody else ahs seen it ?
With great power comes great electricity bills.
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
We as penguin fans have long known the joy of having one X server in front of us and applications running on it from different (faster) hosts. This seems pretty much the same to me. When I had two machines that actually worked I devoted the faster one to being a server and booted the otherone diskless from the faster machine. It doesn't work well if I play Q3A, but I don't play games anymore. Did I mention that this worked out very well for me? Now, think if I reversed the situation. The server machine would be the slower of the two. Now, I want to run some or most of the code on the faster machine, so I need to devise something somewhat like .NET
It was obvious to me that this would find its way to market, webdesign software is already this way using combinations of javascript and creative CSS. Is anyone suprised that the internet would come to a time when applications are served from servers and run on clients?
There is nothing to stop other companies from developing a competing product. I can surely find a compiler which understands multiple languages (gcc werks for me). So, I could: .NET application. So, what's so revolutionary about it? What's a new idea? Nothing! The fact that it understands multiple languages does not impress me. I can make gcc compile several languages within the same source code. I can even call scheme and lisp procedures.
So, just because they are serving byte compiled programs doesn't mean it is different.
rcp helloworld.c\
; gcc -o helloword helloworld.c \
; rm helloworld.c \
; helloworld \
; rm helloworld
There, we've run a
So, then will the important part of .NET be a .NET client? One that understands the code it recieves and does all the gui and data crunching?
Spring is here. Don't believe me, look outside!
C hash is apparently the part of net that clones to some degree the java functionality. MS is obviously banking on its' dominance to make it succeed.
Although, as I 've mentioned before, it seems that the main MS idea is to turn the WEB into a NET.
This is taking something planetary, and trying to make it trivial. Do we really want an interent where the content is the equivalent of a macdonalds on every corner?
To some degree, I think that MS is to software as Macdonalds is to cuisine. We do not need to do that to the web.
"It is a greater offense to steal men's labor, than their clothes"
Absolutely correct. I mean hell, Linux has tools to convert VB to C/C++.
There cant be that much difference if they have automated products that can convert a VB project to a C/C++ project.
think. just a little bit. it wont hurt (too much), I promise.
---
Video meliora proboque deteriora sequor - Ovidius
In reference to some other comments:
JdV!!'s comment - read above. I left out the script that should have been appended to Java. I do know the difference...
yoz's comment - The bulk of the software, critical parts, etc., will be run server side. See above for the rest of it.
Tips for everyone else: Don't type in a rush, and make sure you explain EVERYTHING. Also, spell right :)
My apologies for making that post innacurate through neglect. I now feel stupid for doing what I critisize so many other for on Slashdot...
The problem with capped Karma is it only goes down...
SIG: HUP
sig:
sig:
See the "..for smart people" banners Wired runs here? Look elsewhere guys.
A very promising part of it all is ASP.NET (formerly ASP+) which has 'server-based GUI-elements'. This is really just a framework handling programmatic manipulation of forms, listboxes etc so you're finally not having to do Print "$e"; and so on.
How is this different than, say, the CGI module for Perl?
"And like that
It is simply not true. All one has to do is check out standart Swing demos ; they not only load slow but are sluggish and unresponsive during any stage of execution.
I suppose it depends on what the meaning of the
word "is" is but indeed I still find Java too
slow. Granted I am running on an old Pentium II 350 but even with the latest JVM and JIT technology it has failed to impress me. Granted there are plenty of applications where Java even in its current state is fast enough and at some point in the near future the quality of the native Java compilers and optimizers will probably reach that of other OO languages such as Ada 95 or C++... However, that day has not yet arrived.
--- Liberty in our Lifetime
VB.NET will implement many Java features, in most cases using Java syntax. For example:
There are also other major syntax and implementation revisions in VB.NET which make it incompatible with VB6. Nice touch!
J++ lives, it just has a new name.
A little about .net, as a MS developer (I know, don't flame, I'm trying to come to the light side), I've been looking at it. What it is doing is essentially taking a normal program and seperating it in to three tiers. The first being the language that you develop in (be it C++, VB, C#, Perl, whatever), the second is an interpretive tier that puts what you coded into a middle language that is finally executed by the third tier. .NET is another matter entirely. For VB developers, the advantages are great: greater performance, without having to learn a more powerful language like C++. .NET takes the C++ and interprets to the same middle tier that VB uses for the machine to use.
The point of using
The reasons why someone using C++ for example are not so clear, because you no longer have the performance advantages of using C++.
So in comes C#, and for all intents and purposes it looks a lot like VB with C++ syntax, giving a little more ease of development while stripping some functionality of native C++. The other thing that MS loves so much is the vendor locking that C# will provide them with, much like VB, only they will be able to grab a lot of (or think they can) C++ developers from other platforms.
MS is getting worried about whether people will take to their ideas though, as they are constantly promoting the product, there have been 3 or so free conferences (with free food and the like), supposedly to "train" on their new product, but end up being just large sales pitches.
As for myself, I'm currently learning BSD, hopefully I can find employment under it soon.
was heard from the crowd.
.NET, which noone really knows much about (still) but everyone agrees that it's patterned after Java
.NET.
.NET is MS's response to Java. All .NET is is the framework of Java, but being MS specific.
Let's look at the timeline of events:
1) MS gets sued by Sun over J++ and their Java implementation
2) Sun gets injunction to prevent MS from messing with Java.
3) MS creates
4) MS settles with Sun
5) MS releases toolkit to move Java coders from Java to
I'm not a coder, and it's pretty obvious to me that
In other words, there's nothing here that can't be done with... a computer! Wahey, thank you for pointing that out to us! So, you're saying that all that Microsoft have done is put it all together in one well-designed package and give it massive distribution? Well, good. Because that's what I want.
.NET consists of a lot of technologies. It is not directly analogous to Java. However, Java consists of a lot of technologies, too.
.NET ~= JSP (and servlets)
.NET (or whatever they've renamed ASP+) compiles code upon the first viewing. This speeds up ASP code tremendously, giving it equal or better performance than the best servlet containers.
.NET to know of they're modifying COM & remonickering it (sorry). But, basically, COM (or whatever it will be called in .NET) allows each language to call other languages with native speed. It doesn't support Java, although I'm sure some third party will add support. However, Java *requires* any parameters passed between Java & other code to be copied into or out of the JVM (the JVM can move data around without notice--think HotSpot dynamic optimizations). This means there will always be a performance impact when calling between Java and native code (using either .NET or JNI). JNI is Java's answer to calling native code (or having native code call Java).
.NET is very analogous to Java (or, at least, Java & its related technologies). Microsoft is not stupid. They realize Java is becoming a platform for networked & distributed apps, as well as for server-side code. They also see that client-side Java is getting much better, and they suspect (rightfully, I might add) that jdk1.4 will finally get client-side Java "right".
.NET is a platform. And Java, when combined with the J2EE technologies, is a platform, as well.
Here's my read:
C# ~= Java (~= means approximately equal to)
----------
C# provides a nice programming language that has built-in garbage collection and takes out a lot of the crap from C++. Java does this, too. C# has multiple inheritence. Java does not (and claims it is not a good thing). Java will soon be extended to allow template-like functionality (without the pain in the ass of templates). I believe C# has something like templates, too.
ASP
---------------
ASP
COM ~= JavaBeans
I'm not familiar enough with
SOAP ~= RMI and/or EJB
-----------
This said, SOAP will play an integral part of Java, too. SOAP is a Good Thing. CORBA is too much of a pain in the ass. RMI is Java-centric. And, for all EJB's promises, it's a pain in the ass to use non-Java code with it (basically it's just CORBA). So Java will have all three (RMI, EJB, & SOAP). By the way, Java's serialization mechanism is being changed to allow the serialization of objects as XML. This will play a big role in the integration of SOAP.
So in essence,
In other words,
--Be human.
Quick Errata.
:-)
t ml
Java is multilanguage, there is a difference between the VM and the language Java. There are many different cross compilers for the Java around including COBOL.
See : http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.h
That said though not many people do this.
Microsoft was pretty much painted in a corner by Sun. Microsoft doesn't want to invest its time in a platform defined by a commpetitor any more than Sun wants to be directed by MS technology.
.NET as MS-Java. That's fine. Write some code in it (those that are using Windows). I've written the same programs in Java and C# and I can say with just a few hundred lines of C# under my belt, that C# is definately an upgrade.
.NET provides all of the benefits of Java for the Windows platform. Along with multipule language support.
.NET without the Java comparison. So it might be a shameless copy: good artists copy; great artists steal.
I think .NET can stand on its own feet.
If you want to think of C# and
Read the Comparitive overview of C# for a fairly objective comparison between C# and Java/C++.
You might be able to say fairly that
Don't take this feature so seriously. If you are working on one application, Microsoft and anyone else with half-a-brain would want you to use one langauge. It does negate the fact that being able to use components written in other languages and being able to produce compontents that can be used by other languages provides developers a great deal of flexibility. Look into the benifits of
A speech...
www.perl.com has a nice summary of .net at
http://www.perl.com/pub/2000/12/net.html
--- even the safest course is fraught with peril
The other major difference is that everything in .NET is available as a distributed object by
default by SOAP. This is kind of cool and has some
interesting possibilities for building kick-ass
distributed applications.
However, IMHO the direction Microsoft wants to go with this is horrible. Distributed pay-per-use applications are just a bad idea. Basically if you loose your network connection, you loose your apps which just sucks.
So they have cool technology with a horrid targeted application of that technology.
Just my 2 cents.
.technomancer
.technomancer
The reason there are many languages is that different languages have different strengths. Suppose you have a team of a dozen Java programmers, and you suddenly need to do some hard-core number crunching? Or maybe your platform just doesn't have a very robust JVM? Or what if you find some open source code that does almost (but not quite) exactly what you want, but it's written in Objective C? This isn't intended as an anti-Java rant, just as a reminder that different jobs need different tools. Your group doesn't need to know every language, but that doesn't mean that you should always embrace a single language regardless of how unsuitable it may be.
I was just thinking about the whole .NET strategy that MS is adopting and I realized that this could potentially be their downfall. It seems to me they are looking at .NET as an all or nothing attempt to derail the Open Source movement by: 1.) Popularlizing a subscription model of payment for software -- both theirs and 3rd party. This is the ultimate dream of proprietary software companies.. 2.) Requiring their OS'es as a runtime environment for the .NET "solutions" coupled with anti-piracy protections and online-only functionality (this could effectively make it impossible to run Windows applications on an emulator) 3.) Getting developers to learn proprietary languages that are only useful for writing .NET software.
.NET gives thes the impression of a loss of control. And consider also that the public at large is starting to get a taste for information freedom due to free MP3 music and the expansion of the Internet in general. .NET seems to run exactly contrary to this movement.
2.) Developers have already expressed concern over the changes MS is making to their Visual development suites. They may be reluctant to change.
3.) The .NET infrastructure seems to have many potential points of failure--everything to a customer's internet connection to bugs in the OS to problems on the ASP's end.
4.) Users and businesses are already fed up with how much they pay for software and how little control they have over their computers. For those thinking about Linux, this may push them over the edge.
5.) If MS can implement an effective method of piracy-protection in the form of required net access to activate the software, etc, then those who pirate software (and this includes many businesses, surprisingly) will have no choice but to pay up or switch to Linux. This is especially the case outside the US where a very large percentage of software is pirated.
.NET a marketing experiment or is it a total paradigm shift in MS's strategy. Judging by the extent of effort they have put forth, I think it is the latter. If so, this is the perfect time for Open Source to come in and save the day. And I might add that it is a fairly narrow window of opportunity. If .NET gets well entrenched, it will be nearly impossible to offer people Open Source alternatives because they will be entirely incompatible. And there is one significant way that Open Source can fail that we must prevent: we do not have a quality browser and office suite for people to fall back on should they choose to reject .NET. I know that these are not popular projects, but this is a major turning point in the history of software. It's now or never. We need as many programmers as possible to devote their time to developing quality alternatives. I propose essentially a one-time push in these two areas. Once a solid base is created, we can go back to designing stuff we really care about.
But this could fail. Here's how:
1.) Home users are in general leary of subscription services when it comes to computers. Furthermore, they may be scared off by the notion that they must pay a monthly / yearly fee to use what they perceive as "their software" on the expensive system they bought.
So it makes me wonder.. is
This comment represents solely the opinion of the poster. It does not represent that of any past, present, or future employer.
Oceania has always been at war with Eastasia.
Well, let's think about that one.
All these factors point to one sure thing: .NET, no matter how lousy, is going to become the next service standard, and Java is going to flounder. All hail the Microsoft Megalith, they will be setting commonplace computing trends for years to come, and even longer if they control access to your subscription to Office2010.
Jump ship now, while you still have a chance.
A new year calls for a new signature.
The security systems in .NET are a lot more than just a sandbox.... you really should read up on how it all works. The thing is, there is no sense in just having all or nothing, ala Java's method. Plus, with .NET, unsafe programs can call safe libraries, because of the way the security system works, the runtime will prevent the trusted library from doing anything disallowed on behalf of the untrusted program.... for example, if the .NET Active X applet wants to write to disk, and calls a "safe" object to write to C:\WINNT, it will fail, even though the library it called has the authority to do so.
.NET as it always has been for Windows vs theWorld: With Microsoft, you get one cohesive package that flows well and works together giving you everything you need with awesome developer tools. With other solutions, you've got to piece together 20 different packages by 10 different vendors and hope it all works together, not to mention that in general, the development tools suck, or don't work together well. That is why Microsoft will win: IT managers want to cut a single check and get everything they need to make the whole system work in one box.
This is just a gross oversimplification. I encourage anyone interested to seriously check out the docs.
Also, something I forgot to mention in my first message was web services. This allows you to expose and easily call services over the web as easily as one can take advantag of COM today. A lot of the COM "goo" is gone, making things generally easier on the programmer. But I don't have enough space here to do that subject justice.
The bottom line is the same for
-
The IHA Forums
Natural != (nontoxic || beneficial)
Microsoft makes a big deal out of the universality of their runtime, but it isn't significantly more universal than the JVM. They claim they compile C++ into their runtime, but it isn't C++, it's a "safe subset" (full C++ is compiled into native code and linked in--useful, but not a feature of their runtime). In fact, more than 100 languages have been implemented on top of the JVM, including C; there are also semi-automatic translators for C++.
I wouldn't actually care much about whether Java or C# ultimately "wins" in the market, if it weren't for the fact that C# is years behind and has the wrong motivations behind it. Java is, by now, fairly mature and it has an excellent set of APIs and libraries behind it, both from Sun and from other sources. There are numerous compilers to the JVM for languages like Python and Smalltalk. And there are several third party implementations. Java's implementation isn't particularly tied to any one platform, and it actually runs better on Windows than on Sun's own Solaris. And it will take a C#/.NET implementation at least as long to mature as the JVMs--building these kinds of runtimes is hard and requires a lot of benchmarking and user feedback to get the bugs and performance bottlenecks out.
If Slashdot readers care about open source and open standards, rather than complaining about Microsoft, there is a much more effective thing you can do: support open source Java efforts like Kaffe, Intel's Intel's Open Runtime, GNU GCJ (now part of GCC), and GNU Classpath. By "support" I mean: use them, consider them for your next open source project, submit bug reports, and maybe contribute code. GNU GCJ, in particular, should be a good basis for you to write Linux applications: it compiles to executables that start up quickly, it lets you use native code almost as if it were written in Java, and you can even write native Gtk/Gnome applications in it.
But perhaps most importantly, educate yourself about Java rather than complaining about it; Java is really a pretty decent engineering effort. Give it the benefit of the doubt, and wher it needs improvement, help it along. C/C++ will not make it in the long run. It's Java or C# or something else similar to those languages.
Amazing! You're wrong on practically every point!
.NET software is (will be) run server-side.
.NET can be kept so that it is not open sourced.
.NET compile down to bytecodes. Sure, you can decompile Java, but there's nothing to say you can't do that with .NET too. And the .NET spec is more open than Java's.
.NET is comiled and must be run on platforms that it is compiled for.
Java software is run client-side, while
You're thinking of the XML Web Service stuff. We're talking about the Common Language Runtime, which can be used to write client code too.
Other differences include that Java, by its very nature, is open source (that means that you can always read the source - that doesn't mean that it is free though...). OTOH,
I don't know where the hell you got this idea from. Both Java and
Further more, Java is an interpreted language and can run on any platform.
Wrong. See all the other posts in this thread.
And since M$ has its dirty hands all over it, we can presume that it will be some time before compilers are available for non-M$ systems - and even then not 'legal' compilers.
Wrong. It's a fully open standardised spec.
How about even *remotely* checking your facts next time before posting?
OK, something that that has been at the back of my mind for a few months now.
1) MS talk about releasing Office on a pay-per-use basis over the net.
2) MS release a fairly powerful computer with a network port on it. They call it a games console, make sure it has a nice graphics card, and then try to get it into as many living rooms as possible.
3) MS come up with something that looks like a JVM.
4) MS make sure it has a security model, bytecode verification etc...
etc..
Is the X box going to be a Network Computer ala Sun's Network Computer that Microsoft said was a bad idea a few years back?
I've used Java on and off for a few years. And I've played with the Visual Studio .NET beta recently.
.NET is very much centered around a Java like architecture. MS has added some useful features, and altered VB and VC a lot to bring them into line with the new runtime environment. It also required W2K (big surprise).
.NET runtime environment along with VB and C#.
.NET world (most VB apps I've seen could care less about the internet/web/online world). All this does is abuse their installed base of VB products and generate more rewrite/headaches for existing apps.
.NET is definitely modeled heavily after Java. I think it was a mistake to go so heavily in that direction. Net based applications are still heavily outnumbered by local and client/server applications in most businesses and that isn't going to change soon. They are abusing/abandoning their enterprise customer base to chase the internet application development market. Bad Move. Java is a good design for somethings, but not for everything.
The structure of the
VC++ now has two modes: Native mode where it generates native machine binaries and uses standard API, and Managed mode, where it generates code and API designed to run in the
C# is Java. What else is there to say. It has a few more bells but that's it.
VB has been really ripped apart. Most of the data types are changed, restricted or gone. No more variants. Arrays are always zero based, always dynamic. Declaration, scope and instantiation all behave exactly like a Java environment now. There's threading now and better Try/Catch exception handeling.
I think it was a BIG MISTAKE to rip VB apart to make it more java like. Sure, you get threading and some other nice things, but at the expense of a lot of things that VB 6 and earlier could do before but can't anymore. Porting old code wil be a nightmare at best, impossible at worst. Most existing VB applications will need to be majorly overhauled to just compile in VB.NET.
They should have left VB mostly the way it was. It was designed for entry to mid level RAD and it worked best that way. They could make C# the Java killer, web development language and maybe keep what they did with VC++. Instead they tried to drag the large base of VB programmers into their
Yes,
MS could at least have redesigned it a bit to clean up some java mistakes. It looks like they copied the Java design so completely, they took it mistakes and all. So much for "Innovation".
There is nothing so silly as other peoples traditions, and nothing so sacred as our own.
here
here
here
It's 10 PM. Do you know if you're un-American?
When Java was first introduced by Sun, Microsoft understandably saw it as a threat, because it suggested a network architecture where Java servers (most all of them surely running Solaris) would distribute executable content to clients running any platform at all, including but not limited to Windows. Microsoft understood that to allow this would be to allow Sun control over the server realm, while they would have at most a (perhaps considerable) slice of the client realm. They understood that, in a highly networked world, having control only over the client was irrelevant, especially considering that the distribution executables were not limited to their client.
Now, five or ten years later, Microsoft is finally reaching the position that Sun was in back then, in that they finally have a more or less respectable server OS, and can finally begin the move to a more server-centric network architecture. Now, like Sun with Java, they are able to create a scenario in which they can control the servers and thus the rules of the game. Programs running off .NET servers may well be able to run on other platforms (e.g. a Linux version might not be out of the question, and Mac support seems pretty likely to me; the fact that they happen to control the most common client platform is just icing on the cake for them now), but they'll control the market and make their money off the server.
This is why they were willing to settle with Sun on pretty unfavorable terms, and this is why the outcome of the antitrust case may become at least partially irrelevant. Microsoft has adopted the tactics of their enemy, and are using those tactics in an attempt to win the next battle, as they choose for it to be fought.
DO NOT LEAVE IT IS NOT REAL
I've been trying out .NET in two projects for the last couple of months (using beta1).
There is a lot of stuff here that we've already got with servlets and other non-MS technology, but MS as usual packs it with a quite good IDE and quite some code is generated for you (For the purists among us: this is optional).
A very promising part of it all is ASP.NET (formerly ASP+) which has 'server-based GUI-elements'. This is really just a framework handling programmatic manipulation of forms, listboxes etc so you're finally not having to do Print "$e"; and so on. It gets especially handy handling tables listing data with alternating colors and such.
I just couldn't bring myself to touch the darn VBScript or JScript in ASP so the new language C# (almost like Java - but alas, an all new object model to learn) was really what made ASP.NET attractive to me at all.
"There is no substitute for thinking" - Bjarne Stroustrup
Does ".net" sound like "java"?
Obviously not. Try saying them both out loud in quick succession and you should be able to hear the difference.
Next question...?
--
http://www.gimbo.org.uk/
But it's done the Microsoft way. Look at it from Microsoft's perspective to see the differences.
Before, MS controlled the source layer. (C, C++, VB) Source was compiled to an object layer that was defined by the CPU (not MS).
Now, Microsoft inserts MSIL, a meta-object layer. MSIL is owned and controlled by Microsoft. They create momentum by providing 27 languages that all compile to MSIL. (How many of those 27 MSIL shells will be updated a year from now to support .NET 2.0?) Trying to integrate non-MSIL code with MSIL code will be a new hurdle developers will have to face, and in most cases, won't be cost justified. To succeed, third party tools will need to directly support MSIL,
Sun did the same thing by creating a meta-layer of Java .class files, but today there is a Java engine for most platforms. Do you expect the same level of support from Microsoft?
The key for me will be to see how third party vendors are allowed to link with MSIL projects. Watch Microsoft and see what methods they use to lock developers to their platform.
I predict Microsoft will protect their Windows investment by the usual methods. First they will only support their own operating systems. Then they will provide broken support for other platforms where it is easier to migrate to Windows than stay on non-Microsoft platform.
I hope I'm wrong, but just in case I've just finished pulling the last com.ms package out of my J++ project and am ready to migrate back to an open JVM. I'd rather not take advantage of Micorosoft's tools that allow me to easily port my Java code to C#.
It will make your wife look better (and thinner), the flowers smell more fragrant, your black and white tv will become color and HD TV cable ready.
.NET brings easy 1-2-3 COM programming to you in the form of the all powerful and easy (as in your first girlfriend) VB Script.
Don't really understand Java? The ATL Dispinterface got you down? Don't worry, because
10 print "I rule d00d"
20 goto 10
I wrote this a couple of weeks ago about the .NET CLR (Common Language Runtime), which is the virtual machine thing:
This is the main bit I'm interested in. It's quite a daring move, since what
they've done is made a virtual machine like Java's, but completely opened
the specs and submitted it for standardisation, which is more than Sun ever
did with Java. It's bizarre, since virtual machines promote
cross-platformness, which is the *last* thing you'd expect MS to be
interested in, especially given their track record. What it looks like is,
firstly a great way to counter the DoJ (and to survive a company split, if
the worst comes to the worst), but secondly it implies that MS have so much
faith in their ability to write fast VMs (which, given the blinding MS Java
VM, is not unfounded) and the Win2K kernel family as a host OS that they're
prepared to take the challenge repeatedly thrown at them: to level the
playing field somewhat. Plus, it makes Win32 coding a hell of a lot easier by abandoning the hell that is the existing Win32 API and MFC for something much cleaner,
and you don't have to abandon whichever language you're coding in already,
since the Common Language Runtime will run all of them, eventually.
Basically, they're going to try and do a Java-like thing better than Java.
And I wouldn't be surprised if they tried to swallow Java whole in the
process (e.g. making the CLR run Java bytecode, or a Java language -> CLR
compiler)
Oh yeah, and there's all the XML stuff and
low-level-services-provided-over-the-net thing, which is quite interesting.
And Microsoft being the ultimate repository of all your personal data, which
is obviously petrifying.
Since then, I've realised a couple of other things:
1) It's a great way for MS to move off Intel-centricity, which isn't so important on the desktop (though it'd help with porting stuff to the Mac) but is one of the main things killing WinCE development, since every time you write an app you have to compile it for every processor that WinCE runs on. And since MS is moving more and more into the embedded market, this is obviously vital.
2) Looks like I was right on the Java-swallowing:
http://www.theregister.co.uk/content/4/16392.html
IMHO (after going to a MS /NET Developers conference) C# is like Java. .NET (which is not C#) is a general vision of XML based services on the Internet - including support in a wide variety of DB and server products for XML and related protocols (Soap et al).
http://www.acooke.org
If .NET handles the 30 odd languages they claim to support, with easy extendability for more.
If they make .NET a standard, allow others to freely innovate on it (with none of the licensing restrictions Sun likes to impose to keep companies like IBM in line).
If they can make sure .NET really is vendor neutral, so shipping the .NET foundation is not like shipping the JVM which is little more than a commercial Sun product.
Then HECK YEAH, I'll take an open, free, extendible, cross-platform platform any day, especially if it ships with millions of Windows machines, has solid development tools, and is available on the platforms I like to use such as the Debian standard install (not a non-free directory).
I think from a technical perspective the .NET platform fulfiles the promise of Java, and with things like SOAP Microsoft may indeed get the benefits of going truly open with their platform. That promise is still as exciting as when Sun made it so long ago. Finally, I can see no reason that .NET won't support Java, and C# offers a reasonable alternative from a techinical perspective.
"In essense, while Microsoft advocates the ability to run diverse code on their platform, Sun advocates writing standard code for all platforms."
The question seems to be how important is that whole "diverse code" thing? I mean, do I want a team of a dozen Java programmers? Or do I want 2 Prolog guys, 4 C++ guys, an APL geek... How do I crosstrain them? When people say "the best language for the task at hand" do they consider the factor of having people crosstrained in that language? Great. You know Smalltalk inside and out. You can make it run 100x faster than C++. So I implement my UI in Smalltalk. Now you go on vacation, and it crashes. I'm screwed. I can't train every programmer in every language.
www.HearMySoulSpeak.com
...if they have automated products that can convert an existing Java project to .NET/C# project.
Grabel's Law
If Microsoft can deliver on a *cross-platform* solution.
If .NET handles the 30 odd languages they claim to support, with easy extendability for more.
See Microsoft's use of future tense and this list of JVM languages.
If they make .NET a standard, ...
What motivation does MS have to lose control of their market? I don't have links readily available, but all I have heard is of MS planning to take the C# specification to ISO, which has nothing to do with standardizing their whole platform. Even if they did, any takers on rewriting Win32? Ask the WINE people how easy it is.
If they can make sure .NET really is vendor neutral, so shipping the .NET foundation is not like shipping the JVM which is little more than a commercial Sun product.
And .NET won't be a commercial MS product. I have not seen MS even try to claim that anything they produce for .NET won't be owned by them. Read carefully.
Then HECK YEAH, I'll take an open, free, extendible, cross-platform platform any day, especially if it ships with millions of Windows machines...
Aha. Windows machines. That's right. .NET is supported on Windows machines. It should make doing Windows network development nicer, with a compact version in various devices acting like embedded Java. MS supports Windows. They make Windows. What motive do they have for changing that? When did they say they were changing that?
I think from a technical perspective the .NET platform...
Try reading the technical documents. Here's one on SOAP. Read it. It's not that exciting. It specifies that you can use normal XML Schemas with a few extra rules and an envelope that mimics HTTP functionality.
You can do little new with SOAP and .NET from a non-Windows computer that you couldn't do with normal HTTP and CGI. SOAP provides almost nothing on top of standard XML. There's nothing new under the sun.
If you want open and exciting, try Linux or FreeBSD. If you want cross-platform software, try something open like C, Perl, Python, PHP, Ruby, or anything else on the list. They also interoperate just fine. Unix had cross-language interoperation working in the 70s. It's called pipes, and it's at least faster than SOAP.
- Tom
- Tom
"O, to grace how great a debtor daily I'm constrained to be."
As a beta tester, I think I have a bit of authority on the subject :)
.NET more successful than JAVA, such as:
.NET platform doesn't limit you in language choice... you can use C#, VB, Perl, or any one of the other 15 or so supported languages. Plus, the architecture is extensible, so support for additional languages can be plugged into Visual Studio with ease. I know the Java bytecode isn't tied to Java the language, but realistically, that's the way Sun as limited it.
.NET ran as an ASP service on a test website for 52 days before the auto-detection kicked in and spawned a new process. Since that time it ran up until beta 1, at which time it was shut down to update it. One such test website is Ibuyspy.com
They are doing a number of things that will make
1. Any Language. The
2. Native execution. There are two options for compilation. The first, JIT, would be used on servers and such where users upload scripts and similar items. On first run, they are compiled into NATIVE x86 code (assuming you are on an x86 processor). The other option is mostly for desktop apps: when the app is first installed, the built-in MSIL compiler reads the MSIL on the CD and writes native x86 code that is fully optimized for the processor on which you are installing... so years down the road when the Pentium-6 is out, and you install that program, it will be fully optimized for the Pentium-6.
3. Cross-platform. Let's just say that more than Win32, MacOS, and WinCE are on the roadmap for the Common Language Runtime. More will be revealed with this in time.
4. Security. Native x86 code is unverifiable.... you cannot guarantee that the code won't do something stupid and overwrite its own memory or deref an invalid pointer. But the MSIL is verifiable.... the system can cast all the calls it makes against its security context. This allows apps downloaded off the web to be executed, knowing that even though they are compiled down to native code from MSIL, they aren't going to do anything funky behind your back. It also gives admins in a corporation complete control. There is a lot to the security subsystem, so I suggest you read up on it for yourself.
5. ASP Enhancements: First of all, IIS/ASP.NET will monitor all the processes and components... if there is a memory or resource leak detected (or a timer expires), it will spawn a new process and start funneling all new sessions to that process... when the last session to the old process closes, it will be terminated and the resources reclaimed.
6. More on ASP: Secondly, when you write an ASP app from Visual Studio, you design the forms and such in a RAD environment using an event-driven model (think VB). However, the server automatically cast the forms down to the highest HTML that the browser supports.... visit the page with IE 6 and you won't be able to tell the difference between it and a regular app. Visit it with Netscape 3, and you'll see a regular static page. The difference here is that the programmer doesn't have to worry about it.
7. Distribution. With desktop apps, an x-copy will actually suffice as the install routine. All apps install their custom components into their own dirs. The system repository tracks all versions of all DLLS installed, and automatically produces the proper version for the proper app at launch time. No more DLL hell.
These are just some of the improvements. As far as stability goes, the pre-alpha version of
For those who automatically blast it just because it is from Microsoft, get ready to be steamrolled just like everyone else was when MS took over the world with Win3.1/95. For the rest of you, read up on the MS documents. There is a lot of good stuff in there.
-
The IHA Forums
Natural != (nontoxic || beneficial)
Java isn't slow at all. In fact, in terms of raw execution speed, it's probably one of the fastest object-oriented languages next to C++.
What is slow about Java is its startup. And that's because you are loading a fresh JVM everytime you start up a Java application. If you did the equivalent with C/C++, you'd have to load many megabytes of libraries before you could start any C/C++ program, something that would make things like starting up any GUI app crawl to a halt. If you use Java the way those kinds of environments are supposed to be used, start up a JVM and do all your work inside that, it is very fast. Compilations fly, windows pop up instantaneously, etc.
But since people aren't going to change their work practices overnight, Sun is working on addressing the startup speed by introducing something equivalent to precompiled, shared libraries for C++. That way, you should be able to start up JVMs very quickly.
Incidentally, if your only experience with Java is through Netscape applets in Netscape 4, the JVM that comes with Netscape 4 is outdated and very slow. Furthermore, it takes forever to start up even compared to the unenhanced modern JVMs. Under Galeon or other browsers, applets start up quite quickly already.
Java's language design is very conservative, and it's a lot easier to compile into efficient code than, say, Perl or Python (when Perl or Python beat Java in benchmarks, it's because of highly optimized library code in those languages, not because the languages themselves are compiled well). In fact, because Java's language design is so conservative, it is actually not all that much easier to write Java programs than, say, C++; Python, Perl, and Smalltalk are certainly a lot more convenient. Java's advantage over C++ isn't convenience, it's safety, simplicity, and runtime support.
What is really big and complex in Java is its GUI and "enterprise" libraries, and other languages should be so lucky. Swing is still by far the best designed object-oriented GUI toolkit I have ever used (and I have used quite a few). Java's database libraries are great, and so are its support for persistence and distributed computing.