Phoenix is the next generation .NET optimization framework which will be the basis for code generation for all future Microsoft optimizing compilers,” such as Microsoft’s Visual Basic, Visual C++, and Visual C# ones, according to a description of the Faculty Summit session on the technology. On other Microsoft news, check the FAQ for the Advanced Networking Pack for Windows XP and download it.
Hi All,
Seems like every second project is trying to use the name Phoenix! Isn’t Phoenix copyright by Mozilla/Netscape or that BIOS company?
Cheers,
– Graeme –
Might be hard to go after MS for using a codename such as Phoenix.
OT: You wouldn’t happen to be Graeme Porter, would you? If so, does Hyper Velocity Rocket Launcher and AQM ring a bell? ๐
First, it’s trademarks not copyrights. Secondly, trademarks have context, so it would only be infringement if Phoenix was a registered trademark for compilers. As far as I can remember, Phoenix had some sort of browser, so the Moz guys decided to play it safe.
Why should anyone care about .NET. Its a pointless development suite. Cross platform, my ass. I wouldn’t be surprised if Microsoft torpedos Mono. With QT, SDL, Java, PHP, Perl.. who really cares about some development package that still has major stability issues and is as about as portable as a 1980’s “mobile” phone and as open as a free mason convention.
“Why should anyone care about .NET. Its a pointless development suite. Cross platform, my ass. I wouldn’t be surprised if Microsoft torpedos Mono. With QT, SDL, Java, PHP, Perl.. who really cares about some development package that still has major stability issues and is as about as portable as a 1980’s “mobile” phone and as open as a free mason convention.”
Simple. .Net is not about cross-platform development – it’s about replacing the aging Win32 API with a new API that can be moved to any future platform that Windows will run on. In that light, .Net is in fact a good idea if, and only if you only care about supporting Windows.
I don’t, might I add, and hence .Net is not for me.
.NET is also a very clean API.
With C# and System.Windows.Forms It’s much easier to develop
apps.
I’ve just tested DotGNU implementation of SWF on my linux box.
That’s amazing. they wrote a SWF implementation from scratch in C# on the top of X (Xsharp).
perhaps in a few months we will have an altenative to gtk+, gtkmm, qt.
Microsoft will change Phoenix to Firebird, FirebirdSQL people will get annoyed and then they’ll change to MicrosoftFirebird.
๐
Considering the marketing mess Microsoft has made of .NET — slapping it on everything, generalizing it to death, and confusing even the experts as to exactly what it is — Phoenix is probably a great codename for the next generation.
One assumes they hope to rise from the ashes of their own failed marketing campaign. One thing you have to say about Microsoft: when it comes right down to it they have the tenacity and the cold, hard cash to keep hammering away at something until they get it right (or at least convince a large number of people they have, which in the end is the same thing).
To tell you the truth with this SCO deal going on I would not touch .MONO with a ten foot pole. If someone thinks that MS would not pull the plug on .MONO if it felt like it could gain an edge or hold off a rival then you need to really wake up. Anything created with .Mono IMHO is just asking for trouble down the road. If you want to create applications using .NET and C# then stick with MS. Yet .Mono IMHO is standing on shakey ground that could give at anytime. Especialy if MS decides to kick the legs out from under it.
I don’t like the .Net development suite much either (and it’s VERY overpriced). I don’t think I’d ever shell out the full price of a Microsoft development environment (I did buy the cheap student version when I was at uni though). I like c# as a language – saying that though, I’ve only ever used it for relatively simple things, and I still prefer C or Perl.
OT: By the way Phil, I’m about 50 miles south of you ๐
Yeah, but there is a compiler called “Phoenix” http://www.janus-software.com/ which might be a problem. AFAIK, this product has been around for a while (it’s a Visual “BASIC” compiler for Linux).
“To tell you the truth with this SCO deal going on I would not touch .MONO with a ten foot pole. If someone thinks that MS would not pull the plug on .MONO if it felt like it could gain an edge or hold off a rival then you need to really wake up. Anything created with .Mono IMHO is just asking for trouble down the road. If you want to create applications using .NET and C# then stick with MS. Yet .Mono IMHO is standing on shakey ground that could give at anytime. Especialy if MS decides to kick the legs out from under it.”
Isn’t Mono just an implementation of an open ECMA standard? What grounds does Microsoft have for “pulling the plug” on them? The only part of .Net that’s patented (AFAIK) is the Windows.Forms idea. Mono don’t have their own implementation of this – their product needs Wine added to it so that it uses the real Win32 stuff for forms.
And what about ASP.NET, ADO.NET, etc ?
alain rouge wrote:
> .NET is also a very clean API.
Fyi .NET is not an API. It is an incredibly messy system having all stuff that doesn’t belong there. They’ve set policy for a zillion things developers would have done better by themselves. They’ve got everything from lego building blocks to web server stuff. It’s an insane design policy. What will happen is people won’t use it and write libraries to replace them, but the basic infra will still be bloated and hard to rewrite. Class libraries alone are way too complex. We’ve seen what happened to Java and its successors.
shd
Fyi .NET is not an API.
Might as well be. Its replacing an API.
It is an incredibly messy system having all stuff that doesn’t belong there. They’ve set policy for a zillion things developers would have done better by themselves.
You still have the option of doing it yourself. For those who don’t want to ‘re-invent’ the wheel its not a bad thing at all.
They’ve got everything from lego building blocks to web server stuff. It’s an insane design policy.
A rich class library is insane ? huh?
What will happen is people won’t use it and write libraries to replace them, but the basic infra will still be bloated and hard to rewrite.
Every windows developer I know minus about 2 are using .net. You mean your linux buddies won’t use it ? big surprise there.
Class libraries alone are way too complex.
????
We’ve seen what happened to Java and its successors.
Come on. Don’t compare .net to something as slow and ugly as java.
“We’ve seen what happened to Java and its successors. ”
“Come on. Don’t compare .net to something as slow and ugly as java. ”
Ugly? .Net is a framework, not a language(like Java). You would need to compare it to the JVM. Which is quite solid.
Slow? Java is around 5% to 20% slower (mostly around 10%) than C++. For most projects the speed hit is negligible.
It is also very successful at the moment.
Some MS shops may adopt .net, but if they need growth they may regret it( or spend a ton on boxen). Try raising significantly the load on your Win2003/Linux server and you will see why Solaris on Sun hardware is used so frequently.
If you develop on Java, you can run on any of those platforms. .Net means Win2003 server only…
To tell you the truth with this InterTrust deal going on I would not touch .NET with a ten foot pole. If someone thinks that InterTrust would not pull the plug on .NET if it felt like it could gain an edge or hold off a rival then you need to really wake up. Anything created with .Net IMHO is just asking for trouble down the road. If you want to create applications using .Net and C# then stick with Mono. Yet .Net IMHO is standing on shakey ground that could give at anytime. Especialy if InterTrust decides to kick the legs out from under it.
You think I’m kidding? See for yourself: http://www.fortune.com/fortune/technology/articles/0,15114,466180,0…
just to add to ash’s comments…
“We’ve seen what happened to Java and its successors.”
What’s that? Made Scott McNealy insanely rich?
“Come on. Don’t compare .net to something as slow and ugly as java. ”
(ugly) C# is the bastard child of java and therefore must be hideous! C# was originally called COOL (C Object Oriented Language) and based on the Java specifications.
(slow) .Net languages (C#, C++, VB, J#, …) are all using a VM – how is that faster than Java using a VM? While there is a slight performance hit compared against native compilation, the benefit is derived from the fact that compiled object is multi-platform (think beyond microsoft’s definition of multi-platform = “anywhere that windows runs”).
You probably mean trademarks (may seem similar, but grossly different things altogether). In fact, trademarks is more similar to patents than copyrights. And you only need to search http://uspto.gov
Besides, while there are accurately 416 different trademarks containing “Phoenix” in every industry imaginable, code names aren’t used for trade. In other words, it is a codename. Microsoft is not using it to market their products.
A whole lot of people apparently cares about .NET. So much so, Sun even filed a lawsuit against Microsoft because of it. And I and a whole lot of other sane people would be suprised at the incrediblity of Microsoft stupidity if they torpedoed Mono. In addition to that, if the developers of QT, SDL, Java, PHP, Perl (PHP?) thought the same thing you were thinking now about .NET, they wouldn’t exist. People move on. And mind you, all of the examples you gave weren’t even close to what they are today in their first release. Take for example Java – hardly usable, incredibily slow, not much flexibility to devlopers. Today, it may be slow, but most of its problems don’t exist.
Well, i hope you are joking (baghdad bob, after all), but Microsoft can easily cause this tiny weeny company to bankrupt and win the case with the most expensive lawyers it can find. Why? Software patents are extremely ambigious, if Microsoft can convince the judge and the jury that the patent doesn’t cover .NET, it gets thrown out. Besides, Mono would be in as much trouble as Microsoft if InterTrust thing works out.
They might be a teeny weeny company – but they’re owned by Sony & Philips who aren’t (to put it mildly). They’ve also appear to have won round one with the judge giving MS’s lawyers what could best be described as a bollocking. Which doesn’t mean that InterTrust will win of course.
My take on the whole thing is that it’s just another legal fire-fight between the big guns and we’ll all have to keep our heads down until it blows over. No change there then.
Must be the knee-jerk reaction to the mass hysteria with the release of the latest harry potter “Order of the Phoenix”
PS: I do work on DotGNU and work on the Java compiler for .NET
“Simple. .Net is not about cross-platform development – it’s about replacing the aging Win32 API with a new API that can be moved to any future platform that Windows will run on. In that light, .Net is in fact a good idea if, and only if you only care about supporting Windows”
This is true! Win32 is a disaster, and anything replacing it will be good news for Windows developers. But the “portability” of .Net is likely to be limited to “running on different Microsoft platforms.”
I wonder if .Net will become yet another “native api” for NT, like OS/2, Win32, Posix, GDI, etc.
Rajan, didn’t you read that they’re backed by Sony and Philips? I somehow don’t think this will just go away. I think this could really be a big problem for MS, much larger than SCO v.IBM because it covers so much of Microsoft’s product line.
> .NET is not an API.
How is .NET not an API? I understand it is not *solely* an API, but the .NET class hierachy is a specification for an API.
Hey,
I’m running a JIT CLR on a Zarus and Winforms on an IPaq and OS X !! . Maybe MS doesn’t care about Portability , but working on DotGNU “Portable”.net makes you think really hard about that. We even support Win32 Registry emulation on OS X ! . Lightweight Winforms implementation (think Swing like) and multiple drawing backends (X11 and GDI) for it, it all can be portable.
DotGNU compiles on PalmOS and support JVM output for C# and can compile without any component of the runtime (ie you can even trim away floating point support to run on embedded). Also can be trimmed to work on a CPU without MMU support and 5 difference VM execution models to choose from.
Have an x86 JIT , ARM jit with PPC & IA-64 commits on hold till the next release.
So what was that comment about .NET not being portable ? .
If you don’t think, so I’ll send you my SQL app that is running on an IPaq .
I’ve tested DotGNU SWF and I think it’s amazing.
So you’ve coded SWF natively in cs on the top of Xsharp.
really cool.
that said it will takes years to implement something usable?
am i right?
http://www.alain5.org
.NET is evil because it’s owned by Microsoft…
Mono (which implements just the ECMA standard that MS can never take away) will fail because MS will sue them just like SCO…
and Java is slow and lacking features because version 1.0 was.
*YAWN*
I’m getting just a tad sick of hearing these ignorant flame wars that only serve to reveal the ignorance of certain posters to this site
API means Application Programming Interface. It used to mean a clean division between the program and the operating system. Now we have scripts rather than programs and virtual machines interfacing with the operating system. Todays systems are like onions (a la Shrek) not because they are composed of layers, but because they stink and they make you cry. The division is so blurred that it is meanless and pointless to discuss APIs.
But what the hell – .Net interfaces to the Window’s Kernel using the Win32 API. They are not replaced, they are distanced from the script / application. .Net is not a “native api”, it is a virtual machine with different personalities on top.
How successful will this be for Microsoft? If we look at history for a moment, we will see that IBM tried this approach with OS2 for the RS6000. They had replaced parts of the operating system with Java components (before anyone says how sluggish Java is, remember .Net is a VM as well, and performance benchmarks show that Java is no slouch). Who remembers OS2 for the RS6000? I believe this product died before OS2 for i386 died. Hmmmm… but then again we are talking about IBM.
Gazing into my crystal monitor I see the future – Microsoft will finance SCO to “own” Linux. Microsoft will then purchase SCO and destroy it. Microsoft will then re-brand Linux as Windows 2004 (and proclaim it innovation). Microsoft will purchase Ximian and destroy it. Microsoft will then deploy Mono as .Net (and brag about being mult-platform). But wiat there’s more… Microsoft will replace the crappy desktop with Ximian Desktop (finally the user community is satisfied with the look and feel of windows) and the buggy Outlook with Evolution (no more e-mail virusus). Now their on a roll… Microsoft trademarks and copyrights the term “open source” and aquires all open software (openoffice.org, opengroupware.org, postgresql, …) dumping their proprietary versions (office, exchange, sql server, …). Meanwhile, Microsoft politics have resulted in an overthrow of Bill Gates, who has decided to start from scratch with his new company Gateware featuring his new operating system Billix!
So tired of seeing people claim Java is within 10% of C++. That’s total bull. It may be within 10% of very, very poorly written C++. Java is slow. Period. Just the same, Java has its place.
So tired of seeing people claim Java is within 10% of C++. That’s total bull. It may be within 10% of very, very poorly written C++. Java is slow. Period. Just the same, Java has its place.
Okay…proof, please?
So tired of seeing people claim C++ is within 10% of Assembly. That’s total bull. It may be within 10% of very, very poorly written Assembly. C++ is slow. Period. Just the same, C++ has its place.
See how ridiculous you look Mr. Anonymous (IP: —.customer.centurytel.net)
Ugly? .Net is a framework, not a language(like Java). You would need to compare it to the JVM. Which is quite solid.
Let me clarify that then. Ugly as in the applications it produces. The UI is sick. You can tell a Java app from everything else. Its the one that looks like crap and runs slow. I can count to 6 on average just loading an app written in java before it shows up on the screen.
Slow? Java is around 5% to 20% slower (mostly around 10%) than C++. For most projects the speed hit is negligible.
I don’t buy that. I haven’t seen java run anywhere close to native C code. I’m guessing more like 80% slower myself.
It is also very successful at the moment.
Yes its successful and its proven quite useful on cell phones. That dosen’t mean I gotta like it.
Some MS shops may adopt .net, but if they need growth they may regret it( or spend a ton on boxen). Try raising significantly the load on your Win2003/Linux server and you will see why Solaris on Sun hardware is used so frequently.
Already done it. ASP.NET compiles to native code and caches it after the first run. We get better performance from ASP.NET than we did with regular ASP.
Look at the price of Solaris and Sun hardware and you’ll see why so many shops are going to Linux on x86.
If you develop on Java, you can run on any of those platforms. .Net means Win2003 server only…
Actually .net means NT4, 2000 or 2003.
and if Java is slow, wait until you try .Net – you will praise Java for it’s speed! You will be says to yourself “gee, I wish they would speed up .Net to get it within 10% of Java”.
I decided .Net was not the way to go when I found that the “Hello World!” application compiled to 20MB. I must have really written that one line of code badly, eh? I’m not clear why anyone would think that this C++ bloatware is better than Java.
Compilers & linkers can produce good or bad code – and will have nothing to do with writing the code good or bad. Java good. C# / C++ bad.
have seen benchmarks at extremetech about java speed. Seemed to do well against visual c++ . Don’t have the link.
> Won’t it take years …
Yes, you are right it will take some time to implement the entire winforms API. The thing you are seeing is about 1 1/2 month old or so.
But the entire point of the thing is that it’s portable and fast this way. Also for the first time you can run WinForms over a network .
Also look at the implementation specifics ie (System.Windows.Forms.Themes) in it . The only real problem construct is RichTextControl (somebody did a TextBox control today with mouse selection enabled
Also you should be able to use our .dlls in Rotor as well . And I hope you saw the screenshots of FormsHello running on the iPaq ? (see http://demo.dotgnu.org/~minddog/ for the AVIs of minddog showing his finger and iPaq winforms ๐
According to conservative estimates 2004 January should see us running major Winforms apps (like SharpDevelop sans PInvoke to user32.dll) on top of it. But quicker if more people help out (We have about ~5 commiters and this month has already seen 58,471 lines changed , so it won’t take long). Currently we’re stabilizing for release.
To tell you the truth with this InterTrust deal going on I would not touch .NET with a ten foot pole.
This would be like me saying “To tell you the truth with this SCO deal going on I would not touch Linux with a ten foot pole.”
Get real.
first of all .net uses no vm. MSIL code is compiled to native code an then executed. it was never designed to run in a vm.
java uses a vm to execute it’s programms so even the class libray is protable. .net achieves its “portability” in implementing the same class libraries on differnt platforms, but you cannot use the ms class library on mono/linux.
java is slow when it comes to gui, which has a simple gui. modern gui toolkits interface with the graphics subsystem of the kernel and so many drawing routines are accelerated by the hardware. the swing library is designed to be portable so it does everything on its own.
if you use java on application servers oder cli, where no gui is required it comes very close to native binaries.
/bla
ash : “If you develop on Java, you can run on any of those platforms. .Net means Win2003 server only…”
I do believe that .Net came out before Win 2003. This really shows how informed you are about the whole thing you are comenting on. I mean come one do a little research don’t be a mindless robot spewing out garbage you hear from you little *nix buddies.
NOTE: .Net runs perfectly on Windows 2000, Windows XP, and Windows 2003. It also runs sort of half-a**ed on Windows 98 Windows ME and Windows NT 4.
I think what this troll was refering to is the server components that now have .Net interfaces to make programming alot easier.
“Well, i hope you are joking (baghdad bob, after all), but Microsoft can easily cause this tiny weeny company to bankrupt and win the case with the most expensive lawyers it can find. Why? Software patents are extremely ambigious, if Microsoft can convince the judge and the jury that the patent doesn’t cover .NET, it gets thrown out. Besides, Mono would be in as much trouble as Microsoft if InterTrust thing works out.”
I totally agree because if Microsoft can out spend the U.S. Government and force a settlment then what does a small company that was just purchased for 500 million dollars with 30 employees going to do.
Funny that everyone here is just defending/complaning about java when the real news is that there is no news about this whole Phoenix thing.
First of all, most people won’t see it until some ‘future version’ of Visual Studio. Secondly, it doesn’t give you anything that gcc doesn’t do already. Phoenix is basically an API for manuplating the intermediate steps of compiling a source file into a binary. At least that’s how the web page makes it out to be.
They also make part of it out to be sounding like the technology that sun developed for Hotspot, to represent the internal stages of compiling as being platform independent so that you can have a generic compiler that takes one input and then recompile that into platform specific code. (Hotspot works by compiling JVM bytecode into HotSpot code that is machine independent, aka the same on Sparc, x86, PPC, etc… Then having a machine dependent compiler that turns that code into actual machine code).
One thing I do love is that their ‘variety of architechure’ examples include only x86, IA64 and MSIL. Wow, that’s really diverse guys. (gcc compiles for over tens times as many architechures)
MS is just playing catchup here, nothing to see.
“.net uses no vm. MSIL code is compiled to native code an then executed.”
Better inform Microsoft that they don’t understand their own technology. From http://www.wikipedia.org/wiki/Common_Language_Runtime:
In computing, Common Language Runtime (CLR) is an runtime environment enabling the exact same code called intermediate code to run on various computers such as Windows PCs, Unix machines and Machintoshes.
It is the implementation of the Microsoft .NET Common Language Infrastructure. It is the generic multi-language execution engine (a virtual machine) on which code runs, around twenty languages are currently (early 2002) supported. Compilers are defined by the Common Language Specification (CLS), a subset of the CLR which defines interoperability between languages.
See also: Microsoft Intermediate Language and Metadata, Runtime, Java programming language, Virtual machine
>I don’t like the .Net development suite much either (and >it’s VERY overpriced). I don’t think I’d ever shell out >the full price of a Microsoft development environment (I >did buy the cheap student version when I was at uni >though). I like c# as a language – saying that though, >I’ve only ever used it for relatively simple things, and I >still prefer C or Perl.
What do you mean it’s over priced, the MS Windows SDK/compiler is free. It’s only the IDE that’s priced and I know how you Linux people hate IDEs so that shoulnd’t be such a big deal.
Also from http://www.wikipedia.org/wiki/Common_Language_Infrastructure:
The Common Language Infrastructure is used in the Microsoft .NET initiative as the basis for running programs written in different programming languages. Before this Visual Basic for example has required a component VBRUN and Visual C++ uses MSVCRT for the compiled programs to run. The common language infrastructure is an effort to unify the different runtime modules needed.
It uses a virtual machine and a class library Common Language Runtime. (see Microsoft site [1]). There are many compilers being developed which produce code for this virtual machine. The code it executes is called Common Intermediate Language (CIL) or Microsoft Intermediate Language (MSIL).
It seems that in the future there will be at least two major virtual machine technologies competing (see Java virtual machine)
Hey, bla, don’t you hate it when you are caught being dead wrong in front of the whole world?
I’ve tested DotGNU SWF and I think it’s amazing.
So you’ve coded SWF natively in cs on the top of Xsharp.
really cool.
that said it will takes years to implement something usable?
am i right?
I doubt it would take anywhere near that long. The current implementation of winforms for DotGNU Portable.NET is only a little over a month old, yet it’s already about half done. This is typical of DotGNU Portable.NET; the lead developer, Rhys, is a machine, and since everyone else on the project follows his lead, we’ve learned to get things done pretty quickly. Pnet’s winforms should be 100% by the end of the year if the current pace is maintained.
Rich
>I decided .Net was not the way to go when I found that >the “Hello World!” application compiled to 20MB. I must >have really written that one line of code badly, eh? I’m >not clear why anyone would think that this C++ bloatware >is better than Java.
I’m not sure what you’re doing but my .NET GUI hello world compiles to about 20K. I think you’ve got a decimal point misplaced somewhere. I think you’ve confused the runtime libraries which are of the order of 20MB with the compiled code. I wonder what the size of the runtime libraies are to run say Gnome or KDE, 20MB?
It was a release candidate version. The executable was 20MB.
Just face the facts already. Microshaft has released the most expensive IDE for scripting languages in the history of computers.. 2k+ (enterprise version) for an IDE for scripting languages? We all know .NET “languages” are just scripting languages, plain and simple. That’s still a major flaw with the framework (with the exception of unmanaged vc++), you can view the exact (if not better optimized) source code of the program you wrote in .net. Security through obscurity is tried and proven pure BS.
I’m still looking for a real non-c/c++ programming language that is really cross-platformed (windows/linux/osx).
Since .NET is a scam, anybody know of any?
Hey, bla, don’t you hate it when you are caught being dead wrong in front of the whole world?
Actually, bob, he’s not that wrong. The MS libs use A LOT of native code. You can embed native code in the PE files and you can also, quite easily, make code VERY dependant on native code using internal calls and platform invoke. This is exactly what MS has done with most of their library, making it useless on non-windows platforms. The whole thing can be very portable, like in DotGNU Portable.NET, or very unportable, like in MS.NET. It depends on the implementation.
Rich
I’m still looking for a real non-c/c++ programming language that is really cross-platformed (windows/linux/osx).
Since .NET is a scam, anybody know of any?
http://www.perl.org/
http://www.python.org/
Unless those aren’t “real” languages to you.
In that case, how about Fortran? Part of gcc (known as g77)
I’m still looking for a real non-c/c++ programming language that is really cross-platformed (windows/linux/osx).
Since .NET is a scam, anybody know of any?
Borland dosen’t do OS X yet but if you need native code cross platfrom for Windows/Linux then Delphi/Kylix are a potent combo.
http://www.borland.com
and if Java is slow, wait until you try .Net – you will praise Java for it’s speed! You will be says to yourself “gee, I wish they would speed up .Net to get it within 10% of Java”.
I decided .Net was not the way to go when I found that the “Hello World!” application compiled to 20MB. I must have really written that one line of code badly, eh? I’m not clear why anyone would think that this C++ bloatware is better than Java.
Compilers & linkers can produce good or bad code – and will have nothing to do with writing the code good or bad. Java good. C# / C++ bad.
Actually, last time I checked, DotGNU Portable.NET is already faster than the current Java VMs available for GNU/Linux. You might want to check your facts before posting. Oh, by the way, if you don’t like C#/C++/Java/VB/Brainf**k etc. then you can write your CIL applications in C (once again, thanks to Portable.NET). Don’t you just love GNU?
Rich
Just to add to Rich’s post above, the following is from the specification for the CLR:
Multiple execution models – The metadata also allows the execution environment to deal with a mixture of interpreted, JITted, native, and legacy code and still present uniform services to tools like debuggers and profilers, consistent exception handling and unwinding, reliable code access security, and efficient memory management
The information before and after that goes into more detail, but basically what it comes down to is that the runtime can work in a number of ways, including executing native code (one of it’s primary functions in .Net is compiling MSIL into native code, then caching the executable and managing it’s external calls).
All of this is why Phoenix (you know, what the article was about) may be so important, because you can add optimizations to the compile steps of the runtime (ie you don’t need source code to add optimizations to existing applications) for your platform, even if they didn’t exist when the application was built (of course, that wouldn’t be as optimum as changing the source code and using optimized algorithms, but it’s usually better than unoptimized code), or simply have better control of the optimizations being used on your system.
Hey, bla, don’t you hate it when you are caught being dead wrong in front of the whole world?
Sorry, ’bout that – that was a little over the top. I hang my head in humble shame.
The fact is both are designed to be virtual machine driven, or so the sales pitch goes. Both have escape hatches to native interfaces. What you have described is that Microsoft doesn’t like the performance of their own virtual machine and so rely heavily on the back door.
You can’t embed native code in Java. Is that good or bad? The old timers in software developement will remember the old C compilers that allowed you to embed assembler code. Mostly this was done to shell out to the back door to interface with the operating system (remember those “undocumented” DOS interrupts?) – for example the DOS interrupt for the time slice. Same shit different package ๐
<rant>Can someone try to keep on task with writing something pertinent about the article? It’s those incessant ramblings of open source, this, that, blah blah blah. Did anyone happen to read what this article was about? Chrissakes.</rant>
<useful>
Did anyone happen to notice this at the bottom:
For those of you busy rambling about completely unrelated topics, a PNRP seed server is required to start any communications between the distributed hosts.
Q: Does a PNRP seed server collect any personal information about me?
A: The Microsoft PNRP seed server acts as a peer in the network aiding in the referral of numeric identifiers to IP endpoints to other peers for the purpose of bootstrapping into the PNRP cloud. Since each peer in the cloud is responsible for caching a subset of identifier / IP endpoint pairs, a PNRP seed server must cache a subset of these pairs in order to do the referral. At any given point in time, an identifier / IP endpoint registered by a peer could be in the seed serverโs cache. These identifiers could be used to identify an individual user and their IP address on the internet. These pairs are not logged by the seed server and will expire over time.
</useful>
I posted this with the wrong article. But I still mean what it says. Just for a different article….
My bad….
Hmm, coffee going to start working soon?
I’m staying far away from .Net even though I might be forced to study it for one or two courses in school. Oh well, it will be a good history lesson. There is no way in hell I’m paying one penny to Microsoft.
I don’t mind Java, infact I would definately use Java for cross platform work.
I think that if I was targeting Linux though than good old C would get the job done. It would be nice to have a good IDE which does code completion though because C involves probably about thirty percent more typing.
They sue LIndows for sound a like Windows, then they use
the Phoenix name to publish some crappy code…
Bah!
sadly, no doubt.
M$ knows .Not is total failure and full of holes so now they are marketing the next release similar to windows 95 and touting mellinium is the best desk top OS. I havent seen anything good come out of M$ ….Not is like VB . I remember VB3 release and M$ touting VB4 is better then came VB5,6 7(.Net) all are piece of junk.
From the web pages and the MS site it looks like Phoenix is just an MSIL IR interface. Are they seriously patting themselves on the back for that?
Not wishing to sound unkind to MS .Net I might mention a Russian word of similar sound. .Nyet (meaning no) but I haven’t heard anyone else say it .yet.
As for the article, it seem like they are opening up an api to the compilers internal tree structure. Since I am working on a v+c+o mixed lang compiler, this is mildly interesting. Maybe I could retarget my IR tree to theirs, maybe .nyet.
“I’m still looking for a real non-c/c++ programming language that is really cross-platformed (windows/linux/osx).”
Take a look at the current and coming versions of REBOL http://www.rebol.com
>>>>> M$ knows .Not is total failure and full of holes so now they are marketing the next release similar to windows 95 and touting mellinium is the best desk top OS. I havent seen anything good come out of M$ ….Not is like VB . I remember VB3 release and M$ touting VB4 is better then came VB5,6 7(.Net) all are piece of junk. <<<<<<
Good to know the open source comunity still maintains such faithfull drones, your ability to spit out a never ending stream of CRAP amazes me.
Obviously you either do not understand/do not want to understand .NET or you wouldn’t bother posting such crap.
Firstly I’d recomend you take a look at .NET and the improvments that it makes on the Win32 API.
Secondly I suggest you stop comparing it to VB because one of the biggest trump cards of .NET for Microsoft is that it will run on any architecture with a port of the .NET runtime environment and windows obviously a boon for the movement towards a 64bit architecture .
Lastly if .NET is dead why is Microsoft rewritting all its programs and API’s in .NET? You may not like Microsoft but no one can say they have bad buisnes sense because bad buisnes sense does not make you worth $100 billion.
> and if Java is slow, wait until you try .Net – you will praise Java for it’s speed! You will be says to yourself “gee, I wish they would speed up .Net to get it within 10% of Java”. <
More gibberish from the Anti-Anything-Microsoft comunity there have been independant test run which verify that .NET performs better than J2EE/(Whatever Java version you wish to insert here).
.NET might be the most beautiful thing on this planet. (i know it very well, and don`t think that it is btw.)
and you know what? I DON`T GIVE FUCK! it is from MS, the most unethical company ever existed on this planet.
stick it in your ass billy. –: ))))
cheers.
java was designed as a virtual maschine. this maschine is emulated by a java vm. that model was far to slow and brought java the reputation of beeing far to slow. a modern java vm compiles the java code into a native binary and executes it. but each of these binaries contains a litle java vm to do the work it was supposed to do.
microsoft did slightly a different approach: modern compilers work like this: they compile the source code into a intermediate code which gets compiled into native code (i left out some things, so don’t hang me on that). the .net compilers do the just the first part, the .net framework does the second part.
Now the CLI provides a maschine specification as part of the specification of the MSIL code. But microsoft never implemented a vritual maschine to execute this code, just a compiler to translate msil code to maschine code.
about the wikipedia articles you quoted. from http://www.wikipedia.org/wiki/Common_Language_Runtime :
“It is the generic multi-language execution engine (a virtual machine) on which code runs, around twenty languages are currently (early 2002)”
The microsoft clr can execute only one languague, and that is msil code. (if yuo can call the msil code a language at all) there are many compilers that can compile high level languages to msil code but none is part of the clr
“Compilers are defined by the Common Language Specification (CLS), a subset of the CLR which defines interoperability between languages.”
The CLS defines no compiler at all. All that is defined is the out put of the compiler.
the authors knowlege is worse than my english.
>Hey, bla, don’t you hate it when you are caught
>being dead wrong in front of the whole world?
no, but what about you
somebody deleted the addition to my previous comment. this site is becoming miguel’s balls sucker. i am writing it again:
stick it in your ass miguel. –: ))))
cheers osnews.
Take from:
http://msdn.microsoft.com/msdnmag/issues/0900/framework/default.asp…
“… the code in managed PE files generated by the language compilers is not x86 machine code or machine code targeted to any specific CPU platform. Instead, the code generated by the compiler is a Microsoft intermediate language (MSIL)…”
“… compiling your source code causes the compiler to emit MSIL. MSIL is a CPU-independent intermediate language created by Microsoft after consultation with several external commercial and academic language/compiler writers. MSIL is much higher level than most CPU machine languages.”
“Of course, the MSIL instructions cannot be executed directly by today’s host CPUs. So, the common language runtime engine must first compile the managed MSIL instructions into native CPU instructions.”
Taken from:
http://wwws.sun.com/software/solaris/jit/
“… the Java Compiler … turns the Java code into what is known as “bytecodes” …”
“The JIT will take the bytecodes and compile them into native code for the machine that you are running on.”
Goodness me – how wrong I was! This is sooooo different than Java! Thank you for showing me the error of my ways!
Clearly people’s attention spans or memories are very short. Here’s the history in a nutshell. Microsoft implemented their own Java with their own JVM. They wanted to change it to a Microsoftized version. Sun said that violated the licensing agreement and sued them. Microsoft retaliated by creating project COOL (“C” Object Oriented Language) which was a modified J++ and JVM. COOL became C# and the JVM became .Net (plus other bells & whistles & optimizations).
In the end, who cares? People will still argue that the sky is no blue because they’re favorite brand of product X says it is not, or because they see a cloud.
“Of course, the MSIL instructions cannot be executed directly by today’s host CPUs. So, the common language runtime engine must first compile the managed MSIL instructions into native CPU instructions.”
“The JIT will take the bytecodes and compile them into native code for the machine that you are running on.”
The CLR has many features that are similar to a VM (including a JIT compiler), but does not operate in the same way. The CLR can also be implemented in different ways, but then I believe we were discussing the .Net CLR. In any case, the CLR usually compiles to native code and then caches the native executable (there are ways to force it to recompile every time, or to do other things that will make it behave even more like a VM, hence usually). When you run the executable file (usually a PE file containing MSIL), the CLR would check for a cached version and try to run that instead of compiling again. The general difference between a VM and what the CLR does, though, is that a VM is supposed to be a virtual machine in the sense that the program using it has no awareness of the machine on which the program is running. The CLR, on the other hand, allows direct access to the system (you can bypass the CLR entirely except for the startup of the program by writing directly to the system’s interfaces), without any need for the CLR to support the complete set of the system’s APIs to do so (the CLR won’t bother trying to negotiate between the API and your software, though it will still try to manage memory and handle exceptions unless you mark the code unmanaged/unsafe). This is one of the many things that Java and VM advocates point to as a grave error on MS’ part (whether or not it is depends on how much you really like the idea of a VM in the first place).
Clearly people’s attention spans or memories are very short. Here’s the history in a nutshell. Microsoft implemented their own Java with their own JVM. They wanted to change it to a Microsoftized version. Sun said that violated the licensing agreement and sued them.
Actually, Microsoft did not implement their own Java, they simply added extensions to it in both their compiler and their VM. This is why Sun sued them (and won, because the licensing agreement did not allow extensions to the language). Of course, while Sun was suing MS they allowed everyone else to extend Java, but since MS did it first and without permission, they went for them and won. Microsoft’s compiler and VM still allowed you to make compatible Java apps, but of course you had to make sure you didn’t use MS extensions (which made Java a much more useful language in Windows than it is without them).
Microsoft retaliated by creating project COOL (“C” Object Oriented Language) which was a modified J++ and JVM. COOL became C# and the JVM became .Net (plus other bells & whistles & optimizations).
The JVM and .Net CLR are quite different in design, so it’s unlikely that the JVM was even considered as a base for the CLR’s design. The modified J++ for the .Net CLR is J#. Apparently MS played the whole ‘LOOK AT THAT OVER THERE’ (while I do this over here) game so well that J# has been largely ignored by the people most critical of them (in favour of Java).
In the end, who cares? People will still argue that the sky is no blue because they’re favorite brand of product X says it is not, or because they see a cloud.
Or because they’re enamoured with staring at the Sun.
Rajan .R STFU and go do your homework ! This small company is owned by two larger ones my friend.
“Actually, Microsoft did not implement their own Java, they simply added extensions to it in both their compiler and their VM. This is why Sun sued them (and won, because the licensing agreement did not allow extensions to the language). Of course, while Sun was suing MS they allowed everyone else to extend Java, but since MS did it first and without permission, they went for them and won. Microsoft’s compiler and VM still allowed you to make compatible Java apps, but of course you had to make sure you didn’t use MS extensions (which made Java a much more useful language in Windows than it is without them).”
WRONG. Sun sued MS, since they did not include JNI and RMI but offered some other mechanisms which were windows only. RMI and JNI were required components to call the system java. In the end, they created an uncompatible version of Java. they did not sue ms because they extended java.