M
Miguel de Icaza
tirania.org · Personal blog · on HN since 2007
Miguel de Icaza, founder of GNOME and Mono, writes about software, open source, Microsoft, Apple platforms, and his own career.
What HN saysHN links him for his Linux desktop and Mono history, his callback hell write-up as an example of naming a problem, and his "adult principles" post.
184HN people shared it
96linked it in comments
149stories submitted
5.8Kstory points
9 months agolast shared
2007people per year2026
Most-shared posts
- 1Well, Actually34 people · 57 points · first shared 2011 · 2 comments on HN
- 2What killed the Linux desktop9 people · 517 points · first shared 2012 · 378 comments on HN
- 3How I ended up with Mac8 people · 126 points · first shared 2013 · 193 comments on HN
- 4Microsoft Open Sources .NET and Mono7 people · 156 points · first shared 2014 · 1 comments on HN
- 5Miguel De Icaza: Microsoft promises to never sue anyone regarding Mono.5 people · 80 points · first shared 2009 · 51 comments on HN
- 6Nokia Simplifies the Mobile Landscape5 people · 4 points · first shared 2011 · discussion on HN
- 7Nov 035 people · first shared 2009
- 8Initial Thoughts on Oracle vs Google Patent Lawsuit4 people · 62 points · first shared 2010 · 9 comments on HN
- 9Miguel de Icaza: Learning Unix3 people · 217 points · first shared 2011 · 123 comments on HN
- 10Open Source Contribution Etiquette3 people · 57 points · first shared 2010 · 14 comments on HN
- 11Miguel de Icaza's answer to "Does Windows cost Microsoft opportunities?"3 people · 31 points · first shared 2010 · 36 comments on HN
- 12Usability Disaster Story3 people · 19 points · first shared 2008 · 2 comments on HN
- 13Microsoft Open Sources .NET and Mono3 people · 2 points · first shared 2011 · discussion on HN
- 14Callbacks as our Generation's Goto Statement2 people · 621 points · first shared 2013 · 274 comments on HN
- 15Dropbox Lack of Security2 people · 295 points · first shared 2011 · 186 comments on HN
What HN people wrote when they linked it
pjmlp · 2024-03-28
Which ended up having such a community backslash that Miguel de Icaza decided to focus his efforts on Xamarin instead, followed by Microsoft's acquisition, and nowadays he is focused on Apple's ecosystem, Swift and Godot on Apple platforms.
"Miguel de Icaza and his ostracization from FOSS" https://www.linux-magazine.com/Online/Blogs/Off-the-Beat-Bruce-Byfield…
"What killed the Linux Desktop" https://tirania.org/blog/archive/2012/Aug-29.html
"How I ended up with a Mac" https://tirania.org/blog/archive/2013/Mar-05.html
One might wonder how things would have turned out instead if the community had been more welcoming of his efforts on GNU/Linux.
mwattsun · 2022-01-06
Richard Feldman (Elm) analyzes why programming languages become popular and says Java is unique. It became popular because Sun spent 100's of millions of dollars promoting it, even after the dot com crash. Others like Ruby, had a killer app.
His thesis is object oriented programming wasn't inevitable or is the best way to program. It was an accident of history that OOP became so popular.
Why Isn't Functional Programming the Norm? – Richard Feldman
https://www.youtube.com/watch?v=QyJZzq0v7Z4
Another Java tidbit is that Miguel de Icaza (Gnome, Mono) really wanted an open source higher level language on Linux so he approached Sun about Java and they wouldn't work with him, so he settled on C# and is probably the man most responsible for the move to cross platform C# and .NET (dotnetcore, v5)
https://tirania.org/blog/archive/2006/May-11.html
oblio · 2021-04-05
The problem with this logic is that with millions of people, everything can happen.
When someone says "never/no one" in a casual conversation, they don't mean "it's physically and mathematically impossible for this to happen, I'm sure the chance of this is 0%". They mean: "the vast majority of people".
Techie communities can be tiresome with all the nitpicking.
I swear that if I posted a comment saying "nobody puts their dick in the vacuum cleaner shaft" while discussing the best vacuum cleaner design, somebody would feel the need to object and say they did it.
https://tirania.org/blog/archive/2011/Feb-17.html
danabramov · 2019-03-25
I love the meta-ness of this comment. Not sure if it was intentional :-)
One concrete example of naming a problem is “callback hell”. Example of “telling a story” to explain it: https://tirania.org/blog/archive/2013/Aug-15.html
Once you have a few articles like this, the quality of discussions on the topic rapidly goes up.
For React, David Nolen’s and James Long’s early posts did the same thing.
jacquesm · 2018-02-07
That sucks. Adult principles:
http://tirania.org/blog/archive/2011/Jan-21.html
Worth living by.
dkns · 2016-06-29
One of the reasons for toxic behaviour in IT is, in my limited experiences, the 'well, actually' mindset and everything that comes along with it. There is great blog post that I made mandatory read for all new employees joining company.
http://tirania.org/blog/archive/2011/Feb-17.html
j_s · 2015-09-18
These well, actually[1] moments are great. My favorite ever seen here was yesterday:
Not to be pedantic, but I think you are using the word accurate when you mean precise.[2]
Communicating with just the written word is tough enough; fighting over which near-synonym to use is always fun to watch but rarely productive.
[1] http://tirania.org/blog/archive/2011/Feb-17.html
[2] https://news.ycombinator.com/item?id=10237199
stesch · 2015-05-14
Sorry for wasting everybody's time. I didn't know this isn't a real thing anymore. :-(
I was digging through Reddit and saw some interesting comment by Miguel de Icaza. It was regarding his blog post http://tirania.org/blog/archive/2014/Oct-23.html (Mono for Unreal Engine).
There was no update to the situation in this blog post. No information on the site I posted here. Really bad communication from Miguel and Xamarin. :-(
I have only followed one tutorial for Unity3D and have never tried Unreal Engine. I'm just interested in the topic because it's different from my day job and I'd like to try something new. Posted the link here to provoke some discussion about it.
(The 1980s were so much easier. Not many choices on the C64.)
migueldeicaza · 2014-11-12
Microsoft's focus on this release is the server.
Mono plans on contributing to the effort our cross platform changes to Mono, to make .NET work great on Unix.
Details here:
http://tirania.org/blog/archive/2014/Nov-12.html
adamjs · 2014-09-12
There's actually a few other alternatives if you want to interop with straight-up C++ interfaces:
1. Use SWIG [1] to generate the C-API from the C++ headers (you are limited to a subset of C++: no STL, no templates, all interfaces must be pure-virtual).
2. The guys behind Mono created an amazing tool [2] that allowed you to call C++ symbols directly from managed C# code via transparent translation of the underlying ABI scheme (automatically maps the object layout, vtable layout, and name mangling scheme and emits code at runtime). They finished the GCC ABI and added partial support for MSVC ABI. Sadly the project seems to be abandoned in recent months.
[1] http://www.swig.org/
[2] http://tirania.org/blog/archive/2011/Dec-19.html
gexla · 2012-11-24
There are so many things you might run into that I don't know how a course could possibly cover more than the very basics (using Bash, basic commands, etc.)
Miguel has a good blog post on learning Linux.
http://tirania.org/blog/archive/2011/Sep-06.html
Another great resource is to pick up a Linode VPS and go through the library.
http://library.linode.com/
I owe a lot of my start in Linux to the Slicehost articles but Slicehost is going away as it gets eaten by Rackspace.
Skip the courses, they are a waste of time.
andyl · 2012-05-28
a classic well-actually (see http://tirania.org/blog/archive/2011/Feb-17.html)
davidbalbert · 2012-04-12
This is a touchy subject. I think this kind of behavior is very counterproductive and we (programmers) seem to do it a lot. It's something that needs to be talked about and fixed. Miguel de Icaza wrote a great blog post about "well-actuallys" a year ago and it's definitely worth reading: http://tirania.org/blog/archive/2011/Feb-17.html
That being said, it makes me uncomfortable that an article called "Why you shouldn't invite Yehuda Katz to your user group meeting" near the top of HN, especially because he seems to have become a bit of a punching bag lately (see Rails.app). I really wish we as a community spent less time dragging people down, especially ones who contribute so much great code.
This shouldn't be about Yehuda. This should be about all of us being nicer and better people. It's sad to see an opportunity for discussion be used to bring down one person.
acoard · 2021-12-14
I'm a bit confused behind the substance of your argument. I use RHEL at work a lot which is admittedly pretty corporately, but use Debian at home just fine. But as for windows-y? How so? And regarding backwards compatibility, isn't that how Linux has always been? Windows has always been the king of backwards compatibility, whereas it wasn't one of Linux's strengths.
As Miguel de Icaza said in 2012:
> Backwards compatibility is not a sexy problem. It is not even remotely an interesting problem to solve. Nobody wants to do that work, everyone wants to innovate, and be responsible for the next big feature in Linux.
> So Linux was left with idealists that wanted to design the best possible system without having to worry about boring details like support and backwards compatibility.
> Meanwhile, you can still run the 2001 Photoshop that came when XP was launched on Windows 8. And you can still run your old OSX apps on Mountain Lion…”
src: https://tirania.org/blog/archive/2012/Aug-29.html
indubitable · 2018-02-07
From my perspective here, you're shifting the goal posts. In particular this conversation began with you apparently thinking that Mono lacked full implementations of ASP/ADO/etc. And I think that might justify the original comment that Linux implementations have been treated as second class citizens. I say might since ADO/ASP are not really part of .NET, but rather independent projects built on top of .NET. But in any case, that hasn't been an issue for many years now.
You have now shifted into claiming that your issue is that the licenses Microsoft released their code under were insufficiently permissive. I could argue against this, because it's at best misleading -- different code was released under different licenses. You can see an archive of one of the CLI releases [1] with the license it came with. Or this [2] is a blog from the Mono founder expressing thanks for Microsoft and ECMA members releasing code under open source licenses. That blog was from the huge 2.0 release, in 2008.
But ultimately that feels like a red herring, even if a fun one! You seemed to believe (as did the person I was responding to) that C# was a Windows only thing. That hasn't been the case for a very long time, and it is completely ridiculous now a days. In either case, it might seem we agree if you think that people are basing their views on obsolete information. But that then rather begs the question of why is that so especially the case here. If I was discussing e.g. javascript frameworks…
nommm-nommm · 2016-02-22
> Where did you get that I don't enjoy jokes?
You should read this - http://tirania.org/blog/archive/2011/Feb-17.html
excerpt:
"But our engineering strength is also our social weakness. Countless times as engineers you will find yourself interrupting someone telling a story, an anecdote or a joke to correct a false assumption, provide an extra fact that the narrator overlooked, give a bigger perspective on the problem or point out that the joke premise is actually flawed.
You can identify this behavior because the person interrupting usually starts with the phrase "Well, actually...".
As a kid, I thought this was my strength. I knew a little bit more than my sister. So whenever she would say something, I would quickly interject something like "Well, actually, the origin of the word Shih Tzu means Lion Dog and has nothing to do with the dog's digestive patterns".
Yes, I was really fun to hang out with.
Whoever pulls a "well, actually" almost always shifts the conversation to himself. And now we are no longer following along with your friend's joke, we get to learn how much more you know about the limitations of the Sun Protection Factor scale in sunblock products.
Even the most rudimentary of the well-actuallistas is able to spoil even the best Ricky Gervais material.
But instead of rolling with the punches and participating in a brainstorm of ideas and exploding humor, they contribute interruptions, facts and details that merely produce stop energy on an ongoing…
irahul · 2012-06-10
What's remarkable is Feynman went to great lengths in investigating the crackpot theories, instead of outright rejecting them. I won't even bother trying doing anything he mentions in the article, except for the esalen jaccuzi thing(wink wink). And I am pretty sure I will end up as Feynman did. Geeks and there "Well, actually" http://tirania.org/blog/archive/2011/Feb-17.html
I think the point he is trying to make to audience is he is willing to accept ideas which invalidate what he knows. His believes are verifiable, and though he is willing to give yours a chance, he won't just "let it be" unless it's verifiable.
I read another of his stories in which he took the class to the gym where he had a bowling ball attached to a string hanging down the ceiling in the center of the room. He went to the opposite end with the ball, had his back by the wall, brought the ball to his nose and let it go. The ball swung to the other side, swung back, and came dangerously close to his face(well, at the same spot where he let it go - simple pendulums. duh). He told the students "I want you to know I know and believe what I am going to teach. There are no manifestations or biases - only truth"(paraphrased)
jjm · 2011-07-21
I appreciate your thoughtful reply!
One (of the many i'm sure) problems here you defined are:
"...who would love to have a way to embed interactive graphs and tables into your papers to make them more understandable for the reader..."
The solution however may not necessarily be a private 'reader', 'player', or 'binary'. Though the 'format' may be 'open' this single implementation isn't.
You bring up Adobe which isn't a very good business case to follow as the very reasons I brought up are pressing the industry to move toward open implementations[1][2], away from 'free' binary distributions and plugins (for a various list of reasons from security[2], to access on other systems/apps).
This really isn't 1999, and CDF isn't yet a popular nor a de-facto standard[1] much like PDF was. Besides you and I are much more capable these days with newer and _open_ technologies are we not (browser, linux, open documents, etc...)?
Speaking of documents, other examples of 'perceived' open standard files are Microsoft's ill faded OSP[3] promise which spawned traction for OD/F[4] and other.
These reasons are why HTML5/CSS3/JS as a basis to create an open two way street for 'documents' and/or formats are so powerful. It is not enough to only provide an 'open' format, but also an open implementation. This way both use of and implementation of such product be beneficial toward academic progress. Why wouldn't that alone be worth it?
Thus a likely more popular solution I am proposing to your…
crux_ · 2010-02-16
Neat technology, but, even as a rather serious O'Caml fan, even going so far as to use it in production ;), I tend to avoid the FF consultancy because of things like this:
> If you would like to keep up to date with respect to HLVM development, please subscribe to The OCaml Journal.
And when I go to read the online documentation?
> The design and implementation of this high-performance garbage collected virtual machine is described in detail in the OCaml Journal articles "Building a Virtual Machine with LLVM" from January to March 2009.
If you have to subscribe to a pay journal to learn all about it, chances are very good it isn't going anywhere at all.
Also, as something of a counterpoint to the whole "CLR missing on Linux or Mac OSX"... I've not run into many CLR compatibility issues with Mono at all. Also, they're not just doing the CLR; for example they've added first-class continuations (yes, that's right: call/cc!) to the mono VM; for language implementers that's rather attractive:
http://tirania.org/blog/archive/2009/Apr-09.html
etal · 2008-09-13
The catch is, once they do figure out one way of accomplishing a task -- even if it's complicated, unintuitive, and not really what you intended -- they'll cling to it and base future actions on that point of reference. So you can't "correct" the interface without further annoying the users who already figured out one way to do it.
Miguel de Icaza has an amazing post on this:
http://tirania.org/blog/archive/2008/Jan-24-1.html
On the Mono download page, available versions for each platform were available as text links, with the platform's logo next to the links. Because of some configuration of the wiki engine they were using, images automatically linked to another page listing all the places where the same image is used. So, rather than clicking on the text link to download the latest version, 95 percent of Windows and Mac users would click on the logo, see the listing of other pages using the logo, scan that textual list for the highest version number (it's near the bottom of the list), visit the page for that one ancient version, and download it.
Aside: Noting that users will only read text as a last resort, and not always even then, I wonder what the success rate is for getting past Firefox 3's "this page's certificate is self-signed" warning. It can't be any better than Mono's.
fulafel · 2025-11-06
How much of this is due to use in games and Mono?
Eg https://tirania.org/blog/archive/2008/Nov-03.html
null-a · 2025-04-26
I've seen a version that adds "lies of omission are sometimes exempt":
https://tirania.org/blog/archive/2011/Jan-21.html
runjake · 2022-11-14
Since at least 2005[1] part-time and 2012-ish full-time: https://tirania.org/blog/archive/2013/Mar-05.html
1. I saw him at a conference in the mid-2000s using a Mac.
throwaway19937 · 2021-12-27
I flagged it because it's a Well, Actually (https://tirania.org/blog/archive/2011/Feb-17.html) that makes an unsupported claim.
bithavoc · 2021-04-22
yeah, not even on the alternative downloads page. It reminds me of the story of how the Mono team had an issue in the downloads page that leads to some users download a 2yr old release of the Mono Framework.[0]
I found the downloads page[1] but it still says Beta, unsure what's going on.
[0]https://tirania.org/blog/archive/2008/Jan-24-1.html
[1]https://releases.ubuntu.com/21.04/
marcodiego · 2021-04-02
More about the same theme here: https://tirania.org/blog/archive/2013/Mar-05.html
jongalloway2 · 2018-12-04
Hi, .NET Foundation Executive Director here, happy to answer any questions. Also, check out Miguel de Icaza's post here for details and background: https://tirania.org/blog/archive/2018/Dec-04.html
carussell · 2017-08-04
Here's Miguel's blog post from a couple years ago (before the Microsoft acquisition) when their cooperative mode GC first landed:
http://tirania.org/blog/archive/2015/Dec-22.html
sah2ed · 2017-03-10
Glad you were able to recover from you "well, actually" habit as Miguel de Icaza termed it :)
http://tirania.org/blog/archive/2011/Feb-17.html
maxaf · 2017-02-10
Awesome! So we can stop copy-pasting this: http://tirania.org/blog/archive/2008/Aug-26.html