Ted Leung on the air: Open Source, Java, Python, and ...
[I've been meaning to push the "Post" button on this for weeks now...]
Our friend Katherine blogged about an article on homeschooled kids that appeared in the Stanford alumni magazine.
I have no idea whether our kids will be interested in going to a school like Stanford (nothing at all against Stanford, but there's art school, dance school, music school, etc, etc), but regardless of where they end up studying, I hope that people will be able to make statements like these:
"I don't think anyone has caught on to the fact that these are such interesting kids," Reider says.
"It's not, 'I'm free now--I'm going to go to college and party,'" Dobson says. "These kids know what it's like to handle responsibility."
Dare followed up my posting on Linguistic Futures by pointing out some concurrency features in C# and talking about type inference and concurrency features in Cω:
As for concurrent programming, many C# developers have embraced the power of using delegates for asynchronous operations. This is one place where I think C# and the .NET framework did a much better job than the Java language and the JVM. If Ted likes what exists in the Java world I bet he'll be blown away by using concurrent programming techniques in C# and .NET. Cω takes the support for asynchronous programming further by adding mechanisms for tying methods together in the same way a delegate and its callbacks are tied together.
I didn't include C# in my list because I wasn't as far up on the concurrency features in C#, so I'm glad for the clarification here, and the good information on Cω -- I hadn't got up to date on the Polyphonic C# concurrency work -- I think I have the papers in stack of papers that I intend to read.
As for liking, I'm not actually sure that I like what I see in the Java world. I think that Java has decent but not great support for threads and now things like futures, as well as a few VM implementations that support multiprocessor machines pretty well. I think that we need to get to a stage where compilers and/or VM's (the distinction sometimes seems to be blurring) can extract concurrency from sequential programs.
I like C# and I liked what I saw of Cω when it was Xen, but there's also the problem of availability. My primary platforms are the Mac and Linux. Yes, there's Mono, but it's a second (or maybe even third class) citizen. And I doubt that the Cω compiler will run on Mono either. In fact, it's completely unclear what the direction for Cω is. Is this the next version of C# that is going to ECMA, or is this going to be more like Java, controlled by Microsoft? It's one thing to experiment with advanced languages, but it's another to actually adopt and deploy them. Cω is not the only language facing these problems.