473,587 Members | 2,543 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Chat: C# 3.0 Language Enchancements, September 22nd @ 1pm Pacific Time

This is really exciting stuff. We'll see you there!

It might be a good idea to do some background reading before you show up.
:0)
C# 3.0: http://msdn.microsoft.com/vcsharp/future/
The LINQ project: http://msdn.microsoft.com/netframework/future/linq/
C# 3.0 Language Enhancements
"Can't attend PDC but still want to talk to the C# team? This chat is your
chance! Join the C# team to discuss the newly announced C# 3.0 features like
extension methods, lambda expressions, type inference, anonymous types and
the .NET Language Integrated Query Framework. You've been hearing rumblings
about this for a while, now we finally talk in depth about the future of the
C# language."

The chatroom itself: http://msdn.microsoft.com/chats/chatroom.aspx
Mark your calendar with this iCalendar (.ics) file:
http://msdn.microsoft.com/chats/outl...22_MSDN_CL.ics
The official chat schedule entry:
http://msdn.microsoft.com/chats/#05_0922_MSDN_CL
The official C# chats page:
http://msdn.microsoft.com/vcsharp/co...s/default.aspx
All upcoming developer chats: http://msdn.microsoft.com/chats/
My blog; all C# chats category (RSS available):
http://blogs.msdn.com/scottno/archiv...ory/10105.aspx
Scott Nonnenberg
Program Manager
Visual C# Team
Nov 17 '05 #1
6 1347
* Scott Nonnenberg [MSFT]:


C# 3.0 Language Enhancements
"Can't attend PDC but still want to talk to the C# team? This chat is your
chance! Join the C# team to discuss the newly announced C# 3.0 features like
extension methods, lambda expressions, type inference, anonymous types and
the .NET Language Integrated Query Framework. You've been hearing rumblings
about this for a while, now we finally talk in depth about the future of the
C# language."


It's easy to make something complex from something simple.

It's difficult to make something simple from something complex.

One should therefore refrain from adding unnecessary complexity.

C# was a nice little language. It had a few really ugly big warts, like its
property support (no way to know when to add "()" at the end of something that
might be a function call), and like its event handling, but all in all it was
a really nice little language, very much suitable for novices, and at the same
time also suitable for serious, big projects. As one would expect from the
creator of Turbo Pascal, which had the same general qualities, and was hugely
successful because of that.

Now you featuritis-ridden guys have taken over. And you don't seem to
understand one iota of the general idea. Or if you do, you don't give a damn.

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Nov 17 '05 #2
* Scott Nonnenberg [MSFT]:

The chatroom itself: http://msdn.microsoft.com/chats/chatroom.aspx
Mark your calendar with this iCalendar (.ics) file:
http://msdn.microsoft.com/chats/outl...22_MSDN_CL.ics


So extremely incompetent and/or inconsiderate:

Read my lips: all C# developers do not have Outlook (I only have Outlook
because I haven't taken the time to uninstall that virus-incubator).

Contents of the .ics file:

September 22, 2005
1:00 - 2:00 P.M. Pacific time
4:00 - 5:00 P.M. Eastern time
6:00 - 7:00 GMT
Join the chat room on the day of the chat:
http://msdn.microsoft.com/chats/chatroom.aspx

Now I wouldn't be suprised if that chat requires Internet Explorer...

Checking, using Firefox 1.06.

"Unable to verify the identity of profile.microso ft.com as a trusted site"
because the certificate issuer is unknown.

Then the same for the web site, which requires MSN (Microsoft Passport) login.
Jesus. You actively _filter_ so that you only get folks of The One And True
Right Faith in there -- only "yes"-people allowed in your "discussion s".

I'm not going to create yet another MSN account just to find out I need my old
now long cancelled MSDN subscription (or whatever), or IE, or whatever extra
obstructions you have put in for unbelievers.

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Nov 17 '05 #3
On Thu, 22 Sep 2005 03:10:40 GMT, al***@start.no (Alf P. Steinbach)
wrote:
C# was a nice little language. It had a few really ugly big warts, like its
property support (no way to know when to add "()" at the end of something that
might be a function call), and like its event handling, but all in all it was
Properties are essentially improved fields. Using method syntax for
them is in my opinion one of the bigger mistakes in Java. In most
cases it is obvious if something is a property or a function, and in
the few cases it isn't the compiler/IDE will complain if you choose
the wrong option.

C# doesn't have the syntactic sugar that VB has for eventhandling, but
in most cases attaching an event is just a single row in the
constructor and possible another row in dispose to remove it. In C#2.0
eventhandling also got a lot better with both improved syntactic sugar
and improvment of delegates.
Now you featuritis-ridden guys have taken over. And you don't seem to
understand one iota of the general idea. Or if you do, you don't give a damn.
First of all, I loved all the changes in C#2.0 since they made my code
both cleaner and faster.

I have read the C#3.0 proposal and while I don't agree with every
detail I don't think there is a feature creep going on.

Implicitly typed variables (var) should probably only work with
anonymous types, but in the long run I don't think it makes that much
of a difference.

Extension methods is probably my least favorite new feature (The
specification even warns not to use it too much). It is intended for
syntactic sugar, but it could make code less readably if used
incorrectly.

Lambda expressions on the other hand is the nice type of syntactic
sugar, as are anonymous types.

Most of the new features in c#3.0 seems to be there to support the new
built in Query language. I don't know exactly what to think about that
one yet since it is hard to judge on paper. Having a query language
built into the language isn't that usual, but I don't think it will
make code less readable, which is my prime concern when evaluating new
language constructs.

So extremely incompetent and/or inconsiderate:

Read my lips: all C# developers do not have Outlook (I only have Outlook
because I haven't taken the time to uninstall that virus-incubator).
Just for your information .ics is the extension for the standard
iCalendar file used by tools such as ICal on the Macintosh and in the
Mozilla Calendar project.
Now I wouldn't be suprised if that chat requires Internet Explorer...
You'll need to install one of the following browsers to use
Microsoft.com Chat.

Internet Explorer 4.0 and later for Windows
Netscape 6.2 and later for Windows
Safari 1.2 and later for Mac
Mozilla 1.7 and later for Windows
Firefox .9 and later for Windows

A pretty decent selection of browsers I would think.
Checking, using Firefox 1.06.

"Unable to verify the identity of profile.microso ft.com as a trusted site"
because the certificate issuer is unknown.
So you have to trust microsoft directly instead of a third party with
a root certificate.

Then the same for the web site, which requires MSN (Microsoft Passport) login.
Jesus. You actively _filter_ so that you only get folks of The One And True
Right Faith in there -- only "yes"-people allowed in your "discussion s".
A majority of websites that allows posting/chatting requires an
account to participate. This is no different, and atleast with the
passport I can use the same login on all MS sites.

I'm not going to create yet another MSN account just to find out I need my old
now long cancelled MSDN subscription (or whatever), or IE, or whatever extra
obstructions you have put in for unbelievers.


You don't need an MSDN subscription, and as I said above it works fine
with firefox or safari.

--
Marcus Andrén
Nov 17 '05 #4
> Now you featuritis-ridden guys have taken over. And you don't seem to
understand one iota of the general idea. Or if you do, you don't give a
damn.
One might say the same thing of C++ versus C. If you want simple, you might
as well go back to Assembler. Object-oriented programming in general is more
complex than procedural programming. Multi-threaded programming is extremely
more complex than single-threaded programming.

The beauty of OOP is that it EXTENDS procedural programming. Underneath all
of the complex data types, and all the complexity of C++ and C# is the
simplicity of C. And you can write an entire C++ or C# application using C
(or even Assembler) if you like.

To extend something is quite a different concept than making it more
complex. A Swiss Army Knife is a lot more complex than a simple Pocket
Knife, but the Pocket Knife IN the Swiss Army Knife is just as simple as a
pocket knife, and just as easy to use. The extensions of the C language in
C++, and the extensions of C++ in C#, and the extensions of the current
version of C# in future versions of C# do not make C, or C++, or C#, or any
future extensions of C# more complex by the same token. You may use them, or
not.
It's easy to make something complex from something simple.
This is indeed what you have done. In your own mind. There is nothing
complex about extending something. There is nothing complex about adding 2
to 1 and making 3. 1 is still there.

If you want to play the Amish Programmer, feel free to do so. But learn
something from the Amish. They like living the way they do, but they don't
criticize the rest of the world for living the way THEY do. There is wisdom
in this. Remember that there are people out there for whom any kind of
programming at all is more complex than they want to deal with. Like the
Amish, you have chosen where in the chain of increasing technological
complexity you wish to live, and it is neither at the bottom, nor at the
top. And that makes you no better and no worse than anyone else. Neither
does it make the rest of us any better or worse than you. So, lose the
attitude. It isn't doing you any favors.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
I'd rather be a hammer than a nail.

"Alf P. Steinbach" <al***@start.no > wrote in message
news:43******** ********@news.i ndividual.net.. .* Scott Nonnenberg [MSFT]:


C# 3.0 Language Enhancements
"Can't attend PDC but still want to talk to the C# team? This chat is
your
chance! Join the C# team to discuss the newly announced C# 3.0 features
like
extension methods, lambda expressions, type inference, anonymous types
and
the .NET Language Integrated Query Framework. You've been hearing
rumblings
about this for a while, now we finally talk in depth about the future of
the
C# language."


It's easy to make something complex from something simple.

It's difficult to make something simple from something complex.

One should therefore refrain from adding unnecessary complexity.

C# was a nice little language. It had a few really ugly big warts, like
its
property support (no way to know when to add "()" at the end of something
that
might be a function call), and like its event handling, but all in all it
was
a really nice little language, very much suitable for novices, and at the
same
time also suitable for serious, big projects. As one would expect from
the
creator of Turbo Pascal, which had the same general qualities, and was
hugely
successful because of that.

Now you featuritis-ridden guys have taken over. And you don't seem to
understand one iota of the general idea. Or if you do, you don't give a
damn.

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Nov 17 '05 #5
* Kevin Spencer:
[excessive quoting removed]

* Alf P. Steinbach:

Now you featuritis-ridden guys have taken over. And you don't seem to
understand one iota of the general idea. Or if you do, you don't give a
damn.
[snipped babble]

To extend something is quite a different concept than making it more
complex.


Adding features to a language is never a simple extension where the former
version can be used just as it was. To take your own example, C++ is not a
proper superset -- extension -- of C. Any C program can be re-coded as
valid "better C" C++, but give a non-C++ cognizant C coder a pure C++ compiler
and s/he will soon be struggling with constructs that "should" compile (as C)
but don't (as C++), constructs that don't do what they "should" (as C) but
something very different (as C++), compiler options that make no sense
whatsoever to her, and when s/he has to use code written by others, or
generated by tools, s/he will find it entirely indecipherable, not only
syntactically, but it's expressed in terms of concepts not existing in C.

And that's for a set of language extensions that have gone through a very
extensive review process where only the very fittest survived.

For C# it's now different.

And it's kind of sad when this formerly beautiful young woman C# has been is
"improved" with a third specialized arm sticking awkwardly out of her back.

All to make her better adapted to one small set of specific tasks.

[snipped suite of personal attacks, leaving just one]

Like the
Amish, you have chosen where in the chain of increasing technological
complexity you wish to live, and it is neither at the bottom, nor at the
top.


Nothing I can say can refute that convincing an argument...

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Nov 17 '05 #6
> And it's kind of sad when this formerly beautiful young woman C# has been
is
"improved" with a third specialized arm sticking awkwardly out of her
back.
Well, I haven't looked very extensively at C# 3.0, but I have been working
with C# 2.0 for awhile now, and the extensions added to the language
actually make it easier to use, and not the other way around.

Take Generics, for example. Generics allow a single class or method
definition to accomodate any data type while maintaining strong data typing,
and without casting or conversion. One excellent example is the
System.Collecti ons.ObjectModel .Collection<T> class, which is a Generic
Collection that can be used as a Collection of any data type whatsoever. It
requires no casting or conversion, as do previous versions of Collections
which were of type Object. And it is strongly typed to the type you pass to
it when declaring it. The possible ramifications of Generics have yet to be
fully exploited. I have personally, for example, extended the
System.Collecti ons.Generic.Dic tionary<TKey,TV alue> by creating my own
GenericDictiona ryCollection<TV alue>, which always uses a string Key, but any
type of value, from that, a StringDictionar yCollection which always uses a
string as the Key and the Value, added events and event handlers to it which
can be used by derived classes for validating strings, and derived several
StringDictionar yCollections from it for use with Custom Configuration
Classes. Each of the custom StringDictionar yCollection derived classes
validates the strings entered into it in their own way. I create methods
which operate on a StringDictionar yCollection, and can use them for any of
the derived classes.

Another example is Anonymous methods. This enables the developer to, for
example, declare an Event Handler without having to create a delegate method
separately, but simply by putting in a block of statements. When an Event
Handler is used only once in the code, this simplifies the code, rather than
making it more complex.

In both of these examples, the language has been improved by allowing
developers to write and maintain less code. In essence, it allows developers
to write leaner, more concise (and less complex) code, and the larger the
project, the more beneficial this is. From what I've gleaned about C# 3.0 so
far, this trend continues in the new language enhancements.

Still, again, one can continue to use the older methodology without any
problems, if one so chooses. As for me, I like to "hang ten" with the new
stuff; call me a technological thrill-seeker. Yes, you do a bit of bleeding
on the cutting edge, but what a view!

--
;-),

Kevin Spencer
Microsoft MVP
..Net Developer
I'd rather be a hammer than a nail.

"Alf P. Steinbach" <al***@start.no > wrote in message
news:43******** ********@news.i ndividual.net.. .* Kevin Spencer:
[excessive quoting removed]

* Alf P. Steinbach:
>
> Now you featuritis-ridden guys have taken over. And you don't seem to
> understand one iota of the general idea. Or if you do, you don't give
> a
> damn.


[snipped babble]

To extend something is quite a different concept than making it more
complex.


Adding features to a language is never a simple extension where the former
version can be used just as it was. To take your own example, C++ is not
a
proper superset -- extension -- of C. Any C program can be re-coded
as
valid "better C" C++, but give a non-C++ cognizant C coder a pure C++
compiler
and s/he will soon be struggling with constructs that "should" compile (as
C)
but don't (as C++), constructs that don't do what they "should" (as C) but
something very different (as C++), compiler options that make no sense
whatsoever to her, and when s/he has to use code written by others, or
generated by tools, s/he will find it entirely indecipherable, not only
syntactically, but it's expressed in terms of concepts not existing in C.

And that's for a set of language extensions that have gone through a very
extensive review process where only the very fittest survived.

For C# it's now different.

And it's kind of sad when this formerly beautiful young woman C# has been
is
"improved" with a third specialized arm sticking awkwardly out of her
back.

All to make her better adapted to one small set of specific tasks.

[snipped suite of personal attacks, leaving just one]

Like the
Amish, you have chosen where in the chain of increasing technological
complexity you wish to live, and it is neither at the bottom, nor at the
top.


Nothing I can say can refute that convincing an argument...

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Nov 17 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1127
by: Scott Nonnenberg [MSFT] | last post by:
C# Chat: The C# Language "Want to know more about anonymous delegates in C# 2.0, or our design rationale for them? Perhaps you have some great ideas you'd like to share with other C# users or the C# language team. Join the C# team for all that and more - it's all up to you!" C# Team members will be there. We're there predictably - every two weeks. Hopefully that means we'll be better able to be there when you need questions answered....
2
1907
by: Scott Nonnenberg [MSFT] | last post by:
The Visual Studio Debugger "Do you have some burning questions or comments about SQL, C#, VB, C++, or script debugging support in Visual Studio? Want to know more about Visual Studio 2005's enhanced datatips, improved interop debugging, Managed Debugging Assistants, debugger visualizers or Just My Code? Join the Visual Studio Debugger team to discuss the past, speculate on the future, and debate the present of the tool you work with and...
5
1892
by: Scott Nonnenberg [MSFT] | last post by:
This is really exciting stuff. We'll see you there! It might be a good idea to do some background reading before you show up. :0) C# 3.0: http://msdn.microsoft.com/vcsharp/future/ The LINQ project: http://msdn.microsoft.com/netframework/future/linq/ C# 3.0 Language Enhancements "Can't attend PDC but still want to talk to the C# team? This chat is your
0
1104
by: Eric Sassaman [MS] | last post by:
Online Chat: Upgrading COM Applications to .NET with Visual C++ 2005 Many applications consume and expose COM interfaces as their object models today. And .NET has tools such as tlbimp, tlbexp and COM Interop support for RCWs and CCWs to help integrate managed code with COM objects. In addition, there are also a number of options in C++ unavailable to other languages such as C# or VB. Some mechanisms are simpler to code, while others...
0
1126
by: Eric Sassaman [MS] | last post by:
Online Chat: Visual C++ 2005 Library and Runtime Enhancements The next release of Visual C++ includes many new and enhanced libraries which improve security, support managed code and integrate existing applications and components. The CRT and STL fully support managed applications. There is a new secure CRT and STL that offer safe interfaces to familiar functionality. The managed support library provides conveniences such as lock...
0
1183
by: Eric Sassaman [MS] | last post by:
Online Chat: Upgrading COM Applications to .NET with Visual C++ 2005 Many applications consume and expose COM interfaces as their object models today. And .NET has tools such as tlbimp, tlbexp and COM Interop support for RCWs and CCWs to help integrate managed code with COM objects. In addition, there are also a number of options in C++ unavailable to other languages such as C# or VB. Some mechanisms are simpler to code, while others...
0
922
by: Mike McIntyre [MVP] | last post by:
right now.. September 28, 2004 1:00 - 2:00 P.M. Pacific time 4:00 - 5:00 P.M. Eastern time 20:00 - 21:00 GMT
0
1019
by: Scott Nonnenberg [MSFT] | last post by:
The C# Language "Want to know more about anonymous delegates in C# 2.0, or our design rationale for them? Have some questions about our current thinking on C# 3.0? Perhaps you'd like to share your ideas with other C# users or the C# language team. Join the C# team for all that and more - it's all up to you!" We've got some great stuff on the drawing board for C# 3.0. Check out our drawing boards (linked below) and come talk to us! We'll...
0
972
by: Scott Nonnenberg [MSFT] | last post by:
Lots of very cool thing are happening with C# 3.0 - show up to talk about them, or show up to get more in-depth knowledge about C# 2.0. Or just come and hang out with us! Scott Nonnenberg Program Manager Visual C# Team The C# Language
1
1546
by: Scott Nonnenberg [MSFT] | last post by:
Show up and talk to members of the C# compiler and language design team - ask design questions, request features, anything. Or just spend some time hanging out with other C# developers! Scott Nonnenberg Program Manager Visual C# Team The C# Language
0
7927
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8220
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8352
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8222
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
5723
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5396
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
3846
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
3882
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1457
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.