waffle

Waffle was a weblog that ran for nine years and five days from 2003 to 2012.
The last post has been written and comments will be closed by the end of March 2012.
The author of Waffle, some guy in Sweden, also occasionally writes stmts.net.

(If anything will ever succeed or revive Waffle, it will be announced in this location, and in the feeds.)

Objective-C#

At Microsoft’s Lang.NET Symposium, where they also open-sourced the Common Compiler Infrastructure, their half-LLVM-half-Cecil libraries, Ted Neward speculates about an “Objective-C#”, or C# with messaging.

I wish someone who actually knew Objective-C had been involved. There were some real and some half-facts involved, and the real facts didn’t hold much sway. There was a constant dithering between a) the Objective-C branch of language philosophy, b) actual Objective-C features and c) badly misunderstood Objective-C features. So from someone who actually knows Objective-C…

  • Class methods and instance methods. A static method in C# is not a class method; you can’t stick one in an interface, you can’t override one. There’s not even a keyword to statically refer to the current/parent class the way this/base do for the current/parent instance. This is one of the most glaring ways in which the C# object model makes a mockery of its own claim to be object oriented.

  • Protocols. They were badly maligned in that the required and optional methods were mentioned, but that the whole thing was made up to be duck typing. With duck typing, everything’s optional. A .NET-style interface with optional methods and the ability to reason at run time whether a method is implemented or not while being sure that another method is definitely implemented is enormously powerful. You have to create interface hierarchies and cast hither and fro to create something like this.

  • Categories, or external additions to classes. Extension methods take us most of the way there, but it is impossible to create extension methods for classes; something that’d be wonderful for enums.

  • Selectors. Of course confused with named parameters as every so often, which chills me slightly. If there was anywhere a room full of people where this mistake shouldn’t have been done, this was it. There are two things about selectors that make them so much more than even named parameter invocation in C# 4, which similar syntax helps towards readability: selectors are ordered and can thus repeat, and more importantly, a selector is the name of a message. Enough about functions as objects, this lets you reason about specific method signatures as an object, and I don’t just mean an arity and a type map, but a named segment with each parameter; two methods can take the same number and the same types of arguments and do completely different things with them, and with (C#) delegates you’d have to invent a word for each such action, including each permutation that takes slightly different arguments.

    (Update: Vivek points out in the comments that selectors themselves don’t keep track of the type of their arguments, which is true. In every place where selectors are applied in a written-down interface (protocols, categories, object/class definition), though, they are by necessity defining a method (or message), which has types. The method name is more expressive and through that more reusable is what I’m driving at.)

Today in Non-Enraging News

Today in Fuck It, My Country is Also Going Downhill

Perhaps the best quote today about the bizarre (but expected) TPB conviction:

These guys weren’t making a principled stand, they were out to line their own pockets. There was nothing meritorious about their behaviour, it was reprehensible.

The only problem I have with it is that it’s not about the IFPI and the industry, but somehow about The Pirate Bay. The court hearings established that the site did not operate at a profit, and that every dime that went into the endeavor ended up funding the server costs. If IFPI chairman John Kennedy, the originator of the quote, wants to covertly accuse TPB of perjury post-trial, that is his choice, but he should at least save any residual honor by doing so with a straight face.

Several Swedish music acts, including some that claim to be against file sharing and TPB altogether, have spoken out against the conviction, the sum of money (unsurprising, as it probably won’t ever get to them, and interesting, as it was about a fourth of what the industry has asked for) and the severity of the penalty.

I said that the conviction was expected. I regarded it as expected for two reasons:

  • Because it is a political trial and not primarily based on evidence (if the evidence hinges on whether or not the site was run for the money, and that has been disproven; and if the prosecutor indicated a year earlier that the same evidence used when the case was prepared would be insufficient to prove a crime, what other conclusion can you come to?), and
  • Because if it was going to lead to a conviction, it would have to first appear in the lower courts. A pass in the lower court and a conviction higher up would be unprecedented.

The trial, as continued in higher courts, will continue to be a purgatory of the nature, severity and grand-scheme-importance of copyright regulation. I know that if TPB wins, technological progress will not be hindered by aging business models. I also know that to block everything that sites like TPB help provide, you would have to turn the Internet into a surveilled cage driven by the worst kind of fascist states; all of it, and all of them.

It’s time to start ditching what’s holding society down. I’ll give you a hint: it’s not ownership, and it’s not the right to be associated with a work, or to attempt to sell, make or fund it. It’s much closer to, say, a mafia.

« Newer posts · Older posts »