de Icaza: I'm Miguel de Icaza and I work on a project called Mono. It's an open source implementation of the .net framework that runs on non-Windows platforms. It runs on a Mac, on Linux -- It runs on interesting devices like the Playstation or the iPhone and we're also working on Silverlight implementation for Linux. So, that's kind of where my passion is: .net for other platforms.
Spolsky: Cool. Silverlight is sort of like a subset of .net, isn't it?
de Icaza: Yeah, that's right. It's kind of a -- yeah, they picked a small interesting subset of both .net and WPF and made it into a plugin for the web and they added video and audio.
Spolsky: So it's supposed to be a Flash equivalent?
de Icaza: Yeah, exactly. You know, to me it's interesting because I get to write code in C# and I just happen to like the language. Silverlight is interesting from that perspective. Also because when Microsoft did that thing it's also a subset of WPF, it's a subset you can actually learn as opposed to WPF which I find [laughs] ginormous. [Continues...]
Spolsky: So it's the only port of WPF that the Silverlight guys could figure out [Laughing]
de Icaza: Exactly, exactly. It's like the good subset instead of the over-engineered version of it. So, I really like Silverlight and what I wanted to do, since the very beginning was to not oly use it for the Web, but also use it for desktop Linux. You know, using the traditional Unix APIs - just using Silverlight as cross-platform desktops apps. That's kind of where the motivation came from - ah - we get the APIs and we make the developers from the .net platform to also make their apps available on Linux that way.
Spolsky: And they're going to look better than all those TK things that are ...
de Icaza: We hope so! [Laughs] You know, we have some nice-looking applications these days on Linux, but nothing compares to the amount of designers that the other platforms have...
Spolsky: Well, it also matters if you want to make a cross-platform... I mean the choices that people have had to make cross platform GUI applications usually resulted in something that look ugly or look wrong on one platform, I guess.
de Icaza: Yeah, that's right. As a matter of fact, we're facing that problem right now, ourself. We built our own IDE, and it was very Linux-centric, with our very own GTK APIs - and it looks great on Linux, and it looks a little out-of-place on Windows and Mac OS. The thing is, we don't really have the time or the man power to make native applications for each platform. But, I think we're going to have to bite the bullet and just look "off" in other platforms. It's... [garbled]
Splosky: It's interesting that programmers are the first ones to notice when something looks "off" like that [de Icaza laugh], but when you actually show it to users - they don't even notice when you say "Doesn't his look weird to you?" [de Icaza more laughter] It's like, you go to the File menu and under Exit it says "Alt +F4" and, of course [both laughing], you do that on a Macintosh and people think you're crazy.
Atwood: So just... just to clarify: So, the endpoint of all this is that if you wanna do iPhone development but you don't wanna touch or learn Objective-C you could then do it in essentially C#. Is that what I'm hearing?
de Icaza: Yes. Yeah, in fact we're also working with one of these guys, called RemObjects. I hear they bought the rights for Delphi.
Spolsky: Oh, really?
de Icaza: Maybe not the rights. I'm not exactly sure if they bought the rights or not but [garbled] Marc Hoffmann and so on. We're working with them because you know they've been supportive of Mono and they have their Pascal compiler that targets Mono and so on. And so, so, you know, if you develop with Delphi you'll be able to use... You'll probably[?] get Mono touch [garbled] API which is a binding to the Apple API so you'll be able to use Delphi and the Delphi IDE to...
Spolsky [interrupts]: Wow, I wonder if I could get my version of Othello written in TurboPascal in 1986 ...
de Icaza: [laughs] I don't know how compatible these things are anymore. [garbled] to Delphi.
Spolsky: Well, I mean there are also parts where I directly poke into particular memory addresses in order to write to the screen. Those are probably not gonna work. [laughs]
de Icaza: And I think that they should get credit for yesterday's announcement that, uh you know Office is not going to be free for consumers, and um... and you know, Office Web, and so...
Atwood: (interrupting): I got a... I got a comment on that...
Spolsky: Not? Or it is going to be? I missed the... I didn't see this announcement. It is going to be free for consumers.
de Icaza: That's what... the impression that I got... from the announcement.
Spolsky: And they'll show ads or something... or?
de Icaza: uhh...
Atwood: (interrupting): Well... let me ask one part of this, this may... this discussion may illuminate... I thought it was a... Now, I like Silverlight... I'm somewhat of a fan of Silverlight, but Joel and I... and I know you are actually a huge fan of Silverlight, because it is kind of the best cross-platform way to develop sort of GUI-type apps, right?
de Icaza: I'm with you... I think there's no question about that... among anyone in this podcast.
Atwood: Right... right and...
de Icaza: I think we all agree!
Atwood: Yep, Silverlight is awsome, but you know was interesting about the office stuff... and I think it's very telling, none of the Office stuff was actually implemented in Silverlight.
de Icaza: Yeah... I agree. I mean. I guess I'm like Joel, I like to put my characters in the string with a POKE at B800:0000.
de Icaza: Um so, to me... You know I kind of divide the world... you know I used to say that I divide the world into groups of the people that, you know the PutPixel programmers and the printf programmers. Right?
de Icaza: So I'm more of a PutPixel guy... you know? I like getchar as opposed to, you know form.submit um... so I guess those are the two worlds, and I guess Silverlight from that perspective feels a lot more natural to me, um... that's the way I want to develop...
Spolsky: You could... well you could definately make things that are very smooth and slick inside the rectangle, but I feel like... like my feeling is that that goes back to... as long as you're inside the rectangle then you're really just, you're using the web almost as like a... you know, to deliver the bits to you, and... that's kind of it. And uh...
de Icaza: Yeah...
Spolsky: and you're very limited to... I mean you're not native web, so you're not going to show up in Safari on the iPhone, you're not going to show up in the search engines... your text isn't going to show up in the search engines appropriately... you can't even make it do that...
de Icaza: They... I think that they changed... well they did add features to Silverlight 3 to support those features. Right?
Atwood: But it becomes contortionism right? It's like, you're kind of fighting the paradigm. At some level. Although, like I said, I'm a huge fan of Silverlight, I love what they've done. But at some level, it's hard for me to reconcile that with like, where I actually see the future going. And I know actually, Miguel, you we're a big fan of the Google Wave demo, right? Is that true?
de Icaza: Yes... yes I am a big fan of Google Wave.
Atwood: Which I was sort of a fan of the technology but the demo itself was like I... I just saw Lotus Notes for some reason. Maybe I'm wrong about that.
Atwood: But I just couldn't take it anymore. I said 'oh my god, Lotus Notes', you know? That's all I could see and I had to turn it off immediately. But I love that they're doing it on the HTML platform. Right? They're saying, 'Hey, let's push the platform forward, really aggressively'. I love that part of the message, and that part I totally beleive in.
de Icaza: Yeah... yeah, it's just that the only thing that kind of... being a PutPixel programmer, building a web application is still a little bit of a hodge-podge. In terms of what... in terms of what you have on the client. You know it's a mixed bag at the moment.
Atwood: But I think that was the differing visions. One vision was ok, let's have Silverlight 3 (which is awesome). And the other vision was Google's vision, which was like, let's have this HTML5 platform.
de Icaza: But... no no, I agree, I agree. I'm just talking from my personal perspective why I like Silverlight more. And uhh, you know it might very well end up being that the whole world moves to the other one. It's just... you know...
Atwood: Right, you could end up, basically you're back in WPF-world. At some level. It's like you're still in that niche. You're not... yeah.
Now, the other thing that I wasnted to ask you about is I've seen just a lot of articles about Mono recently. What is your impression of the uptake. Because, the first article where I discovered you (I actually went and looked this up on my blog), was in July 2004. And I think what sold me on you Miguel, was there was a line, there was some interview you had done with CNET and uh, my favorite line was "UNIX is a world of pain for developers", right? And I like the honesty. It's like... okay... and you're out there saying 'Hey, let's make it better'. Let's take this development environment, which is very very painful, and make it better, and obviously the vehicle to do that was Mono. And that was... 5 years ago. So now I'm wondering, what's the uptake of Mono? It seems like it's really starting to get traction at some level. That's why there's all this interest... all this...
de Icaza: So... yeah I actually, well you know people ask me that question and the problem is that we don't really keep statistics on who is using Mono, or where because it's open source nature. Um, that means that we ship one source code, the Ubuntu guys get one copy of the source code, and then they distribute millions of copies of it in binary form. For the Redhat people, the Fedora people, they take one copy and they do the same, and we do the same. So statistic-wise, we don't really have any way of collecting that stuff. So, it's kind of hard. I know that today, Ubuntu (the most popular Linux distro for desktops), they ship F-Spot, and they ship Tomboy as a... two of their core applications, so... it's just in a bunch of places, but it's hard to tell how many developers are using it or, you know... (garbled)... the runtime, but I don't know how many developers use it as an IDE. Uh, it certainly has grown over the years, but... it's... I just have no data.
Atwood: What about like on the app side? I mean, I... I've seen people go into Mono discussions on the site, you know "here's the apps I use every day", 1, 2, 3 I don't have them off the top of my head and... and they're... mono based, right? They're C# running on Linux in some form.
de Icaza: Well, again, I guess it depends on the space, because I think, you know the nice thing, you know I really think that the CLR is fantastic runtime envornment for running stuff. And a great place to build... build new code and I think it has the right mix of features for a language in C#. And so the only defect, in my opinion that .NET had was... is that it's basically tied to Windows. And there's a whole world of interesting devices out there, or other scenarios. Like uh, like the Second Life people using it for scripting everything in Second Life, right? So, you know it's a project that took many years, but Mono is basically the engine that powers the scripting in Second Life now. The um... then you know, then there's gaming sites like Cartoon Network's FusionFall which... it's for kids gaming -- It's an MMO for kids. So those guys are using Mono, but they're not even using it on Linux, they're using it on a.... on Windows machines, and Mac computers. So, people buying games online for the
de Icaza: There are people using, well, I guess I... I'm not supposed to say this unless it's for a partner, umm... I'm not supposed to say the brand of this game, but there's a major blockbuster game that came in the last couple of months... um... very large, very popular, that you can see on the Novell website, um.. (laughs nervously) that is powered by Mono. But the agreement prohibits me from saying that in public. All I can say is ...
Spolsky (interrupting): You can only put it on the website?
de Icaza: I can.. the agreement allows me to say that it is... if you go to Novell/products/mono, I believe... you will see... you will see the logo of said popular game. But I can't say its name. So, you know, I think it's being used in a lot of very interesting places, um, beyond what we originally intended it for. We thought, you know, "Linux desktop" and now, you know, it's used for server, ASP.NET, it's used for... you know
Spolsky: Hey, how about those SimCity programmers? How do you like their new game?
de Icaza: Uh... yeah, yeah! I really liked that game!
Spolsky: What's it called, "The Sims" or something?
de Icaza: Yeah I like that game! That's... it's pretty sweet, it's pretty sweet. Have you tried it yet?
Spolsky: Yeah no, you know I haven't really since I, uh, I would kill my characters...