FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Windows .NET Blog
Windows/.NET
Practicing .NET

Improving developer productivity and software quality

by Mark M. Baker
September 01, 2009

The Functional Era


Language evolution is an interesting subject. At least to me. How languages experiment with concepts delivered as features and then find those features making their way into competitor languages because they worked (or ignored because they didn't). It's also interesting how so many of the great languages that we use everyday were designed by a single person or a small group - think about C, the original, pre-standards C++, C#, Basic, Java, and so on. It's also interesting what happens to great languages such as C++ once committees get ahold of them and tack on everyone's favorite wish list of features.

You could ask the question - should a programming language have a lifetime - a birth, middle age and then death, or at least obsolescence. Should C++ have stopped its trajectory of change before its syntax was garbled to the point of being an example of what not to do in language design? Should Java have added generics? Is C# complete enough now or do we need more LINQ style language additions?

One things these languages have in common is that they are within the imperative programming model landscape. That is, they are designed to allow the programmer to specify step-by-step how a task should be accomplished. They've served us well for decades now. However, there's a new kid on the block. The functional languages.

Actually, it's more of a kid who has been a kid for decades now.

For the vast majority of day-to-day programmers, we spend our days working in the imperative languages. Once in a while, we come across an odd article or two about functional, functionally oriented, or functional-object hybrid languages. Some of us may have even fiddled with academic functional languages during university days. But few use them everyday. They've seemed an oddity to programming-in-the-main.

However, with the launch of Microsoft's F# with Visual Studio 2010 next year, the world of functional languages will be upon us and I fear that many programmers will be in for as much of a culture shock as we had moving from DOS to Windows, or C/C++ to .NET. Possibly much more than may be in store.

Simply put, functional programming is unlike anything you do day-to-day in C#, Basic, Java, or any other similar language. A language that has been popular of late is Ruby through its use in the Ruby on Rails web development framework. Ruby has a functional syntax that is both very productive and very different than a C# or Java. The Microsoft entry into this world is F# and was created by Microsoft Research based upon the ML programming language. F# has been bubbling around the edges of .NET for awhile now, but next year it will be make its grand appearance along side C# and VB.NET as a premier language option for .NET developers.

Functional programming, to put it simply, is very, very different from imperative programming. You focus more on what you want to do rather than writing algorithms to make it happen. There are some basics though - in general, functional languages elevate functions (and methods) to first-class status alongside variables. They can be declared, defined, used, discarded and created dynamically. For an object-oriented developer used to imperative languages this can be the first hurdle - getting over the notion of data being the only thing that is dynamic.

There is much, more more to functional programming than what I've covered so far, but follow along with me this year and next as we take a longer look at F# and functional programming in general.

Posted by Mark M. Baker at 12:15 PM  Permalink |


January 04, 2008

Windows Live! Lives...


Microsoft is massively increasing its offerings under the Windows Live platform umbrella and it's worth a look if you're doing anything in the web space (who isn't these days).

Continue reading "Windows Live! Lives..."

Posted by Mark M. Baker at 05:09 PM  Permalink |


December 07, 2007

Visual Studio.NET 2008 goes live!


Well, the long wait is finally over for Microsoft-technology developers. Visual Studio.NET 2008 (formerly code-named Orcas) was released by Microsoft on Nov 19th 2007. Microsoft immediately made the release available for download from MSDN for users with a current subscription. In addition to the IDE and other developer tools, an enhanced Team Foundation Server was also released providing a series of new capabilities to users.

Continue reading "Visual Studio.NET 2008 goes live!"

Posted by Mark M. Baker at 12:41 PM  Permalink |


November 07, 2007

Scrum: Are distributed teams an oxymoron?


As an Agile practice, Scrum puts great emphasis on frequent daily colloboration among the team members. As an example, the Daily Scrum is a 15-minute, daily, stand-up meeting where the Team comes together to discuss the all important 3 questions - what did I do/finish yesterday, what am I working on today, and what is holding me up? Often, Scrum teams work in large, open rooms where dedicated workspace is eschewed in order to work more closely together on common tables. Whiteboards are hung on the walls with notes, product backlog items (PBIs), impediments, the Scrum burndown chart, and so on. So it would seem that a team that needs or wants to be distributed outside of a single space is a no-can-do in Scrum, right?

Wrong.

Continue reading "Scrum: Are distributed teams an oxymoron?"

Posted by Mark M. Baker at 12:50 PM  Permalink |


October 19, 2007

TeamPlain v2.0 is unleashed


You may recall that Microsoft purchased TeamPlain v1.0 from DevBiz Solutions earlier this year. This is the web based front end to the Microsoft Team Foundation Server. It's much simpler and easier to use that the Team Explorer that comes with Visual Studio. And it relieves end users from having to install Visual Studio to interact with a TFS project. DevBiz was in the middle of v2.0 when they were purchased. Since this, all has been quiet.

Until now.

Continue reading "TeamPlain v2.0 is unleashed"

Posted by Mark M. Baker at 02:57 PM  Permalink |



Windows Workflow Survey


Kavita Kamani posted a link to a Windows Workflow Survey now being conducted by Microsoft's Connected System Division. They're looking for input on potential improvements for future releases, but they're also interested in hearing from developers who aren't currently using Windows Workflow. The survey takes about 30 minutes.

Posted by John Dorsey at 12:19 PM  Permalink |


October 12, 2007

PowerGUI: get-beta –newest


Recent MVP inductee Dmitry Sotnikov has released the latest beta of PowerGUI, the free admin console for Windows Powershell. PowerGUI.1.0.11.207 includes several improvements suggested by users, including the standalone mode script editor. Last August, Dmitry demonstrated PowerGUI for Microsoft's Jeffrey Snover on Channel 9. Jeffrey and Dmitry also contemplated future enhancements: Learn and Master Windows PowerShell with Quest Software’s PowerGUI. The PowerGUI site also features several additional screencam demos.

Posted by John Dorsey at 04:28 PM  Permalink |


September 28, 2007

Bundles of Advice


The Microsoft Patterns & Practices team has been busy bundling their advice. So busy in fact, they've decided to package the advice along with software bits including software components, test harnesses, guidance documents, How-To tutorials, and so on. And you guessed it. They're calling these things bundles.

Continue reading "Bundles of Advice"

Posted by Mark M. Baker at 04:34 PM  Permalink |


September 04, 2007

Moving up the Food Chain


The astonishing, and to me, profound thing about some the new .NET technology coming out from Microsoft is how we are now beginning to move away from low-level, implementation worries and toward enabling construction of applications from ever larger abstractions. In a way, and to me at least, this is what will get us to where we need to be to deal with ever larger amounts of complexity.

Time for bigger plates.

Continue reading "Moving up the Food Chain"

Posted by Mark M. Baker at 04:56 PM  Permalink |


August 14, 2007

.NET Future Directions


So you've gotten used to .NET 2.0, and are probably reading up on Windows Presentation Foundation (WPF), Windows Communications Foundation (WCF), LINQ, and so on. You're probably thinking that there's a lot of parts to .NET now, and you're drinking from the proverbial firehose.

Microsoft hasn't even gotten warmed up.

Continue reading ".NET Future Directions"

Posted by Mark M. Baker at 03:44 PM  Permalink |



November 2009
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          


BLOGROLL
 
INFO-LINK