In October, Kathleen Dollard is coming to the East of Toronto UG! On October 19th, she'll be talking about Generics. Specifically:

Generics open up new opportunities to increase the robustness of your code, improve its performance, and significantly reduce the total amount of code you write. After a brief introduction to generic syntax, this talk dives into using generics to improve the quality of your code. You'll see how easy it is to shift your current collections to generic collections and learn about new features such as robust sorts, finds, and filters across collections. You'll learn how to write your own generic methods and classes. Finally you'll see how to leverage the spectrum of generic possibilities in a business object hierarchy that reduces the total lines of code by about 50%. You'll walk out of this talk understanding how to use generics to improve your own applications.

This meeting is at the YWCA Durham, so when you register, check the map and make sure you know where you're headed. If you haven't heard Kathleen speak before, you need to be there. Here's a little more about her:

Kathleen Dollard is a consultant, author, trainer, and speaker. She’s been a Microsoft MVP since 1998, wrote “Code Generation in Microsoft .NET” (Apress) and is a regular contributor to Visual Studio Magazine. She speaks at industry conferences such as VSLive, DevConnections, and Microsoft DevDays as well as local user groups. She’s the founder and principal of GenDotNet. Her passion is helping programmers be smarter in how they develop by learning to use Visual Studio, XML related technologies, .NET languages, code generation, unit testing, and other tools to their full capacity. She’s currently working on full life cycle improvements, such as better debugging and capturing business intent in metadata and test definitions. When not working, she enjoys woodworking, snowshoeing, and kayaking depending on the outdoor temperature.

I'll be a little crazed that week getting ready to head to Africa, but I'll be there.

Jean-Luc David, newly minted Developer Advisor, returns to the East of Toronto .NET Users Group this month to talk about Atlas, or "Atlas" as the Microsoft guys used to call it, the quotes reminding us all that it's a code name, not a real true blessed-by-marketing-and-the-lawyers name. And now, it's going to be called, sort of, AJAX. Let me quote ScottGu here:

The client-side “Atlas” javascript library is going to be called the Microsoft AJAX Library. This will work with any browser, and also support any backend web server (read these blog posts to see how to run it on PHP and ColdFusion).

The server-side “Atlas” functionality that nicely integrates with ASP.NET will be called the ASP.NET 2.0 AJAX Extensions. As part of this change the tag prefix for the “Atlas” controls will change from <atlas:>to <asp:>. These controls will also be built-in to ASP.NET vNext.

The “Atlas” Control Toolkit today is a set of free, shared source controls and components that help you get the most value from the ASP.NET AJAX Extensions. Going forward, the name of the project will change to be the ASP.NET AJAX Control Toolkit.

Well, whatever it's called (I seem to say that a lot) you can learn more about it at this month's user group meeting. September 26th, 6pm for pizza, 7pm for the presentation, Whitby Public Library. Please register!

Larry blogs that improving your app's performance means concurrent programming. Not just OpenMP, which is very cool, as he points out elsewhere, but all the hard stuff: "disk contention, memory locks, cache corruption, etc". Still, here's a tempting paragraph from that DevX article:

It's perhaps surprising that C++, with its reputation for difficulty, actually provides one of the easiest ways to exploit multi-core and multiprocessor systems. OpenMP, a multiplatform API for C++ and Fortran, uses compiler instructions to automatically generate all of the support code needed to parallelize code sections. In the simplest case, which is what we're going to focus on for this article, simply wrapping a processor-intensive loop in a #pragma block can lead to about a 70 percent performance increase on a dual-core or dual-processor system and enjoy a similar "free lunch" on the quad-core systems that you build in the future.

That's right. Concurrency is vital, and C++ takes care of one kind of concurrency astonishingly easily. It's true. Later in the article he plops a #pragma just before each of two loops, and his app runs 70% faster. How's that for fun? Go on, read the article, try it yourself.

Tomas Restrepo, a C++ MVP, has started a C++/CLI FAQ at http://www.winterdom.com/cppclifaq/. It's a start, and since some questions are starting to be frequently asked, it's a good idea for folks to read through this.

According to a summer IT Business article, there is still a battle or maybe there isn't. The headline reads "Java vs .Net: The tug of war continues" while the first sentence of the article is "The religious war between Java and .Net seems to be over." You might be able to guess how I feel from these quotes:

"It's .Net all the way," she said. "I hardly ever get e-mails (from students) asking [whether] they should learn C# or Java any more."

"I feel more productive on the .Net side," said Gregory, who also programs in Java. "When I made the jump, it was about the tools in Visual Studio, and the libraries."

"I think that every time we have a new batch of libraries and every time the products are improved, people will change (platforms)," said Gregory. "Others say they will stay. And they're both right. Maybe younger developers get caught up in a religious war, but older developers say, 'You go ahead and use whatever you like. I'll be over here getting some work done.'"

That's why I'm a VB.NET and C++ developer after all -- to get some work done.

Scott Meyers has been musing about the most important C++ books, non-book publications, software, and now people. He decides on:

Bjarne Stroustrup

Andrew Koenig

Scott Meyers

Herb Sutter

Andrei Alexandrescu

You know what? I agree with him. I think it takes some serious nerve to put yourself on a list like that, but his rationale works for me. I'm not sure if the list is in significance order -- if it is, I'd move Herb up a notch or two -- but these are the folks. And four of them were on the speakers list for C++ connections last year. I was honoured, truly, to be on that list with them and need no more than that.

After a three-year gap, I return to Tech Ed Europe as it returns to Barcelona. Moving it to the late fall has made it much easier to fit into my life. (Not surprisingly, I'll be speaking in the Developers half of the two-week conference.)

Managed code programming models and frameworks offer developers a great boost in productivity and code maintainability. This session demonstrates the use of the C++/Common Language Infrastructure (CLI) language binding to access .NET platform features. Rather than re-write applications from scratch to take advantage of managed code, Visual C++ gives developers the ability to enjoy the advantages of managed code whilst still leveraging their existing native code base.

This is the power of C++/CLI - don't port or rewrite, integrate! You're going to love it.

I'm travelling on South African Airways this time (it's been Lufthansa before) and taking a different route, so there will be some novelty along with the familiarity. I just love the energy at this conference; I can't wait to get there!