Mono Ships ASP.NET server
Miguel de Icaza writes "We have just released the new version of Mono the new version includes a working version of ASP.NET. The release includes a sample web server that "hosts" the ASP.NET runtime (it can be hosted anywhere, for instance in Apache, with mod_haydn). The web features of ASP.NET would not be very useful without the support of a backing database. The new version of Mono includes database providers for Oracle, MS SQL, Sybase, ODBC, OleDB, Gnome Data Access, SqLite, MySQL and of course, Postgres. The C# compiler is now 37% faster due to some nice optimizations on the JIT engine and in our class libraries. You can use it to develop GUI applications using Gtk#. Screenshots for mPhoto and the GUI debugger (which can debug both JITed apps and native applications). "
It's a weird experience to run the same exe in Windows and Linux with the .NET or Mono runtimes. When Mono supports WinForms (by translating them to Gtk#), so GUI apps written with Visual Studio .NET's GUI builder work on Linux, that will be significant.
.NET Doesn't need to match up with J2EE in terms of features or performance, all that will matter will be whether Microsoft's marketing department can outspend Sun/IBM/Bea.
All signs point to yes.
Although there is prior art examples of individual technologies such as the JVM etc, Microsoft patents such as the one mentioned, define and claim the interoperation of the components, in such a way that any re-implementations will be sure to be covered by the patents. This remains true even for the Microsoft specs submited to standard
In comparison, Sun has granted the Apache and all open source developers FULL access to the specs, test kits and granted the full rights to develop competing products under the JSPA . Sun has also fully pened up the Java development standards process under the new Java Community Process (JCP). Even to the point of granting full open source re-implentations of J2EE such as JBoss...
There those that claim that .NET is open to re-implementation, but until Microsoft make a simliar public legal declaration to Sun's JSPA, any .NET reimplementation represents a pending legal mindfield.
Just like Microsoft is outspending the Apache Foundation?
Sun/IBM/BEA/Oracle/Apache.. Microsoft may well pull it off, but it's hardly a foregone conclusion.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
It doesn't sound like much, but for porting a lot of business logic to Linux, this is a potentially huge development.
Another thing that's needed to get this project up to par with MS .NET is an IDE. Fortunately, the SharpDevelop
folks are working on that...
So far this project has been very impressive. Kudos to the Ximian folx.
Finding God in a Dog
Mono today works on LinuxPPC in interpreted mode, but does not work on MacOS X since the calling conventions are not the same.
We started work three months ago on a new JIT engine whose main aim was portability (although the current JIT can be ported, most optimizations and coarse-opcodes had to be reimplemented over and over). The new JIT engine design has two intermediate level representations: a higher level one, and a low-level that can be as precise as required for a target CPU. The funny thing is that the new JIT is actually faster JITing code than the current JIT even with the added layer.
The lower-level layer is actually something we are very proud of, Paolo architected a register allocator and instruction scheduler at the same stage, and we are using the PowerPC on MacOS X as the second platform to target to guarantee this time that the JIT is actually easy to port.
We are hoping to release the new JIT engine in February/March.
what good is ASP or ASP.NET if we already have PHP you might ask. Well, firstly, ASP is a Microsoft product. If you don't know, Microsoft is a reputable software company that has been in business since 1975. PHP is just some silly freeware ASP clone hosted by a buch of computer geeks and hackers on some obscure website. Clearly a product from a major player in the software industry will be a better product.
The volume of database providers in this release is the work of very few but very active hackers: Brian, Dan, Rodrigo, Tim and Ville. It is amazing the amount of code that these hackers pulled in the last two months.
It is easy to know when the System.Data hackers are working, your inbox gets hammered with patches from the mono-patches list.
You can help us support DB2, but you will have to get your hands dirty and start coding like the crazy hackers that brought all these providers (and Reggie has agreed to contribute his optimized provider as well).
You reminded me of a cartoon I saw in Car&Driver years ago. It had an image of a screaming woman going over a cliff in a car, with the caption "Definition of Mixed Feelings: Watching your mother-in-law go over a cliff in your new Ferrari." Watching Mono develop is the geek equivalent.
"Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
Good thing a:
If we can get a better "forms" implementation on 'nix (windows-like without windows bugs), that would be awesome
Secondly, but verrry important to those who do webhosting, clients requesting ASP pages would be able to run on 'nix servers, no longer requiring special windows dedicated hosts. For those who prefer 'nix servers, and many hosts do, running a windows server in the bunch is a pain in the butt!
If this actually pulls through, I will be amoung many who are very, very impressed.
IANAL, but don't you lose your rights to a patent if you don't aggressively defend it?
No. You're thinking of trademarks. If you let a trademark get diluted in the marketplace, your claim to that trademark grows weaker, or even goes away entirely. Patents don't work like that.
I write in my journal
What's the purpose of such a thing?
Are you also trying to peel off CORBA reliance?
Please explain your point of view, because I just can't understand why people are running away from COM as if it were the plague... and into this new swamp that is .NET.
Not to detract from Miguel and the Mono team here, but I can't help but think that there has to be a hidden message in the image he used for a screen shot... I can't quite put my finger on it...
Oh well <whistles>
Unisys were well aware of the widespread use of LZW GIF image compression in many vendors software, so it's better to use PNG.
Microsoft isn't really good at explaining itself in a rational manner because Bill has his head up his ass, and will not let his technical team talk. Instead his marketing team is in charge of explaining to the world what they do. As a result, .NET to me is something as low-level and small as a binary format specification (similar to COM objects), and as high-level and strategic as 'the end of non-distributed computing, and the emergance of <ooooh>Web Services</ooooh>'. Something that is so broad in breadth is not a clear definition in my books.
Is there anyone out there that knows why .NET should supercede COM or CORBA? Why the functionality of Web Services isn't merely provided as an implementation in COM model?
COM is a beautiful specification and model (so is CORBA - and the two are almost identical in fact)... they are compact enough to actually be usable in kernel mode (WMI providers in Windows are COM interfaces). So what is our eternal ass rash that makes us want to get the better suped up version of the same old shit?
I don't know about other programmers, and how they feel of all of this, but a new standard evolving every 5 years is way to much for me. And as such, I have yet to be convinced I should start learning anything in .NET. What have you, comrades, to say about this? Have you started using .NET, and have seen fundamental differences in principle that make obsolescence for COM a MUST?
On a side note, kudos to Mono for doing this work.
It almost seems like blasphemy to be able to compile and run Visual Basic in a linux environment. Yikes! What is this interoperable world coming to? What next, a paperclip for emacs? ;)
---
the pen is mightier than the sword, the sword is mightier than the court, the court is mightier than the pen.
Hmmm... Have you used COM before?
STDAPI CoCreateInstance( REFCLSID rclsid, //Class identifier (CLSID) of the object
LPUNKNOWN pUnkOuter, //Pointer to controlling IUnknown
DWORD dwClsContext, //Context for running executable code
REFIID riid, //Reference to the identifier of the interface
LPVOID * ppv //Address of output variable that receives
);
Can you tell me where you see the registry in there? Even malloc is shielded behind an IMalloc interface for crying out loud. The implementation of the runtime happens to use the registry, but that is COMPLETELY hidden to the actual spec of what COM is.
Um duh. Yes I've been programming with COM for 5 years.
.NET allows "xcopy" installs. No registry entries, just copy the entire directory and you're done.
How do you tihnk CoCreateInstance constructs an object from a classid?
How do you think COM knows which IID relates to which interface?
Yes. The registry.
You have to register all com interfaces and objects in the registry.
COM simply wouldn't work without some kind of registry or repository.
Aside from that, CoCreateInstance might in a windows implementation look up the registry... but it might in a linux implementation look up a flat file, and on a BSD imp look in a sql db... it wouldn't change the behaviour of CoCreateInstance... And so, CoCreateInstance as a definition is not tied to any specific platform.
I really don't think Miguel and friends are motivated at the prospect of "over throwing the evil empire." Of course you would have to ask them though.
I don't think this project should be considered a counter attack. It should be considered an advancement in open source and nothing more. Just my opinion
...the "in soviet russia" jokes piss you off!
...and IN SOVIET RUSSIA, beowulf clusters imagine 1, 2, 3 profit!!!! jokes made out of YOU!!!
Is the performance still acceptable and can compatibility be guaranteed? Chillisoft ASP is great if you're a commercial ISP or otherwise make money from hosting ASP stuff, and therefore can afford the price. But for the little educational student webserver, it's out of the question.
Can this compete? Or do the users have to learn a whole new brand of ".NET ASP" to do anything useful with it? I never knew anyone who uses ASP, so I never looked -- are there other free ASP-on-Linux solutions out there?
There are so many things wrong with that that it's hard to know where to begin:
Sun has renegged on several previous promises regarding Java: they failed to go through with standardization, twice, and they failed to deliver lots of functionality that they promised (e.g., value classes).
If Sun wanted to open up Java, they would go through a standardization process, identify all the relevant patents in question, and make a legally binding commitment as part of the standards process. Instead, we are just getting fuzzy promises while Sun keeps filing Java-related patents.
As far as I'm concerned, both Sun and Microsoft are greedy and untrustworthy, and the open source community would be foolish to throw their lot in with either company.
This may be a stupid question but does mono work on windows? Everything seems to imply it will but then the downloads section all seem to be for linux. I'd be interested in having a play with it on windows as it's the only environment available to me most of the time.
Sig is taking a break!
one useful feature mono will hopefully provide is the ability to run .net programs on older _windows_ systems.
:) - microsoft doesn't support .net on windows 95 (presumably as part of their overall strategy to force upgrades by making their old os versions obselete).
.net applications (ones that don't call the win32 api and are thus potentially more portable) - the inability to do any multimedia stuff (even a simple beep) without resorting to win32 calls, makes it pretty much impossible for any reasonably large application :).
thats right
having written a windows forms application (the decision to use windows forms based on the fact that it really is one thousand times nicer than win32/mfc to create gui applications with), i was a bit shocked to find out that my application won't run under windows 95 at all, and that for other old microsoft OSes a TWENTY megabyte download is required to support it! (a bit of a jump from the one or two megabytes for the visual basic dlls).
and one further note - about 'pure'
Sun's patents, if anything, look much more worrisome. For example, patent 6,477,702 patents the basic Java bytecode architecture and can be used by Sun to shut down any competing implementation. Furthermore, despite lots of cheery announcements, there is no indication that Sun has made a legally binding commitment to license this patent freely for open source implementations, let alone competing commercial implementations. The way it looks to me is that Sun is just stringing the community along with promises, and they will change their tune when they feel that they have established a secure enough market position. Sun has broken lots of Java-related promises; they are not to be trusted either.
Let me start by saying that programming COM objects is the most retarted way of programming functionality. True, using VB or Delphi, it is easy, but using f.e. C++, it's not. Read Don Box' book Essential COM to see what I mean.
.NET is kind of like the enhancement of what automation was set out to be: a common way for any COM object abiding to automation rules and specifications to be able to use the environment (such as data, variables etc) of the application without doing 'marshalling conversions' when switching between languages? (for example: using variants and safe arrays to access data both in C++ and VB). .NET is the replacement for the VB runtime for VB programmers, the C(++) Runtime / STL / Win32 lib for C/C++ programmers etc. It's the general target platform for _ALL_ CLS compliant languages (C#, VB.NET, J#, JSCript.net etc. C++ is partly CLS compliant, if you want to use templates or multiple inheritance, you can't).
.NET. The objects you create, run inside application domains, which is totally different than COM objects do, in relation to the SCM.
.NET, but its harder). Webservices is not a 'part' of .NET, you can build webservices WITH .NET. That's a different thing!
.NET api is the key of its success. Add to that the wonderful ASP.NET functionality (which is really years ahead of anything else) and the very good documentation of the API and you're set.
.NET and the amazing security featureset available to a developer and 2) that COM IS one of the causes of security leaks and DDos attack possibilities, simply because people forgot to use smartpointers and kept memory nonfreed. This is over now.
COM as a functionality is great, but it should have been more transparent for the developer, like VB did this: you just program classes and hey, check it out, they're COM objects now!. Using Visual Studio, creating COM objects was (at least using ATL) a bit painless, but don't try it using f.e. UltraEdit32 and no helper library.
So if I understand you correctly,
No.
The multi-language part is not a result of 'making it a better marshaller' or better 'automation platform', but simply a result because now all languages have the same API, the same functionality on board: it doesn't matter which language you pick, you can target the same API and use the same cool functions with ease in VB.NET as you can in C++.NET.
As a result of this, the code you compile will run in a VM. This VM, the CLR, is the heart of
Webservices is a term for a piece of 'logic' as I call it. Functionality. It's not 1:1 projectable on a piece of code, like 'that class can serve as the base class for all webservices'. This is due to the fact that a webservice, when you use SOAP f.e., depends on a lot of tiny building blocks to do whatever it should do. That's why it couldn't be another Interface. (I also doubt what that would have brought to the plate, you can create webservices using the new ATL extensions and using plain C++, thus not
About the productivity: Now people can use a language that suits their needs and preferences (f.e. I prefer C# over VB.NET, while I've developer a lot of COM objects for n-tier systems in VB) and use a much richer API than they ever could. It doesn't depend on MS' tools. Sure the new VS.net is great, but the rich
Also I don't see your kick in the balls towards IIS style security. To me this sounds like you really do not understand 1) the power of the strong typing inside
Never underestimate the relief of true separation of Religion and State.
Mono implements a piece of technology offered by Microsoft. There is no innovation there, at least not on the Mono part. Nothing wrong with that, but please, stop briinging the 'innovation' term into the discussion, since Mono is not about innovation.
.NET when Yukon (SQLServer 2003) comes out, late 2003, which will have generics support). However I don't see this happen soon.
It CAN be about innovation by implementing generics into the Mono runtime before MS does this (MS will release the updated 2.0
Never underestimate the relief of true separation of Religion and State.
Do you really think that an editor that includes the mayan calendar by default wouldn't ALREADY have had clippy created.
Of course in Emacs he is called Pinhead and is much more helpful.
An Eye for an Eye will make the whole world blind - Gandhi
No. You create references to assembly filesnames in your own assembly and with that also a version of the assembly so you can install multiple assemblies with the same filename. I can call my assembly FOO and the assembly file bar.dll. The compiler creates a reference to 'bar.dll' with a certain version. When I start the program with that reference, the CLR will look in the current directory for bar.dll to load the assembly objects I try to instantiate. If bar.dll is missing it will consult the GAC (Global Assembly Cache). If bar.dll is not found there, it's not loaded.
Mono is designed to be cross platform.
No. _.NET_ is designed to be cross platform, since the platform a class talks to, uses and consumes is
Supporting COM in
Never underestimate the relief of true separation of Religion and State.
Basically, the
Technologies included in the
Basically, anyone who imlements a CRI will be able to run
Primers:
Caveat when buying books: see that they cover the latest release and not forex the beta release!
It is superb technology: a combination of many of the best features of Java, Delphi, C++, and Perl. It doesn't "reek" of anything. (Well, maybe of Java, if you think Java reeks.) Mono will make it possible to use the excellent ISO C# language, the excellent ASP.Net, and the excellent .Net class libraries, without ever leaving the excellent Linux platform or having to use any product from MS.
On the other hand, if you are less of an ideologue and more practical about technology, Mono makes it "safe" to use MS technologies when they are the best choice, because you don't have to make everything MS. You can order a la carte.
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
This guy is 100% correct.
.NET/Mono, Microsoft turns around a sues them for royalties.
I talked to my high school buddy who was a patent attorney, but who quit the business because he hated the whole business of IP law because he was morally against it.
I asked him what could happen, and theoretically, depending on the strength of the patents, Microsoft could sit back and wait for Mono to be developed, wait until a critical mass of applications gets developed on it, and then start charging royalties to anyone using that technology.
Unless someone clarifies the legal status of Mono in regards to Microsoft's patents, this is 100% definitely the situation that will occur.
Think about it, it is exactly what Rambus tried to do with SDRAM. Microsoft is a business and looks to Linux as a major threat. It is a jackpot for Microsoft in two ways:
1) They get the Open Source schmucks to do their work for them
2) Once a bunch of businesses have implemented their business on
We need to get a legal clarification of Mono before any real development starts occuring. My guess is that it is stepping on a whole shitload of Microsoft patents, and it is the onus of the implementors (ie. Ximian) to make sure that they develop around those patents, or 1) be prepared to try to quash the patents or 2) pay whatever royalties Microsoft charges.
A very succinct explanation I got while on a .NET training course was that .NET reversed something that Microsoft got wrong:
COM: A very lightweight wrapper for intra-machine communication. Low overhead and fast. Forces programmer to handle all other issues like memory management, implementing interfaces etc. etc.
COM+: A heavyweight framework for inter-machine (remote) execution. Tries to do all things and as such suffers from being ghastly to set up and use
In short
COM: Light for local machine execution
COM+: Heavy for remote execution
Microsoft decided they got this completely wrong and have reversed it
dotNET local machine: Uses a CLR and common type system. This handles all memory management etc. etc. inside a virtual machine making things easy for the coder (with overhead of course)
dotNET remoting: Has become very lightweight. You just send XML soap messages over TCP. That's light and that's also what web services are based on. Can you imagine even considering web servicse with COM+ ?
So that's what they've changed in terms of COM/COM+. Having used it, I'm glad I never have to touch COM+ again and I'm glad that Microsoft have realised that a java style CLR/VM works well for general programming
If we can get a better "forms" implementation on 'nix (windows-like without windows bugs), that would be awesome
GTK+'s "forms implementation" is more advanced than Windows's. When you design a form, you can specify the size of cetain controls, and let GTK work out the sizes of other controls automatically on the fly. This gets round the problem that you see on Windows where if someone changes their display preferences to use "Large fonts", some text doesn't fit within the fixed sized label that the form has. With the GTK model, the label and other controls around it would resize automatically so the text fits in perfectly.
Also, you can specify how controls on a form should be a aligned, and the alignment it handled by GTK, so you don't have to place controls on the exact pixel you want them to appear on (which is related the the previous problem). Yes, I know you can "snap to grid", but that still messes up with non-standard sized controls and in the scenario mentioned above with large fonts. I could just say "It's similar to the way Java handles GUI design", but I'd see all the Windows GUI designers respond with "but Java's UI looks horrible". On a system running only Gnome or similar, GTK is what all programs use, so they all look the same - none of this horrible inconsistency you see on Windows. GTK handles the themes or skins, so if the user doesn't like the look of your app, they can change the theme, and all apps still look the same as eachother. I know XP can do that, but dev tools on XP won't let you design a form in a GUI point 'n' click environment that follows GTK's ideas of automatically placing and aligning controls on the fly.
As someone who's spent a bit of time creating programs with user interfaces in MFC, Java and GTK, that is my opinion. Now, do you still think that Windows has a better "forms implementation" ?
Follow me
Yes, People Should be doing new development in something else.
That said, there are a couple of reasons to support .NET on other platforms via mono::
.NET (hard to imagine with it being so new).
.NET anyway for business reasons or lack of knowledge about other options. That same codebase may not be ported to other platforms by the authors or others, so the only way to get it outside of windows is to move the entire environment out.
1. There is already some old code out there for
2. There are plenty of developers who will go ahead and develop in
Mono makes it possible (or will eventually make it ppssible) to take complete .NET applications and run them on something other than Windows. This will end the Windows Lock-in factor for a lot of one-platform applications.
A Lot of business decisions are based on the application software, not the OS platform. The software is chosen first, then the platform is brought in to support it. By making the platform choice wider, businesses can opt for something other than Windows to support their .NET applications.
The ultimate goal is to simply have all developers develop for something other than windows. But it's a long slow process to change that mindset and technical merit often has an alarmingly low priority in that process.
There is nothing so silly as other peoples traditions, and nothing so sacred as our own.
Miguel. Congratulations on this milestone, I honestly doubted it and I'm now eating my words!
Now, backpat asside, how will using winelibs for the winforms stuff impact on the LinuxPPC & alpha stuff (etc)... Can this be worked around... It'd sure be nice to run this on those crazy little powermac penguin boxen I got bangin' around my workplace.
(I'm picturing here running borlands eventual kylix.net apps on nutty old macs!)
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
From a technical perspective, .NET might be a very nice platform. I'm certaining hearing that it is. The speed with which the Mono team formed and started executing was impressive.
.NET. Mono copies that design. If Microsoft's patents were not enough to stop people using .NET apps on non-MS platforms, all MS has to do is CHANGE THE DESIGN.
.NET apps will be TRULY portable, something MS DOES NOT WANT because it makes their platform inconsequential. In fact, if they did not defend their platform, this would be the death of MS.
People, you need to wake up. Stop being technophiles and think. This is Microsoft we are talking about here. They do NOTHING for the benefit of their customers. They do EVERYTHING to gain market share and ensure the domination of their operating system.
MS is playing "nice" now by not serving legal injunctions based on their patents. Will they continue?
Let's say some of the people that reply to this post say "The patents are irrelevant blah blah blah blah". OK, fine. Let's say they are. That doesn't even matter, here's why:
MS defines
Remember when OS/2 had win32s compatibility? Remember Microsoft's response? IBM took the win32s distribution from MS and binary mapped it into a valid set of OS/2 libraries and programs. Within a very short period of time, MS released a NEW VERSION OF WIN32S TO BREAK IBM'S USE. Analysis at the time showed that the changes, which were few, were gratuitous and the only conclusion was as I've stated it. I did some googling and this is a good summary.
If Mono is too successful, this will happen again. "Too successful" means that
Let me put it another way:
Microsoft is enabling, for the first time in their history, users to write portable programs and that portability could kill or severely damage Microsoft. Microsoft knows that they will be able to prevent this, if need be, and they will only show that card if they need to. After all, no need to give the conspiracy theorists ammo, right?
*cough* *cough* BS!
C# will be and ISO standard. To be published shortly:
ISO/IEC 23270 (C#)
ISO/IEC 23271 (CLI)
ISO/IEC 23272 (CLI TR)
"In late December, 2001, ECMA submitted the standards and TR to ISO/IEC JTC 1 via the latter's Fast-Track process. The subsequent 6-month evaluation and comment period resulted in two NO votes (Japan and UK) on the draft standards, and one NO vote (Japan) on the draft TR. All comments resulting from this review were considered at a ballot resolution meeting held in October, 2002. The two NO votes on the standards were resolved, making acceptance unanimous. However, Japan did not change its NO vote on the draft TR (Japan would like to see a formatted/readable rendering of the CLI class library as part of the standard, not as a TR; this will be considered for a future edition).
The ISO/IEC standards and TR will be published in December, 2002, and will be known formally as ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR). Equivalent specifications will be adopted as 2nd edition standards and TR by ECMA at its December, 2002, General Assembly."
The full story is here.
You're talking about the The Middleware Company's "shootout" between their "optimized" PetStore implementation and their .NET version.
Laying aside that Sun never put the PetStore demo forward as a benchmark, The Middleware Company did a lot to optimize the .NET version that they did not do for the Java version. The fact that Microsoft was paying for the comparison may have had something to do with this.
Read Rickard Öberg's analysis of the comparison to learn all of the ways in which the comparison was flawed. To name just one, The Middleware Company announced that it took fewer lines of code in the .NET version to do the same thing, but they left methods in their Java version that were never even called anywhere in the code.
In addition, the .NET version did aggressive caching in memory, in such a way that it would be impossible to scale the code across more than one server, while the J2EE version was implemented using BMP, which robs an application server of the ability to do any caching whatsoever.
It goes on and on and on. Read the analysis for yourself.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
The license of the new JIT will be LGPL, just like the current one. We are keeping the same runtime, io-layer, threading, and GC in Mono. The only bit that will change is the JIT compiler.
Now, just like the current JIT, we do require copyright assignments to the runtime code base, and we do in fact relicense the runtime to those who are interested in it, but the LGPL version will always be available.
Miguel
You allude to Java needing a standards process - have you read or looked at any of the Java Community Process stuff? What is your problem with a system that lets companies and individuals besides Sun propose and comment on enhancements and additions to Java?
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Just so people know, there's been much concern that the CLS will take languages that are paradigmatically different from the C/C++/C# family of langauges (like Haskell, which is a functional language) and strip away the syntax that makes them powerful in their own way (closures, continuations) until they're basically C/C++/C#, differing in syntax only.
At which point, the CLS would no longer be a good thing.
Has VS.NET just added a totally kick ass forms implementation? yes.
My original question asked what made it better than GTK+'s forms. We've already established they have a new forms implementation that's supposedly good.
Yes VB6 comes to mind immeditely
That's a classic example of what I was on about. VB6 was around at the time I started having a look at GTK+. VB6 has all the flaws that my original post was talking about. If I had rememberd VB6, I would have mentioned it.
Your original message compares the low-level Win32 APIs with GTK+
Blah. My message compared GTK+ to MFC, both were the current standard on their respective platforms at the time I used them.
Follow me
For instance:
Again, I'm trying to look at reasons why I would prefer PHP to ASP.NET, and it seems like there are reasons that you are convinced are compelling, so I'd be interested in hearing them.
We're discussing ASP.NET, not ASP. Totally different, it would be like comparing Perl CGI scripts to JSP.
.NET SDK from Microsoft is free, that includes compilers and everything. Microsoft has an ASP.NET development environment called Web Matrix that's free. They have an Open source web server you can use that's free, and so on and so forth.
/. you probably aren't knowledgeable to call anything else crap.
As for most of your other complaints, they all involve cost. So here we have this Mono implementation. On top of that the
"Please someone tell me what's the big deal of all this crap?"
If all you know about is Linux news you saw on
You will be glad to know that we are busily working on a version of Gnome2, but since Gnome2 is very good on its own, we wanted to make sure that there was a reason for people to upgrade to Ximian's version, so we are spending quite some time in addressing the needs from our users.
;-)
The wait will be worth it. I can not talk about release dates. I can tell you that a number of previews has been sent to alpha testers for evaluation, and we will have to incorporate their feedback before we are ready to release the new version.
Now the right person to talk about these things is Nat Friedman who is in charge of the desktop work. He has quite a few new tricks for the new release, but I wont spoil his debuting new desktop here
miguel.
It's an infrastructure, and a very closed one -- ideas of its creators are imposed on the design and can not be changed. If successful, it captures not just software, it takes the area in the noosphere and pollutes (or improves) the process of thinking of all developers that go into that area. This is a kind of work that absolutely can not be developed by anything with commercial interest in mind and end up useful -- examples for that are legion -- PL/1 vs. C, STREAMS vs. BSD Sockets, RPC vs. socket-based protocols with protocol-specific parsing, Motif vs. GTK, H.323 vs. SIP, MPEG audio vs. Vorbis, and I hope, SQL will be next to go. In all cases except PL/1 later there was an open or semi-open implementation of bad standard, and it ended up being absolutely useless for any purpose other than to drag bad code into good systems, thus delaying the development of better one.
Contrary to the popular belief, there indeed is no God.
Microsoft claims that the CLR bytecode is designd for JIT. Java bytecode was definately originally designed to maximize portability of interpreters (as in there are JVMs for 8-bit microprocessors and 64-bit "big iron") rather than for optimal recompilation to native code.
To what extent is this true? Please tell us about features in the bytecode or the class file format that are optimized for efficient recompilation on the fly. I've read Ken Thompson's paper at Bell labs about the design of the DIS virtual machine. It would seem that a stack-based virtual machine is much less suitable for JITs than a memory based virtual machine. Cam you refute this, particualrly on non-register-starved platforms (PPC, ARM, Itanium)? Granted, memory machines much more complicated in concept than stack machines. However,for optimum register allocation in the native code, you need to basiclly undo the stack machine's register allocation (to two GP registers, the top of the stack) before doing register allocation, while memory machine bytecode is basically ready for register allocation with little preprocessing.
You must have some gripes about MSs VM design. What are the main ones? What about the VM imposing C#s object model at the "hardware" level instead of using constructs written in bytecode and using privledged VM modes (analogous to privledged CPU instructions on a real machine, but perhaps much higher-level instructions) to enforce security restrictions? (This seems to be one of the main gripes of enthusiasts of non-ALGOL-descended languages on the .NET platform.)
While you're at it, can you point to features that indicate MS really wanted a VM that worked elegantly with languages very unlike C#? I've heard that a main deterant to Stackless patches being merged into the main Python distribution is the changes necessary are very ugly to do in the JVM and would probably cause a major split with the Jython people. Would it be easy to get efficient handling of tail-recursion and efficient implementations of Stackless Python? How badlymangled internally are Perl.NET and Python.NET?
Thanks for all of your hard work, and good luck in the future.
Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.