Christopher Smith on 14 Oct 2003 14:36:18 -0000 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
[ALACPP] [Fwd: [herb_sutter] Announcement: C++/CLI -- Upcoming appearances] |
Okay, I admit that I felt darkness pass over me when I read this. Still, it sounds very interesting. -- Christopher Smith <x@xxxxxxxx>
--- Begin Message ---
- To: herb_sutter@xxxxxxxxxxxxxxx
- Subject: [herb_sutter] Announcement: C++/CLI -- Upcoming appearances
- From: "Herb Sutter" <hsutter@xxxxxxx>
- Date: Tue, 14 Oct 2003 13:53:00 -0000
- Mailing-list: list herb_sutter@xxxxxxxxxxxxxxx; contact herb_sutter-owner@xxxxxxxxxxxxxxx
- User-agent: eGroups-EW/0.82
In this issue: Announcement: C++/CLI Upcoming appearances: USA, WA "The Future of C++" Nov 10 Panel discussion with Herb, Scott Meyers, and Andrei Alexandrescu USA, WA "The Future of C++ on .NET: A Tour of C++/CLI" Dec 10 _____________________________________________________________________ ANNOUNCEMENT: C++/CLI http://www.gotw.ca/microsoft For the past year, I've been working on something that has now become public, and I hope that it's an important statement about the future relevance of C++ on modern platforms. In particular, I think it demonstrates that C++ is alive and well in the industry in general, and in particular that it's alive and well (and the subject of heavy and continued investment) at Microsoft. Increasingly, we are writing programs targeted to modern environments characterized by a virtual machine with garbage collection. Leading examples include the JVM and the .NET CLR (ISO CLI, or Common Language Infrastructure, is the standardized subset of the .NET runtime environment and frameworks class library). But Standard C++ has no notion of now-fundamental concepts like garbage collection. Is C++ simply obsolescent? No; it can be cleanly extended to directly support these modern environments. Further, C++ actually offers compelling advantages that can make it the language of choice for your application, even on the "home turf" of newer languages specifically designed for these new environments. The Managed Extensions for C++ (aka "Managed C++") were only partly successful. They achieved an important goal well: The ability to take existing C++ code and just recompile it with /clr and have it running on the virtual machine, and then to start adding .NET features and types. Unfortunately, they achieved other goals less well: As soon as you tried to add .NET types and features to your system, the syntax was uneven and sometimes just weird (e.g., T* meant three different and incompatible things depending on the type of T), the extensions looked ugly (e.g., __keywords), and they lacked first-class support for some fundamental CLR features (e.g., __property decorations on individual member functions that the compiler would cobble together for you, instead of a property abstraction). More importantly, MC++ followed what I call the "two worlds" hypothesis -- it did expose the important CLR features, but only for CLR types, not native types; and it did not expose native C++ features also for CLR types. The two worlds were grafted together, not integrated. This has been a constant source of surprises to programmers who always have to remember the list of things that don't work, or work differently, when using CLR types. Well, we've been working on it. My current job is that I'm the lead architect for the language design team, and together with bright people both inside and outside of Microsoft (and names you would recognize), we have come up with a design for the .NET extensions that meets all of the following goals: - provides an elegant (and uniform!) syntax and semantics that give a natural feel for C++ programmers - provides first-class support for all current and upcoming .NET features (e.g., properties, events, garbage collection, generics) for all types including existing C++ classes - provides first-class support for C++ features (e.g., deterministic destruction, templates) for all types including .NET classes - preserves ISO C++ standards conformance (by adding pure extensions, but also in a way that we don't need to use "__" keywords) (See also http://www.gotw.ca/microsoft .) Further, we're not keeping it to ourselves: On October 6, 2003, a new ECMA standards committee was formed to create an open international standard for "C++/CLI," this set of extensions to C++. Formally, C++/CLI is a binding between ISO C++ and ISO CLI; the announcement is at www.ecma-international.org/news/ecma-TG5-PR.htm . This is important because it specifically enables other compiler vendors to implement the same extensions _and_ guarantee that they can fully interoperate. For those who are interested in seeing the shape of the project, we will be making the proposed standard's base document (the "starting point" document) publicly available on November 15, and I'll post a link to it in a future issue of this newsletter. Then, starting in December 2003, the new ECMA committee will take over the base document and craft it into a consensus standard, which Microsoft will track (i.e., we will incorporate changes the committee makes into our product). The participants are tentatively planning to complete the technical work by September 2004, which would let the ECMA General Assembly vote on issuing the standard in December 2004. I'll post more news bits and links as they become available. I'll also be giving more talks about this language extensions design over the coming months; for more details as events get scheduled, see my "Talks & Appearances" page at http://www.gotw.ca/presentations.htm , and you can also watch the "News" page, http://www.gotw.ca/news.htm . _____________________________________________________________________ UPCOMING APPEARANCES http://www.gotw.ca/news.htm * The Future of C++ November 10, 2003 Redmond, Washington, USA Panel: Andrei Alexandrescu, Scott Meyers, Herb Sutter http://www.nwcpp.org/Meetings/2003/200311.html The organizer tells me that, although there'll be a $10 charge for non-NWCPP and non-WSA members to get in, you should be able to avoid even this by becoming a member of NWCPP (which is free, and you can sign up via http://www.nwcpp.org/Membership/index.html). * The Future of C++ on .NET: A Tour of C++/CLI December 10, 2003 Redmond, Washington, USA http://www.nwcpp.org/Meetings/2003/200312.html In October 2003, a new ECMA standards committee was formed to create an open international standard for "C++/CLI," a set of extensions to C++ that enable full and first-class support for CLI features and idioms, while bringing all the existing powerful features and idioms of ISO standard C++ to the CLI environment. C++/CLI has been designed by Microsoft in collaboration with C++ industry leaders, and is an evolution of the Managed Extensions for C++ (aka "Managed C++"). Formally, C++/CLI is a binding between ISO C++ and ISO CLI; see the announcement at www.ecma-international.org/news/ecma-TG5-PR.htm . In this talk, the lead architect of C++/CLI talks about its design and major features, with a look under the hood at how compilers are implementing the new semantics. C++/CLI provides first-class and cleanly integrated support in the C++ language for all CLI features (e.g., properties and events, garbage collection and generics) uniformly for all types including also for native types. It also provides first-class support in the CLI environment for all standard C++ features (e.g., deterministic destruction and templates) uniformly for all types, including also for CLI types. These facilities are expressed through a set of pure conforming extensions to ISO C++, underpinned by a unified type system and unified pointer/storage system. N.B.: Space will probably be limited. If you are interested and might want to attend, please contact the organizer to let him know (if there is considerable interest we'll have to look at having it in a larger facility): David Brownell [mailto:brownell@xxxxxxxxx] Your email will help ensure there'll be enough room for everyone. Best wishes to you and yours, Herb --- Herb Sutter (www.gotw.ca) Convener, ISO WG21 (C++ standards committee) (www.gotw.ca/iso) Contributing editor, C/C++ Users Journal (www.gotw.ca/cuj) Visual C++ architect, Microsoft (www.gotw.ca/microsoft) To unsubscribe, send an empty email to mailto:herb_sutter-unsubscribe@xxxxxxxxxxxxxxxx Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
--- End Message ---
_______________________________________________ alacpp mailing list alacpp@xxxxxxxxxxx http://lists.ellipsis.cx/mailman/listinfo/alacpp