Reverse Engineering .NET - Good, Bad or Inevitable?
legLess asks: "The Register has an interesting article about reverse-engineering Microsoft's .NET. Apparently ESR, Bruce Perens and Miguel de Icaza have all dropped hints that the project's already underway. The Register has this to say, though, which I think is worth discussing:
...In fact it's a risky strategy for the Open Sorcerers. If .NET isn't reverse engineered, it will surely remain a Microsoft-only platform, as even the best funded efforts to port Microsoft technology to non-Windows platforms in the past have remained at best, a niche option. But if a good implementation is produced, it has the effect of legitimizing the platform, and making much more attractive to conservative, non-committed corporate buyers. Which is certainly the last thing the Beast's foes want to see."
Yes, if we could get .NET working on non-Microsoft platforms, it would be a good thing, but I don't think that the Redmond Redwood will roll over and let this happen without a fight. How difficult would it be to port .NET, if Microsoft is free to add, extend and modify the underlying protocol to break any third-party implementation that may rear its head?
Jamie adds: XNS is worth keeping an eye on. This is a nonprofit, (promised) open source infrastructure to allow individuals to save private data which corporations can only access if they agree to (legally enforceable) point-and-click contracts. In short, it's the groundwork for an open version of .NET focused on privacy, and more. But they're making progress slowly if at all. They have a good team heading it up, and I really want to see them succeed at something besides writing whitepapers, but their mailing lists have slowly gone cold and they still haven't released any source.
This is one thing I don't think Microsoft would be too vigilant in stopping.
.NET to be a NETWORK platform. They saw how netBeui didn't scale and now even the internal microsoft network runs over TCP/IP -- hell Novell now uses it.
You have to remember that they want
For Microsoft to create a real standard they can't be opposed to multi-platform support.
-davidu
# Hack the planet, it's important.
We can always reverse engineer it. But as always with the products of Microsoft, they can start revisions a step ahead of us, and what we have will always be a generation behind. We need more effective solutions. We need to take over the initiative.
Free Software: the software by the people, of the people and for the people. Develop! Share! Enhance! Enjoy!
Actually this is precisely why Microsoft wants to sell software as a service. Microsoft has finally realized that they are to the point where they can't coax users into upgrading by promising them a version of Windows without the major flaws. So instead the want to charge their users by the month whether they release new software or not.
Selling software as a product really isn't a very good fit, and has led to many of the abuses that we are currently subjected to. Of course, Microsoft's proprietary software would even be worse when sold as a service. Microsof would probably still not be too terribly interested in fixing bugs. I am sure that they would rather spend their time making sure they used their position to worm their way into every financial transaction.
Now, Microsoft gives out this closed source piece of software, under their own license which states you are not allowed to reverse engineer it.
.NET libraries are (going to be) submitted to standards organizations. That said Microsoft.
Doing so will violate that license. Saying that reverse enginering software, even if the license it comes with states it's not allowed, is OK, is stupid, to say the least.
At least, things like C# and the
__
__
Men with no respect for life must never be allowed to control the ultimate instruments of death.
GW Bu
i am attending microsoft tech ed europe at the moment and had some thoughts about this yesterday which i wrote about in my weblog. the ideas are just a rough sketch what i was thinking about, so please be gentle and judge them by content, not by the form or the clarity of expression.. :)
.net juggernaut. declaring
support for soap, as ibm, sun, oracle and others have done, is not going
to cut it. what is needed is a credible architecture that can compete
feature by feature with .net. although all the components like apache
(web server), soap for apache, jabber (xml messenging), kdevelop (ide),
postgres sql (database), ldap (directory) exist in the open source
community, they are not part of an overall architecture. it would
be a major undertaking to get the developers of the respective components
to talk to each other and agree on common interfaces.
.net platform.
it also became quite evident that we have seen nothing yet in terms
of the web services architecture. many key pieces are missing, like
meta data to enable the retrieval and processing of semantics from
data (to support agent technology for instance), the questions of
payment for web services and global, fine-grained security matrices (who
has access to which of my data). web services are loosely coupled
but they have no mechanism to guard against api changes or to facilitate
negotiations on usage terms for web services.
over the course of these presentations it became very clear that microsoft has unleashed something much larger than it can ever hope to handle like it has in the past when it introduced the concept of web services. web services have all the ingridients of a disruptive technology. they place simplicity where complexity and opaque systems have reigned for so long.
their complete reliance on xml for all aspects has brought them some critisism from some quarters that they are not being efficient and that xml adds nothing that was not there before. i was wondering along these lines as well. however when i saw how the concept of web services has evolved in one year i started to notice similarities to the classic and incredibly successful osi model. web services start where osi ends, but they share the concept of piling indepent services on top of each other. this has been a very powerful architecture in networking systems, especially tcp/ip. since xml is such a simple representation of data it has been very easy to extend web services with additional layers and make them increasingly powerful. i believe that the benefits from a large scale adoption of xml will be reaped with ever more layers stacked on each other, with ever increasing power. although web services are an active area for the w3c, it remains doubtful how the industry will counter microsofts
the old unix argument about never setting policy looks quite silly when you realize what productivity gains microsoft will be leveraging with their
Our Server's Dead Now
I see even classic Slashdot is now pretty much unusable on dial up anymore.
Miguel de Icaza, the oreillynet article, and the register are talking about the
The slashdot editors and some posters have confused this with the Hailstorm services (passport, the storing of information, etc.).
Ignoring the issue of Hailstorm, lets consider the arguments for cloning
- A common bytecode for all languages allows all languages to call each other without overhead (thats right, none of the problems of ORBit, Bonobo, XPCOM, etc.)
- Will allow Linux to be a drop in replacement for Microsoft servers. Wow...
- Managed execution is the future. Garbage collection is nice, sandboxing of untrusted code is nice, etc. A common managed execution enviroment has huge benifits, and we don't have anything close to this. Best open source has now is one managed execution enviroment for Perl, one for Python, twelve for Java, one for PHP, etc.
The open source community doesn't have the resources the develop something like this from scratch. Just copying the design of Microsoft is a lot easier (like we did for our office suits). But suppose we could - what would we get? A solution incompatable with the dominate solution. Yeah, that is really a compelling reason to re-invent everything.If we balk at the idea of cloning it, we will be guilty of a major NIH complex. (NIH = not invented here).
Lastly, a lot of poster are suggesting Microsoft will just change the standard and break our open source version. Two things in response. First, Microsoft is in the process of making
So lets start cloning already.
Ben
I'm inclined to ignore .net, concentrate on continuing to refine the alternatives, particularly java and connectivity tools. If we play .net, we'll get fight an impossible battle against ever-changing standards.
Believe with me, my saplings.
http://www.southern-storm.com.au/portable_net.html
- Sam Ruby
You assume that .NET will be better than MS's current (shitty) offerings, and therefore solve the problems. I'll be quite surprised if this is the case. Remember, the windows registry was supposed to "solve" the problem of having all those .ini files everywhere.
.NET, when they can leave them in (or shuffle them around a bit) and then make even more money on .NET's successor? Microsoft has literally no incentive to provide near-perfect software, because then there's a much smaller upgrade incentive (for users). They're quite happy to keep fucking over their users until the end of (their) time, all the while providing ever more "upgrades" of dubious quality - typically only just enough quality to get people to adopt it.
Why solve the problems with
Quidquid latine dictum sit, altum viditur.
Fat chance -- it took Microsoft 10 years to write Exchange and it shows in the "design". I doubt their protocol is even documented fully internally. It would probably be a hellava lot easier to write a Outlook plug-in to your back-end of choice.
Not to mention that nobody's even reverse-engineered Microsoft-err-Open Group RPC yet. Need to do that before you can even start with the application stuff like Exchange.
--
Business. Numbers. Money. People. Computer World.
Just want to say that I fully agree with your points, especially the one about most software being either internal or vertical market.
.NET) are so important.
You are correct that this market will probably never embrace open soure, at least not in the GNU sense (although the GPL seems rooted in an older era of more vertical computing). However, as you point out, there's an enormous amount of infrastructure these products ride on, and *that* is where Open Source can make the greatest impact, and that is why open platforms (such as a potential reverse engineered
I don't see OSS ever producing a Photoshop or a MS Word unless someone like Sun or IBM comes in and pays for it. I do see them continuing to produce a lot of fine infrastructure - Linux, Samba, Apache, Postgres and so on. The companies providing the vertical solutions become the benifactors and they can pass the savings on directly to their customers.
--
Business. Numbers. Money. People. Computer World.
Microsoft is going the standards route because they are the underdog in this fight and they know there's some divisions in the Java camp over Sun's approach to standards. Standards or no, the Java development process is probably more open. An ECMA rubber-stamp is just that, a marketing feature point.
.NET is platform independant and standardized, in the real world it will heavily rely on COM and proprietary Microsoft components. Having a portable or a reverse engineered runtime doesn't do one a bit of good if you can't run applications that use ASP.NET objects or ADO.NET database access. (You'll note that these bits are open to competing vendors in the Sun world.)
Furthermore, while in the abstract
--
Business. Numbers. Money. People. Computer World.
It has been called an "Open Source alternative to .NET", although it is by no means a clone. Rather, it focuses on extending existing UNIX features and programs to the Internet, where they haven't been before.
Perhaps we don't need a clone, just as Linux is not a clone of Windows. And it's a good thing it is not.
Here are some articles and mentions of Piper:
On Slashdot
Linux Software Encyclopedia
Linux Weekly News
Gnome Gnotices (It's interesting to note that the article first posted there referred to Piper as an alternative to .Net. The moderator later changed that. Paranoid minds, such as mine, wonder about this and the future intentions of GNOME with respect to .Net.)
O'Reilly P2P website
SunWorld Online
And some other online magazines/forums:
Infolets
Tecnologia
Hispa MP3
--
This sort of thing has cropped up before. And it has always been due to human error.
--
This sort of thing has cropped up before. And it has always been due to human error.
HAL9000
Before answering the question, it's important to understand the question.
.NET is ?
So my question about the question is:
Does anyone actually know what
--------
Bill Gates Is My Evil Twin.
Up until not that long ago, Microsoft produced the desktop OS and the office apps, and that was basically it. Then with NT, Microsoft entered the server space with a vengeance, and now you have large corporations that find that they have effectively bet their company from end to end on Microsoft software. This worries many of them, especially with Microsoft's increasingly self-serving, anti-customer antics.
It's not difficult to make a case to a CIO that betting the company's IT strategy on products and tools that are based on standards implemented by multiple vendors, is safer than a system implemented by a single vendor with an iffy record on standards. With Microsoft being the single vendor, the risk is not so much that it'll go out of business, but rather that customers will be pushed in directions they don't want to go, without any alternative choices.
Even at the level of non-technical managers, questions are being raised lately by the mainstream press coverage of Microsoft's various take-over-the-world strategies. Microsoft has generated its own self-damaging FUD, which has started to trickle down into places which, before long, could start having a real effect.
Viable alternatives to Microsoft solutions are becoming more and more attractive in the business environment. .NET may not be adopted quite as blindly as many expect.
I would argue that the greatest trick Bill Gates pulled was managing to succeed in using the same trick repeatedly to build a corporate empire.
A quote:
That is everyone's favorite Hitchhiker, the late Douglas Adams. He wass speaking about Windows 95 (New! Improved! Almost as good as a Mac!). You are not the only one to realize that Microsoft has pulled this trick, but it must be made clear that they have done so before, and will most likely try it again.
--
But then again, I could be wrong.
Allright. Lets sit back and think about the problem. You can use any computer in the world as your computer. Do we really want to do this? When I buy a car, thats my car. I don't want my neighbors using it, or anyone else for that matter. My data is my property, not my neighborhood's property. Sure, i'll lend it out on occasion if one of my friends needs it, but 99.9% of the time, I control it.
I don't see how personal data (or computers in general) differ in this regard. They both share the basic premise of ownership. Human beings do function cooperatively in groups, but the larger the group, the less cohesive its cooperation tends to be. We dont take a car to the market, we take our car to the market. Sure, its an interesting idea--You grab whatever mode of transportation is closest and take it to whatever destination you have in mind...But people just plain don't work that way. If I wanted a network computer, i'd set up an NFS server and boot off of it transparently. Networking issues aside, its a novel idea. But it violates our inborn concept of ownership and "rights of use"..
Time to think of a better idea, methinks.
Bowie J. Poag
What the heck does "world+dog" mean?
--
--
Mod up a post Rob doesn't like and you'll never mod again
The Register article assumes that .NET's legitimacy rests on the availability of an open implementation to compete with Microsoft's. Nothing could be further from the truth. Most of of .NET's perceived legitimacy will in the eyes of CIOs, IT managers, etc. These people will be swayed by its performance in its initial MS incarnation; reviews in manager-oriented publications; availability of software based on .NET; etc. They will not care whether there's a free implementation available.
Remember, SAMBA did not make Windows file sharing so widely-used!
Ryan
To me,
So keep this in mind when you bash
If a penguin dies in the woods, and nobody is around to hear it, what sound does it make?
Sun Tzu gives good advice, but you have to be careful following it. Grok the whole text before you take small quotes out of context.
Attacking core deployed MS services is akin to besieging walled cities. If it is possible to stop them before they fully deploy .NET that would be like balking their plans. But MS is still the big army and when fighting a superior (numerically anyhow) enemy, it is smart to pick your fights.
In an open source context this doesn't mean secrecy, I believe it means keep all kinds of small projects open and underway and whatever project makes good headway against Microsoft should become "the spot where we intend to fight".
I think it's important to not ignore .NET, and like Sun Tzu says: "Thus, though we have heard of stupid haste in war, cleverness has never been seen associated with long delays." Don't ignore .NET until it becomes entrenched. But don't let them choose the fight. Don't rush in and make a broken, inferior .NET implementation or people will think only MS can do .NET properly.
(thank you Project Gutenberg)
So let me get this straight. Microsoft puts out C# to kill Java and .NET to kill JINI and the Linux community is going to jump on board?
.NET, developed alongside IBM and others. But I'm not sure embracing C# is the best way to "stick it to Microsoft"...
I can understand jumping on board for SOAP, which is a fairly basic element of
-StaticLimit
It's important to note that Rhys' project is concentrating on building a light-weight interpreter for embedded systems, and has no real goal of constructing a full featured runtime for Unix. Really, he is most interested in selling compiler technology.
.NET to work on the JVM.
In a message to his mailing list yesterday he once again stressed his dedication to his compiler technology and even mentioned that, in order to diversify his company's offerings, he is likely to focus more on re-compiling
I was working on an alternative project with the goal of using Intel's ORP to build a fully featured runtime, but due to lack of support I've all but dropped the project. One of my earlier project statements (which was posted to Rhys' mailing list) can be found at:
What I'm Planning: Alternative Project w/ Slightly Different Goals (was: Suggestions) [ http://lists.saurik.net/message.xsp?id=62 ]
You can expect to see some new (or old?) purchased, globally enforceable legislation that will prevent interoperable implementations of .NET. Not that MS .NET will be allowed to interoperate with older versions of itself from one mandatory monthly upgrade cycle to the next.
Why should Microsoft pay someone to port .net when the community will do it for free and get a much higher quality port than Microsoft would if they did it themselves.
.Net. Microsoft cannot allow competition.
Microsoft's trial balloon about disallowing the use of "potentially viral" software is undoubtedly intended to be part of the legal protection for
BECAUSE THEY ARE DIFFERENT TYPES OF LICENSE, MORON!
The GPL is a license on *copying*. That's why you see it in a file called COPYING. The MS EULA is a license on use. The GPL is supported by copyright law. The MS EULA is supported by nothing except a few dodgy court decisions (MAI v. Peak, say).
Um, also, the GPL has a laudable goal, and whether or not it is required, we should release the source to our code. The MS EULA's goal is evil, and ought to be fought.
Now go back to your hole, troll.
Become a FSF associate member before the low #s are used
Another thing to remember about .NET is that whether or not there is an Open Source implementation, the majority of the traffic will be going through Microsoft's servers... At least, for the HailStorm portion of things.
.NET - Open implementation or not.
I really do not think it would be healthy for the Open Source movement to embrace
Ryan, I hope you're right and this ends up being like SAMBA
How about naming any of MS's much touted successes that aren't broken duplicates of other people's ideas? How about any that actually worked before version 3?
Ummm.... Excel... ummm... ummm....
Xix.
"Everything is adjustable, provided you have the right tools"
While my reply may start wandering off topic, I think your comments deserve some response. It's great to see a serious critique of Open Source development and its limitations. I certainly agree that Open Source is frequently imitative rather than innovative. I also agree that the most innovative projects require rare expertise that is often difficult to obtain and may be diluted to mediocrity by having too many fingers in the pot. I personally favor strong moderation of Open Source initiatives.
However, there are some real benefits that are worth mentioning. The product of these efforts will approximate the desires and goals of its developers (who are invariably also users). Commercial software, conversely, represents a best guess of the customer demands as understood by marketing, is then often coded by developers who haven't talked to more than a few live users (if any), and as a result often, not surprisingly, misses the mark. With open source, the goals of the developers may not be compatible with the 'general public'. But the software is more readily adaptable because you as an individual user can change it or integrate it into a larger effort. A second area which I feel often gets ignored is the symbiosis between open source and standards efforts. It is possible for standards to be defined and evolve among a small set of corporations, but the feedback gained by releasing an open specification (preferentially with a working implementation) is extremely important for resolving differences of interpretation.
I see the Open Source movement filling niches lacking commercial viability and turning existing technologies into commodities. An innovative product like Photoshop may define a market and effectively set a standard for a few years. But over time, the cost of creating a competing product falls. Whether an open source effort such as the GIMP comes a long or the technology gets assimilated into a large operating system, eventually these technologies become an expected part of the computer experience. I remember when word processors were examples of exotic software. Now many introductions to programming walk you though developing one as a simple tutorial. As technologies mature, I strongly endorse Open Source initiatives because they keep software alive and growing to meet the demand of modern users.
Given one hour to live, the student replied: "I'd spend it with professor FP who can make an hour seem like a lifetime."
I mean, really.. We have open bytecode-based VMs, we have XML-RPC, SOAP etc. We have C-like languages up the yin-yang on UNIX. The whole OS is built around the idea that a network connection is just like a file. Now MS is trying to sell this concept as if its something new? or interesting? What is M$ giving us here except an 'authentication service' - hell, you could probably whip that up in a weekend with an SSL-enabled apache and perl, and yet another language, based on proprietary technology and attempting to duplicate the functions that Java is already providing? MS has proved time and again that they aren't interested in working with anyone else unless they retain control, and they make the most $$$. If there was ever a time to make a conscious decision to say - 'Not this time, Bill. You can cram .NET up your pasty-white corporate ass.', this is it.
I gots ta ding a ding dang my dang a long ling long
Hmmm....
Bind
Telnet
Most of the other infrastructure of the Internet - especially in the early days.
vi
Sendmail
Netnews
Mosaic
BSD
UNIX itself - up through at least Version 6 and maybe 7.
I could go on.
Yes, they weren't explicitly "Open Source". But they WERE developed in environments where the source - either deliberately or defacto - was open or opened (for some value of "open") or otherwise not kept proprietary. Many of them were developed before there WAS an explicit open-source software model.
And yes, some of them didn't run straight from conception to execution according to the orignal design. (But what project does?)
Take Unix, for instance. It was a spare-time hack done in the back room by a handfull of techies trying to turn an abandoned computer into something useful. When it first become part of an official project it was officially the underpinnings of a word-processor application for the legal department - under a strict injunction NOT to spend their time writing an OS. (The minimalization of the kernel proper - with important core functionality such as command interpreters as applications - may have arisen partly to provide plausible deniability: "That's not an OS. An OS does THIS and THAT and THIS OTHER THING, right? Well this doesn't!"). Its source was freely distributed to hundreds of educational institutions, for the cost of media and shipping, until upper management finally took notice when the kernel appeared in its entirety in a set of OS course notes that quickly became an underground classic.
There were major questions about the proprietary status of Unix. It was written before copyright had been revised to apply to software or the patent system hacked to apply, so the only protection it had was trade secret - which evaporates when the cat leaves the bag. It was written by a regulated monopoly, which was mandated to publish and make available anything it did that had applications outside of telephony. The entire EXISTENCE of SVRn may have occurred because a proprietary rewrite was needed to "close" the Unix source.
Perhaps there haven't been a lot of high-profile breakthrough applications out of open source just lately. But how many breakthroughs have you seen from CLOSED source lately? How long has it been since something as fundamental as the Internet, the Web, or spreadsheets came out of either open OR closed source projects, hmmm?
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
As for Microsoft being able to change stuff to frustrate open source .NET clients, this ability will be limited because they will want to remain compatible with their own clients.
In short, if Andrew & friends can keep up to the point of making it possible to run a PDC on Linux and serve a bunch of W/2000, I'm sure it will be possible to do the same to .NET.
The real issue is, however, that we would still be delegating centralized control over the Internet to one private corporation which is Real Bad no matter what OS you have on your desktop.
When I can put a record in our DNS server that tells people where our users can be authenticated, then we'll have a workable solution, not before. Why should we subject everything to a unneccesary single point of failure (M$) when we don't need to, don't have to, and it's not even prudent?
We should use the email address as a key, the DNS server for the user's domain could then be easily specified to point anywhere, even M$. It would be simple, consistent with existing protocols and memes, and easy to understand by the masses.
--Mike--
The greatest trick Bill Gates ever pulled, they will say, was that he made windows desktop software so ridiculously difficult to install, use, and maintain (via the windows registry).
I'm sorry, but I have to say the windows registry still remains one of the best things about windows. Don't give me that "it corrupts" shit. That was years ago. It's so much better to have a centralised storage database for settings.
You're telling me that the registry (structered settings database) is MORE complicated than the gazzilions of configuration files in Linux (all of which have different formats etc)?
I think you've watched antitrust a fe wtoo many times there....
Future historians will say that greatest trick Bill Gates ever pulled was not lulling IBM into a false feeling of superiority and then clubbing them to death. Nor was it stealing Apple's revolutionary crown jewel and using it to rule to the desktop. The greatest trick Bill Gates ever pulled, they will say, was that he made windows desktop software so ridiculously difficult to install, use, and maintain (via the windows registry) and then convinced everyone to buy into a networked solution, .NET, to solve these problems he created. That will be the legacy of Bill Gates' genius.
I think the big question is not whether .NET can be reverse engineered, but does anyone want it?
I have the feeling that Microsoft developed the idea of .NET to entrench their Windows monopoly, not to add some desperately needed services for customers. Just like integrating IE into Windows 98, this is not something people are asking for, but once it's implemented Microsoft's customers won't consider it something they care to complain about.
I could be wrong, but who's asking for this? What major need is Microsoft expecting to solve with .NET? Microsoft with their monopoly is able to change the rules of successful product development -- instead of developing something that solves people's problems, they spend billions developing things to entrench their monopoly but no one complains about. I remember reading articles before Windows 98 (97 back then) was released where pundits were asking why Microsoft was bothering to integrate IE with Windows. Who wants that? Well, customers may not have been asking for it, but it got Microsoft what they wanted -- the tools to be able to control content on the WWW, and make the Internet their own on-line service.
Well, the analogy is, what if someone found a way to "integrate" IE with Linux's or the Mac OS's UI in the same way? No users are clamoring for this, and something that looks like it's "hurting" Microsoft, would actually benefit them. Realize their real goal is not to get everyone to use Windows; it's to create a "sticky" service generating recurring revenue where the barriers of entry so high that their monopoly is preserved. That can be done with a closed OS or with a closed on-line service.
So the question is, if someone reverse-engineers .NET, are they really solving a problem, or just helping Microsoft entrench their monopoly further?
Insert simplistic political, ideological, or personal proselytization here.
It is so obvious to me that the majority of people on ti sboard do not have the slightest clue as to what .NET is, what it means, or how to program for it.
.NET.
Do yourselves a favor and pick up this book from O'Reilly ".NET Framework Essentials" ISBN 0-596-00165-7
Read it, then have an opinion. Most of the posts on this board are drivel with regard to
If you don't know the words...don't sing the song.
I'm still working on a clever footer.
The Open Source folks really crack me up. MS has invested 4 years and hundreds of thousands of man hours in the development of .NET and the open source folks think they can hunker down for a weekend and pull it out of their collective asses.
.NET.
What a joke.
If open source was so good at innovating then why are they always playing catchup?
I think you guys should go back to doing what you do best...arguing over the library used in KDE, or better yet, arguing about which desktop you should use...KDE or Gnome. There you will feel happier, be more content, and be surrounded by the ones you love.
Meanwhile, the rest of us are going to blow you away with what we are able to do in
I'm still working on a clever footer.
The trouble is, I'm reading about .NET all the time, but I'm still vague about what it is. Seems to have something to do with the internet, something to do with accessing my data from whereever I am, and something to do with being wonderful because Microsoft invented it. Oh yes, there's something about a language (C#?) that will run everywhere (just like Pascal, C, C++, and Java have promised to do).
I've heard roughly the same comment from some several programmers. What is so hard about printing from Unix? Linux distros generally have ghostscript/magicfilter installed. Commercial Unix is usually at sites with Postscript printers. Postscript is a great language for defining graphic output. What is this Windows Printing API and why's it better than Postscript?
I'm skeptical. Remember, Microsoft said they would use XML formats in the office suites. It turns out they meant use nominal XML wrapped around a big chunk of binary data. If they're smart (and they are) they'll treat 'obscurity' as a knob they can adjust. They'll start at 0 and turn it up gradually until nothing is compatible. And it is quite possible to do this while adhering to all the standards you mentioned. XML's not that friendly when it's a huge CDATA block that's an encrypted RAM dump from a Win32 machine. And think of all the games they can play with certificates hardwired into the clients - only Microsoft and their buddies would be 'legitimate' in the .NET scheme. And as they turn that knob it goes from "I don't get the padlock icon" to "I get a dialog box - insecure site, continue connecting?" to "Access denied - you have been reported to Passport central."
APIs can be reproduced, so copyright is essentially useless against reimplementation.
It is true that APIs are not protected against cloning under copyright law; but if they implement a novel and efficient solution to a technical problem, they may indeed have protected it under patent law.
For example, Microsoft has a patent (US 5,297,284) on the layout of the vtables of pointers to functions used in COM objects with multiple inheritance. It is therefore legally forbidden to add a compatibility option in gcc to clone this. (Although according to this post on the gcc list the WINE people do have a workaround).
If you think that MS Legal haven't done their level best to protect .NET against independent third party clones, then you are naive. The recent pre-announcement of the crippleware .NET SDK for BSD explicitly mentions that it includes the licensing of relevant patents, as does MS's development agreement with Corel. Independent implementers are unlikely to be so favoured.
They are about to massively upgrade the software they use for sharing live sales and warehouse stock-level data with their supply chain. The company reckoned that .NET was exactly the sort of foundation they needed, and considered it at some length last week, before (reluctantly) agreeing that there was no way they could commit to something before it had had a widely evaluated and reviewed 1.0 release.
To amplify what cthugha was writing above: unless linux can implement this platform, or offer an alternative which is both as easy to use and as easy to develop for, MS will lock in a lot of the server marketplace.
There was a good article recently in Linux Magazine on what the CLR would need
- GCC.NET
.NET? (April 2001)
A couple of other articles (less focussed) discussed why adopting some of-- Mark Mitchell, release manager for gcc 3.0 and CTO of CodeSourcery
What is Required for GCC to Support Microsoft's
-- Interview with Dick Hardt of ActiveState.
Pages 3-4 discuss
-- Jon Udell from Byte
What linux can learn from
For all the throwaway remarks Bruce Perens makes, I don't think it is going to be an easy job -- and cloning the libraries will be a massive undertaking. (For comparison, just look how much of the standard Java libraries are still to be implemented by GCJ).
But even incomplete first steps could be very worth while, especially
I guess its a step towards weaning Microsofties away from Microsoft servers, but it seems like a lot of effort
I think you are altogether too sanguine.
The aim of the .NET API is to dramatically lower the bar for writing server-based apps, leading to a huge expansion in such platforms. MS's services like Hailstorm are only a tiny part of the picture. Unless the unix community can effectively market an alternative API for creating server applications which is both as friendly for end-users and as easy to develop for, we risk lock-out from what is likely to become the dominant sector of the server market.
Hailstorm is a tiny part of the picture.
The 'traffic' will be going to the vast number of third-party apps, which .NET is designed to make it much, much easier to write.
It isn't the Hailstorm servers you need to worry about -- it's all the servers running those third party apps.
Do you want to see Open Source locked out of what is likely to become the dominant segment of the server market ?
Try looking it up on a mailing list, and all you get is endless postings from aa@bb.cc.net . Or try Google and it ignores it altogether.
This is what annoys me the most about .NET
Otherwise I'm with Xandis (who appears to have got modded down off the face of the earth for daring to suggest MS might have done something right for once, so here's a copy):
But the most important thing about .NET (from a marketing point of view) is the scope of what it lays claim to.
Whether it is actually true or not, the umbrella name suggests that MS has a complete integrated package to offer -- everything you need to click-and-paste together apps on your standalone system, which can then be seamlessly transferred to run as server apps without changing a line of code.
It may still be vapourware, but IBM, Sun, Oracle etc don't even have a name yet for such an all encompassing dream.
It isn't meant as just an API for invoking applications -- it is meant as a complete API for creating them. With its support libraries, we are talking about something as all encompassing as win16 and win32 MFC were in their time, but of course now much much wider. (Do platform capabilities have to grow with Moore's Law too ?)
The idea is that -- for example -- you could click together a standalone app to run on your workstation; but transfer it to a server, and all your local forms and GUI are automatically translated to web equivalents.
You can write objects in whichever language you like - VB, C#, perl, python - and not have to worry about bindings or compatibility; you can automatically inherit and extend any of the objects written in any of the languages, either at runtime or at compile time, without even any header files to worry about -- even if they are bought-in objects pre-compiled to bytecode.
The aim is to make it easy to do things at a much much higher level. It is on a completely different scale of developer-friendliness than having to worry about the minutiae of interfacing with Corba, or drawing a page box by box with GTK. Just plug in, and off you go.
I am not saying that the underlying technology is necessarily particularly advanced -- but to create all of the components to make the whole platform is a huge undertaking.
The big questions are whether MS can deliver it, and (especially) what the performance will be like. But if they do get it right, their aim is to de-skill the whole business of writing everyday garden-variety server applications.
It is missing many of the key libraries that would most applications would use; and a lot of the internals are intentionally low performance.
It appears to be a bare minimum for (a) .NET to be teachable on university CS courses; and (b) MS to be able to point to 'two independent implementations' for standards approval -- which it needs to reassure CIO's that the platform won't get hijacked from underneath them.
We haven't seen the licence yet, of course; but I would imagine that any patches would belong to MS; independent distribution of patched code would be forbidden; and that MS would have the right to suppress any patches which altered the functionality of the product.
This is one product I think MS have no desire to see working any better.
Microsoft, Corel Open .NET
Is BSD The Tortoise?
--
the final nail in the coffin for OpenSource. If you think it is hard now trying to find a job using technologies that work rather that technologies that are popular, just wait until .NET comes out. This is when the shit is gonna hit the fan. We are fucked unless we do something drastic. We are all going to be out of a job.. and all the people who have been spending their time drinking coffee and eating doughnuts at these stupid fucking .NET seminars are going to take our place.
.NET beta... KILL THEIR WHOLE FAMILY.
So what can we do? There is only one solution. Start killing. If you know someone who is excited about compileable ASP code... KILL THEM. If you know someone who has Visual Studio
If you want OpenSource then you are going to have to contribute to OpenKilling. This is the time to seperate the true advocates of free software, from the the poseurs who brag about the money they made when RHAT was hot... which reminds me, if you know someone who sold RHAT at a reasonable price.. KILL THEM.
Doing so will violate that license. Saying that reverse enginering software, even if the license it comes with states it's not allowed, is OK, is stupid, to say the least. By agreeing that reverse engineering of software should be allowed even if the license doesn't allow it, you automatically also agree with the fact that people shouldn't obey YOUR licenses. Copyright anyone?
--
Never underestimate the relief of true separation of Religion and State.
Why should Microsoft pay someone to port .net when the community will do it for free and get a much higher quality port than Microsoft would if they did it themselves. Are efforts to reverse engineer .net playing into Microsoft's hands? As long as we fight the battle on their turf, we are greatly handicapped. If we can design an alternative to .net and pull the game onto our turf, we stand a much greater chance of succeeding.
"To those who are overly cautious, everything is impossible. "
It's Java with a connection to a server someplace. Either that or an ASP or something. In other words, what's so special about .Net? Nothing. There was this thing in The Washington Post a few days ago about what Hailstorm offered. There were 14 services but most of them seemed rather trivial, like "myBookMarks" and "myLogin" or something like that. (sidenote, they were all called mySomething, which might not bother me so much except that I have never seen anything called yourSomething hisSomething or herSomething. So why not just drop the "my"?)
Anyway, .Net seems like a tempest in a teapot to me. None of the services described in the post article were compelling enough to make me want to upgrade Windows.
The only thing that will make me upgrade Windows is new hardware that requires an upgrade for support. That means SMP or a 64-bit processor. If they force me to get a passport to use my hardware properly, then I may bite the bullet and move to *NIX. By then, perhaps there will be an IDE comparable to MSVC and/or MacOS for x86. If there is, bye-bye Windows.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
No. Go back and read what Microsoft actually says. They say that "open source" is viral.
Since anyone with any inkling at all of what open source is about understands that such a claim is complete nonsense, most people fill in gaps and think "oh, they say open source, but to make sense they must mean GPL."
Sure, they may mean GPL. Their marketing stuff makes some sense if you read GPL. But in general, they do not say GPL -- they say open source.
Slashdot is jumping the shark. I'm just driving the boat.
no, actually they put a few different open source licenses on their blacklist by name, including the GPL and MPL.
In the EULA recently mentioned here on slashdot (and since removed from the Microsoft site), Microsoft also named the LGPL and Perl's Artistic License as being on their blacklist. Neither license is a "copyleft" (or "viral") license, despite Microsoft's claim to the contrary.
The truth is, Microsoft is made of people (just like Soylent Green). Some of those people understand the distinctions between the different open source license. Some of those people do not. Some of those people know which open source license are free, and which are copyleft, and some of those people don't have a clue.
But like in all debates, it's very important to listen to what Microsoft is actually saying, and not just what you hope they're saying. They are not making a distinction between the different types of license, hey are making no effort to clarify the licenses, and they often muddle the differences. Much of the muddling is probably unintentional.
But for many, many, many people, this is the first time they're hearing about the different types of "open source" or "free" or "copyleft" software license, and it's a confusing picture, and Microsoft is making no effort to make it less confusing, and is making some effort to make it more confusing.
Slashdot is jumping the shark. I'm just driving the boat.
Fight Spammers!
you could ONLY talk to opensource entities since these were the ones that had the 'extensions' in them (just like M$'s webserver has extensions that make many browsers incompatible).
fight tyranny with irony, I always say.
--
--
"It is now safe to switch off your computer."
Unh hunh.. And Osama Bin-Laden will celebrate the 4th of July, and the Lion will lay down with the Lamb... If you think that MS is going to release ANYTHING under a free license after all that they've said about the GPL, you have to be smoking something that I want!
_If_ the source is even available, it'll be under MS's shared source program, and likely include such wonderful EULA provisions like banning the use of GPL'd software in conjunction with it... Why would they 'legitimize' Free software after spending so much time trying to stop it's 'viral' influence?
Think outside the... Hey, where'd the friggin' box go?
Don't forget that one possible court-imposed punishment of Microsoft could be the opening of its code. If access wasn't limited to major software competitors and was freely accessible, would re-engineering of .NET be good, bad, or otherwise?
Having a DOT along with a NET captures both the business angle (DOT-com)
.NET contains the dot-com business angle...does that mean that .NET is destined to flop?
So
---
DOOR!!
I pledge allegiance to the flag...
of the Corporate States of America...
a. Linux (the kernel) was originally formulated to be UNIX-like, conform to POSIX, and be a MINIX workalike (plus features, of course, and optimized for the 386). b. The GNU part of GNU\Linux is all about taking existing commerical tools and implementing them in an open-source\free way. c. XFree86 is a free implementation of the X-Server design. d. OpenOffice is a massive attempt to compete with MS-Office and be an Office-workalike. e. Mozilla is an attempt to movie what was Navigator into the modern, spec-compliant age and wrest control back from IE. f. SAMBA is a major project to attempt to imitate to the point of compatibility SMB sharing in Windows.
..you forgot about gnutella! Swift, fast, open source, and the protocol was written pretty much from scratch!
With great power comes great electricity bills.
The .GNU project is already in the planning stage.
ourpla.net is your planet
The "Open Protocol" is a MARKETING ploy.
The long term goal of .NET is to trap everyone into relying on MS for all their computing needs.
Who the hell wants to reverse-engineer a trap?
TWW
"Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
Comment removed based on user account deletion
Attacking the GPL etc could be a very smartly timed move by M$, imagine, get the Opensource zealots in to a fit and state "No way is .NET going to be ported to Linux" and let the fools do the work. Are they smart enough for this? Are we a porn in their little game? Maybe not but then again?
I guess time will tell, going to be an intersting ride anyway...
A journey of a thousand miles starts with a brutal anal raping at airport security
I've given away slightly more insight in to my life than I wanted to there I think.
A journey of a thousand miles starts with a brutal anal raping at airport security
Yes, it will be possible to do an OSS port of .NET. You simply can't create something as big and as ubiquitous as that and keep details of the protocols, et al that it uses under wraps. AFAIK, Microsoft has no intention of doing that.
What they do intend doing is whacking as much IP protection on it as possible, so that they can control the future development of the transaction models (such as HailStorm) and thereby control a large amount of the transaction-based activity on the 'net (most e-commerce, if they're successful). It simply won't be legal to create an OS/Free port of .NET without MS's say-so, and by the way they're behaving, they ain't gonna say so.
Remember, profit isn't as important to MS as control is.
In Visual Studio.NET (beta 2 code)
(a) Go to the "Help" menu, select "Edit Filters"
(b) In "List of Available Attributes and their Values" expand "Target Operating System (TargetOS)
UPDATE (5 p.m.): HERE IS THE LIST OF OS's THAT .NET WILL SUPPORT:
The "Target Operating System (TargetOS)" list is:
Linux (kbLinux)
UNIX (kbUNIX)
Windows (Windows)
Macintosh (kbMAC)
Windows CE (WinCE)
Burn Hollywood Burn
Microsoft has already comitted to an Open-source Common Language Runtime, which will contain all the basic System.* classes and everything else you need to run any of the .NET compiled languages. It is being developed in conjunction with Corel, and will be released for the *BSD platforms. It should be a short order to get it running on Linux.
.NET programming side is available. As for the extra frills, you'll have to use Windows for those.
What they aren't doing is putting WinForms out there, which is an AWESOME library for dealing with desktop apps. On some level, I understand this, because so much of WinForms is dependant on how Windows does things, the porting job would be huge (but not impossible.)
ASP.NET will also be Windows only, but again that isn't surprising, given that IIS only runs on Windows.
Bottom line: They will be ensuring that the basic core of the
Reverse engineering them (WinForms especially) shouldn't be too hard though -- all of the classes have well-defined interfaces generally. It will just take a lot of tedious work.
-- russ
Natural != (nontoxic || beneficial)
This is an important point.
Microsoft has a monopoly, and is so abusive-minded that it can't see how abusiveness is self-destructive.
Microsoft can continue releasing deliberately poor quality software, so that users will always feel motivated to upgrade when a few of the bugs are fixed, and a few features are added.
In my opinion, Judge Jackson was correct to compare Microsoft with drug traffickers. However, it was not correct to do so publicly during judicial proceedings.
(See page 111 of the decision of the Court of Appeals [PDF format].)
Bush's education improvements were
Nothing could help bring Linux to the backend for corporations more so than this... OpenMail and Mailone are costly, and OpenMail is also now dead. This is a needed project!
Linux: Because a PC is a terrible thing to waste.
James Brents
If you really want to see a widely-adopted, cross-platform architecture of this sort, fix CORBA, roll your own, or do anything but tilt at this windmill - they'll only move the target on you.
OK,
- B
--
http://www.bradheintz.com/
- updated
Dudes... Open-sourcing .NET is gonna be like trying to nail Jello to a wall. This MS 'concept' is as much about marketing as it is about technology. Using their tried-and-true modis operandi, .NET is a re-branding of their existing junk - ASP, IIS, etc. etc. As a technology, it's about proprietary Passport interfaces and the like.
Does anyone REALLY want to port C# anywhere?
CrazyLegs
"Pork!!" said the Fish, and we all laughed.
Microsoft has said that their plans include a reference implementation on a free UNIX platform, likely some BSD or Linux. They are staking their future on this platform, so they want it to be adopted widely and they definitely don't want the DOJ to kill it. I think they may play it safe and make their own port under a free license.
Even Slashdot wants to hide some things
Other parts of dotNET are already being open sourced. SOAP for example is being cloned all over the place. It is pretty clear that someone will have an Apache version.
The part of dotNET that would be hard to copy (and probably not that worthwhile) is the rack of API goodies that ship with windows. But that is not what a clone of dotNET would be useful for.
The main reason I would want a version of dotNET running on another platform would be because the whole big idea is network computing. If you have a legacy system running on a mainframe you don't need to move it onto a different platform just to use it as a Web service. Equally you might want to extend some embedded system and make use of a Web service on another box that is being set up.
Microsoft is trying to sell Windows as a big feature set development platform for building dotNET services. To succeed they need dotNET services to be available on other 'legacy platforms'.
Microsofts complaints about the GPL concern the viral aspect.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/
I had hoped that if .NET was cloned in an open source environment, that it would be sub divided into smaller sections to allow one piece to rise to the top. SOAP, for example, although never exclusive to .NET is expected to take off in other technologies. Web Services are another example. If .NET is reduced to a set of frameworks, rather than a platform, it would be very difficult for Micros~1 to completely control its future. It would also be easier to integrate into existing frameworks (such as J2EE) or products (tuxedo, apache, etc.)
-----
The big question is, how long will it take for MS to decide to let Scott McNealy's Solaris systems run .NET applications? I think until h*ll freezes over!! Look at Oracle 9i...Larry Ellison's company hasn't released trial downloads for it on Windows platforms. Oracle 9i touts better integration with Windows 2000 in the documentation - how long until it integrates with .NET?
All key questions for .NET folks. If you buy into .NET early, be prepared to be Microsoft-oriented for some time. I think open source type porting of .NET is the shortest way to get .NET apps on important platforms, e.g. Linux, FreeBSD, Solaris, et al...
People are kidding themselves if they think .NET will go away. It offers some pretty cool technologies, though I must say that the Hailstorm platform (a layer of .NET) troubles me a bit. That's where Passport comes into play. The low level CLR (common language runtime - similar to a Java VM) is fairly distinct at this point, from what I can tell. If anyone begins to port .NET, it would likely start here.
As for C# being an open standard, the problem here is that it will get everything INCLUDING the kitchen sink added to it. Just like C++. Reading the C# spec was like looking at C++ with some of the bad stuff kept in, and some of the bad stuff taken out. At least Java has some executive control, and adherence to key principles, namely keeping the language simple.
I say, the best defense is a good offense, and by embracing .NET, open sourcers defend against those CIO/CTO and other MIS types from making MS-only purchasing decisions. If these types can get competing solutions at no cost, or in open source form, they need not shop at Microsoft. In essence, open source gets MS's Intellectual Property investment for free!! Albeit at some cost of having to figure out what the heck MS has cooked up.
Of course, Hailstorm is the real sword, since it works in the MS proprietary Passport stuff. This will be most difficult to subvert, but the underlying .NET framework should port nicely and solve 80% of the problems people deal with.
1. Write a JIT compiler for the Microsoft's Intermediate Language (IL) - basically the same as a Java runtime. This was submitted as part of Microsoft's open standard submission, I think.
s p
.NET platform lies not its underlying platform, but in its vast library (think of Win32 but in a nice, neat, powerful object-oriented format) and development environment. Copying the base platform is the easy part, and isn't going to get you very far... copying the library is probably much trickier, but necessary if you want to try to embrace and extend.
.NET initiative, it's probably better to strike at the SOAP objects and .NET authentication, as those are just XML specs. Write some Perl, PHP, and Java modules which can communicate via MS' XML standards... that's a lot more possible, and probably a lot more palatable to the Open Source community.
2. Write a C#-to-IL compiler (or perhaps VB, etc). Specs are also an open standard; I think there are third-party Perl-to-IL compilers already, for example.
3. Write the base classes. I'm not sure how much native code goes into these, but probably quite a bit. A list of the base classes for Microsoft's Common Language Infrastructure submission is here:
http://msdn.microsoft.com/net/ecma/Allmembers.a
4. Depending on the functionality you want to enable, write the stuff that isn't part of the standard submission. For example, to copy their server platform, you gotta make the ASP libraries, the data libraries, etc. Copying the GUI elements for desktop apps is probably trickier...
Trying to embrace and extend would probably be difficult with all the catch-up you'd have to do. The appeal of the
If you could get all those steps done, you could achive the ultimate goal of... what? Letting people develop for Linux in Visual Studio? I guess its a step towards weaning Microsofties away from Microsoft servers, but it seems like a lot of effort to do something that'll ultimately still be under Microsoft's control. I don't see WINE doing any embracing-and-extending...
If you want to try to co-opt the
--
Convictions are more dangerous enemies of truth than lies.
Convictions are more dangerous enemies of truth than lies.
- Nietzsche