What is .NET?
CyberBry writes "There's a great technical overview of Microsoft .NET over at arstechnica: "In a remarkable feat of journalistic sleight-of-hand, thousands of column inches in many "reputable" on-line publications have talked at length about .NET whilst remaining largely ignorant of its nature, purpose, and implementation. Ask what .NET is, and you'll receive a wide range of answers, few of them accurate, all of them conflicting. Confusion amongst the press is rampant. The more common claims made of .NET are that it's a Java rip-off, or that it's subscription software. The truth is somewhat different.""
I haven't seen this mentioned here yet, but they actually released the dev stuff for .NET. Article here
The main bone of contention that people have with .NET is the whole Hailstorm/Passport crap that MS is trying to push on us.
.NET itself is a very cool idea wherein any language can be used to write components that can be used by any other language. It's a means of allowing greater interaction between programs.
Hailstorm/Passport is an ill-devised way of online information management. With the amount of paranoia about this kind of stuff, the idea will be either flounder for a while or will be pushed as hard as possible. I think the former, but that's just me.
...where MS is going with this initiative. They seem to be touting portability, but what kind of portability? Certainly not inter-OS portability, that's for sure. No doubt that their Common Language Runtime is so heavily patented, encrypted, folded, spindled and mutilated that it will be quite difficult for someone to make it run on a non-MS platform. I know that quite a few Linux-heads are working on it. Prediction: if they ever get it right, MS will sue them about four microseconds after they post it on Freshmeat.
.NET have similar limitations, I wonder?
That being said, it does seem like MS is trying to wean themselves out of a strictly x86 world, and portable binaries is a good way to do that. What about performance? Java used to be well known for crappy performance because of the abstraction forced on the code. Will
In the end they will lay their freedom at our feet and say to us, Make us your slaves, but feed us. - Fyodor Dostoyevsky
Bwahahahahaha...
"I will take the Ring," he said, "though I do not know the way."
.NET is mlife.
--G
Unfortunately, no one can be told what the .NET is. You have to see it for yourself.
There are some good .NET development books coming out now. Even O'Reilly has had one out for a while (which I have), so the publishing companies seem to be eager to sell .NET.
.NET framwork development tools, and it seemed much faster (probably because my hand-written code was much smaller).
.NET runtime and classes for FreeBSD. I have talked with the lead engineer of this project over e-mail, and he said that it's due to be out in late Spring. I asked him about the Windows Forms stuff, and he said it will be based on Tk (could someone explain the implications of this?). He also said that there are going to be very few UNIX-specific classes, but they hope people will develop those on their own.
Right now I am downloading the seven CD Visual Studio.NET Enterprise final version (yep, already warezed), a $2500 program. It even has a version of Visio bundled for doing application modeling, and that somehow automatically starts producing code, from what I understand. This is going to be interesting to try.
I have had the VS.NET Beta 2 for a few months, and it's generally easy to use, but very slow. I mean, a general "Hello World" application takes several seconds to compile, and also at least 3 seconds to execute! I have done the same thing using the raw
Microsoft is developing a version of the
language neutrality, but based on what I've
read so far, it's only language neutral if
your language is c# or close to it.
However, maybe they should repeat
the claim another million times; it worked
with getting people to think Windows
was secure.
(currently testing something about signatures here)
When your friends ask, just tell them "It's a language-neutral Java knock-off..."
Why do people try to make it more complicated? Ok,
Others like to confuse the application that can be written by
The Platform != It's Applications
It's Simple: It's a Java rip off!
"Communism is like having one [local] phone company " - Lenny Bruce
Another fairly good summary of .NET is Here.
Yours Sincerely, Michael.
I've converted the Article into a Word Document that can be found here.
Wonderful article.
OK. That's interesting to know. Given that, I, ah, wrote the article, and can guarantee that it wasn't finished, let alone posted, "over two weeks" ago.
This article, rejected by Slashdot for this one I might suppose, has some thoughts regarding what other companies and groups think about .NET (Not exactly favourable) and mentions how other companies will be rolling out there own networks.
.Net servers.
I'm not sure how I feel about this statement.
Microsoft is developing its own Java-like language, called C#, and it has developed a tool that lets those familiar with Java use their knowledge to create Java-like programs for
IMHO, that is probably pretty darn accurate. Nobody knows exactly how just yet. Yeah, it sounds like I am paranoid, I have good reason to be.
Microsoft^H^H^H^Hpoly
My beliefs do not require that you agree with them.
Programming Windoze for a living, I couldn't care less about language interoperability and all that hype. :)
It's neat. But that's it.
In my experience, language skills comes a distant second to knowing your OS.
What I really hope for are quirk-free class libraries, and bugfree APIs. I'd have to find a new job then, of course...
No sig to see here. Move along.
It is four bytes long. .COM and .ORG.
It is three US-ASCII letters preceded by a period.
It can also be written as 0x2E4E4554.
Or, 0x4BD5C5E3 in EBCDIC.
It has a total ASCII value of 277 (712 in EBCDIC).
Its checksum is 303cb0ef9edb9082d61bbbe5825d972a.
Goes great with
Alone, it gets blocked by the caps lameness filter.
Liberty in your lifetime
Stability before performance, every time.
Or he'd rather be writing, "The JIT produces fast code, but sometimes crashes."? Or, ".NET is vaporware, still three to five years on the horizon."?
The reviewer should recognize and applaud the focus of the developers. Because you know they were sitting around saying, "Wouldn't it be nice if we did this fancy optimization...". Instead, they put first things first.
"Premature optimization is the root of all evil," D.E. Knuth. Learn it. Live it.
This is a hard one! The good news is that the SAT has no guessing penalty.
One CPU cycle wasted on digital restrictions management is ONE TOO MANY.
Just coincidental that Windows XP drops default Java support.
First, Java works fine in XP -- you just have to (automatically) download the VM or get it from Sun.
Secondly, the real advantage of .NET is that you can write in whatever language you want to and use components from other languages in your .NET programs. Those are hardly minor advances. Java has had a six-year head start, not to mention a vast amount of hype, and if it's the better technology, it'll hang in there. If developers like the .NET stuff better, they'll use that. In all likelihood, there will be a lot of different competing languages which will be good at different things. Nothing wrong with that, IMHO.
Except that Java is also a language! .NET is the good bits about Java (portability) without it being bound to a single and frequently innapropriate language. That is a HUGE fundamental difference. It also goes further in generalizing the advertising and querying of object interfaces on single machines, local networks and the internet (ALA COM++ CORBA++ etc). Much farther reaching that Java ever got.
Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
Comment removed based on user account deletion
.NET is not portable yet. Sun, unlike MS has made a commitment to 2 platforms other then it's own. Where is the MS web page about .NET on Solaris, Linux, *BSD or any platform other then Windows. Where can I download the (even beta) implementation that is recognized by MS?
.NET you will realise that it is not at all language agnostic, in fact they have (to quote another .NET review) created the first 'skinnable' language system. Now every language can interact provided that they use the .NET santified interfaces to interact.
Also, if you really look at
C# is a neat language, it still remains to be seen if you can write code that is both quick and safe at the same time. (at the same development pace as Java)
You can't believe it? It's a natural part of their onslaught on the "viral" GPL. And it makes a Mac version just moments away.
Yours Sincerely, Michael.
FWIW, MS's JVM was 100% conformant, and Visual J++ produced 100% conformant binaries; the problem was that it supported some extra bits and pieces (P/Invoke, most notably, which essentially exists in .NET as the wonderful DllImport attribute).
OS independence is brought about by compiling to bytecode (which frees you from hardware constraints) and sticking to the core class library (which frees you from platform constraints), or using classes common to multiple implementations (for instance, WinForms, which are available on both Mono and .NET, and maybe even the shared-source FreeBSD implementation).
> Anyone who wants to develop for .NET needs to shell out at least $1,079 for Visual Studio
.Net Framework Software Development Kit for free (*connection charges apply) at this link
.NET Framework Software Development Kit (SDK) includes the .NET Framework, as well as everything you need to write, build, test, and deploy .NET Framework applications--documentation, samples, and command-line tools and compilers.
Or... you can go out to MSDN and download the
From the description:
The Microsoft®
I'm excited about
And really, Microsoft.com is the only one that could manage to make this a reality. As much as I hate the company, I can't help but feel grateful that I'll finally be able to write apps in a nice high-level type safe garbage collected language and have that be the most well-supported method. (And if others start using high-level languages, maybe my computer will not crash so much, or have so many buffer overflow sercurity holes.)
(As an aside... I fucking hate when people (like the author of this otherwise good article) use the word 'whilst'. Just say 'while'. It's not like we live in Medieval Britain.)
The only diference is that the JVM doesn't like it when you ask for things like 'pointers' and 'unmanaged memory' and generally things that programmers abuse. Instead it only lets you create primitives on the stack and Objects on the heap. You have to circumvent the JVM all together via C dll/shared libraries to get access to the real machine under the VM. While the CLR has a way to get access to the machine (unsafe code anyone). Also, the CLR defines ways to interact inbetween languages other then C which the JVM doesn't. Languages like LISP cannot be compiled to bytecode because the JVM doesn't support tail-recursion. .Net Lisp. or any lisp really.
Not that I want to write any
Which goes to show that "language-neutrality" is a myth. The CLR can't even support VB without changing it into a C#-work-alike.
To Microsoft, the only developers that count are the ones with $1,079 and more. That does mean big corporations and others with plenty of $$$. And Microsoft wants to favor those with $$$ so they can get more of that $$$ by creating a platform that requires more machines to run. More machines means more installed systems and more $$$ goes back to Microsoft. Microsoft can easily afford this because it is part of the strategy to cause more $$$ to be shifted to them. That is what business is about, like it or not (personally, I don't like it, but I deal with it).
now we need to go OSS in diesel cars
Well.
The GAC is reference-counted -- if you no longer have any applications using an assembly in the GAC, it'll get removed (there are some provisos, but that's more or less how it works).
And the GAC does have shared libraries -- it just provides a mechanism for having different versions of those shared libraries. If a bunch of applications all use the same version of the same assembly, then they'll use the same file. So there's still a benefit over static libraries. It just also fixes the problems that have ocurred with dynamic libraries. When they *can* be shared, they will be, but unlike Windows' previous DLL implementations, it doesn't _require_ them to share the same version, even if they're not compatible.
An interesting read was linked off of that Gnome guys discussion about .NET that was all rage for a bit.
.NET.
.NET or his training course?
Interestingly, I didn't know he (Bertrand Meyer) has created a training course on
Who knows which came first, his interest in
I don't think they ever gave a straight-forward definition that clearly stated that .NET is this and this. If they did then I missed it. .NET could do. He introduced and chatted with several MS employees on some of the things .NET could do. I especially liked their comparison to Sun's J2EE Pet Store sample application. They've got this comparison available on the web at: .NET. After three of these we broke for lunch and I went home, still not being clear on what .NET is, exactly.
The show started out with a welcome message from the Microsoft Technology Evangelist...no, really, that was his title.
Next came Steve Ballmer who came out to work the crowd into a frenzy and tout all the things
http://msdn.microsoft.com/net/compare/default.asp
(I hope Sun posts a followup on Microsofts claims in this comparison)
After this they worked the crowd into another frenzy by randomly giving away three of the XBox games. Then they brought out some folks who gave success stories on implementing
All in all it seemed like I heard mention of several different items:
.NET
Visual Studio .NET
.NET Framework
.NET MyServices
.NET Server ...and probably some others I missed. I'm going to visit Microsoft .NET Defined and see if that helps clear anything up...
Hype?
Programming can be fun again. Film at 11.
And Microsoft has provided the answer: Here is the runtime model, here are the APIs you call, here are some tools you can use, here is how to get help if you have problems.
Now substitute a web of connected personal computers -- the Internet -- for a single one, and developers are still asking, "How do I write an application?" And Microsoft's answer is, .NET.
DOS provided very few services to application writers, but with the Windows APIs, things got more sophisticated: support for graphics, for printing, for various other input and output devices, and eventually for networking. These were filtered through a standard Microsoft-provided operating system to various third-party devices, each with their own device driver, which performed the actual work.
In the .NET world, the "API" will handle Internet-related issues such as password verification, price calculation, payment, and so on. The "operating system" will be a set of always-available Web sites that may then dispatch the actual work to third-party sites -- the "device drivers" in the .NET model.
That is an excerpt from a longer article which I wrote back in November 2000.
- adam
then go here. You can't beat Borland.
Then again, .NET and web services are destined to become the next great niche, but that's another story.
Steve Magruder, Metro Foodist
Could be they're being untruthful. Wouldn't be the first time. Although...
Maybe it is portable. Maybe it *IS* real easy to port. Maybe they already have it running on FreeBSD, linux, Solaris, and Plan9.
Doesn't mean they're release it for any platform other than windows...
There are quite a few posters and and pdf's that show a graphical representation of the core java class library. I've looked for something on the .NET side of things but have been unable to find anything. Anyone know of such a beast?
The author is confused about JIT compilers and virtual machines. A virtual machine is just a piece of software that executes programs in some machine-code-like language. It does not necessarily interpret the instructions. Indeed, almost all virtual machines compile to the local machine's instruction set at some point.
A JIT compiler is a technique used in virtual machine design to speed execution. Technically, a JIT compiler ought to compile code as it reaches it on the execution path for the first time, but thanks to some sly work by Symantec, its become acceptable to call something a JIT compiler even if it actually compiles all the code at load time regardless of whether it is executed or not. Hence the complaints about Java's startup time. Microsoft's efforts in this direction seem faintly bizarre to me. All previous evidence is that keeping compiled code around between runs is not worth it. However, I suppose since they only really support one platform, it won't really cause any problems.
C# is very much not "C++ for rapid application development". It's a completely different language, much more closely related to Java. While C# and Java share C++'s syntax, their underlying semantics are more closely related to Beta or Smalltalk.
As I would expect from someone who obviously doesn't know much about VM or language design, the author also makes far too much of the CL?'s cross-language abilities. While it has good support for implementing functional languages, as far as the much more important OO features are concerned, it is only going to work well for statically typed, single inheritance, single dispatch languages that don't need to do any code generation. Its is my contention that any OO language that can be implemented on the CLR can be implemented equally well on teh JVM.
You can write in "whatever language you want" as long as the language has been designed (or re-designed) to work with the CLR. You don't use VB with the CLR, you use VB.NET. You don't use C++, you use a bastard hybrid Managed-C++. You don't use Smalltalk or Scheme or Perl, you use something that's kind of like Smalltalk or Scheme or Perl. Not that big an advance, if you ask me.
- All in all I like it.
.Net stuff together with MS's patent on a "secure" computer that only runs DRM enforcing applications is all starting to come together. Perhaps they really are developing a .NET processor and a hardware public key hash checker making running non .NET stuff next to impossible. People will buy it because of the speed increase in applications.
- Will future processors be able to run the IL in some sort of protected mode?
- What scares me is all the public/private key signing. While this is good for preventing viruses, it makes hacking software (almost?) impossible. I am thinking of hacking a DVD player to play all DVDs from all regions (of course in DMCA free zones LOL), or just in general being able to make versions of a program work with an alternative library.
The more I think about it, this
The progress apparent in Java had mostly already been made by 1980, around the same time C++ was being created. The problems with C++ are a result of either ignorance or a deliberate decision to ignore those advances.
Just coincidental that Windows XP drops default Java support.
.NET is that you can write in whatever language you want to and use components from other languages in your .NET programs.
.NET is about one and only one thing. Network enabled apps to take the place of Java. The details are different, but the motivation and niche in the marketplace is the same. All the rest is just clever marketing from Redmond, as usual.
First, Java works fine in XP -- you just have to (automatically) download the VM or get it from Sun.
That is precisely what I said. XP drops default Java support.
Secondly, the real advantage of
Look, this is a load of bull and you should know it. Any language that maps onto C# cleanly is the reality. Similarly, there is nothing to prevent you from writing a java bytecode compiler for just about any language, so this is no different either. But simply, java is structured a lot like C or C++ without requiring its programmer to micro-manage memory. So, it is just not that hard to program in.
Also, it won't matter much whether developers like it. Microsoft will practically pay them to write C# apps instead of Java apps, and Microsoft has the bank to do it. Default Java support is gone, which effectively kills it for recreational computer users (client end support, anyway).
No,
Funny, I don't remember the x86 opcode for tail recursion. Or the 68K, SPARC, or PPC one. Would you care to remind me what it is? I guess since there isn't one, it's impossible to run Lisp on Windows, Mac, Sun, or IBM boxes.
Every computer language in existence is Turing-complete; they product code that runs on Turing machines. Some of these Turing machines may be faster or more efficient, but they're all equivalent.
-jon
Remember Amalek.
Visual Studio - Enterprise Architect. Sounds like I need my PE.
erm..anyhow..
The past two days at work, I have been using that version of VS which comes with this month's MSDN subscription.
Most of the time I have been trying to figure out what happened to their data access...It used to be quite simple to hook up some data to a grid or control, but - jeez - I still haven't figured out how to do it simply, and I have built my own data provider controls before so I figure it shouldn't be this difficult.
As one poster mentioned, the compilation and execution of just a simple 'ello World program, with one form and button each took a couple seconds.
I tried out the WebForms for their new ASP.NET, no doubt this stems from experience in the last ASP, but it didn't seem intuitive to me. In fact, I could probably port existing ASP to PHP in a quicker fashion... On a side note, however, I attended a conference where they claimed to be running this on Apache instead of IIS.
I am not too impressed right now with this product... IMHO the best part about the product is the new VISIO. You can do database modeling/reverse engineering and it will generate the scripts, etc like ERWIN or Embarcadero.
I doubt we use this product for awhile at work, if ever.
help fill in hidden movie endings @ End of the Credits
Microsoft is developing a version of the .NET runtime and classes for FreeBSD. I have talked with the lead engineer of this project over e-mail, and he said that it's due to be out in late Spring. I asked him about the Windows Forms stuff, and he said it will be based on Tk (could someone explain the implications of this?). He also said that there are going to be very few UNIX-specific classes, but they hope people will develop those on their own.
I wonder why Miscrosft is developing a FreeBSD implementation? Could it be because substantial portions of Hotmail still runs on FreeBSD? If I remember correctly, MS has yet to successfully port all of Hotmail over to Windows. That being the case, I'd hazard a guess that it's a REQUIREMENT for them to do the FreeBSD thing.
I could be wrong, though. Anyone?
$0.02 (CDN)
Why do you bother commenting when you didn't even read the article?
For example, you say you can write Java bytecode compilers for other languages. However, what you overlook is that that doesn't enable you to use components from those other languages in Java, nor does it enable those languages to use Java components. The key to using components from other languages is not compiling the languages to the same bytecode...it is using the same object model.
I was surprised how often the main article preached .NETs language neutrality. .NET is certainly not language neutral. Heck, Microsoft had to neuter their own primary development languages in order to get them into it.
.NET. I mean, you can't be making the wrong decision if it supports all languages equally, right?
I can understand why they would restrict their framework to a single inheritance, single dispatch in order to be easily used from more languages, but they forbid both multiple inheritance and multiple dispatch in the virtual machine.
I suspect we are seeing the "language-neutral" lie pushed so heavily right now in order to convince people to choose
Here's a link to an article that explains it.
the real reason that Microsoft dropped support for Java in XP was Sun's refusal to open up Java (as in "open to a standards body").
And why do you think Sun refused to submit Java to an open standards body? Can you say embrace, extend and extinguish?
I'm sure a lot of us slashdotters have queried what this dot-net thing was. Anyone with a Hotmail account was aquainted with the chintzy logo in the upper-right corner. eBay is starting to suggest a 'Passport login', which so far has been the most that em-cash has seemed to provide. I've been to trade shows, Microsoft (free hardware swag for false info? that's a steal!)and non-Microsoft pitches and antipitches, and no one has provided an answer.
;)
:)
At least, a good one.
This overview is great from a technical angle (the one me and most slashdotters usually have interest in) and decent from a more mundane perspective (the one you pose as in an em-cash or other sales-derived presentation
It's hazardous to your health as a hacker. It looks like a great way to encapsulate any data in a format which is sufficiently protected under the DMCA. (Yet another reason for that law- and the 99 senators who ayed the vote- to be burned at the stake.)
It's also bad for anyone on a non-MS platform; two of the languages are extremely MS-centric, Visual Basic and C-hash (something that should only be done right before you smoke it).
It's bad - all right, worse - for Java fiends. Bad enough Microsoft feels Java is the worst thing to happen to it since the Wicked Witch of the West was introduced to the business end of a water gone, now they're pulling out all the stops with the theoretically embraced and extended J-hash.
Right now, I just wish there was a way to stop those pricks at Microsoft.. besides a HERF bomb in Redmond, WA
I used to be someone else. Now I'm someone better.
Real life is underrated.
Well...you may find that the language you want isn't the same in its .NET incarnation. I understand that a bunch of the languages that are being made to target .NET can't move over exactly, so they end up as different languages happening to use the same name.
.NET Studio demo is on the CD of this month's MSDN magazine. Full version is also available for anyone with an MSDN subscription, which any software development company or division worth its salt already has. (yes, a real MSDN subscription is well more than $1,079, but well worth it for companies creating MS software)
Toodles
Toodles D. Clown
So... am I missing something, or is the whole idea of .NET to take away native software? Replace everything we currently run with a virtual machine? Yeah, write-once-run-anywhere _seems_ nice but am I the only person left on the planet who still wants software that's optimized and tuned to run on my hardware... not a generic VM?
I dunno. This just seems crazy to me. There has got to be a better way to do cross-platform software than what basically amounts to emulation. And in this case it makes even less sense... MS is naturally targeting this mostly at Windows, which is still pretty much a single-platform deal. So where's the benefit in using slow(er) bytecode as opposed to petal-to-the-metal, optimized native code? Argh...
Hi... I'm Larry... the shivering chipmunk... brrrrr!... I'm cold... I need a sweater...
This whole "any language that you want" is vastly overrated. Especially since it is not even true....
Still, while .NET is largely a Java clone, and while it really isn't any more or less language neutral than the Java JVM, it is a big step forward for Microsoft and can only serve to improve the quality of Windows software.
There are plenty of C# intros out on the web (I especially liked the Ask Dr. GUI.NET series at MS, but they are being rewritten to reflect the release version of VS.NET), but O'Reilly recently
posted one that gives instructions on using the compiler/debugger that you can download from MS.
With those tools, one can begin to learn to program with C# without needing to fork over the big green for the new visual studio.
Just thought someone might be interested.
This is Slashdot... who's producing commercial code? ;-)
Seriously, though, your point about legitimacy is well-taken and something was cavalier about originally. IF you're eligible, it's a great deal. If you're not, then it's illegal software.
Anyone who wants to develop for .NET needs to shell out at least $1,079
The Software Development Kit (all necessary dll's, compilers, etc.) is free. There are also a handful of free IDE's.
There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
Look, we're splitting hairs here about what "drops default Java support" means. To say that it drops support implies that the OS no longer supports Java. It does as long as you have a VM installed (which, again, happens automatically the first time you hit an applet).
Secondly, it's hard to argue that Java was particularly relevent to "recreational computer users" anyway. Very few desktop apps that "recreational" users depend upon are written in Java and applets are less common than ever, so what's the big? Look at it another way -- you get to choose your VM, and isn't choice a Good Thing?
I'm not sure what's "bull" about the fact that you can use multiple languages in the .NET CLR. You CAN. Yes, they have to be .NET aware, but isn't that kind of obvious? It's still a good idea and, by all accounts, it's implemented well.
FYI: I'm paying $160 CAN$ (~$100 US) for my academic-priced Professional version copy. Maybe unfair to regular developers, but at least MS realises two things:
.... they'll be out very soon from third parties - like Borland, as was said in the VS.NET conference today.
... and I'm interested in seeing if that's actually possible.
1) Students are important seeds to sow.
2) Students barely have enough money to afford the student version.
As a result, I'll be programming in VB.NET and C#.NET this weekend.
On a side note, what MS is really selling is the IDE, and all of the nice integration with other tools. If you want a cheaper compiler and runtime, wait a bit
... or wait for Mono. I'm very excited about porting my Windows apps to Linux
----- rL
Sweet jumping savior, how the hell did we get here?
I managed to get two pages into ArsTechnica's explaination of what .NET is, what it isn't, and why it will be used before my brain rebelled: "Great fuck, if people would simply stop schlepping shit around in proprietary binary formats, data could be imported or exported in any damn application that wanted to write the translation".
This would be different if .NET was talking about eliminating the concept of an application (document-centric computing). Hell no, it's a bunch of pointy-head nerds and pointy-haired MBAs adding another goddamn layer of nerd-cruft to everything under creation.
".NET has three packets of information: the IL, the Metadata, and the fuck-this-where-can-i-find-nudie-pics"... please, for the love of Mike (God wouldn't have anything to do with this, it's purely From the Other Side), let's not stop everything and reinvent the wheel. We had the chance to carefully think things through and do it right, back in 1990. We missed the opportunity, we're now stuck with what we've got. Hasn't anybody learned anything from Be? You can't go home again.
If .NET makes any fucking difference before it gets replaced with the Next Big Thing, I'll eat my damned crusty underwear. So far, I could grep for .NET and replace it with "Java", and timewarp my pasty white ass to 1997 when it was going to Save Us from platform-specific languages and Microsoft at the same time. I cut my balls off and drank the poison koolaid, but the fucking UFO hasn't poked it's nose out from behind Hale-Bopp yet, the shy fucking bastard.
Spare me the fucking story. You wanna know what the next great savior is gonna be? Sumbitch, he's already here, and Tim-Berners Lee is his prophet. It's the Church of the Holy Hypertext, and it's vessel is Mozilla. The Web lit up the world because it's simple, it's easy to learn, and it's powerful... and, sin of all sins, it's accessible. Nerds and secretaries are building web pages, because it's easy to do. You think Sally Secretary is gonna benefit from .NET's programming language independance? It's wonky new IDE?
Pfft. Thicker and thicker layers of cruft will not make programming less hard. Thicker and thicker layers of cruft will not change the way we access information. Thicker and thicker layers of cruft will only slow down the spread of knowledge, because everybody's chasing down the next security bug in .fuckingNET instead of sharing what they know.
Potato chips are a by-yourself food.
Well, java is around, but it doesn't have all the advantages of .NET. Mostly, it is missing the biggest OS vendor pushing its OS and development tools to the platform. Nobody else can do this but MSFT.
Also, Java is in a few ways not as good as the CLR. For instance, I can't efficiently target the JVM with other high level languages that I care about, like SML.
Why can't Sun see the writing on the wall and adapt, coopting some of the innovations Microsoft has surprised us with.
Take the JVM specification and broaden it. Add features that would more fully support the retargetting of other languages to the JVM. Provide better native libraries for GUI interfaces so we can produce GUI apps that don't require GHz machines to run well. And for christ sake, be prepared to sacrifice some of your freakin object oriented purity for performance every once in awhile.
The CLR is really just a more pragmatic JVM. It suggests best practices, and highly encourages them, but allows for backward compatibility and 'unsafe' operations if you think you know what you are doing, or have no other choice. It has more flexibility that the JVM and the java spec allow. This was always the crux of the disagreement MS and Sun had re: Java. MS wanted to allow the developers to chose, Sun thought they knew best.
-josh
It's amazing to hear the lengths to which some Slashdotters will go.
Start with the mandatory MS bash, "Java ripoff", for example. Then start daydreaming about how nice it would be if the non-MS technology could someday become as good as the MS version.
What nonsense. If it's from Microsoft it's a ripoff of its predecessors. Otherwise, it's an advancement beyond its predecessors. Sure, that's "simple", in more ways than one.
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
Either someone is really pressing on them releasing a multi-platform .Net, or it's a Darwin thing. Or both.
.Net tools for Macs. It is part of their market, after all.
I wouldn't be surprised to see them selling the full
Freedom is the freedom to say 2+2=4, everything else follows...
Secondly, the real advantage of .NET is that you can write in whatever language you want to and use...
Has no one written a compiler to compile other languages to the Java VM? If not, why not? It's a virtual machien with a virtual instruction set. Surely there are some things in that machien that favor Java, but that doesn't mean they couldn't help, much less, prevent, another language from being compiled to it.
.Net is not a standard, and it will never be a standard unless Microsoft gives up all control and turns it over to an industry consortium in which they are only one of many voices at the table. Does anybody really in their right mind see this happening?! Not a chance. So .Net will not be an industry standard. It will be a Microsoft proprietary wannabe-standard. When I say proprietary, I don't necessarily mean it will be un-documented. I mean that the only 'useful' and popular implementation will be available from M$ and it will NOT be free nor open software. All other implementations will fall short in the same way that OpenOffice is unable to emulate all the quirks in the Office file formats. That or certain features will be patented in the US or will require Microsoft's online services such as Hailstorm or .ASP or whatever to function.
.Net word processor when there's a better/faster/free one written in C/C++. No, I say we let the FUD in the popular media fly when it comes to .Net. Because when you really get down to it, it really is just another scheme to stranglehold the software industry.
So step back and ask, from a pure technical perspective, does it really accomplish anything with it's supposed CLI 'language/platform neutrality' that we can't already do today with Java--a well tested, well documented solution? Or here's another thought: do we really need platform independence in an Open Source world where software can be quickly ported and recompiled? Users are not going to pay for a
So there you have my opinion. Mod away! (-;
...not that it's inaccurate technically when it describes the particular technology, but that it tries to claim that what it describes is really ".NET". In fact ".NET" is whatever Microsoft calls ".NET", and at this point in includes CLR, framework, and existing implementation that is infested with Microsoft "technologies" tie-ins (COM, VB, C#) at the extent that, among the other properties, the whole thing absolutely certainly is unportable.
Another problem is, ".NET", and in fact, .NET framework, is being compared to Java, as if Java is the only thing that opposes it. My opinion is that Java sucks in its own right, and the only alternative that I accept is the lack of "framework" until the time when people will learn how to use existing tools, and develop models that actually produce a framework that benefits developer, and not just locks him into something that framework's authors think, will benefit them, or pamper their idiosyncrasies. My opinion on "frameworks" that exist today is here, and it fully applies to this article. There are millions of possible ways to build a very complex sand castle in software -- Java, COM, SOAP, .NET are only few of them, and without any doubt people will invent more. The problem is, no one needs sand castles, people need something they can live in, and kids on the beach need to grow up before they will be able to build houses. And some mentally deficient and whiny kids, such as Microsoft, are better kept away not only from building houses but sand castles as well.
Contrary to the popular belief, there indeed is no God.
One small thing - generally, it's not the developers who pick what they write. It's management, who do it on a basis of what looks popular, what their customers (also upper management) will want, what fits their budget and finally, what fits their strategic partnerships best.
:-(
The bad news is that technology and "what's best" never comes into it.
Here is one response I was able to find outlining the problems with MS's comparison...
.NET performance on a set of intel boxes (not sure of the specs) where the Oracle numbers came from a set of Sun boxes (also don't know those specs).
.NET LOC count.
The biggest problem is that they didn't re-run the comparison on the same hardware - MS measured
The other major problem is one I was able to guess right away when a recent MS rep came to talk at our company and told us about the comparison. Basically, the PetStore demo is an educational tool to help teach you how to deploy J2EE code and use various technologies - in no way is it built for speed. Meanwhile MS decided to move all access to data into stored procedures and even skip implementing some of the PetStore features not built around reading data quickly, like administration features (see article).
On top of that, when I asked the rep if the LOC count including the JSP pages, he said yes -so they were including HTML in LOC, which I'm not sure is true of the
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I have already read at least five different people claim that C# is nothing but a java language rip off.
Fine, do this in C#:
public delegate float mathmatical_operation(float anum);
public event mathmatical_operation onFinish;
void domath()
{
float result;
if (onFinish!=null) result = onFinish(anumber);
return result;
}
BTW, that there works transparently over the internet as well. (This is really a series of callbacks and is symantically easy enough to make even the hell that is Windows messaging easy to deal with.
KDE Myth: Gnome is loosing, its dead, just use KDE.
What, exactly, would Gnome be "letting loose or releasing?" I'm afraid this statement makes no sense. Perhaps you meant to dispel the myth that Gnome is failing to win (whatever that means). If so, the word you were looking for was losing.
If you're going to go to all the trouble of throwing out flamebait, at least check your spelling/grammar. You have been participant #34 in my campaign to rid Slashdot of this error.
Proudly correcting Slashdot's most irritating linguistic error since 2002.
"Secondly, the real advantage of .NET is that you can write in whatever language you want to and use components from other languages in your .NET programs. Those are hardly minor advances."
On what planet is this an advance?
Ever hear of a thing called COM? Yes I was able to call components written in delphi from php go figure!.
Ever hear of CORBA? I believe it's been around a while and allows you to *gasp* use components from other languages even over the net.
.NET is simply the next way to write windows applications nothing more nothing less. It's useless for anybody wanting cross platform programming. I think more people are interested in writing for more then one platform then using five languages to write one program. The latter is simply a silly idea and a solution to a problem nobody has.
War is necrophilia.
With JVM you can also use other languages than Java, in that sence there is nothing new. The only difference is that SUN only supports and develops Java, and some others have developed other compilers to compile other languages into JVM bytecode (which has an open spec, so anyone can port any language which fits the JVM model). Just like .NET, the VM model does require some adaptions and constraints, which is why .NET does support C++ but only a subset (without multiple inheritance, for example, making C++/.NET virtually useless IMHO, realistically there is no reason to use anything else but C# on .NET, just as 99% of JVM users use Java).
.NET no matter what. Shops that value cross-platform have no other choice but Java/JVM. I don't think that competition on a technical level shall matter much (especially since technically spoken there are hardly any differences).
As for what developers like better: I fear that the biggest impact could come from "strategic" considerations instead of what developers like better: Shops targetting only Windows shall go the safe route, i.e. do what Microsoft says and develop for
Moderators, please mod the parent up. Sure it's an extreme opinion. This too is good if it is acknoledged as such. Seldom have I seen a post that manages to be so funny, insightfull, full of bile and honest all at the same time.
My Karma: ran over your Dogma
StrawberryFrog
MSDN Magazine had some interesting articles on the .NET garbage collection system, here and here.
Sad, but true. C# and VB.NET are so close to isomorphic that choosing between them is mostly a matter of whether you prefer symbolic or "natural language" syntax. Notice the number of long-standing VB developers who are trying to work out the relationship between the tool they've been using until version 6, and the new .NET version.
In fact, from the article itself:
I think the key thing is that .NET really only supports one paradigm properly: single-inheritance OO. C# fits that description, VB.NET has been moulded to match it, managed C++ is forced into it. You get the idea. I know it's theoretically possible to use other programming paradigms from this foundation, but surely the question is how well they are supported and how efficiently they can be done, not what could be done with infinite time and resources available. (Insert obligatory reference to the thread about functional languages on .NET the other day here.)
Consider an obvious example: if .NET is reasonably language-neutral, where is the support for generics? C++ has had templates for years, and they are one of its most powerful features. Java has a proposal that doesn't go as far as C++ templates, but does add parameterised type support to a fair degree. (Anyone know if that made it into 1.4 in the end, BTW?) In ML, functions are implicitly generic unless you specify otherwise. If .NET doesn't support such a fundamental feature, then it's immediately dropped an important aspect for all these languages.
Of course, how important the omissions are depends on your programming style. If you don't use generics, then this particular example is no loss to you. But it should be noted that the current trends in programming-language research are considerably ahead of single-inheritance "pure" OO designs. If .NET can't cope with multiple paradigms and newly developed idioms, it's not going to be leading edge for very long. The power of generic programming, functional programming and other completely separate idioms is being exploited in research already, and has been for some time. I don't think it will be long before they start hitting the maintsream, and then the limitations of .NET's architecture may be its undoing.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Well, except for templates, multiple inheritance, free functions, most of the standard library (which is templatized), and various other less significant but still important limitations.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
I am judging it by its technical merits, actually, and it is better than the JVM. For me, that is because it is designed to host more than just Java. (Believe it or not, I don't think that Java or C# are as good as languages get...)
Microsoft has never really fucked me in particular, though I do believe they're a pretty devious company. But I have to be fair, it's good when they roll out a technology that really should be there.
What if MSFT or Cisco had a strong push to roll out IPV6? I'm sure there are other vendors trying, but none can actually do it in such a broad manner. What if Ford or Honda decided to stop selling gas-powered cars and make only electric or propane? What if GE started selling only white-led lights? I'm happy when any company uses its market position to push something good, even if they are a shitty company otherwise.
No...
.NET more than the JVM is that I don't actually have to program in Java or C#, which I think are pretty mediocre languages.)
.NET will actually be widespread because MS makes it. That is a point in its favor. Java is fine, but it doesn't have the level of acceptance that it'd need before I would use it as my platform for a big project. (One other reason I like
I think it's pretty sloppy to characterize me as a MS-lover and VB programmer because I think one of their technologies is good. In fact, the only MS product I prefer over the competitors' is Windows XP.. I think I prefer Apache over IIS, LaTeX over Word, gcc over VC++, etc. (And I haven't programmed in QB for 10 years...)
".NET is also the collective name given to various bits of software built upon the .NET platform. These will be both products (Visual Studio.NET and Windows.NET Server, for instance) and services (like Passport, HailStorm, and so on)."
is misleading. Visual Studio and Server are not built on .NET, one is a dev environment and one is an operating system. Hailstorm is a ".NET application" and that type of application is the reason for .NET.
I could be wrong of course. Maybe .NET will turn out to be just a new runtime model...which seems a big waste of an opportunity. The only real advance I can see is that it gives Microsoft a chance to redo all their libraries so they do security checks...which is very topical, but doesn't seem worthy of all the hype about .NET
- adam
Or at least confusing. A JIT compiler is simply a technique for implementing a VM. Technically, a VM is a defined bytecode and data model, *not* a piece of software. To say that VMs always interpret is a terrible misrepresentation. Several languages - those that invented "JIT" technology, such as Smalltalk and Lisp - have referred to systems involving bytecode to machine language conversion as VMs since the very beginning. I don't see any reason to change that terminology now. Several MS representatives have referred to the CLR as a VM. Now stop confusing the issue.
You're wrong on the other point too. The CLR specifically supports the type system described by the CTS. IL's instructions operate specifically on those types. You can, of course, implement any set of language semantics you like, but it won't necessarily be either efficient or worthwhile. Why else do you think Meyer has cut Multiple Inheritance and covariance entirely out of Eiffel# ? The same goes for C++: only "managed C++" (C# that looks like C++) actually compiles to the CLR as a target, and guess what ? Managed C++ does not support multiple inheritance.
You really should learn what you're talking about before "explaining" it.
And I thought it was a simple statement of fact. Technology X existed at time Y. Language Z was invented at time Y+1. Language Z did not include technology X. Ergo, either the inventors of Z were ignorant of X, or chose not to use it. Its not exactly difficult. Take a day off and work it through for yourself.
What are you going to program in .NET? VB.NET? Eiffel#? I think that's all that's available now. Give me a break. You are fucking idiot if you choose your languages and technologies based on "biggest vendor" and "level of acceptance". Java has probably the biggest pool of developers in the world you fuckhead. I know of very few corporations that don't have at least one or two serious java apps. "level of acceptance" my ass. You are an ignorant, stupid, childish little boy.
War is necrophilia.
Yikes..
I plan on using SML.NET. Plenty of SML implementations exist, but none let me write win32 apps without lots of pain.
I certainly don't choose my languages based on the size of vendors and level of acceptance. In fact, I hate when other people do that too, since I am somewhat of a language lover. I'll reiterate: the main thing that
As for your assertion that I am ignorant.. well, maybe I am naive about the real world, but I do know a lot about programming languages. I'm currently working on my PhD in them, actually. I'm sure you are sad that
In its early days, before Java use was as widespread as it is now, such 'protect the young' efforts were needed. Java's been around for a while now, and attempts by MS to do what they did before would run up against a Substantial installed base.
So, what's the reason for not opening these days?..
The same reason as before. J# and C# are essentially efforts by Microsoft to take over the same niche that is occupied by Java. If Microsoft could slap the Java logo on one of those products, Microsoft could still use it's market dominance to take over Java.
If you are a phd candidate then please tell me your university. If they are willing to hand out PhDs to nincompoops like you I want to sign up too.
.NET implementation. "
.net implementation. Maybe some day there will be one but I'd venture to say it will be exactly like the the version of IE for solaris and the version COM for solaris, just about useless and outdated by several years.
.NET and C# will likely (well, who knows?) "
"I certainly don't choose my languages based on the size of vendors and level of acceptance"
I guess your last two posts mentioning the size of vendor and the level of acceptance were just lies then right?
"That will let me program for Windows (or linux, or whatever) in whatever language I choose, providing it has a
Right now there is no linux
"I'm sure you are sad that
.NET and C# will be used by the same people who use VB now. They will be used to build windows apps. Java will still be used to build apps that need to work on multiple operating systems. Nothing will change.
BTW. Yes you are still stupid idiot.
War is necrophilia.
The university is Carnegie Mellon University.
> I guess your last two posts mentioning the size of
> vendor and the level of acceptance were just lies
> then right?
No, I'm saying that a high level of acceptance and backing by a large vendor are good qualities, but that they hardly drive my language choice. This is clearly evidenced by my choice favorite language, SML, which is neither widely accepted or backed by a large vendor. Maybe I was unclear. What I am excited about is the likely popularity of the platform (essentially the CLR) so that I can target it with more interesting programming languages.
> Maybe some day there will be one but I'd venture
> to say it will be exactly like the the version
> of IE for solaris and the version COM for
> solaris, just about useless and outdated by
> several years.
Since
Malcontent, you're not making a very good argument. In particular, the attacks against my person rather than my ideas are childish and irrelevant. Others reading your post must think you have some kind of vendetta against me. What is up with that?
What I have against is that you you are moron. A nonsensical moron at that. First you say you choose .net because it's backed by the biggest vendor then you say that does not matter. you say silly stupid things like "Since .NET is actually documented, I think there will be plenty of people wanting to maintain a port to linux" which makes no sense at all. There is no port of .NET for linux. They may be one for freebsd but that's a big question mark. There is mono but it's two years behind .NET. The important parts of .NET is not only copywrighted by MS they are also patented. Those parts will never be duplicated.
Think before you speak or at least do some research for christ sake.
War is necrophilia.
I think I made it clear that I value widespread acceptance in a platform, but that it is not my only consideration. It's not even my primary consideration, though I don't know any mature platforms that can even hold up to
If you can't understand my posts, I guess it's not worth talking to you. Later.
PS. You mean "copyrighted", not "copywrighted"!
> My understanding is that
> have the same capabilities as C#.
Well, your understanding is wrong. SML (available as SML.NET), for instance, is a much more powerful and interesting language, and it is compilable to
It's true that other object-oriented languages can be compiled to the JVM, but the JVM was not designed to be language-neutral.