C# 2.0 Spec Released
An anonymous reader writes "Microsoft released the design specifications document for C# 2.0 (codenamed 'Whidbey') to be released early next year. New features of the language include generics similar to those found in Eiffel and Ada, anonymous methods similar to lambda functions in Lisp, iterators, and partial types."
Worst. Codename. Ever.
What are you talking about fool? MS is perfectly within their rights to create whatever they want, blame it on the pointy-haired bosses for assuming everything MS creates is golden.
2 Personalities, one body.Ok, I know I'm a bad coder for liking C sharp, but gcc should really support it - like it or not, college computer science people *are* learning it, and Free software should support it. In fact, supporting visual basic compilation wouldn't be a bad idea either...
Whidbey is the code name for the next Visual Studio, not just C#.
40 pages of why we know that we are better then you.
You've truely engineered something great not when you can't add anything more to it, but only when you can no longer remove anything from it.
Its great that they are adding new features. But are they removing anything that was decided to be a bad idea? Now is the time to do it, in the early versions shortly after its birth, before there is too much legacy code...
Will MS begin to use this for its own products like Office in the near future?
For those who can't get that link because it is a .doc document (what a shame on /. front page), you can still use OpenOffice.org to read it.
C# still sucks...
A message from the system administrator: 'I've upped my priority. Now up yours.'
Seems like a pretty limited spec.
All it says is:
Plugger: No approperiate application for type application/msword found!
whatever...
ie, Ruby does; Perl/Python do not
Trying to capture some of the Perl 6 fanbase, I suppose, with the every-language-feature-ever thing?
Just as well that this will probably be out by the same time Perl 6 is..
That is to say 2010..
Are they basically coroutines?
If so, that seems like a useful feature to have built in to a language.. I remember a while ago wishing that C/C++/Java had standard/nice ways of doing this..
Can someone who's more familiar with concurrent programming comment? (I haven't touched this kind of stuff in a while)
It looks to me at the first glance at the spec as if they took a lot more in from the C++ standard into C#.
The generic part is really just templates.
Lars Schouw
Will be Lisp.
Agreed. Java is very proprietary, and no decent free version of it exists, since some of the internals are undocumented. This is the reason I no longer code in Java, although I love some things about language (interfaces, for instance, and the API is generally documented very good).
How is the situation with C#, can you use this in a free-as-in-rms environment?
C sharp? Wouldn't this be the same thing as C with a plus? A C# is C + a semitone.
Me: "Hi, I Program in Sea Sharp!"
Pianist: "That piece was played in D sharp actually."
Ok, since I know they wouldn't name a programming language after a music note... It must be C Number
Doesn't C Number conflict? You're naming a specific letter but using the generic word Number. I mean, shouldn't it either be Letter Number, or C 8 or something? But C Number?
Me: "I program in Sea Number"
Someone: "... Sea Number what? 1? 2?"
I have ignored C# since its inception. I would be interested in hearing from slashdotters who have used it. What's good about it and what's bad? Of course, I expect nothing less than purely objective replies...
Actually, Whidbey is the code name for the next release of Visual Studio and .NET Framework. C# is just a part of it.
http://msdn.microsoft.com/vstudio/productinfo/road map.aspx#whidbey
And I'm right. Look at your sig.
Microsoft is hardly the only company releasing proprietary programming languages. Software AG's Natural is the one that comes most readily to my mind, but there are several others.
C# is ECMA standardized. Java is wholly owned by Sun. Sun has repeatedly balked at standardizing Java due to the inherent loss of control.
Perhaps there are potential submarine patents, but Java is absolutely vendor-tied while C# is at least relatively open.
Seriously, do they think that if they take every little feature of every other programming language, they are actually going to come out with something useful?
All they are going to get is a language that nobody will understand all of because its just too complex. Are they just out to sell the massive books and training courses that will be needed in order to learn C#2? Is this their plan to "lock in" universities to teaching microsoft programing to all levels, because it will take 4 years of classes just to cover it all?
If I have been able to see further than others, it is because I bought a pair of binoculars.
Certainly not Boeing I can tell you that. The other major beast in Seattle area says no to .NET. Without a question, Boeing has taken sides and is a Java player.
i'm about a third of the way through the doc and it made me realize how much i hate reading language specs.
That being said, the idea of "inference" of type arguments seems cool and usable, if not a bit abusable.
I don't know if its just me, but when did templates get cool again? I love templates in C++ and its interesting that java's introducing them and C# now is really focusing on them. That being said, i can't see a place where Partial types (where you can break a classes implementation into move than one class) could be really so usefull.
One thing i couldn't get over with C# is that its *so* much like C++, with all the syntax, keywords and such but with none of the speed. At work i'll use java to do simple stuff i could have done in C++ only cause java's just simpler. If java had the mass of features that C# has, i prolly wouldn't ever use them. but, then again, i'm a dba.
I'm still not sure why one would use continuations for well-designed code (kind of like labels in C++). I think the Ruby FAQ has the best statement on continuations.
-----
Ruby's continuations allow you to create an object representing a place in a Ruby program, and then return to that place at any time (even if it has apparently gone out of scope). Continuations can be used to implement complex control structures, but are typically more useful as ways of confusing people.
Integrate Keynote and LaTeX
All these fags whine because they can't open a .doc
Eh?
Perl 6 will have continuations...
h tm l
http://www.sidhe.org/~dan/blog/archives/000156.
You can already develop in C# for Office with Visual Studio Tools for Office.
Bill
It's my Sig and you can't have it. Mine! All Mine!
OK so I'm in the position of having to write an emergency support application for a M$-based system in a M$-based environment. Stuck in there. Completely. Been requested to make a maintainable, manageable solution. And yes, this is to say "make it for M$, with M$ tools as much as you can".
.NET, M$ introduced a quite nice API and Java language (come on, where are the real differences) into Visual Studio, which at least saved my day; I had found an acceptable programming environment for within Windows..!
I guess even within these circumstances, I'd have refused to open Visual Studio for this project, if it didn't say ".NET" as well. I mean, think of it: previous versions of VS only supported C++ or VB, with APIs to cry for (admittedly, I don't know about MFC, only about Win32).
I actually happen to dislike C++, but on top of that, it doesn't suit my project, because the low-levelness makes it harder to program without errors (e.g. null pointers, memory leaking). I'd rather have a language at a scripting level -- and NO, that's NOT VB. I hope I don't have to explain why I hate VB if only on very first sight.
So with
There's really no need for anybody to pick on C#, long as it's realized that it's just finally a nice programming environment for Windows, and nothing (well, not much) more. (BTW, it's not much different from NeXT (now Apple)'s use/ takeover of Objective C.)
"We can confirm that Debian does *not* ship the version with the trojan horse. Our version predates it." [CA-2002-28]
How is this deep level of generics gonna be realized in the Common Language Runtime? Or are these features just available in C#? And, if so, won't that break all the
I thought C# was the one that had the public standards body (thus a public standard)... unlike Java...
This is so exciting! Microsoft with their own language! I can hardly get the words out. Strains of Eiffel and Ada! Wow! How wonderful!
Microsoft are continually at the pinnacle of innovation in our industry, as we all know. That they should donate yet another technological breakthrough is simply too amazing for words.
Now anyone who believes a word of the above can get on a one-way Trailways to Redmond. In such case, they need you there.
java 1.5 will have generics and enumerator types. And the troll is not appreciated.
http://developer.java.sun.com/developer/technical
wow, that will they think of next?
The cheap update deal expired at the end of September IIRC, at least here in the UK. It was being featured fairly prominently on the MS web site and doesn't appear to be there now, so presumably it's gone elsewhere as well.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Java already has generics, dumbass. They're in the 1.5 release, which is currently in beta (you know, as in a downloadable IMPLEMENTATION, as opposed to just on paper).
.technomancer
niggaz can't program da shit. so sit yo punk ass down, b1atch.
object to dis, neeeeegro.
It's more like a stack frame object; or iterators taken to an extreme.
Um... the C# specification *is* a platform independent specification. Good to see that you got the "+1, Knee-jerk MS Basher" moderation.
"Times have not become more violent. They have just become more televised."
-Marilyn Manson
true dat, my nigggaaa.
It does make it a bitch for compiler writers. Writing one for C++ is difficult enough. I don't think I'd ever touch this one.
You must be mistaken. Real geeks don't touch C# or Microsoft by their own volition.
Furthermore, Geekdom and sports are not mutually-exclusive.
People who're looking for a job for instance ? Get real -- a programming language is nothing more than a tool to get the job done and not everyone is in a position to give a shit about ...
Removing something is very difficult. In fact, it is not recommended (unless it is a serious flaw or bug). There may be millions of developers using a particular feature or programming technique that is "bad". If you go and remove it, it could adversely affect all these programmers and their existing code. This is one reason why companies don't really remove features. Backward compatibility in software is absolutely crucial (especially when you force developers to upgrade to new versions all the time).
The best thing to do is to "phase" out the undesired feature by not recommending it, not featuring it prominently in books, shifting features into optional components that must be installed, etc.
I know this isn't exactly the ideal way to do things but I see no other way. I mean, if I was responsible for Visual Studio (or C# specifications), I would not remove features. Who knows who is using a particlar feature?
Sivaram Velauthapillai
Sivaram Velauthapillai
Seeking the meaning of life... @slashdot of all places
oh, yeah it is nice that C# the grammer and semantics are cross platform, but you will not get cross platform applications working. if you program for windows, it will only run on windows.
I am the Alpha and the Omega-3
Whatever.
If you don't code your windows apps in Assembly, then you're a pansy-ass bed-wetter.
It sounds like it's moving towards Python with the addition of Lisp-ish functions and itterators.
Any programmers looking at C#, I recommend also checking out Python, it is a wonderful language. Particularly with Win32 extensions (Windows-specific extensions, but most useful feature is an amazing editor / debugger, Pythonwin) Psyco runtime compiler and wxPython for cross-platform GUI building.
Funniest comment all day... too bad my mod points just expired...
Replace the references to Java below with C#:
-------
Sounds like they are adding a lot of features that the Dylan programming language has had since it's release (approximately 1995).
But whereas the features were elegantly incorporated into Dylan since the beginning and are consistent and easy to use, I suspect that in Java they are a hack.
Wasn't Java designed to be a simple language?
Anybody using it?
What exactly do you mean by undocumented? The language and virtual machine are fully documented, you can download the sources to jdk and libraries, and is much more open than C$, though less than others open source projects.
"I think this line is mostly filler"
Let's be sure to adopt and extend
lest someone come to close to us
Let's be sure to adopt and extend!
-- Multics
No, if you program for .NET, it will only work on .NET. If mono ever fully emulates the .NET API, a .NET application will be cross platform.
.NET to use C#, and if you don't it *will* be cross platform (provided you have a VM on that platform).
But you don't have to use
"Times have not become more violent. They have just become more televised."
-Marilyn Manson
It seems C# is trying to grab everything that makes other programming languages great and clump them together in c#. Why not just use those languages Eiffel is kick ass, just not to many people use it or know of it, and I always loved programming in ADA, there are already solid languages, and have pretty solid philosophies behind them, what is C# philosophy anyway?
See here.
First off, Whidbey is the next version of Visual Studio, which is designed to use the dotnet framework v2. The SDK will be released publicly around the same time, so those who prefer Notepad need not pay one cent to write dotnet apps.
n fo/road map.aspx
Secondly, generics, partial types, and such are being added to the CLR, as well as Microsoft's "first-class" languages, meaning that yes VB.NET will include them. VB.NET also gets operator overloading, native support for unsigned types, and in-line XML commenting.
You can read it all at the roadmap here:
http://msdn.microsoft.com/vstudio/producti
It tells about some of the changes to the IDE, the CLR, and the languages. One interesting new "feature" is a sort of grammatical analyzer for writing code that will suggest improvements or corrections, similar to the way word underlines misspellings or grammar errors.
Whether it will be a great tool or a bloody nuisance remains to be seen.
Natural != (nontoxic || beneficial)
The next version will of course have features from Esperanto, Mandarin, and Martian.
I'm all for extending a language, but they haven't had C# around enough to be larding new stuff on. The language already had several ways to do most things, now they're adding more?
If we wanted ten ways to do anything, we'd use perl. If we're not using perl, that usually means we like to be a little more constrained.
-andy
thanks! Your other post was also useful, especially the one about call/cc
If you were not who you were, you would me modded down faster then you can say goatse. hehe
But seriously I am installing the c# learning edition now and plan to install your mono on FreeBSD4.8 or 4.9 if the rumors are true that Fbsd 4.9 will be done this monday!
I use to hate Microsoft with a passion. Their products use to suck until quite recently. The win32 api is quite nasty compared to gtk+ but with
What worries me is api closeness. Yes Mono the last time I liked supportes some winframe types but I feel uncomfortable being closed into a platform which is why I may not chose c# for an opensource project. Also the EULA for VS forbids GPL development due to its "viral" nature. This also limits portability.
Also one of the benefits you described for Gnome before the mono project started that gtk can be used in different langauges. I would like to see java integrated with gnome. I believe in freedom and also Java 1.5 supports generics and other features of C# and other languages. I wonder if if Mono includes Bonoboo object support? Got to check that.
Sun is not standing still.
I bet with newer api's that focus on less code might help too. One of Microsoft's examples is the classic petstore program. ITs only 1/4th the amount of code from the Java version.
http://saveie6.com/
but I think that most people will think that C# from .Net will run in Mono.
I am the Alpha and the Omega-3
In response to the MS using this for its own products. I recently talked to a MS employee and apparently C# is being used to write all their products and actually the majority of the MS OS is being converted to C#.
In response to the MS using this for its own products. I recently talked to a MS employee and apparently C# is being used to write all their products and actually the majority of the MS OS is being converted to C#.
[snicker] [snort] I'm sorry, but you were misinformed. As a kernel dev (I'm part of the Core Technology team in building 27 at Microsoft's Redmond campus), I can tell you with all finality that we're not moving the OS over to C#. Our work is strictly in C, occasional C++, and assembly.
That said, most of the higher level APIs for things like drawing, networking and so on will now have a managed wrapper, which means you can write C# that calls them.
Also, many of our network servers like IIS, SQL Server, BizTalk and so on will support a managed assembly (that's just a managed DLL) that allows managed code to configure those servers. This, to me, is the biggest deal.
Also, some non-OS products will be using some C#, though the Office team has stated emphatically that they won't be rewriting Office in C# anytime soon. There are pieces of the Office team that use C#, but that's a little bit different.
Enums have been added, generics have been added, automatic iteration in for loops have been added, et cetera. True, it hasn't been released yet (the first Java 1.5 betas are due next quarter), neither is Whidbey, and the JSRs have been out for some time, and the prototype compiler with generic support has been available for months.
Here's a clue: null pointers and memory leaks are not "low level" problems--they're logic errors. Dereferencing a null pointer can happen in Java, and accessing a disposed object can happen in C#. Memory leaks and null pointers usually mean you aren't managing an object's lifetime correctly, and are typically symptoms of design errors (or minor bugs--off by one, etc.--which can happen in any language).
C# is like most MS tools--great for 80% of the work, but the last 20% is difficult or nearly impossible because MS didn't think of the problem you were trying to solve, and the language isn't flexible enough to adapt.
Finally, it is impossible to report errors in the implementation. When I found a serious error in the .Net runtime, I tried several ways to report it, getting no answer, or in the case of the microsoft.* newsgroups, assertions that I couldn't find bugs since the high-and-mighty MS and testers hadn't find it.
Sigh. Compare that to the people who hang out in comp.lang.c++.* -- I ran screaming away from C# as quickly as possible.
I didn't see it in the doc - the one thing that would really make this language a bit better - the "throws" keyword. Right now, you can't define an operation to throw an exception that the calling operation must catch. Blah.
If you are going to copy Java, at least get the important stuff in there..
My sig left me for a younger user id.
It sounds like the good ole greenback has caught your tongue.
If Tyranny and Oppression come to this land,
it will be in the guise of fighting a foreign enemy. -James Madison
Yeah, well the old adage doesn't take into account backwards compatibility. The idea is that you're not finished until you've removed everything you can, and you assume that nobody will be using it until you're finished.
Anyway, in this context, "remove" would roughly mean "deprecate."
The quote that the parent AC plagarized is from Antoine de Saint-Exupery, the French aircraft designer living in the first half of the 20th century. (And author of The Little Prince, if that hasn't been banned in America yet.) He was speaking in the context of original design, not individual features.
While the plane is still on paper, that's the time to remove all the unneccessary cruft. That's de Saint-Exupery's point. Not after the plane has been built; then the dependancy problems you mention arise. That's not the proper time. Certainly not in midflight.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
Insightful?
.NET have been commercially available since Feb/02 - you'd think by now the "nerds" here at slashdot would have a clue.
C# is BOTH an ECMA and an ISO standard. No one here knocks ECMAScript (oh - I'm sorry - you probably know it as JavaScript), C or C++ because they have all been standardized by at least one of those bodies...
While ECMA does allow for patent-encumbered standards it is my understanding that ISO does NOT. Anything standardized by ISO may be implemented by ANYONE - royalty-free.
C# and
If you're going to be all snotty about the whole thing, how about the fact that Enums are perfectly usable as-is in Java today? Read the section on enums in "Effective Java".
.Net would have it now of course but they were waiting to steal the polish specs from Java's JSR's (Hmm, if MS is stealing from Java's JSR's, how much more "real" does that make generics in .Net?)
.Net sites? Sure for toy stuff it works just fine. Try doing anything real though...
If you want to, you can compile Generic in Java today using the pre-release compiler and use the bytecode in exiting VM's (there are a few more subtle things you can't do without 1.5, but even so). The Generics support in Java has actually been ready to go for a few years now, if you want to harp on "reality".
C# is production quality, I guess... as long as you don't try to deploy it. Just ask Qwest about that (reason I'm posting anon). I think they might have an answer to your point three.
As to point four - are they really there yet? Where are the large scale
The best thing to do is to "phase" out the undesired feature by not recommending it, not featuring it prominently in books, shifting features into optional components that must be installed, etc.
Yup. Java does this. It is called "deprecated". For instance parts of the Date class have methods which are deprecated. The method's functionality has been moved to the Calendar class.
It still works, but the compiler gives you a warning.
- - - - - - - - - - -
I am a programmer. I am paid to produce syntax not grammar. Deal with it.
Its a spy *GET* him. /*pulling out the burnning torches*/
is the recommendation in the examples and in the official guidelines to use shorthand style of writing code. On a project bigger than 2-3 people, having thorough and accurate comments and documentation is very important for integration and efficiency. Microsoft still doesn't get the biggest challenge of large corporations. Managing code. Keeping the same f-ed up coding recommendations has to change, if Microsoft really wants to gain serious tracking beyond their core customers.
The real Miguel de Icaza is miguel (7116).
the growth in cynicism and rebellion has not been without cause
mmmmmm tasssssssssssty
Actually, C# is an ISO standard (ISO/IEC 23270), which is far more open than Java ever will be under Sun. Oh, and before you accuse me of kissing Bill Gates' ass, be sure to take Scott McNealy's dick out of your mouth first.
This is Miguel de Icaza? I don't think so. Look for miguel.
philcrissman.com.
"C# is ECMA standardized"
BWhahahaha, you fell for that, huh? Propaganda makes trolls all over the world.
From a commercial perspective i see this as a bad thing. just plain C is a fine language. c++ is really just encapsulation for C. Most people dont even use a small part of C++ or know how to use it correctly. The more extensions a language has , the more variation in coding styles there are and thus the harder code becomes to maintain increasing the probability of long term bugs. All these new language extensions just suck in the juniors into trying to learn everything without proper mentoring and thus ending in programming disasters.
All the new extensions i see are really just something for product differentation in the marketing department. Otherwise what are these companies going to sell. The only other possibility is to add more plugins but that makes it harder to differentiate between personal, proffessional and enterprise editions.
IT also allows discontinuation of old products which forces larger companies to buy more copies of the new compilers to keep things in the company consistent and maintain support.
Of coarse universities will get sucked into this as they have to use something to teach. whats more this will frustraite many commercial entities because they want experienced programmers in the languages they know and USE. Otherwise its added cost of teaching a new language and YES it does matter if your working for a company in a competative market. Things like this will only add a couple of years to many development cycles.
There are some areas where changes and extensions should be made. However this should be language refinement, not entire blocks of change to structure. Otherwise its a bit like chaos theory and who knows where we will end up.
Areas for change might include things for switchable support modes for things like handel C(maybe inline even) , albiet most here wont know what thats about, but would provide exposure to a large audience of alternative computation techniquire and potentially open up new markets and vastely increase perfomance while simplifying program structure. But that would be to speculative for shortterm shareholder profit.
All in all its just marketing, but too late the slippery slope is to slippery
greg
What a shitty school. What the hell is the point of learning Pascal->C? Pascal and C are basically equivalent, except hat Pascal is much more Obsolete. And what's the point of learning C before C++? You can do anything in C++ that you could do in C, and you often have to do crappy things in C that would be much cleaner in C++.
At our school C# is an elective.
autopr0n is like, down and stuff.
Seriously. Anyone believes Microsoft didn't apply for a series of patents related to this whole C# thing? Regardless of merit, of course, which seems to be something the USPTO doesn't care about.
And what's to become of Mono when their lawyers come asking for money?
Who the hell is the ECMA?
Look at thier site.
Aparently people cannot be members, only companies and universities (non-profit companies)
Why not an IETF standard?
They've served very well so far.
Sun has repeatedly balked at standardizing Java due to the inherent loss of control.
I was pretty sure that Sun had published a Java standard. How is a standards org comprised of Micriosoft and it's vassals any better? I was under the impression that the only company that had problems with the Java standard was the one company that had attemped to hijack the standard by implementing undocumented extensions and breaking Suns published standard in order to make users dependant on thier own crappy browser. (Before any of you attempt to defend IE, please try using at least one other modern browser.)
Have things changed so much that we can trust Microsoft and its "standards body" largely consisting of companies dependent on Microsoft to keep all extensions to this "standard" in the open and available to all players? Can we trust them to not later replace the "standard" with propietary replacements requiring either licensing or a switch of platform to a Microsoft product?
Microsoft has attempted to hijack widely accepted standards in the past, is there any indication that this copmpany even knows what the word means?
Read, L
Java announced Generics months ago. In all, it seems like the java stuff is more exciting, although the lambda-like stuff in C# seems interesting.
It's good to see commercial competition adding new features to commercial languages, although I hope they don't get so feature bloated they become like Perl.
autopr0n is like, down and stuff.
Continuations are very useful in AI; often they are the only clean way of implementing a "hold that thought", which comes up very frequently in (for example) natural language processing. If you are trying to evaluate a sentence "as the words are coming in" by building a semantic structure that represents the meaning so far, you generally will want to be able to rearrange the semantic fragments based on later information. For example, if asked to name "the tallest person you know" vs. "the tallest person you know of who was president of the US" or "the tallest person you know could exist", etc. the search algorithm you build after the first words have been processed will be much less efficient than what you can morph it into after you know more.
Why would you want to do this instead of waiting till the whole sentence has been processed? Because it more closely models how people actually think. People don't wait for you to hit "send" before starting to figure out the meaning of what is being said.
-- MarkusQ
Most people think that Windows programs will run in Linux.
;)
Oh wait...
From the C# 2.0 spec:
"When an instance of Stack<int> is created, the native storage of the items array is an int[] rather than object[], providing substantial storage efficiency compared to the non-generic Stack. Likewise, the Push and Pop methods of a Stack<int> operate on int values, making it a compile-time error to push values of other types onto the stack, and eliminating the need to explicitly cast values back to their original type when they're retrieved."
Java uses Object boxing for built-in types in their generics implementation.
Yankees lost.
C# to also feature T-expressions.
Fuck Beta. Fuck Dice
This is a specification coming out of Microsoft that hasn't gone through a standards body. Do we know whether there are any intellectual property restrictions on implementing the C# 2.0 specifiation?
It is a good sign that this document only has a copyright on it and doesn't require a license agreement to download. In contrast, the Java specifications you can only access under a restrictive license agreement that impose contractual obligations on you that go far beyond patents or copyrights (note to open source developers: don't access Sun's Java specifications--you'll be tainted).
But that still leaves patents for C# 2.0. Do we know whether there are any? ECMA C# (the previous version) appears to be free and clear, but what about this version?
They even chose to use the "yield" keyword. This is a way-cool feature of Python and now C#.
-elan
The language and virtual machine are fully documented,
.NET may be a proprietary platform, but so is Java. ECMA C# is an open and free language.
Yes, too bad that you can't make independent implementations of the language without violating Sun's patents and Sun's licenses on the specification (yes, the Java specification requires a license). (Of course, there are lots of third party Java implementations--Sun has been enforcing their intellectual property only selectively. But that doesn't change the fact that the specification is not open.)
you can download the sources to jdk and libraries,
If you are foolish enough to download and look at the sources to the JDK and the libraries, Sun has you in their pocket: any Java implementation you work on from then on may well be considered a "derivative work".
and is much more open than C$, though less than others open source projects.
That statement is implying that Java is somehow an "open source project". It is not. Java is a highly proprietary platform without even a free specification. And you are able to get the source code to Sun's Java implementation only under a restrictive, non-open source license.
For ECMA C#, the specifications are open and (as far as anybody knows) without any legal restrictions on them. Furthermore, Mono is a fully open source implementation of ECMA C#.
Microsoft
These features are important: generics are needed for type safety, but they are also complicated. Lexical closures are really, really nice.
In short, yes, any modern general purpose programming language needs these features, and Microsoft seems to have done a fairly good job in integrating them.
"If you can't do it in Fortran, do it in assembly language. If you can't do it in assembly language, it isn't worth doing." Read more: http://www.pbm.com/~lindahl/real.programmers.html
It's Sea Octalthorpe. I would've called it ++C, but that implies that something is actually more advanced than C.
.NET's pupose is not to allow Windows software to run on other platforms, but rather to help M$ capture more platforms. It's doomed from the beginning, and will be another forgotten buzzword within a few years.
Honestly why should one bother? It's neither portable nor natively executable. It's neither scalable to embedded systems nor to high-end servers. It has neither legacy code nor a bright future.
Mono is a good start, but M$ will fight it when it starts to show results.
I like Java, I like C, and I like C++. Each of them rock and suck in different ways.
You can't judge a book by the way it wears its hair.
Because them only important words you use.
You not need complicated words for talk.
I think he was asking whether or not MS was going to write the office suite in C#, not just make it available as a peice-gluer. I read somewhere that MS was going to write .NET versions of most of their client software, but not do it for things like the OS, SQL Server, and various other projects that deal with internals.
COM will never go away, but MS will do it's best to wrap .Net around it so that developers don't have to deal with COM.
You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
Um, vb.net pretty much destroys backwards compatibility with other vb code. I don't think MS is afread of breaking compatibility in the interests of code compatibility. There are many other examples. Just look at database API's. Breaking compatibility is a good thing that both Linux and Microsoft share.
Java is standardized via the very open JCP process. Read more about it here:
http://www.jcp.org/en/home/index
Several open source projects including Apache and JBoss are on the JCP committee, so open source definitely has a say in Java's evolution, along with all the usual suspects like Sun, IBM, BEA, and Oracle. If you want to participate, you're free to.
Now show me how I can participate in the Microsoft C# spec?
C# version 1.0 may be an ECMA spec but not version 2.0. Microsoft will eventually submit C# 2.0 to the ECMA, but it'll get into Visual Studio.NET before that happens. The MS C# 2.0 will become so entrenched that all the ECMA will be able to do is to rubber stamp whatever Microsoft says. Some community process.
One of the blogs I follow is Brad Abrams, the Lead Program Manager for the Common Language Runtime, and a lot of the posts are about programming interface guidelines and internal reimplementations, and the plusses and minuses thereof.
.net languages including C#, are certainly mutable already.
.net rises to the challenge.
So the original CLR features, and by implication their implementations in the various
Given the code-safety benefits of managed code, I'd imaging that Moft at least aspire to building their future headline products this way, and given the dogfooding tradition they're building, they've got plenty of incentive to make sure that
tomV
As is often the case with Microsoft, this *sounds* great. The reality typically turns out to be otherwise.
Expect an over ambitious plan with a buggy implementation and confused metaphors which don't necessarily fit with each other or with themselves, for that matter. However, undoubtedly, they will *sound* fantastic in powerpoint slides and when spoken of by the press, "Microsoft only" developers, and, finally, when compared to the "other guys".
The problem with Microsoft is, they market first, plan second, and then try to pick up the pieces third.
It is really unfortunate, but Microsoft isn't good for the computing industry anymore. Microsoft is only good for Microsoft. And principally this is because, Microsoft only cares about Microsoft winning, at any cost.
And they've been there for like three point-releases. Are they ever going to clean those up?
When does the platform-independent, platform-independent spec come out?
A rolling stone is worth two in the bush!
Yup. Java does this. It is called "deprecated".
As does .net, for example the switch from 1.0 to 1.1 changed XSL transforms, so using one of the old 1.0 methods would give
No one here knocks ECMAScript (oh - I'm sorry - you probably know it as JavaScript)
Here, watch this: JavaScript is a moronic, useless language with almost nothing in common with any other sane languages. It is slow, ugly, and difficult to parse. It has nothing in common with Java despite its name (which, might I add, is also stupid). It is retarded that Mozilla would use JavaScript internally, and I think that is a big portion of what makes Mozilla slow, bloated, and cumbersome.
There, do you feel better now?
Module Module1
Sub Main()
Console.WriteLine("Hello, world!")
End Sub
End Module
Can't tell if you're trolling or ignorant, but generics are coming in Java 1.5, and there's been an example implementation available from sun for about a year.
Free Java games for your phone: Tontie, Sokoban
But the C# 2.0 extensions are not part of that standard.
In each case, the retrofit sucks. All the stuff that should be generic in the standard libraries, isn't.
Can't anybody get this right the first time?
You're bitching that they're adding too many ways to do things.
Other people are bitching that Microsoft doesn't give you other ways to do things.
The obvious conclusion is that people here at Slashdot just hate Microsoft for ANY reason. It's immature.
"Sufferin' succotash."
Sorry to hear you have fallen for the M$ propaganda.
Most of the functionality of C# is in the libraries. Most of those are not standardized or even documented well enough to be reimplemented without getting a swarm of M$ lawyers crawling all over you.
"Standardization" of C# is a blindingly obvious propaganda joke. Have you noticed who is upgrading the C# in this very slashdot story? Hint: it ain't no independent standards body.
Ok, this is actually a .NET issue, not really a c# issue.
.NET, are text based streams, made up of 16-bit chars. When writing a (16-bit) char to StandardOutput it is converted to something else (UTF-8, maybe).
.NET, vim + .NET framework and the online MSDN reference is completely sufficient.
StandardInput and StandardOutput, in
Piping binary data from one app to another is a very non-trivial task.
These are the small "features" that make c# unsuitable for anyone "thinking UNIX". Of course piping through stdout/stdin is not needed: you can use remoting, sockets or whatever - but those make easy things hard.
Anyone who has written a c# program that uses stdin/stdout for binary data?
BTW, you definately does not need Visual Studio to program
1. generics
.NET languages will deal with this. For VB.NET programmers, using .NET classes implemented using C# generics must be a nightmare. I assume they will extend the other language specs in a similar way, otherwise you would loose the ability to mix languages in .NET.
2. anonymous delegates
3. partial types
Compared to Java, 1 and 2 are not new. 3 is new, but I don't see the point of it (essentially you can define a class/type in multiple files, but all must be compiled together so it cannot be used to extend existing classes (which would be bad)).
1 is only in the spec stage here, whereas for Java there is already a technology preview, i.e. a more or less working implementation.
2 already exists for a long time in Java, the Java pendant of delegates being an adaptor class, and you can use anonymous classes to do exactly the same that anonymous delegates will provide.
The spec for generics is (as is to be expected) quite complicated, there are more issues to be careful of than one might think at first sight. I really wonder how other
The result is that VB.NET shall become a complex language too, to the point that most traditional VB programmers have to give up. In that case I wonder, what is the use of alternative languages then?
Question - does VS really forbid GPL releases?
... ?)
Isn't that practically impossible to prove? (Take out the VS.NET comments in the program and deny all knowledge
I'm lost as to how/why a dev environment can dictate the resulting release license.
"It's not your information. It's information about you" - John Ford, Vice President, Equifax
without everyone bursting out laughing at him. :>)
I'm with you 99%.
DotGNU is an official GNU project and thus, has the full support of RMS and many others.
RMS even once said (analogously): "everything that compiles with ms
Except that you cannot run C# with a standardized graphical user interface on anything other that Windows.
.net environment could not have happened). Therefore it's the API's that count.
Maybe the language itself is more open, but the API surely isn't. Many OO languages are relatively similar (otherwise the
Pointer arithmetic is the next goto -- me.
Aye well, that's the price you pay for being (or trying to be?) cutting edge I guess... *sigh*
you can make you own knives for free
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
do you *really* think this design was an accident?
that would be the fully pateNTdead & pre-liesensed eyecon0meter, already in use almost everywhere.
that's right. this stuff is unbreakable, & wwworks on several (more than 3) dimensions.
welcome to the gnu millennium. despite repeated/increased/ongoing attacks buy the fraudulent refudlicking payper liesense softwar gangsters, the hobbyists' kode base has been chosen for use in the creator's newclear power plan, the wildly popular planet/population rescue initiative, & several 1000 other projects.
the daze of the felonious FUDgeLickers(tm) is WANing into coolapps/the abyss, at the speed of right (which may seem kind of slow at times). you know what they say about patience? get some, or be one.
consult with/trust in yOUR creator.... get ready to see the light.
open4free
So now that C# has aped Java, it is "borrowing" ideas from Eiffel, Ada, Lisp, etc.?
C# 2.0 Specification 1 C# 2.0 S 1 Anders Hejlsberg, Peter Golde, Shon Katzenberger .0 6 Generics, Anonymous Methods, Iterators, Partial Types e ene Normal.dot n Anders Hejlsberg us 130 Microsoft Word 10.0
no more comments!
It seems like after a decade or so of being stalled in the mainstream, new features are being added to commercial developmental languages and at a furious pace.
This is my sig.
"One of Microsoft's examples is the classic petstore program. ITs only 1/4th the amount of code from the Java version."
The .NET petstore is a joke and has probably done more to damage Microsoft's cause with Java developers they were hoping to convert.
The Java Petstore is there to show how to apply J2EE design patterns to build a layered and maintainable application.
The .NET Petstore disregards about 10 years of design theory and takes every short cut it can, hence less lines of code. Prime example is the SOAP interface, which instead of using an underlying data model layer, contains hard coded queries. Change the database schema with the .NET petstore and you'll be hunting through the code looking for what's been broken.
More: Petshop.NET: An Anti Pattern Architecture
There's alot of angry Java coders out there as a result, and these guys make alot of the decisions, these days, on where blue chip IT spending goes.
Well, what do you mean by "can no longer remove anything from it"?
If you mean "can no longer remove anything from it, and still preserve the semantics of the language", you've just described Scheme. Suffice it to say that not everybody think Scheme is the end of all languages. Scheme is super-elegant, but so unpractical to program in that everybody uses their own dialect which adds the features you need to do real-world programming. In this sense, scheme is like Pascal.
If you mean "can no longer remove anything from it that can't be simulated through other mechanisms with adequate performance", then you are basically looking at a minimal Forth. While great for embedded CPU's and programming for special Forth-chips, the language isn't exactly the ideal software engineering language. Chuck Moore's most recent forth, colorForth does for example not have any stack underrun checking. And no forth will ever have any kind of type system, you are always working on raw bits.
If you are meaning "can no longer remove anything from it, without loosing the ability to do anything at all", then you are basically looking at an assembler for a one instruction set architecture chip. While useful as an april fools joke, it doesn't really have any practical purpose.
There are plenty of languages that have "bloat" as part of their design. The idea is that features are useful, and users want them. Some classic examples are Common Lisp, C++, Java, Visual Basic, and Ada. All of these languages are either hugely successfull in the real world, or has a large academic following (or both). (PS: Yes I hate VB myself, but don't tell me it isn't important in the real world...)
Okay, no offense, but that's the worst description of continuations I've ever heard. It seems to be giving people ideas that it's like goto, which is a common reaction people have when they first hear about continuations. But it's not accurate. Goto manipulates the instruction pointer alone; continuations manipulate the entire stack in much more interesting ways.
I'm curious, but you definitely haven't persuaded me. You make it sound like there's even MORE stuff you have to manage with continuations than with GOTO.
microsoftword.mp3 - it doesn't care that they're not words...
Java's core language changes are decided unilaterally by Sun and no one else. All changes to the core language were done in this way: enums, generics, anonymous inner classes, to name a few. You're just buying into Sun's marketting machine if you believe otherwise. JCP is just a feel good group largely for proposing new libraries.
Do you have any good references for the turing-completeness problem with C++? I've always hated that language, and would love to find a good rationalization... =) I'll google around a bit, but figure you might have a specific paper or website in mind.
Oh, and thanks for the ever-cool fonts. I actually just made up a bunch of personal mailing labels by using tombots for a field in gLabels, so there's a random tombot (A-Z) on each one.
-${NAME}@${NAME}isanerd.com, where NAME=josh (and ${$NAME} is too lazy to find his old slashdot account)
After reading this I'll understand that C# generics really suck, big time, compared to C++ templates.
The constraints are really a pain in the butt, as you must specify what interfaces that the 'generic' type must implement, and not what specific methods of the interfaces that the generic type must implement. What you say, you may think: But if I wanted any type that has a method named 'void Print()' to be executed by my generic class, all of those types must implement a named interface (IPrintable). That is perhaps OK if I have full control over the source code, but whatif I'm using a library written by someone else?
If you don't specify a constraint the 'generic' type will effectivly be of type Object, and we all know how much we can do with the type Object. Hmm, let me think, oh yeah: ToString. No need for generics there.
The examples in the spec are also mostly container class examples, wonder why? Perhaps that the generics of C# can't do anything but (or mostly) container (or container like) classes.
People will tend to use whatever language they already know, and what language they already know will be shaped by what their schools chose to teach them. A good OSS C# compiler would be a very good thing.
Try opening the word-format file in different wordprocessors.
In Office XP on an XP machine the pagenumbers for the chapters in the table of content does not line up vertically!
Also there are no space in between the chapter and sub-chapter numbers and their titles in the table of contents. This one can be either a file-format problem or plain bad taste
They do line up in OpenOffice 1.1 on Windoss XP .
In StarOffice 5.2 on Linux the "Table of Contents" header in on a page by itself before the page with the content of the table of contents!
It is interesting that M$ thwmself cannot manage to create word documents that look correct on the most recent version of their own products ie. Office XP on a Windozz XP machine!
In case anyone reading the parent didn't get it, that means that the C# implementation of generics will have a strong efficiency advantage over Java's b/c boxing/unboxing is a costly operation.
Amazing magic tricks
Recall some time back a fiasco regarding the University of Waterloo and Microsoft? Basically, MS gave Waterloo $2.5 million to design a few new technologies for them, as wel as integrate C# into its core curriculum. Well for the time being, C++ and Java remain the primary languages of instruction (remains to be seen what happens with Sun). What Waterloo did is offer a pre-introduction to computing for all students (engineering and otherwise) as they're coming out of high school. This course is taught in C# and covers such mathematical puzzles as counting to 10, counting to 10 by 2's, and counting backwards from 10. When the students in engineering actually get into the program, it's right back to C++ for the real work.
Those are very nice feature. I particularlly like "generics similar to those found in Eiffel and Ada", but I'm not even going to look at it.
Why? Because of patents. I don't know just what patents MS has, but they have said that they will use them to contol "their property" in response to a question about C# migrating to other platforms. I don't necessarily believe them, but on this kind of statement I tend to give them the benefit of the doubt. Of course, they'll wait until it's most advantageous to act, so their not having done anything yet doesn't prove anything. They don't need to do anything until the code is nearing release quality.
I think we've pushed this "anyone can grow up to be president" thing too far.
Note carefully that it really is Microsoft that is specifying the language, not any independent standards body.
Thanks to slashdot's idiotic comment nesting, I thought you were replying to something else.
autopr0n is like, down and stuff.
I don't know C#, but you have to write something like enum Name { ... } in C# as well, don't you? I don't really see how this is an advantage over having to write class Name { ... } in Java.
You can do typed enumerations in Java by using the typesafe enumeration pattern.
Basically a typesafe enum is a class with a private constructor (so no new instances can be created) and all the actualy constants are declared as final class members. Like this:
This allows you to do really nice things. For example, you could add some instance variables and methods to the class to add additional information to the constants (of course, initialize all the variables in the constructor and don't have any set methods, or your constants won't be constant any more!).
You have to be careful if you want to use serialization or similar stuff. You might want to take a look at Martin Fowler's great book "Effective Java," which describes this pattern and a huge number of other useful things. The typesafe enum description is in chapter 5, which is available online as one of four sample chapters.
Of course, even with typesafe enums, you still have to do lots of typing (even more, actually), so your point (b) might still be an advantage of C#. I think the JDK 1.5 will add support for creating typesafe enums in a more simple way, though.
As I said, I don't really know C#, but still, from what I've heard about it, that's also the impression I got. I think Microsoft took a look at all the things Java didn't quite get right, and did them in a slightly better way. If I wanted to write a Windows-only application, it's very likely that I would use C# for the task. Or Python :-)
Sig (appended to the end of comments I post, 54 chars)
The biggest chunk of any language is it's vocabulary. In this case it's API.
There are OSS J2EE projects (Jboss, Jonas, Jakarta's new project).
And then there is this purely proprietary thing called MBF - Microsoft Business Framework.
BTW to emphasise that the beef is in API, not language, let me remind you that .NET Framework can be programmed in many languages (C#, VB.NET, Managed C++, etc.).
What other nearly-irrelevant subset of the beef is standartized by ECMA? Ones-and-zeores maybe? You know: "our systems are open, 'cause they are based on "ones-and-zeroes" standard" ;-)
Anyway, ECMA seems to be almost a joke in terms of freedom of their standards: http://techupdate.zdnet.com/techupdate/stories/mai n/0,14179,2832719,00.html:
And it appears that ISO (C#/CLI are ISO standards too) is no better: http://www.imaging-resource.com/NEWS/1027527673.ht ml (JPEG no more?):
So what is a safer bet, OSS Java or .NET? Of course .NET, because it's closed and thus patent-torpedoes-invincible - can license patented technology, unlike all those open J2EE projects...
I'm sure it's better to suffer proprietary lock-in than potentially-deadly patent threat. Right?
Yet, even MS can be torpedoed successfully once in a while (e.g. that plugins patent hitting IE).
Software world seems to be a mess with no clear future perspective.
[Sorry for a somewhat-messy/offtopickish post.]
For people thinking UNIX - have Microsoft fixed argv[] passing yet? Its seriously broken under every MS platform I've tried. Its a legacy of DOS, where apps got the whole command line and each implemented its own way of handling quotes. In UNIX I can
system('a_command','arg','arg with spaces',
'a quote \" here',
'oh look \" another one')
and expect the called program to get the arguments that I passed correctly. On Windows - its completely useless.
My (limited) understanding of continuations is that they are the same as coroutines. There was a very interesting article in MSDN Magazine about extending .NET with coroutines by using fibers and native (C) interop.
Don't like a library? Download another.
And bloat your executable size. And fill up RAM with various applications' competing libraries that do roughly the same thing. Not everybody can afford 512 MB of RAM, especially on a handheld, battery-powered device.
Will I retire or break 10K?
Granted, Microsoft's offers scope for efficiency, but all of the 'boxed' java types are final, so you could, with extra work, do exactly the same for Java. If you had a good inliner then a call to a List that immediately called intValue() could be optimised away, and equally, when an Integer was explicitly needed one could be generated as needed.
But, yes, it would take a LOT of work to get a Java implementation to be this efficient.
For collections of primitives *only*. And the cost is run-time bloat (in C#). Pretty much a wash, I'd say.
[
Microsoft .NET may be a proprietary platform, but so is Java. ECMA C# is an open and free language. .Net or other alternatives rather than use C# alone. .Net.
But to most people want to use the platform, not just the language. Microsoft thinks so, otherwise would not give C# to ECMA. I'm not telling C# is not good, I mean that by market presure most users will go to
Java the platform may not be an open source but still is "more open" than
"I think this line is mostly filler"
You make it sound like there's even MORE stuff you have to manage with continuations than with GOTO.
In a way, there is. There's also more you have to manage with function calls than with GOTO.
Continuations let you capture an object that remembers "where am I going next". This includes not just the instruction pointer, but also the return stack. Common applications exceptions, coroutines, and nondeterminism. I'll present some examples, using a mythical, vaguely C-like language with the following syntax for continuations:
This saves the continuation of the block in varname. It will return the result of the block in something. The continuation can be invoked with invoke_continuation(varname,value). Note that this would store value in something.
Now, let's use this to implement exceptions. We're navigating a file tree, and want to find the first corefile.
This looks similar to the try/catch/throw that some languages provide, and that's what we're implementing here. I know, you could use return values to do the same in this case. Remember that I'm making short examples.
Now let's implement something that exceptions don't allow: nondeterminism. This example is similar one in Paul Graham's On Lisp, but has been heavily adapted for an imperative language.
> C# is ECMA standardized. Java is wholly owned by Sun. Sun has repeatedly balked at standardizing Java due to the inherent loss of control.
I suggest you write the following lists side-by-side:
On the left, list the companies with members on the standards committe participating in defining the specification of upcoming versions of the Java language (JSRs 14, 175, 176 and 201). Count how many times each company appears on these lists, too.
On the right, list the companies with members on the standards committe participating in defining the specification of upcoming versions of the C# language.
Sorry, I've been told that everything will be great in the next version of Java since 1995 now and ignoring it has become automatic.
But don't let that stop you from telling me all about how Swing will be realllll fast and responsive in 1.5. While you're doing that, I'll catch up on some TV.
Whence? Hence. Whither? Thither.
I believe that the quote is "You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." ("La perfection est atteinte non quand il ne reste rien a ajouter, mais quand il ne reste rien a enlever.") It is my favorite quote, by Antoine de Saint-Exupery. See http://www.westegg.com/exupery/#quotes
Remember that old idea of backwards compatibility?
Removing features of any significance usually means turning the language into a new one.
Remove pointers, multiple inheritance, enumerations, templates, structs, and some other stuff from C++ and what do you get? Java minus garbage collection.
Freedom is the freedom to say 2+2=4, everything else follows...
fix the god damn IDE and release a decent source control solution before upgrading this language!
I find it interesting that the new C# language is really streamlining the implementation of common design patterns. Use of patterns like an Iterator, Facade, Observer, etc. is simplified through language constructs like collections, interfaces, events, and more. You'd do well to read up on a topic before resorting to criticism.
I know I am getting a bit off topic here but can anybody tell me (or point me to) what are the important differences between the two and how do they affect programming in these languages?
Yeah, being ECMA standarized is a being very standarized. Like ECMAscript, that, like everyone knows, works the same everywhere :| ...
Frankly, I prefer java's way in which 99'99% of applications work the same in sun's vm, ibm's vm, linux, windows,
Offtopickish? Ooh, I *like* "offtopickish".
So, putting aside the syntax, this would be a little like coroutines or even WinAPI Fibers?
That some people here think it is important that Java has had two of these features already, albeit in a far less efficient form for generics, is neither here nor there. I do not use Java. I'd have to pay for a decent IDE for it, while Visual Studio .NET includes all the languages I need for serious windows development. Eclipse, in case you were going to mention it, doesnt function usably on two monitors.
However, since I used to be a compiled-code snob (i.e. ASM,C or C++ but no byte code!), C# has opened my mind to Java, and I'm looking forward to gnu's own byte code implementation. C# will remove many barriers in peoples minds to using Java. Personally, I find C# easier to use, and I look forward to nice, fast generics.
Yet MS has find a way not to say they are building a Java clone :o)
;-)
;-)
AFAIK, genericity is something that Java is already about to offer in 1.5 (begin of next year). Early implementation are already offered for test on java.sun's site.
So again, MS is pushing FUD
Like at the time that starcraft was going out, they push some "mighty" picutre of the new age of empire that was "about" to be released. But that proactically never came to life but 2 years later !!!
Reality is not MS but FUD is.
By the way, who cares about C#
If i were you i will just go back at my books and read the JSR, and test the implementation before pushing posts like this ey ;-)
... this is non-sense, so please stop pushing it.
.net is a Java platform clone, that was pushed by MS because they could not lockdown the original. It has some advantages, but the fact it is windows only and supported only by MS make it future-less (on a middle term basis).
.net will not be anymore in IT memory within 10 years (but at redmond's museum with MSX & OS/2 success stories ...)
"We all know Bill will be the next pope as he is god on earth, and C# is the bible, and VS.net the salvation for a better world that will be peacefull and perfect without war, terrorism !
In a way, if C# has come 4 years before, Irak civilian would not have collapse under US bombs, and newyorkers will still enjoy the twins !!!"
I told you
MS
Java might not be the future, but what i am sure is that MS
Poor bill !
By the way, did you know that Windows 2003 is out ? (because it seemse that nobody carez !)
That's not the real Miguel de Icaza.
This guy's journal entries give him away (clippy a good idea? come on...) and besides, the entries in Spanish were obviously done using some lousy translation software since they barely make any sense, and Miguel's native language is Spanish.
Go hug some trees.
"clippy a good idea? come on..."
S ep tember/msg00817.html
check out this message in the gnome archives:
http://mail.gnome.org/archives/gnome-list/1998-
clippy es una idea fantastica
Before adopting WHATWG, read the moonlight.NET EULA [http://www.microsoft.com/interop/msnovellcollab/moonlight.mspx]
And the cost is run-time bloat (in C#).
Not really cause the type bloat is small. There only needs to be one type for all reference types and one for each value type. Also, you don't have the overhead of boxing and unboxing with *every* access to the collection. That's not just a memory overhead, that's a performance overhead that java has to deal with. It can be reduced by caching common values, but still will be higher than C#'s generics implementation.
Microsoft do do one thing better than anyone else, and that is backwards compatibility.
They won't be removing anything.
Doesn't anyone else (if anyone is still reading this thread) find the fact that the new reserved words, are context sensitive? That yield may still be used as an identifier in non-sensitive places. Just me, but I thought that language class I took years ago would have said thats a 'bad thing' for readability.
No, I cannot agree with you at all that C++ is broken.
It is "complicated" due to its expressiveness. The STL is generally well designed (and the folks at Boost are continually improving upon it).
It is popular because its templates allow generation of high quality code that matches C for speed, but is light years beyond in type checking (provided that you tell your compiler to do it). It's also popular because it's OO works well - it's a common misconception to cite C++'s lack of a single root object hierarchy as a flaw - Bjarne Stroustrup gives some compelling reasons for C++'s lack of it (in his FAQ - can't remember the URL).
I do admit that I miss anonymous classes and functions in C++, and I often find it easier to write a for loop than to use something like foreach (which takes a start and end iterator and a function to apply) simply because writing a function is a pain if you just want to print names in a list!
The final reason for C++'s success is that it is not bound to a particular vendor, and this is a major deficiency of C#. I'm not blasting M$ here - this is true for any vendor.
"I hate people who fabricate unintelligent quotes to add to their work seemingly by some 'anon' sage" -- anon
While I agree with you fully, the practice is different.
I'm no Java/Sun zealot, but Sun simply commits to Java being multiplatform, and works with other vendors to do so.
It seems microsoft's only multi platform interest is in getting the avg windows app less x86 dependant, and some WinCE experiments. (which is still WinCE)
Mono is very fun to watch, but unless the avg windows generated app actually works on it, it is useless. If I need to specially craft the app by not using certain constructs and assemblies, I might as well keep using C/C++, which is also portable when I specially craft them