Microsoft's New Language 601
We've been buried in submissions about Microsoft's new programming language. Here's one of them. Brohamm writes: "Microsoft has created a new language called c# (pronounced C-Sharp). It's supposed to look like C but has the same concepts as Java. Looks like they gave those J++ developers something to do. Check it out at CNet."
C variants (Score:2)
Do we have a link for "C#" yet? If you search for "C#" with the main Microsoft search engine, all the hits are irrelevant, as you'd expect.
Re:Java Virtual Machine is not tied solely to Java (Score:2)
Take it from a Visual Basic programmer. The models are too far apart. Theoretically, if VB can compile to its own p-code, it can compile to Java bytecode. But the resulting executable would simply blow goats. VB always was, and always will be, a Windows-only development tool. This has allowed MS to highly optimize VB for Windows. It's not meant to be portable.
Besides, Microsoft is leaning more toward C++ with VB. Starting with 5.0, VB added native x86 support by compiling down to VC++'s object format, then using VC++'s linker to produce the
Here's the final nail in the coffin. I just came back from VBITS, and Microsoft's VStudio product manager was there. He delivered Monday's keynote, which was a preview of VB7, and moderated a Q&A that night. When asked about the future of "Java" at Microsoft, he said this: Sun's lawsuit against Microsoft (which is, admit it, nothing more than a pissing contest) has J++ tied up in knots right now. Microsoft can't make a move in the Java space without conceding to Sun, which billg's pride won't let him do. Therefore, C#. All of the language benefits of Java, without Scott McNeally's MS-wannabe oneupsmanship.
Of course, all of this talk about C# is speculation right now. I'm eager to see the details, especially considering that there was not a word about C# at VBITS. Plenty of SOAP (which is a very Good Thing, BTW), but no C#.
Every day we're standing in a wind tunnel
Facing down the future coming fast - Rush
Re:Wow! Where have we seen this before? (Score:2)
I mean, what's with the blind devotion to WORA concept? I mean, what's wrong with taking the nice language java is and allowing it to take advantage of the underlying platform. sure java was intended to be WORA, but why stop other people from being able to make it do *more things*.
The entire point of Java is that it will run anywhere. Take that away and it becomes just another OOL that is almost but not quite like C++. We don't need another one of those.
Re:Embrace & Extend Again (Score:2)
Wrong analogy. That's not the point I'm making. My point is how Sun, not once, but twice, went to two standards bodies (ISO and ECMA) to start the process of making Java a standard. In both cases Sun pulled out of the processes at the 11th hour. I don't have any complaints with Sun controlling Java as long as it is understood up front that this is their intention to do so, and they remain consistant about it . I liked the langauge even before Sun made the grand announcement about seeking standardization, which helped further Sun's cause. It is my feeling that Sun cynically played not only on anti-Microsoft sentiment to further their own position but on the strong pro feelings many have about open standards. It was a one-two combination that helped grease the skids of acceptance in a lot of quarters. Once Sun was assured of its position, however, it realized it had no need to complete either of the standardization processes; they had achieved what Microsoft has achieved, a defacto lockin in a lot of organizations. And many of us felt used because of it.
The ends never justify the means, not even when fighting against Microsoft. When you use Microsoft's tactics, you're no better than they are.
Re:C "pound" (Score:2)
"Remember, it's spelled 'C#', but it's pronounced M-O-R-E-C-R-A-P-F-R-O-M-M-I-C-R-O-S-O-F-T."
--
Re:This acronym is a no-brainer (Score:3)
Why not get the stoners on our side with GANJA? Cuz Ganja Ain't No JAva, mon.
< tofuhead >
Documentation? (Score:3)
I mean, we all know it ain't for geeks until there's an O'Reilly book, right?
Re:Wow! Where have we seen this before? (Score:2)
are confusing Java the programming language with Java the operating environment.
Actually, I am aware of the distinction. Usually when people refer to just Java, they mean the language, bytecode, and a VM that will run it as specified in Sun's documentation.
By 'extending' the language, MS came up with something that would only work with MS products, which violated the intent of Java.
If I write something in ANSI C adhering to posix specs, I expect it to COMPILE and RUN on any posix system with an ANSI C compiler (provided that I stick to libraries available on all platforms).
For Java, the compiler is expected to accept only standard source, and compile it into bytecode that runs on all compliant JVMs using libraries that will also run on all JVMs.
gcc does have several non-standards in it, but it doesn't purport that you can freely use those extensions and expect all to be well with other compilers. OTOH, it is more portable than MS Java since there's a gcc for just about anything these days at no cost. How many platforms does MS support?
Go away, learn IBM COBOL (as used on MVS), learn ICL COBOL (as used on George 3), and then come and talk about language pollution :-)
I'm not sure I want to know! COBOL is painfull enough as it is.
Re:Other evil waiting in the wings... (Score:2)
I personally love the idea of reducing the redundant tasks C++ COM programmers have to go thru.
It's not MsFUD unless Zico posts it (Score:2)
I like Sams, McGraw Hill and Prentice Hall.
Sams would go to people who made electronics and get technical information from them and use that to compile repair manuals for TVs, Radios, and other electronics.
You could get repair manuals for the Commodore 128, The IBM PC and many other companys.
Now a days companys have become paranoid. Oh my ghod someone might use that information and make a compeating TV set.
Anyway O'Reilly is very populare and even used by Microsoft employees.
They document such things as Microsoft Windows, BSD (Hah sorry Zico they DO have a BSD book) and the palm pilot.
Zico is basicly full of it... allways is... He has some agenda. No he isn't some Microsoft plant or from the Krull invasion force.
He has some stake in this. It's probably some stake in Microsoft but that might not be the case. Maybe it's just that you could code crud on a stick and sell it for Windows but couldn't give it away on Linux.
Anyway O'Reilly is known for having Lary Wall on the payroll. Not for writing Linux books.
They see themselfs as compeating with "Dumbies" books so when the populare title shifts out of tech books into self help books you find "In a nutshell" not far behind.
Along with Dumbies and Nutshell I also recomend Sams "Teach Yourself" books...
Zico should have gotten "Teach yourself Labotomy in a week" instead of "Labotomy for Dumbies".
C More-or-Less - was Re:C--, Anyone? (Score:2)
***New Subject Oriented Programming Language***
C+- (pronounced "C more or less")
Unlike C++, C+- is a subject oriented language. Each C+- class instance, known as a subject, holds hidden members, known as prejudices or undeclared preferences, which are impervious to outside messages, as well as public members known as boasts or claims. The following C operators
are overridden as shown:
> better than
> much better than
forget it
! not on your life
== comparable, other things being equal
C+- is a strongly typed language based on stereotyping and self-righteous logic. The Boolean variables TRUE and FALSE (known as constants in less realistic languages) are supplemented with CREDIBLE and DUBIOUS, which
are fuzzier than Zadeh's traditional fuzzy categories. All Booleans can be declared with the modifiers strong and weak. Weak implication is
said to "preserve deniability" and was added at the request of the D.O.D. to ensure compatability with future versions of Ada. Well-formed
falsehoods (WFFs) are assignment-compatible with all booleans. What-if and why-not interactions are aided by the special conditional evenifnot X then Y.
C+- supports information hiding and, among friend classes only, rumor sharing. Borrowing from the Eiffel lexicon, non-friend classes can be
killed by arranging contracts. Note that friendships are intransitive, volatile, and non-Abelian.
Single and multiple inheritance mechanisms are implemented with random mutations. Disinheritance rules are covered by a complex probate protocol. In addition to base, derived, virtual, and abstract classes, C+- supports gut classes. In certain locales, polygamous derivations and
bastard classes are permitted. Elsewhere, loose coupling between classes is illegal, so the marriage and divorce operators may be needed:
marriage (MParent1, FParent1);
sclass MySclass: public MParent1, FParent1
{
sclass YourSclass: public MParent1, FParent2
divorce (MParent1, FParent1);
marriage (MParent1, FParent2);
sclass YourSclass: public MParent1, FParent2
{
Operator precedence rules can be suspended with the directive #pragma dwim, known as the "Do what I mean" pragma. ANSIfication will be firmly resisted. C+-'s slogan is "Be Your Own Standard."
Easy to use? (Score:2)
I live now in mortal fear that GCC will support this.
"The Microsoft Language" (Score:2)
Can't wait to hear his take on d-flat.
Re:Embrace & Extend Again (Score:3)
Cars and programming languages have a very different tradition. AT&T Bell Labs is the creator of two of the most popular programming languages in the world: C and C++. The development of both of these languages is guided by the appropriate ANSI committe. Ditto FORTRAN, ADA and many other languages which are managed through standards. Languages like Python, Perl, Scheme and TCL are not managed through standards, but their reference implimentations are open source, and thus wide open to the community.
That leaves two newcommers as the tidings of an unfortunate trend: Java and Coctothorpe. These languages are strictly managed by their "owners" (as if one can own a language in the first place). This leaves the future somewhat uncertain for those of us who have always assumed that it was obvious to all that open standards are the way you manage a programming language.
It's fairly moot anyhow. The correct response to Coctothorpe is to evaluate it's usefulness and, if it is deemed worthy, write a GCC front-end for it or (if it's interpreted-only like Java) then a run-time implimentation can be written and open sourced. Until our government (which in the case of intellectual property is rapidly becoming the UN) gets stupid and declares languages patentable, we're OK implimenting our own Java and Coctothorpe.
lots of existing alternatives (Score:2)
Well, if they manage to come up with a language definition that is as decent, efficient, and simple as Oberon or Modula-3 and they manage to make it successful, that's still a big win for everybody. For systems programming, C really needs to be replaced by something that is a bit safer without being a lot more complex. But given Microsoft's track record on language design, I won't hold my breath.
Re:Oooo, garbage collection! (sarcasm) (Score:2)
People have found all sorts of uses for C++ constructors/destructors, but when it comes down to it, C++ is the oddball language there, and destructors in C++ cause all sorts of problems.
Re:Oooo, garbage collection! (sarcasm) (Score:3)
Re:Objective C? (Score:2)
Actually... (Score:5)
When they say C# is language-independent, they're actually talking about the underlying object model, libraries, and runtime platform. It shares the same runtime platform as VB (called the "URT"), and there's no reason any language in general couldn't be made to compile to the URT. In case you haven't heard, Microsoft is also completely revamping the VB language. C# and VB will be almost identical in terms of power and what you can do with them. It seems to me that C# is more or less just an alternative for the people - including most developers at MS - who simply don't like using VB, and, as has already been pointed out, a response to Java. Even the developers at Microsoft admit (amongst themselves) that C# and Java are practically identical languages on the surface. But really, it's more or less equivalent to the new VB, it just uses a C-like syntax.
They also are producing something called "managed C++", which is mostly a bunch of hacks to the C++ language to allow programs to compile and run on the URT. They are pretty much betting the company on this new platform. The language independence comes from the fact that all managed code (anything that runs on the runtime) uses the same object model and can share libraries. WFC has been implemented on the URT (written in C#), and it also has a bunch of system libraries which are all pretty well designed. The reason they say it's cross-platform is because everything is compiled to run on the URT, not natively. In theory, the URT can be ported to other platforms, and immediately any app that runs on it will run on those platforms. In the future, pretty much EVERY Windows app will run on the URT, so this is a good thing. The libraries for it are very rich, so there's no reason an application would need to use any Windows API calls or the like. The only real problem, of course, is that the URT will still be proprietary and controlled by Microsoft. However, it's not the mess that COM was (despite the fact the it was originally called COM+ 2.0), and may be easier to reverse engineer. The fact that it abstracts away pretty much anything that's Windows-specific (no more registry, among other things) certainly is a good step towards portability.
In my opinion, the platform Microsoft is working on now is by far the best progress they have made in a long time, and it's long overdue. They've realized that the current Windows development model is broken, and has no future, especially as the Internet takes over. Instead of trying to continually extend what they've done before, they're pretty much completely abandoning the existing infrastructure. They are throwing backwards compatibility out the window, which is what they needed to do a long time ago. Unfortunately, due to the DOJ stuff, I wouldn't be surprised if the public never even sees the fruits of these efforts. I've never liked Microsoft's software or many of the things they've done, but this is something they've got right. I really dislike what they're intending to use it for, which is to offer software as a service over the Internet, but as a development platform, the URT is exactly what the world needs right now. Of all their major undertakings - and this is one of the biggest - it's probably the first which is truly well-designed with the potential to last for a long time.
A lot of this progress on the URT, C#, WFC, and such can probably be attributed to Anders Hejlsberg, the mind behind Borland's Turbo Pascal and Delphi who moved to Microsoft a few years ago to be the WFC architect.
Modula-3--all the taste, none of the calories (Score:2)
Re:C variants (Score:2)
Terminology problem. See the OOP FAQ [avalon.net] for the full taxonomy of forms of polymorphism.
The key issue is this: if B is a subclass of A, and A does not declare foo but B does, can you call foo on an A if the A is also a B? In Java, C+@, and Smalltalk, the answer is yes. In C++, the answer is no. This is why C++ needs templates.
We don't know yet which camp "C#" is in. Probably the "yes" camp; the run-time overhead is higher, but the language is simpler.
Re:Apparently, you don't read music. (Score:2)
Re:C# != Db (Score:2)
I believe you are correct.
No correction of mine would be complete without another error.
C--, Anyone? (Score:5)
C-- is intended, as the article suggests, as a "portable assembly language."
There actually are some implementations available in source form.Microsoft may produce some software of frightening quality, but that doesn't mean that the people that they hire are ignoramuses, but merely that:
CO(B)OL (Score:2)
_________________
JavaScript Error: http://www.windows2000test.com/default.htm, line 91:
Comment removed (Score:3)
True (Score:2)
Hmm -- good name! (Score:5)
So C# could also be pronounced "C Hash", or simply "Cash".
Methinks it's the same guys who named WinCe...
Source Code =) (Score:2)
.- CitizenC (User Info [slashdot.org])
Java Virtual Machine is not tied solely to Java (Score:5)
The JVM was created to support the Java language, but there's no reason that you must use Java to write for the JVM.
In fact, many other languages have been written, compilers to target the JVM bytecode format. Also, the JNI (Java Native Interface) grew out of Netscape's support for C APIs to call into, and be called by, JVM bytecode.
I wonder if Csharp/Dflat/Chash/Cpound/Coctothorpe might be targeting Microsoft's JVM implementation, which has gotten good grades on speed, or if it really is a whole new virtual machine.
Microsoft doesn't appear to be claiming that the new language is free from entanglements with the operating system. In fact, if their "C#VM" were to make it easy to use COM/VBA automation, and to use native C# programs as clients and as services, it could be a win for them.
I think they're missing the mark, though. Sun's reluctance to allow their JVM to be managed by an outside standards group, and Microsoft's reluctance to follow outside de facto standards, both played to this announcement.
Good god -- have they thought about this at all? (Score:2)
C# Falls Flat
Microsoft hits a sour note
and so on. Perhaps they took the view that smart people wouldn't even touch the easier ones.
Yeah, except that... (Score:2)
As for the Ob. Recursive Acronym, I propose BINJ, unless you're a fan of Vernor Vinge, in which case you might prever RINJ, SINJ, or (esp) KINJ.
The only interesting question is this: (Score:2)
Re:Another M$ ploy to co-opt an existing technolog (Score:2)
C# haikus (Score:2)
old ideas becoming new
through # defining
c# -- a wrap of
15 year old libraries
macros everywhere
Microsoft again
finding more ways to abuse
the preprocessor
Operating system independence? Huh? (Score:2)
Uhh, it sounds to me like this is Windows-only. What [virtualcrack.com] the hell are these guys smoking? It runs on Windows 98 and NT 4 and 2000, so that makes it OS-independent? Unless Microsoft ports it so it runs on Linux or Mac OS X or something, I don't see how anyone can call it OS-independent.
G# anyone?
--
Oooo, garbage collection! (sarcasm) (Score:3)
Really, a C++ smart pointer class is a trivial thing to write and gives you all the same advantages. I wrote one in 100 lines a few weeks ago and it works just as well as Java's garbage collection. The article seems to suggest that this is one of C#'s greatest features. Hmm, kinda like W2k having that "symbolic linking" thing.
------
Insecure (Score:2)
And I don't even have to mention that the evironment (at least initially) that a C# program would run in would be written by M$ (motto: 64k is enough bugs for everyone). Remote root exploits galore.
Those Of You Who Thought I Dissed Java... (Score:2)
...because I'm pro-Windows will now be shocked. Here's what I have to say: GO AWAY.
Don't want another syntax. Don't need another syntax. Like C. Like C++. Hate most everything else.
Why? Two words: Content obsolescence. That's all Java ever did for me. Great... another language to learn. Blow me. Take your C-# (c-pound) and POUND IT.
C Sharp..... (Score:4)
Troll? (Score:2)
If it hadn't been modded down to -1, would it have started a thread of more reasonable posts which would have considered the circumstances and motivations surrounding M$ new programming language vs. those surrounding Sun's development of Java? Those of us who read at -1 have seen it happen.
Is stating an opinion about some language, OS or company really trolling? If this guy posted a comment that said "MS sucks" or "Windows sucks" and got modded down -1 flamebait, I could understand, but whoever this AC is, his post is at least on topic and relevant. He didn't post it 500 times in a row, and he didn't craft it to look like a normal post only to change halfway through to a post about NP or grits or whatever. I don't think it's a troll.
-jpowers
Re:Documentation? (Score:2)
"it ain't for geeks until there's an O'Reilly book"
doesn't mean
"if there's an O'Reilly book it is for geeks"
you know the whole Socrates is a man thing
Basic Logic - but I'm sure you knew that already
Re:True (Score:2)
Molog
So Linus, what are we doing tonight?
Re:M$ sucks fp?? (Score:3)
Wouldn't it be good to wait until the language is actually unveiled before you bash it as "crap"?
You're new here, arent you?
Re:Java Virtual Machine is not tied solely to Java (Score:2)
Re:Embrace & Extend Again (Score:4)
Er... what?
Stroustrup has approved the language by the way. Just thought you'd like to know.
You might find out why if you compare C# to some of Stroustrup's bitch list in "The Design and Evolution of C++"
Simon
Re:Documentation? (Score:2)
Re:Real list of features: (Score:2)
They actually pulled this with VisualStudio 6.
You know, the one that had the next version of InterDev 1.0, called InterDev 6.0
Microsoft Language (Score:2)
Place your bets!!!! (Score:2)
From the PHP-FAQ:
Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.
While the CNET article doesn't mention Web scripting, where else does this "C#" go? VB and VC++ are used primarily for stand-alone apps, while MS only has VBScript and JScript. Do they want to establish a wholly new server scripting language? Considering that classical CGI is impractical on NT/2000, server-side scripting is the only niche they can exploit. Given the wealth of tools available in the UNIX/Linux world, it'll never be popular there.
In fact, I'll bet that this new "language" will resemble BASIC (or maybe even FoxPro) in syntax more that anything else. Maybe it'll use C++ and JAVA functions, but it'll never be called innovative by anyone familiar with the industry.
As far as being a JAVA killer, developers should not forget that being familiar with multiple platforms makes you a more valuable programmer. The Microsoft world is just one of many worlds in the UNIXverse (couldn't resist the pun). It'll be just one more thing the MCSE, MCD and other MS cult members will get certified in only to watch it fade away in a couple of years.
Re:C "pound" (Score:2)
It's true, there are too many languages !!!
garbage collection (Score:2)
Fact:
Reference counting is NOT the same as garbage collection. Reference counting cannot collect circular data structures that have been disconnected from the program's active store (like a circularly linked list or a graph).
Opinion:
Garbage collection is a really nice feature for a language to have. Since I program in ML (my favorite advanced programming language), I never have to deal with memory errors of any kind, ever. Garbage collection also opens the way for type-safe languages, so that we can write programs which are guaranteed not to crash. This is another really nice thing (also supported in ML).
M$ the monopoly...moderate this up! (Score:2)
Overall, I think C# will have to find a niche to be successful, and I certainly don't think that niche will be scalable, web-centric systems. Java's greatest weakness is it's performance on the client side. Maybe there's room for another cross-platform language there, but then AWT and Swing are fairly entrenched.
BTW - Anybody notice how the article lied about the Sun lawsuit? Check it out:Now that's BS if ever I heard it. Microsoft could easily update its Java products at any time, so long as they honor their contract with Sun and make them JDK compliant! But instead, they decide to kill what could have been a great product and put something else out instead.
If you put a racing saddle on a jackass, it's still a jackass...
This acronym is a no-brainer (Score:5)
Re:C "hash" (Score:3)
" C#" rhymes with CRASH!
I see blue already
Security? No i18n in Java? Wrong. (Score:2)
Goodhew added that C# allows "developers (to) access any hardware and software." C# provides "complete access to (the) underlying platform."
Great... I get to open up all my devices to the web... how secure is that? How am I supposed to know if I should grant or deny when a box pops up that says:
This web application has requested access to your hardware. Would you like to grant it? (y/n)
I mean, I could "just say no" -- but then I might miss out on a jolly tune! WTF?
I can smell the viruses brewing from here.
Another quote from the article:
It provides operating system independence (which Java provides), but it also provides language independence, which Java can't provide.
"Language Independence"? That statement is a bit vague -- so I am not sure what this guy is trying to say, but if he is talking about i18n, he is just wrong! Not only does Java have i18n support, but it would also be trivial to implement in any language that didn't. What the heck does this guy mean?
Re:Documentation? (Score:2)
The Cure of the ills of Democracy is more Democracy.
Re:garbage collection performance (Score:2)
Most garbage collectors work by sweeping over the active areas of the heap, and copying anything which is reachable. So, the cost is linear in the amount of memory you're using (it never really detects circular structures; it just never copies them).
But consider:
My current area of study is programming language/compiler design, and I can testify that practically nobody publishing in journals these days cares about "old fashioned" ideas like C. Basically everything we know to be done to optimize C code has been done to death. "New fangled" languages are the future (er, duh). Mainly, these languages are built around elaborate type systems, which give the compiler and programmer a way to reason about a program without running it. It's lots of math stuff that sometimes gives the compiler the ability to make optimizations that would be impossible in C (because more is known about the way the program behaves while compiling).
Home-brew memory management (malloc/free, new/delete) are unfortunately a big problem for these static type disciplines, since the contents of memory is very dynamic. Garbage collection lets us design these type systems more easily, and gives us more power.
So, not only is garbage collection extremely convenient, it also enables other really nice language and compiler features, some of which can speed up your program even if GC slows it down.
Same concepts as java? (Score:2)
SOmehow.. I doubt it..
Re:C "pound" (Score:2)
That's because most *n[iu]x scripts, including shells and Perl scripts, start counting at 0... $# is the # of the last argument, not the total of the list. (It works well when you are counting arguments from a single command, because the command itself is 0, so $# will equal the number of args that follow the command.)
Prof Nyarly on Garbage Collection (Score:2)
That your grasp of Java (and garbage collection) is rudimentary is made obvious by the forgoing statement. Out of fear that there are other's who disparage garbage collection for lacking destructors let me throw this into the thread.
Using a destructor in a garbage collection scheme would be like writing top level functions under object orientation. Like C++, yes. The point, though, is that the collector takes care of your allocated and unused memory on the fly without interference. And while it feels weird to create objects and then leave them to be collected when you start Java (or other GC environments) the idea is that, much like the register directive, delete is a thing of the past; the machine should know best how to deal with it.
Finally, the result of run time checking and garbage collection is a debug cycle shorter than the coding cycle. And even though you might disparage the specific implementation, that's a result that's very very nice.
To be sure, I code a lot more in C++ than Java, but that's because I'm looking at final run speeds, not development turnaround.
Ushers will eat latecomers.
Re:Documentation? (Score:2)
Really? Where can I get the O'Reilly book on Chicken Eating, then? And, more to the point, what animal would they choose for the cover if they did decide to include carnival geeks in their customer demographic?
Ushers will eat latecomers.
Re:C "pound" (Score:2)
Re:Embrace & Extend Again (Score:3)
Re:C# != Db (Score:3)
Ooo... so close, but not quite right.
You are more right that the person who is insisting they are not the same on "non-fretted" instruments.
Tonality of notes used to depend on the scale you were playing, and the position of the note within the scale. All notes were perfectly tuned relative to the tonic note, or "root" of the scale. The problem with this was that an organ tuned to play in the key of G-sharp would sound badly out of tune if played in the key of E-flat.
During the baroque era, the concept of the "tempered" instrument came about. Octaves, fourths and fifths became universal across the keyboard, and the seconds, thirds, sixths, and sevenths were all tweaked so you could change keys and still have a perfect fifth sound like a perfect fifth. Tempered keyboards were not perfectly in tune in the traditional sense, but the change was needed to meet the demands of modern compositions.
When the means to measure sound frequencies came about, things were locked down even tighter (which is why "middle A", the second fret on a guitar, is often called "A 440).
Today, C-sharp and D-flat are played with the same key on the piano, same fret on a guitar, and are generally considered to be the same note... However, in the context of a performance a good musician will adjust the pitch of the note ever-so-slightly to fit with the intonation of the ensemble and melody (if they are singing or playing an instrument that allows it).
So to sum up... yea, it is the same note spelled differently - most of the time.
Re:C--, Anyone? (Score:2)
Oxymoron?
As everyone knows... (Score:5)
Re:Forget MS, we need this (Score:2)
You'd want C then, wouldn't you?
Java is not an appropriate replacement for C for system programming.
Try "C" for that, it's quite good.
For example (my biggest peeve), Java lacks an unsigned data type.
I think C has that.
I think it would be great to have a language for system programming that was cleaner that C++ and without the limits of Java.
Well, you could use C++ and not use the unclean bits.
People talk about native compiled Java, but let's face it, the language is very tied to the JVM. It is not designed to be a system programming language like C, with it's non-specified sized data types, non-defined byte order, etc that you need for maximum efficiency.
No, you're right; best stick to C, then.
Only people who don't understand the differences between Java and C++ could possibly see this as a competitor to Java.
Only people who can't understand the similarities between C and C++ could see this as a competitor to a dead cat.
I would ask people to not condemn it just because it's from Microsoft.
Can we condem it for being pointless?
Let's wait to see what pops out.
That's the sort of reasoning that got John Hurt killed in Alien.
there are few companies with as much experience with OOP than Microsoft.
There are few companies with as much experience in screwing their customers, but I don't think that's a reason to wait to see how they're going to do it next.
TWW
C-addled? (Score:2)
Now that I think of it, why not get technical and use the famous Bell Labs technical term for #? Oh wait, that would make it Coctothorpe. Not much of a ring to it.
How about... (Score:2)
See? A little profanity and it's ten times funnier... right?
Saturday Night MotherFucking Live!!!
hmm, ok it's gonna take a bit more work than that...
--
grappler
hahaha! (Score:4)
awesome! this must mean they're releasing visual studio for solaris, linux, and all the *BSD's!
Thanks, microsoft! You kids are swell!
--
blue
Re:C--, Anyone? (Score:4)
Simon Peyton Jones and other nice people from MS Research release a Haskell compiler called GHC. It is open-source, multiplatform (Wintel, Linux and many more), and uses GCC as a backend. Did the previous sentence surprise you? They designed C-- because C does not serve well as a backend for a functional language like Haskell.
Haskell [haskell.org] is a cool language BTW.
--
*Yawn* (Score:3)
Yet another uninformed anti-Java rant.
Speaking as someone who has written a couple hundred thousand lines of Java code and seen that code work without tweaking, first time, on OS/2 and Macintosh after developing it exclusively on UNIX and testing it on Windows, I have to disagree with this 'almost not cross platform' assertion. Scratch that, I really have to laugh at it.
The trick to cross platform coding with Java is that you have to code to the set of API's that Sun has published and standardized. If you do that, and if you don't fall into a hole that Sun has left in their API's, you're fine. Someone has to define the greatest common denominator of portability, and Sun's been doing a surprisingly good job at that.
I will be very interested to see if Microsoft will even attempt to define a substantial set of runtime API's for the C# runtime or whether they will just provide COM and SOAP and claim that that's good enough while encouraging everyone to use COM-wrapped Win32 to get their work done.
I'm quite looking forward to seeing what Microsoft actually has in this C# and whether they actually have something new and innovative. All the blather about C# not being a response to Java is obvious nonsense, of course.
If Microsoft attempts to duplicate the Java API set with C#, then they will be open to all the same criticisms of platform definition and limited service coverage that Java has been since it was created. If they attempt merely to provide clean access to operating system API's with really decent runtime #ifdef and #include type functionality, so that the same piece of code can conditionally execute sections of code based on the underlying environment, while still sharing the high level logic and providing a Java-like code distribution framework *and* just enough runtime functions like threading and garbage collection, then they might have something which might really swing the pendulum away from Java.
They'd have to standardize it, though, after screaming at Sun for four years about that.
Interesting times ahead.
Ermm.... (Score:2)
C# is three semitones higher than Bb. The even-tempered western scale goes: C,C#,D,Eb,E,F,F#,G,Ab,A,Bb,B
Nick
Another M$ ploy to co-opt an existing technology (Score:3)
"C# is Java by another name," said Steve Mills, general manager of IBM's software division.
If Microsoft can't make their own flavor of Java, and call it Java, then they'll just do the same thing, and call it something else ("C#"). This is a very typical strategy from M$: mirror an existing technology, add enough "features" that it's not compatible, then use their market clout to shove it down everyone's throat.
Re:C "pound" (Score:2)
Perfect! We can just agree that the "-H" in "C-Hash" is silent.
Practice saying it with me: "This app was written with Microsoft Chash."
Re:C "pound" (Score:2)
This comes somewhat naturally (pun intended) for those of us who read music.
(# is the musical symbol to augment a natural note a half tone, making it sharp)
Re:Embrace & Extend Again (Score:3)
Calling "C#" an embrace and extend play on Java is like calling Java an embrace and extend play on C++. In either case they are simply two competing OO languages with a common base (C-style programming). I actually welcome this. Hopefully Microsoft will make their technology multiplatform (not holding my breath, but..). It would actually be a GOOD thing to have a serious Java competitor out there to light a fire under Sun's collective asses.
Not portable enough... (Score:2)
The reason is that the C standard had to be open to the use of C for quite a lot of specific applications, notably including embedded applications, that aren't really representative of of the "portable assembler" intent.
In addition, C-- adds in semantics relating to memory management, garbage collection, and such, that C actively eschews, and which C++ left out for so long that it seems unrealistic for it ever to cleanly address.
This is really good news, actually.... (Score:2)
For whatever reason, which we don't really need to know about as we are just programmers, Microsoft is not supporting Java wholeheartedly on Windows. So what if they come up with their own language, as long as it's got some really neat technical features like what's in Java? Cool, I say. At least Microsoft know how to get the best performance out of Windows and in the end we all benefit.
Face it, we are all going to have to learn this language sooner or later. Our management will see to that. Windows is the most common OS on this planet and if we want to continue to earn a living, this language is in our future.
Let's be practical, gentlemen.
Real list of features: (Score:4)
Re:Apparently, you don't read music. (Score:2)
I'm not thinking about sheet music when I'm programming. Maybe I should ?
C-Sharp? (Score:2)
Db - D Flat: The same as C Sharp, yet extended a little further
Ebbb - E Triple Flat: Even cooler...cause it uses more musical notations then all other programming languages ever developed
oh..and since when are programming languages equated with musical notation?
The _results_ may be oxymoron... (Score:2)
Just because it's fun (and easy!) to bash the parent company does not mean that the research division is composed of hairy-backed, knuckle-dragging cretins.
Re:Response to Sun Suit? (Score:4)
MS Java's incompatibilities weren't mistakes at all. They were part of the normal embrace, extend, extinguish strategy that they rely on. The only flaw in their plan was that Sun stopped MS before they could completely extend Java. At this point it's probably easier for MS to invent a new language than to find more ways to tear down Java.
Revenge of the Coctothorpe (Score:4)
Dreamweaver
Re:C "pound" (Score:2)
Re:Embrace & Extend Again (Score:3)
And I'm sorry you got modded down by someone who can't differentiate between a legitimate question and a real troll. I'd like to know who moderates comments so that we could moderate the moderators.
Gotta love the quotes... (Score:3)
Good intentions, yep. Sounds about right.
"Microsoft has its own unique programming model with Visual Basic..."
That's putting it mildly.
"Combine it with the Web services (Microsoft) is announcing and you get powerful stuff.
Oh no!
Okay, I'm stopping right here.
Powerful + Easy-to-use => Dangerous
Anything about "Security" has to be marketing. If it's Powerful, and it's Easy-to-use in the Microsoft sense, and on the web... then you're going to be in BIG trouble, Real Soon Now.
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
C pound, C hash, C octothorpe, C number, ... (Score:3)
Any number of names come to mind.
"What is in a name? Arrows by any other name would kill just as swift."
It's all so clear now! (Score:5)
Dreamweaver
Quotes (Score:5)
I did not kill Nicole Brown Simpson
I did not have sexual relations with that woman
This is not a response to Java
Re:Another M$ ploy to co-opt an existing technolog (Score:5)
Either the Open Source community rewrites Java (calling it by a different name, of course, to avoid trademark problems - [Something] Is Not Java) and then everyone has an open standard to write to; or, every large commercial concern rewrites Java, and then instead of one proprietary language, we have three or four.
Microsoft has been public about their C# ('COOL') plans for a long time. After a recent standards battle, IBM is grumbling about creating their own Java too. Venture capitalists are probably circling around a few Java-clone startups as we speak.
So, if we break this down further than Sun/Java = Good and MS/C# = Evil, you'll realize that Microsoft isn't really doing anything more than what other vendors will do eventually.
I used to work for the Borg (Score:3)
- C# is just the latest name. COOL was the original code name, which was later changed to Safe C. They are all the same thing.
- At the time I left, they had no intention of being cross-platform compatible.
- They ARE trying to get a good RAD environment going. It is intended to fill that space between VB and VC++. If you want to crank out a fast GUI (for example), and hate MFC and VB, then this is for you.
- They've moved the WFC stuff from Java over to this new language. WFC is really nice to work with IMO.
- The execution engine (they don't call it a VM) is damn fast. Not native, but pretty good... faster than J++.
When it gets released, give it a try before you knock it. I think most people will be pleasantly surprised.
Re:As everyone knows... (Score:3)
Wow! Where have we seen this before? (Score:4)
Let's see. We have a new product from Microsoft that:
It's the whole Microsoft strategy in a bottle again. I guess that their attempts to embrace and extend Java aren't working, so now their offering their Windows-only clone instead.
COOL (Score:4)
There are a couple of problems with Microsoft coming out with a cross-platform language and expecting everyone to use it instead of it's competitors (C,C++, and Java are all reasonably well supported across most platforms.)
1. Microsoft isn't well known for good cross-platform support. Their new SOAP XML standards are a good start. However, the technologies VB, COM, and MFC extentions were quite well rememberred as terribly non-cross platform, even though they claimed COM was (and claimed NT was POSIX compliant).
2. There is a good deal of heavily entrenched and saturated languages like Java and TCL already poised to defend their positions.
3. Microsoft is more weak than ever in claiming "This is the future." Their future is quite uncertain now, even if they fix a deal with the Justice Department.
-Ben
(P.S. This sounds like a computer language made for people who played flue and programmed C before, and now want to try object modelling their computer synthesiser.)
Wrong name... (Score:3)
--Shoeboy
(former microserf)
FYI: What's next for next major version of Java... (Score:3)
C# != Db? Depends on your tuning (Score:4)
That's right, because fretless string players don't play exactly in equal temperament. In equal tempered tuning, which almost all Western instruments are in, C sharp is the same tone as d flat. In just intonation, however, they are subtly different.
Quick primer on tunings, because it's not common knowledge (it is pretty offtopic, but germane to this thread): our old pal Pythagoras discovered that pitch is directly related to the length of the vibrating body (a string, an air column, etc.), and that the simplest ratios of the lengths of two strings are consonant. The most consonant ratio is 2:1 (an octave), followed by 3:2 (a perfect fifth), etc.
To get a scale, start at any pitch and find the next note one perfect fifth up, then the next, and so on until you reach an octave equivalent of your first note, which is your key. Find the octave equivalents of all of those notes and and you've got your scale. This is called just intonation. The only problem is that you're stuck in one key on that instrument, because the octave equivalent isn't exactly an octave equivalent.
To get around this, various methods have been created. The one that caught on was equal temperament (although well temperament was popular in the baroque era--hence the title of "The Well-Tempered Clavier"), in which the intervals between consecutive pitches are equalized, and certain close pitches are made equal (E# F, C# Db, etc.). In essence, every note in an equal tempered scale is a wrong note! They're just close enough that it's not particularly jarring.
---
Zardoz has spoken!