
Mercury Researchers Explain Microsoft .NET 197
Bob.Smart writes "Microsoft's .NET is clearly explained in
this article on the Mercury web site. The input from various important research
groups is also interesting."
"And remember: Evil will always prevail, because Good is dumb." -- Spaceballs
Forget C# .NET provides more than just C# (Score:4)
The world is not gonna communicate in pure java. Its not about one language, its all about interoperability across platforms. The Framework is pretty flexible so as to allow anyone to write the same framework for any platform and it wouldnt be too late before someone does.
Microsoft is attacking both Sun in its Server market (by pushing Windows 2000 Advanced Servers) and Java in its pedestal by pushing forward the notion of interoperability through diverse languages using the same framework. It would be interesting to see the benchmarks.
SOAP got me all warmed up, and I am looking forward to see how
Re:Will it be stable? (Score:1)
There is little difference (in terms of open-ness) between Jikes (or JPython) for the JVM, and Mercury for
Jikes is free software (GPL I think...?) translates it's language (Java) into the platform's implementation language (java byte code). JPython is the same, but for a different language.
As far as I could tell, that is all that the open-ness of mercury will give you (unless you're actually interested in the mercury language).
--
Re:Doesn't sound like M$ is really all that bad no (Score:1)
Re:Forget C# .NET provides more than just C# (Score:1)
Re:.net (Score:1)
Re:Is it just me or is this a really crappy langua (Score:1)
For some reason, though, people continue to use sendmail and procmail, both of which use configuration languages whose syntax is decidedly nontrivial and nonobvious. Moreover, people continue to invent new programming languages with take-offs on well-understood existing syntax.
Re:.net (Score:1)
Re:70% of Java developers target native APIs? (Score:1)
We don't even rely on that. I can't imagine 70% using a native API either. Whatfor?
We develop a large applet/servlet app in IBM's visualage on windows, which will be deployed within netscape (applet) and unix/jrun (servlet), talking over Corba to mainframe-PL/1 programs.
We can move from development (visualage/windows) to deployment (unix/jrun) without any problems or changes. The platform independence really is a crucial advantage.
As long as
Re:How about Perl, Python etc? (Score:1)
dot-org jokes (Score:1)
The technology is neat. I want to see what it looks like post-release.
Beta is bostonian for "Its Beta then Alpha"
heh
--jay
Proud Melbourne Uni student (Score:1)
Re:Here's The Thing (Score:1)
Please direct me to the chapter in Stroustrup where it says that C++ uses a GC.
Why would I want to develop speed-critial parts in C or C++ when the program gets compiled into bloody byte-code for a VM?
10. With Java, you have to learn Java. Plus, statistics show that 70% of all Java
developers target APIs that are native to their platform. Thus, the "write once, run
anywhere" promise never comes true except in the most simple of situations. With
you can write in *any* of over 15 already-announced languages.
You're mixing up language-independence and platform-independence here. While I agree that language-independence and fast and efficient language mixing is a great thing, I've yet to hear of any platform-independence for
Besides, I seriously doubt that TogetherSoft's development tools qualify as "most simple"...
Cheers, patrick
Re:More information on .NET (Score:1)
Re:Mercury is uninformed (Score:1)
I mean there will be no possibility to write 'safe' code even using managed C++. Managed C++ just adds extensions for garbage collected classes and such.
Re:How is .NET VM going to be better than Java VM? (Score:1)
You can always implement any feature on the JVM, but it might not be very efficient, and it might not be very interoperable (that is, other languages and tools can't use it because they don't understand your implementation fully).
While the CLR doesn't support every language feature yet, it supports more than the JVM, and has a view to changing in future versions.
Microsoft is differentiating themselves from Sun by providing a multi-language product that changes, instead of a single language product that is very rigid (or solid -- depending on your preferences). Both had pros and cons, but for 3rd party language folks and researchers CLR is much more attractive in theory (but of course success of it as a product when launched is a factor).
Re:Mercury is uninformed (Score:2)
Well, you're wrong. C++ that is compiled to run on native processors is generally unsafe but security is traded in for efficiency, but there isn't any 'unsafety' built into the language.
There are a few C++ interpreters that use a byte-code virtual machine similar to Java that are just as safe as Java (in both cases, you have to assume the VM programmers did a good job on implementing the security sandbox).
Of course, with interpreted C++, you lose efficiency vs compiled C++, but that's no different than with Java.
Re:Mercury is uninformed (Score:1)
even using so-called Managed Extensions for C++.
Re:How is .NET VM going to be better than Java VM? (Score:1)
No objective reason, but a supposition...
Suppose they wrote a VM that doesn't use a stack for the registers and everything else. Wouldn't it scream? Stacks are actually kinda slow...
OT:Re:Cyber Squatting (Score:2)
anyone with even less of a life than me (is such a thing possible???) should easily be able to find a list of international registrars and spend a few happy hours finding out.
What was the topic again?
Other languages? (Score:2)
Jonathan Moran
Re:MS bashing (Score:1)
Re:Will it be stable? (Score:3)
The reasons for the lack of working Java applets are simple: hubris on the part of Netscape and malice on the part of MS. When Java first appeared, Netscape thought they could write 22(!) different JVMs and have them all stay compatible, and easily updated when Sun updated the Java spec. Didn't happen. Then MS tried to hijack Java and basically killed the idea of easy applet portability.
Now that there are teams specializing in Java for different platforms (Sun does Win32, Solaris, and Linux/x86, IBM does IBM operating systems, Win32, and Linux, Apple does Mac OS and Mac OS X, etc.), the problems will sort themselves out. But the damage that Netscape did with their crappy implementations and MS did with their deliberate wrench in the works won't be undone for a long time, if ever. Java on the client is not doing so well, outside of in-house corporate applications.
Meanwhile, server-side Java is very, very portable. So, just start working on server-side Java and you'll see how good JVMs can be ;-)
-jon
Re:kuro5hin (Score:1)
Try this DotSlash [hell.com].
Re:How is .NET VM going to be better than Java VM? (Score:2)
The stack architecture in the JVM is an abstraction; when the JVM compiles to native code, values that should be in registers are in registers (and register coloring and other optimizations are probably easier to do with live profiling information). If you think of the stack as an infinite suppy of registers, then it starts to make more sense. Using a stack-based architecture lets the VM pretend it has infinite registers, and then the native compilation step does the Right Thing.
-jon
Re:Other languages? (Score:2)
The Truth About .NET in Bill Gate's Own Words (Score:2)
In the article at Red Herring, on the second page, the interviewer asks:
Bill Gates replies:
No. No. Dot.net is a Microsoft platform. Just like the Windows platform... Don't anyone kid themselves into thinking that Microsoft is interested in playing nicely with others.
One way to lead is to walk in front of the marching crowd. When the crowd changes direction you can either run faster in the new direction and get in front again or you can stop claiming to be the leader.
The software industry "crowd" has changed direction. Watch Microsoft run to be in front again.
The article is here: http://www.redherri ng. com/mag/issue82/mag-gates-82-home.html [redherring.com]
PS: When is this damn little textarea going to be tweaked to a reasonable size?
OpenSourcerers [opensourcerers.com]
Re:So which is it? (Score:2)
BUT this code only gets run once -- to generate the interfacing code. A few methods get generated on the fly, then they get JITed and run as native code from then on.
So you need to implement an API to plugin to the ASP+, but that's just to interface ASP stuff to your backend, once the code is actually running it all runs as native and that API is no longer used.
I hope that explains it better. There is no per-call interface to go through (although you are doing stuff over the web so of course things have to be turned into representations suitable for sending over the network).
For web services you don't even need to do any of this, you just mark the service as a web service and edit some configuration files.
For embedded languages you just edit some config files to tell it where to find your compiler.
Only ASP+ needs "real" work to be done.
70% of Java developers target native APIs? (Score:2)
Say again? We're writing a fairly heavy-duty AppServiceProvider-model application with JSPs and servlets hosted on IIS/JRun and I don't believe we've had any temptation whatsoever to use "native APIs" (whatever that is). Unless you want to count our assumption that lines are terminated with "\n".
Where did you get that 70% figure?
Re:MS bashing (Score:2)
Oh, hold on, you just said .NET is a "wonderful and proven product which has been out for years". Dammit, I've been trolled ;)
.88 magnum -- it goes through schools.
--
It's a
Re:MS bashing (Score:2)
Microsoft didn't come up with it. They just recognized a possibly good thing and are trying to be first on the bandwagon to adopt it.
What theese people have here sounds interesting. It needs to be studied more and explained better.
Besides, this thing _is_ GNU licensed. That's why I won't reject it out of hand and/or try to build a duplicate that is.
Netcraft (Score:2)
__
Re:.net (Score:2)
---
Re:.net (Score:2)
---
Re:Here's The Thing (Score:3)
And those languages are C# (copy of Java), C++ (ugh) and VB (no comment necessary).
10. With Java, you have to learn Java. Plus, statistics show that 70% of all Java developers target APIs that are native to their platform.
That doesn't sound right, do you have a source? Most server-side Java is very portable.
With .NET, you can write in *any* of over 15 already-announced languages.
Languages for the Java VM [tu-berlin.de].
If you actually want to speak intelligently about this, you really owe it to yourself to try it out.
Which I can't do, since I don't own any Windows systems.
The sad thing is, you'll be talking it down, when in fact, it's one of the coolest things I've ever seen in this industry.
It very well may be. But, at this point I don't see how anyone can trust Microsoft to put stability and sound architecture ahead of marketing concerns. Microsoft talking about standards compliance and cross-platform technologies has about as much credibility as Al Gore talking about campaign finance reform. Maybe in a year
many languages, one type system (Score:2)
Re:Your cowardice invalidates your claim. (Score:2)
Seen in employment ad this week (Score:3)
No one's cheaper than Microsoft with Universities (Score:2)
A few years ago when I was working on my MS, their head of Microsoft Research visited and asked our research group what he could do to help. They were extremely generous with software and documentation but as far was grants went they wouldn't even buy pizza let alone provide meaningful funding without specific strings attached. At one point they actually offered less than $2000 for code that took me an entire summer to write. Ugh...
Re:Doesn't sound like M$ is really all that bad no (Score:2)
Re:Can someone explain what MS .net is all about? (Score:3)
Here's a go.
Microsoft .NET is basically a virtual machine, kinda like the Java virtual machine. The virtual machine works with several different languages. This makes debugging and development easier than before.
Of course the big problems with virtual machines are that you get a performance hit, and your code will only run on those platforms which have an implementation of the machine. I'm not holding my breath for Microsoft to port the .NET machine to Solaris or Linux anytime soon, or to release the specs so that others can do it, either.
Basically, it looks to me like a Java ripoff.
Hope this helps.
The Tyrrany Begins.... [fearbush.com]
Grand Unification (Score:3)
I'm a full-time Java programmer, so I think J2EE is an excellent "unification". You have everything you need: full featured, cross-platform applications, RPC via RMI or CORBA, "mobile code" via serialization and reconstitution on the other side, full-blown web application support, (pretty) seamless database connectivity, message-oriented middleware, network-aware device capability, Java on portable or embedded devices, myriad well-written libraries and projects under review for addition (generalized preferences, logging, assertions...)...it just goes on and on. Sun's one fault, if it can be considered that, which Microsoft seems to be trying to take care of, is support for multiple languages *within* the VM. Well, technically there is nothing stopping you from writing a compiler for a language that compiles to Java bytecode, but the VM spec and the Java language spec are in some parts interdependent. But I can't blame Sun too much for this...after all, their ability to control Java is what has brought us these solid standards and libraries.
Here is where I think
Ok, I suppose that's enough of a plug from me. I just wanted to give the perspective of someone who is already where Microsoft wants us to go tomorrow.
Re:SOAP over Firewalls (Score:2)
Interesting, but I think that Microsoft's track record has been to favor added features over security.
Re:Here's The Thing (Score:2)
-beme
Re:.net (Score:2)
Sounds like a complete maintenance nightmare.
Re:phonetic spelling (Score:2)
koo-row-five-hin
Re:MS crackdown (Score:2)
Yep, I have seen scenarios like this, most often because a company adopted a propritary format in a vertical market. They are the only ones that know how to get your data out of their weird files, and the market is too small for anyone else to be motivated to break the system. Allows mini-monopolies.
-
Re:MS (Score:2)
Hehe, well when bandwidth gets as fast as your PCI bus is today, it won't matter much, now will it?
-
Wow, Innovation (Score:4)
"It's Microsoft's groundbreaking new technology that lets any language call objects written in any other language!"
"Wow! So what's DCOM?"
"It's Microsoft's groundbreaking new technology that lets any language call objects written in any other language over a network!"
"Wow! So what's ALT?"
"It's Microsoft's groundbreaking new technology that lets any language call objects written in any other language so you perform do automation!"
"Wow! So what's an OCX control?"
"It's Microsoft's groundbreaking new technology that lets any language call objects written in any other language through controls that can be manipulated with a GUI tool!"
"So, what's
"It's Microsoft's groundbreaking new technology that lets any language call objects written in any other language through a virtual machine abstraction!"
Is it just me, or does Microsoft keep inventing the same thing over and over again trying to get it right? Soon enough .NET will turn out to be kinda like COM and DCOM and OCX but not really and then some hot, new, ground-breaking three letter acronym will come out and we will do it all again.
I'm a funny guy. I like it when things are thought out ahead of time so they can become a stable standard instead of yet-another-half-assed-attempt.
I have my doubts about SOAP (Score:2)
SOAP could be a good idea, but I'm not exactly sure that I like the security holes that it opens up. Counterpane [counterpane.com] points out that Microsoft's own security analysis faults SOAP for being able to "hide" protocol commands from firewalls. That basically means that you either prevent SOAP from at all functioning across your firewall, or go without a firewall. Granted, firewalls aren't the best security policy in the world, but I'd rather be assured that they'll work as advertised than have to worry about a brand new hole.
The Tyrrany Begins.... [fearbush.com]
Re:Other languages? (Score:5)
As far as other languages being supported, that's what .net is all about. It will work with Perl, Python, VB, C/C++/C#, Cobol, Eiffel, Mercury, etc. The only programming language I know about that doesn't have .net support is Java, but I don't see why support couldn't be built for it. I imagine MS will leave that to Sun and IBM to do themselves, however.
I watch the sea.
I saw it on TV.
Mercury is uninformed (Score:3)
Unfortuntely, Mercury appears to be highly uninformed as to how the JVM vs .Net work. The JVM is first of all separate from a language. It can and does support other languages including COBOL, a Visual Basic implementation, Python, Perl, Javascript, and a host of others. The one major difference that makes the JVM not very suitable for languages such as C & C++ is that it has a security model that (intentionally) gets in the way. JVM code cannot access the underlying hardware, it cannot format your hard drive, it cannot infect you with a virus. These are all things that .Net is capable of doing. Plain and simple, Java is meant to be a secure web platform that is capable of running all the users programs without exposing them to unnecessary security risks. All M$ did is steal much of the JVM code for their vaunted C# and then expand it into .Net.
What does this mean to Joe Schmo? To put it simply, does anyone remember web-enabled ActiveX applets? I rest my case.
Re:Will it be stable? (Score:2)
No, they probably won't, but this platform on top of .NET will be. And since it will be, you can look at it and see how .NET works.
Maybe they'll try to cover that with other forms of IP, like patents. I don't know.
All I know is that I read the article, and my brain wants to shut down into 'your subconcious is thinking hard about something' mode. Something about it is intriguing.
Corel .NET (Score:4)
You know Corel: always fascinated by the latest gegaw. Ooh, look at how sparkly Java is! Let's write our Office product in Java! Ooh, look at how sparkly Kylix is! Let's buy the company! Ooh, look at how sparkly Linux is! Let's port our apps to it!
And now... OOOOooh! Look how sparkly
Corel, with it's attention-deficit disorder, could very well forget that they've got a Linux project on the go. D-oh!
Like I said, slightly tongue-in-cheek...
--
Re:MS (Score:2)
Diskless workstations from Microsoft? When they put how much code on a hard disk for an OS install?
Re:Will it be stable? (Score:3)
Look for more of this type of "hiding in the open" as Microsoft begins playing with open source groups and companies. Hopefully we've learned our lesson on that last one, don't go being contrary about their restrictions just because they say not to. You'll hurt yourselves in the long run.
Fist Prost
"We're talking about a planet of helpdesks."
Re:Forget C# .NET provides more than just C# (Score:2)
Both CORBA and COM/DCOM are horrible answers to the cross-language communication problem. A function call should be a function call, not a network message. They aren't the same thing. That's why microkernels aren't such a hot idea either.
Since RPC style methods are so bad for cross-language communication, why not do something different, and just standardize on data representations instead. Then function calls work like they're supposed to. It's an interesting idea.
Re:Doesn't sound like M$ is really all that bad no (Score:2)
Microsoft FuCKiNG sucks!! In every thing this corporation does, not one bit of concern is shown for the end user - unless it means more money, power, and control for Microsoft. Why do people keep falling for it?
--
.net (Score:5)
Most interesting thing is definitely the CLR (common languange runtime). It gives common data types, and a (beautiful) common object model for system stuff. Also, common performance (it's the same runtime). As he put it "Microsoft (this guy wasn't m$) "Your language is a lifestyle choice" also "Microsoft has been putting 80% of it's R&D budget into it. If you think you can write better c++ garbage colleciton, go ahead, but early tests show even VB.NET and c#.NET written against the CLR outperforms the vast majority of C++ code today." Not sure whether I believe all that
Also, you can do full inheritance, etc. AMONG THE DIFFERENT
An old VB head had an interesting point too. By abstracting the API into an object model, it really paves the way for platform independence. After all, he said, if wrote a CLR for the mac, for instance, it would be trival to port a program from any
Anyway, those are my thoughts.
---
Re:Just one big VM (Score:2)
--
Re:Crapplets (Score:2)
No part of the Java API has actually been REMOVED yet (except for the "private protected" visibility modifier, and I don't think that even survived beta). An applet written for JDK 1.0 will work just fine under JDK1.3.
I didn't know about the 22 VMs. Where did you learn that?
There were something like 22 different versions of Netscape for the different OSes (Solaris, AIX, Linux, Mac OS, Win16, Win32, xBSD, IRIX, HP-UX, I'm forgetting a few) and different hardware (Sparc, x86, MIPS, 68K, PowerPC, Alpha) Netscape ran on. There was no way to use any other JVM except for the Netscape one until the Java Plug-in.
Apple still gets complaints about the poor quality of Java under Netscape, even though Apple had NOTHING to do with the JVM, and has no way to fix it.
-jon
Re:Preliminary analysis (Score:2)
This appears to be a way to get cross-language call compatibility without resorting to RPC ugliness like CORBA or COM/DCOM. Despite RPC protocol's attractiveness, they are bad solutions to the problems they purport to solve.
The 'R' in RPC stands for REMOTE it purports to solve the problem of calling a function in a different machine. Back in the early days of things like Xerox Courier, you would usually be using the same language at both ends.
CORBA is about DISTRIBUTED Object Based Computing. It purports to sove the problem of invoking methods in a different machine. They did this in a way that explicitly caters for different languages at each end, but that is not the primary objective.
The 'D' in DCOM stands for DISTRIBUTED, it is about doing COM between machines, and I would prefer not to talk about that.
RPC is inherently slow. It forces a process context switch, and it forces data to be mangled into a standard streamed format, and the worse thing is that it makes all this look like an innocuous simple function call. I've felt RPC was ugly every since I first saw it.
Doing anything between machines is slow compared with a function call. One reason why CORBA was invented was because old-fashioned RPC made you rewrite your code if you wanted to change which pieces were remote. The advance was to make it possible to get back some of the performance if the thing you were calling happened to be in the same place as you.
This takes a very different approach from RPC. Instead of literally sending messages to one another, languages hand eachother datatypes that they can mutually agree on the interpretation of. Much cleaner and quicker. A function call becomes a function call again. No context switch, no data mangling.
Except that if you want to be able to do "remoting" as MS calls it, you inherit from MarshalByRefObject, and all the stuff you hate comes back again. Fields and attributes automagically become methods (get/set pairs), and a whole stack of marshalling and transport stuff kicks in as soon as the object you are calling is remote. What looks like an access to a field of some object gets mangled into a streamed format, by default using XML which is verbose and expensive compared to your average RPC, but not standardised to that so you have no guarantee of interoperability (like CORBA before the customers screamed and screamed and SCREAMED and the vendors finally gave in and implemented IIOP).
Maybe we'll get back to the nice old days of C, FORTRAN and Pascal where you could call the other languages functions in the same address space.
If you want to limit your programs to one process in one machine then that's OK, but it is not what Microsoft are doing with .NET.
BTW, this is all a guess. The article is kind of vague.
The article is just one item in a mass of data about .NET that is sloshing around the web. The difficulty is in extracting information from that mass of data, acquiring knowledge from that information, and finally achieving wisdom in the light of that knowledge. Ill-informed speculation is the stone in your shoe as you tread that long and weary road.
Re:Crapplets (Score:2)
However, the cause of most of the incompatibility is the large number (actually its 3, Mac, Windows and Motif/Unix) of AWT and standard library implementations. Netscape tried to do it all themselves without licensing Sun's code. Given the speed Sun changed early versions of the platform at, that was fatal.
Re:Mercury and .NET (Score:2)
It's only a conspiracy theory, of course, but the suggestion was half serious.
CE is the only operating system that Microsoft has worked on (unless you count OS/2) which could be called truly "innovative". The only way that you can get Office (even if it is the cut down edition) to run on a palmtop is to use an OS with almost no bloat. CE has almost no bloat. All you need is a bloatless OS and the CLR and you have a nice framework for a new OS.
Besides, the issue as I see it is not "CE to replace NT", but "something new to try to kill off competing OSes". It might not be CE. CE would, after all, need some extensive modification (at the moment it is targeted to architectures without MMUs, for example) to compete. They might decide it's better to buy a company with a suitable microkernel.
Re:Here's The Thing (Score:2)
However, most of the advantage of a garbage collector is that it saves developer time, and allows applications to have a structure more natural to what they actually do, rather than one twisted by the need to track memory usage, or by crufty reference counting schemes written by people who do not understand memory allocation (its rather a black art).
To be portable, C++ applications must assume they need to call delete, and that they need to take care of housekeeping. C++ programs written assuming a garbage collector are very unlikely to be portable. It must also be noted that conservative garbage collectors have rather poor performance characteristics compared to state-of-the-art GCs for languages without ad-hoc pointers.
Re:Happening a lot lately... (Score:2)
Sure, it benefits MS to be able to say they have lots of languages supporting
Re:many languages, one type system (Score:2)
I also noticed that the "Eiffel#" port amounted to "throw away the bits of Eiffel (e.g. MI) that don't fit into C#".
Re:MS (Score:2)
More likely they will attempt to end piracy of *their* apps by slowly phasing out physical copies. Certainly you won't need to install 800 megs of bloat in order to use office, provided you maintain your subscription all the popular apps will be piped on-demand to your screen. Maybe an operating system kernel that immediately connects to the net and updates itself and vital system files to the latest version, provided your account is still active. Think Microsoft Windows Update around the clock. Of course companies that choose not to partner with microsoft.net could very well be patented away from adopting the same types of schemes, and will continue to distribute there wares in a pirate-freindly, copy to the hardrive edition only.
Fist Prost
"We're talking about a planet of helpdesks."
Re:I have my doubts about SOAP (Score:2)
Re:Crackhead mods again (Score:2)
He answered the question crackhead.
--
Re:Wow, Innovation (Score:3)
Re:Forget C# .NET provides more than just C# (Score:2)
This appears to be a way to get cross-language call compatibility without resorting to RPC ugliness like CORBA or COM/DCOM. Despite RPC protocol's attractiveness, they are bad solutions to the problems they purport to solve.
RPC is inherently slow. It forces a process context switch, and it forces data to be mangled into a standard streamed format, and the worse thing is that it makes all this look like an innocuous simple function call. I've felt RPC was ugly every since I first saw it.
This takes a very different approach from RPC. Instead of literally sending messages to one another, languages hand eachother datatypes that they can mutually agree on the interpretation of. Much cleaner and quicker. A function call becomes a function call again. No context switch, no data mangling.
Maybe we'll get back to the nice old days of C, FORTRAN and Pascal where you could call the other languages functions in the same address space.
BTW, this is all a guess. The article is kind of vague.
Re:Wow, Innovation (Score:2)
Here's The Thing (Score:5)
1.
2. You can visit a sample
3. You can download the pre-beta SDK and develop in three languages *today*, and it all just works. I've played with it extensively.
4. The Common Language Runtime compiles only the functions that are called, and it uses an optimizing compiler to do it. When other functions are called, they are compiled just-in-time (saves a lot of system resources).
5. All languages are on equal footing. They all share the same GC and debugging features. You can spawn threads in VB just as easily as in C++.
6. You can inherit a VB class into C# into C++ and back into C++ if you want to.
7. Everything is strongly typed...no more figuring out what kind of string that function in C++ expects. Just call it natively. It just works.
8. The Common Language Infrastructure (which includes the CLR) is being submitted to ECMA (a standards body).
9. So is C#.
10. With Java, you have to learn Java. Plus, statistics show that 70% of all Java developers target APIs that are native to their platform. Thus, the "write once, run anywhere" promise never comes true except in the most simple of situations. With
11. Although I could go on, I have to mention that it just kicks major ass.
If you actually want to speak intelligently about this, you really owe it to yourself to try it out. Or, you can complain that the ".NET" term doesn't make any sense, thus, because of that severe brain blockage, you can't actually talk about the technology and its merits, because you've never even given it a chance.
The sad thing is, you'll be talking it down, when in fact, it's one of the coolest things I've ever seen in this industry. Linux or not.
Re:Wow, Innovation (Score:2)
More information on .NET (Score:3)
www2.hursley.ibm.com/tc39/mins-28sep00.html [ibm.com] has some minutes of a ECMA meeting that talks about the standardization of the CLI and C#. Obviously we don't know what they mean by open-source and it isn't clear whether they want to release their non-Windows implementation, but I think there's nothing in the platform itself that is Windows specific. The apps written on it might be a different matter.
I think the important thing to do when trying to guess Microsoft's motives here is try to understand how they are trying to improve on Sun's offering. And remember that Microsoft might not care too much about giving away a platform that runs on all OSs (after all, Windows earnings aren't the cash cow they used to be) if it means they can make money on the platform.
Of course this is looking on the bright side, perhaps their plan is much more nefarious and evil in intent. My point is simply that because Sun has been a bit closed and static with Java and the JVM, perhaps Microsoft has something to gain by being open with the CLR.
Re:OT:Re:Cyber Squatting (Score:2)
a full stop is nice after the incessant stream of information from other sites.
admittedly the code sucks
Re:Two points. (Score:2)
A Dick and a Bush .. You know somebody's gonna get screwed.
Heh heh - that's funny! (Score:2)
I too fail to see how my question is insightful- *shrug*
At this rate I could be a real karma whore if I post more insightful questions such as ... Can someone please explain (in plain English) what the whole meaning behind the Natalie Portman and hot grits posts are about? ;-)
Re:How is .NET VM going to be better than Java VM? (Score:2)
And why should MS care? They get to collect .NET subscription fees from everyone.
That alone sounds like a damn good reason to forget about this thing. I'll stick with Java for now. Don't like feeding the MS beast any more than necessary.
Preliminary analysis (Score:2)
This appears to be a way to get cross-language call compatibility without resorting to RPC ugliness like CORBA or COM/DCOM. Despite RPC protocol's attractiveness, they are bad solutions to the problems they purport to solve.
RPC is inherently slow. It forces a process context switch, and it forces data to be mangled into a standard streamed format, and the worse thing is that it makes all this look like an innocuous simple function call. I've felt RPC was ugly every since I first saw it.
This takes a very different approach from RPC. Instead of literally sending messages to one another, languages hand eachother datatypes that they can mutually agree on the interpretation of. Much cleaner and quicker. A function call becomes a function call again. No context switch, no data mangling.
Maybe we'll get back to the nice old days of C, FORTRAN and Pascal where you could call the other languages functions in the same address space.
BTW, this is all a guess. The article is kind of vague.
Re:Wow, Innovation (Score:2)
See? Microsoft isn't evil! (Score:2)
Microsoft invited programmers from Melbourne to Redmond without having them sign contracts; only a NDA which is commonplace in any software company. So, from now on, if I catch anyone else blindly claiming that Microsoft is evil, I will show them this evidence!
One argument that Microsoft is evil is that they "tainted" Sun's Java source. The truth is, they optimized it for speed and performance. It seems that Microsoft was only trying to take Java in the right direction.
Re:Can someone explain what MS .net is all about? (Score:2)
MS crackdown (Score:2)
I know many people who would be much more likely to try out Linux/Star Office/Gimp etc. if they actually had to pay for the software that they use.
If MS's tactic is to allow piracy until they own the market, then try to stop the pirates and soak up the profits, it may just backfire on them.
Re:Can someone explain what MS .net is all about? (Score:2)
Meanwhile, there already exist cross-language network object-model environments [bagfors.nu], some of which support far more languages than Mercury mentions .NET supporting. No, GNOME isn't VM-based, and for good reason; however, it doesn't need to be to support C, C++, Objective C, Perl, Python, Guile, Ruby, Ada, Eiffel, Dylan, Pike, Pascal, Haskell, et al.
Mercury and .NET (Score:4)
Disclaimer: I'm a former Mercury developer. I left the project before Microsoft approached the Mercury guys, but after a fairly scary dinner with James Plomondon, whose job title at the time was "Principal Java Evangelist, Microsoft Corporation". It's a long story, which can be told some other time.
Anyway, .NET has, as part of the system, a common language runtime (CLR) for different programming languages (and I mean very different programming languages; C++, ML, Perl, Haskell and Mercury are about as mutually different as languages can get). This distinguishes it from COM/CORBA where objects must be "marshalled" and "demarshalled" (i.e. serialised and deserialised) when communicating between different languages, even on the same machine. With .NET, different languages use the same binary layout and so can just share the memory.
This represents a unique opportunity for language researchers to get their language used. Software is increasingly being written based on a component model, but implementations of technologies like COM and CORBA impose a significant overhead when moving from one language to another. The .NET system means that you can mix and match languages without the associated performance impact. If you think it's easier to write your GUI in Java, your AI engine in Mercury and your time-critical data logging stuff in C++, you can do that, and you don't pay such a huge price for the mix. This means that programmers can try out new programming languages in their projects without having to go "all the way".
The Open Source community must take note of this! Admittedly we haven't seen much in the way of actual technical detail about .NET yet, and Microsoft's implementation might turn out top be hopeless, but the CLR is a good idea.
And now, the obligatory conspiracy theory for the day: As operating system kernels get smaller, moving data between OS components efficiently becomes trickier. The Hurd uses the Mach IDL, which is not unlike the CORBA IDL only much more lightweight, to marshall and demarshall data for the various components, for example. The CLR might represent the first part of a new operating system from Microsoft; one which will eventually replace NT, because it provides a way to build an object oriented OS in multiple languages without the serialisation costs.
Microsoft already has a suitable microkernel which could support CLR. It's called Windows CE.
They also have a motive. As we all know, Microsoft only "innovates" when they're trying to kill off competition. (For example, IE to kill off Netscape, Win9X to kill off OS/2, NT to kill off Netware and other similar systems.)
Watch carefully.
Re:Mercury and .NET (Score:2)
Thanks for picking the nit.
Incidentally, I have no reason to disbelieve you (I'm sure you know more about COM than I do), but I'm puzzled: How do you mix C++ and Java data types (to pick two examples) without marshalling?
Re:Here's The Thing (Score:2)
Used to be that the business value of (Windows 3.x + Excel 5.0 - three reboots daily) was clearly higher than (DOS + Lotus 1-2-3), so Microsoft sold like crazy even with reboots. Then (Windows 95 + custom VB app + storebought components + three app restarts daily) had clear business value over (greenscreen apps), so MS dev tools were hot. It was/is Hard to get stability among VB code, twelve VBXs/OCXs, and the inevitable poorly-implemented Win32 hacks, so coders (like, oh, me) did as much as the business value would justify, and then stuff just crashed.
I think MS's large customers have made it clear that Inter/intranet development means there is business value in 24/7/no hassles plus all "the other stuff" MS dev tools are good at (commodity business app development from prebuilt tools). Microsoft runs harder to stay ahead of Darwin than any other commercial entity - they'll find a way to deliver on 24/7/no hassles if that's what the Very Visible Hand Of Customer Dollars is pushing towards.
Microsoft may take a platypus-ugly route to evolve to what their paying customers want, but they tend to get there.
Happening a lot lately... (Score:2)
Re:Here's The Thing (Score:3)
Re:Mercury is uninformed (Score:2)
There's two separate concepts involved here:
"Managed code" provides information to the run-time system that lets the run-time system trace the stack. Managed code is required for garbage collection, but managed code is not necessarily safe.
Verified code is code which is managed and which in addition passes the runtime loader's verification checks. Verified code is safe.
Microsoft's .net supports
both of these: you can have code which is
managed but not verifiable, or you can have
code which is managed and verifiable.
Code which is only managed but not verifiable
is not safe, and so can't be run unless trusted.
So for unverifiable code the security model is
like the security model for Active-X controls
(with all that that implies...).
Code which is verifiable can be run in a sandbox
like Java applets, and so it can be safe to run
untrusted code in a sandbox as long as it is
verifiable.
AFAIK you are correct that Microsoft's managed C++ code will not be verifiable, and hence not safe. If you want to write code which is safe, then AFAIK you will need to use a different language, e.g. C# or Mercury.
Re:How is .NET VM going to be better than Java VM? (Score:2)
Two points. (Score:3)
I also question the need to abandon platform independence in order to get some perceived language independence. MS has absolutely no motivation to implement an architecture that would provide BOTH language independence AND OS indepence and guess what JVM already does that!.
Of course all the MS shops will use
A Dick and a Bush .. You know somebody's gonna get screwed.
Re:.net (Score:2)
A Dick and a Bush .. You know somebody's gonna get screwed.
Re:Wow, Innovation (Score:2)
ODBC/DAO : They have OLEDB Providers and work just fine under OLEDB / ADO
ADO : VB Friendly version of OLEDB
I don't know about XDO, unless that's another name for ADO+. The emphasis on XML is for interoperability between systems. Knowing MS EEE, I don't know if it will really work that way though.
How is .NET VM going to be better than Java VM? (Score:3)
But that cross-platform bit makes me wonder how any of this is an improvement over the JVM. Code for the JVM compiles to JVM bytecodes which are turned at runtime into native code. How and when this happens depends on the JVM (HotSpot, JIT, TowerJ, etc.), but the net result is the same.
People have ported other languages to the JVM (JPython being the best known example), and it's pretty easy to hook Java code up to DCOM (Take a look at J/Integra from Linar Systems). Granted, it sounds like MS added VM opcodes to .NET's VM to improve performance for languages besides C#, but that's just a nice addition.
So, can anyone give me an objective reason why this is better than the JVM? Or is .NET only MS' version of the JVM with C# being its version of Java?
-jon
Can someone explain what MS .net is all about? (Score:2)
Will it be stable? (Score:5)
When will people realize that there is no silver bullet? More than all these fancy technologies and buzzwords, we need good software engineering and extensive testing. Customers share part of the blame for not shunning companies that produce crappy software. Capitalism only works if customers use their brains.
Here's a quick question for you: How many broken Java applets have you seen? How many have you seen that work perfectly? I almost never see Java applets that work perfectly (may be my JVM, but what good is the cross-platformness of Java if you can only get a working JVM for one platform?). In comparison to
This is my rant for the day. Yes, good architectures help, but good software engineering and thorough testing will always be most important. Too bad they aren't sexy enough to get the attention they deserve.
MS bashing (Score:3)
Microsoft buying its way to popularity (Score:2)
What this comes down to is that Microsoft is giving money to a research group and getting feedback on the language independent features of their runtime. That's good because it helps support programming language research, a chronically underfunded area. And if .NET ends up being a good, usable, open runtime after all because of the feedback, even better for everybody.