Using LINQ for Computational Genomics

I’ve been playing around a bit lately with computational genomics (I’m doing a project for my parallel computation class). I wanted to write some simple algorithms that operate on potentially large amounts of DNA data without using a ton of RAM. For example, the entire human genome is 3 billion base pairs – reading it…

2

More on generic variance

In my entry on generic variance in the CLR, I said that you can’t convert a List<String> to a List<Object>, or even an IEnumerable<String> to IEnumerable<Object>.  I should point out however that the real-world scenarios where you’d want to do this usually involve passing an object of a more specific type to an API that…

20

Linq and the cost of additional language complexity

Uwe Keim posted a thought provoking comment in response to my entry about Linq.  Here is an excerpt: I do see the benefits, but I also have a big déjà vû: The C#-language seems to go the C++-way, where I, even after 10 years of programming, don’t know all of the features and sometimes still wonder…

8

Comparison of a simple select statement in DLinq (C# 3.0) vs. ADO.Net

Six months ago I posted a comparison of a simple select statement in C-omega vs. ADO.Net which some people found very exciting.  Now that Linq has been officially unveiled, I figured I should update my comparison using C# 3.0 and DLinq.  Although Linq and C-omega have some significant differences, everything I said in that post about…

11

Interested in C-omega? LINQ finally announced!

Ever since I started planning for my users-group talk (and wrote this blog entry) about data access with C-omega, I’ve been dying to tell everyone about the plans to add similar functionality to C#.  For those of you at my talk, you’ll remember this video of Anders which alluded to the work that was being…

0

Comega talk

On Thursday I gave a .NET users group talk on Comega to somewhere around 100 .NET developers.  Overall I think it went pretty well.  I was nervous at first, but once I got into talking about the cool stuff I like I forgot about the pressure and had a good time.  If you were there, please…

8

Comparison of a simple select statement in C-omega vs. ADO.Net

In a couple weeks, I’m doing a talk at a .NET users group in Ontario about Cω. Cω is a cool research language from Microsoft Research that extends C# with direct support for data access (SQL and XML) and concurrency abstractions.  I’ve been planning on writing a number of blog entries about Cω, but I haven’t yet…

20

Generic type parameter variance in the CLR

When people start using C# generics for the first time, they are sometimes surprised that they can’t convert between related generic instances.  For example, since you can convert a string to an object, shouldn’t you also be able to convert a List<string> to a List<object>?  After all, you can convert a string[] to an object[],…

19

"Hello world" quiz answers

Matthew Cosier was the first person to post correct answers to all my Hello, World quiz questions, good work Matthew!  Here are the answers with some details and links: System.Console.WriteLine(“Hello World!”)Visual Basic .NET – note the lack of a semi-colon <grin>  write(‘Hello world’),nl. Prolog – an older (but cool) logic programming language.  Prolog makes it incredibly easy…

10

Disruptive Programming Language Technologies

“Disruptive Programming Language Technologies” (video, slides) is one of my favorite talks on the future of programming languages. The talk is by Todd Proebsting, who is a senior researcher at the Microsoft Center for Software Excellence (formerly the Programmer Productivity Research Center).  His point applies particularly well to the success of managed environments like .NET.  Managed (type-safe, garbage collected)…

3