
Bringing Smiles to the Faces of MacOS developers - Miguel de Icaza - stesch
http://tirania.org/blog/archive/2010/Oct-12.html
======
drats
Who exactly stands behind Mono after Novell is sold (if and when)? Isn't there
a significant risk, beyond the present one of MS making some move against
them, that it will be left to stagnate by a new owner? And even the MS risk
hasn't been cleared up for me. Please don't give me the stuff about MS
promises against suing, it's totally unrealistic. Sure, you can argue it's not
probable, but you can't argue that it's impossible or an insignificant risk -
it's real. Who exactly has mono installed anyway? All that market share on....
which device or platform? The web? Mobile? Some small percentage of one
operating system and basically nothing on the others? The Linux community
doesn't just not have it installed they are actively hostile to mono.

What I am peddling here is FUD, but it's warranted FUD, there are too many
unknowns for what amounts to a buggy C#. Isn't the C# selling point that it's
a better Java? How does that value proposition hold up for a B-grade C# with
patchy coverage of the forms et cetera, with a patchy install base and an
extremely uncertain future. Mono has totally failed to gain a critical mass,
so there will be no openoffice.org=>libreoffice. When the takeover of Novell
comes it will die a horrible and withering death getting further and further
behind the parity with the MS implementation which it has never yet matched. I
am sorry to say it, I wish the legal situation and Novell situation were
otherwise and people could just choose on the basis of technical merits: but
that's not the case, and anyone basing a startup or business on anything to do
with mono is certifiably insane.

<http://en.wikipedia.org/wiki/Novell#Takeover_Bids>

~~~
Niten
> Please don't give me the stuff about MS promises against suing, it's totally
> unrealistic.

You're wrong. It would be pretty much impossible for Microsoft to sue over
Mono at this point, even if they wanted to. You gloss over the fact that
Microsoft has issued a thorough, unrevokable, legally binding Community
Promise to not assert patent claims over .NET implementations:

<http://www.microsoft.com/interop/cp/default.mspx>

The purpose and implications of the Community Promise are clear. Microsoft has
sanctioned Mono, and no court in the world would let them take the CP back and
say "nah, we were just kidding."

> What I am peddling here is FUD, but it's warranted FUD, there are too many
> unknowns for what amounts to a buggy C#.

Oh please. Ignoring the fact that you appear to be confusing C# and the CLR
here, do you actually have any concrete complaints about mcs, or is this just
more unwarranted FUD?

~~~
drats
>"do you actually have any concrete complaints"

Yes, the central point of my comment that you didn't address.[1] That is,
Novell looks like it's going to be acquired and there seems to be no reason
for the purchaser to continue with Mono. It's a totally uncertain future for
Mono. As I said elsewhere I am not slandering Mono, I wish it were otherwise
but, given that there are just so many other cool technologies out there,
what's the compelling case to _bet your business on it_ with such a rain cloud
over it? So it's not about using it for some little side project, its about
founding your startup idea with Mono at the core of the technology stack, are
you going to take the risk? Would you, personally, use it over the other
options for your business when it doesn't have an independent community, only
a soon-to-be-acquired Novell?

Listen to the squawking and preening going on in this blog to display value to
Oracle. <http://www.novell.com/prblogs/?p=3070>

Do you trust Oracle with your business future, given the multiple fiascos that
have come out of the SUN takeover?

[1] <http://www.paulgraham.com/disagree.html>

~~~
bad_user
> _That is, Novell looks like it's going to be acquired and there seems to be
> no reason for the purchaser to continue with Mono_

Contrary to other "open-source" projects, Mono has a very active (albeit
small) community behind it. Right now there are very active contributors that
aren't working for Novell.

Also, making a parallel with another active project, JRuby, its leader quit
Sun/Oracle but it is still working on JRuby ... and I've been watching
Miguel's commitment and enthusiasm about Mono ever since the start, and it has
only grown since then.

    
    
         It's a totally uncertain future for Mono.
    

Yeah, because whatever platform you're using is so much safer.

The patents grant by Microsoft also includes supersets (contrary to Java SE
implementations), and the ECMA standard you have to implement is rather small,
also making it suitable for mobile phones (MonoTouch falls under that
community promise, even though it ships with a fraction of what is known as
.NET)

It's also an open-source project that doesn't fall under the GPL trap ...
yeah, I said it. The class libraries are MIT X11, the runtime is LGPL, it is
appropriate for embedding in commercial deployments right now.

If commercial support is dropped, it can live on.

Get over it!

------
jcromartie
The last time I tried MonoDevelop (let alone on a Mac) it was a total
disaster. I hope it's better now. I am pretty comfortable with Xcode, but
"native" Mac apps in C# is a pretty good reason to consider switching to
something else.

~~~
alextgordon
First impressions:

I open the new file dialog. Type in a name, try to copy the name... and it
closes the new file dialog! Apparently Cmd-C is bound to cancel. Okay, so it's
a little quirky. Let's try again.

I create a new file. Type some text. Select Edit->Copy this time and... it's
crashed.

Maybe I'm unlucky.

I install MonoMac, restart, create a project, write some code to display an
NSAlert, press build and

    
    
        Build failed. ~/.config/MonoDevelop/addins/MonoDevelop.MonoMac.2.4.0.5/mono-version-check does not exist.
    

_Jesus_

EDIT: As a bonus, a process called _mono_ has been running at 100% CPU for the
last half an hour.

EDIT 2: After using it for a bit longer, the editor itself is actually not
bad. It has all the features you'd expect and autocomplete seems well
implemented. But this software is just far too buggy for any kind of serious
day-to-day use.

~~~
jacksonh
The missing mono-version-check in the bundle was fixed in an update about
30mins ago

~~~
alextgordon
Thanks for the heads-up. I'll give it a try.

------
ryanpetrich
> We have achieved a beautiful blend between C# and MacOS that will turn Mac
> developer's tears of pain into tears of joy.

Really? Tears of pain?

------
Kilimanjaro
Read "The Mono Trap" by RMS

<http://www.gnu.org/philosophy/java-trap.html>

~~~
bad_user
Kilimanjaro, what do you do for a living?

Just curios, because if it is anything remotely similar to selling commercial
products or closed web-services (as most developers here do), you can't talk
about trapping users or about the virtues of free-software with a straight
face: that's called a double standard.

And most people that do that (according to surveys I've seen) are either still
in highschool/college or just hypocrites ... with the occasional "real deal"
that manages to live off consulting for open-source development (core project
devs mostly) and writing books / training.

So which is it?

------
swombat
Can the apps built in MonoMac easily be ported to native Windows widgets? That
would be a killer feature.

~~~
migueldeicaza
With all of the platforms available now to C# developers (iPhone, Android,
Window Phone 7, Windows, Linux, Mac) it makes sense to build applications in a
way that will allow you to create native experiences, but also share your code
across multiple platforms.

Our recommendation to developers is that they split their applications across
the User Experience/Business Logic fault line. Developers then can replace the
user experience with native user interfaces for each platform.

This is a bit abstract, so we tend to tell people to build a lot of UI-less
reusable libraries and for libraries that have UIs, to split their Model-View-
Controller libraries in a way that the Model and its support infrastructure
are reusable and the View and the Controller are UI-specific.

This extends a little bit further. You also might end up with an "OS" layer
that performs certain tasks in a different way depending on the operating
system that you will be running.

For instance, while running on an iPhone, you have access to the gyroscope,
something that you wont find on say a Linux desktop. Or on Linux, you will
have access to /proc, which you wont have access to on Windows Mobile 7.

A nice example was Paint.NET. When that application was built, the operating-
system specific features were all placed on a library called SystemLayer.dll.
The UI was all Windows.Forms, but porting the program turned out to be limited
to replacing the SystemLayer.dll with one that spoke Posix as opposed to
speaking Win32.

~~~
anonymous245
Thank you for giving some sane advice, instead of peddling the magical "single
source/multiplatform" promise.

------
protomyth
Looking at all these alternate language attempts on iOS and OS X, It seems
like it wouldn't be a bad thing to port a Basic that matches the object model
of Objective-C, supports blocks, and calling C code / stucts. It might not be
a bad bet to be the VB to Objective-C's C++/C#.

~~~
jonhendry
There's a product called RealBasic that's been around for years. It started on
Mac but now runs on OS X, Windows, and Linux.

<http://www.realsoftware.com/>

~~~
protomyth
I actually had a subscription to that. It really, really isn't Cocoa. It is
more a direct VB replacement.

------
jp
C# is just like Objective C in that the vendor lock-in is in the API and
resource formats rather than the code syntax. Info.plist is fine, but X/NIB is
terrifying when mixed with four versions of OS X, four different CPU
architectures and several Frameworks in a pear tree.

------
mgw
Finally! I've been waiting for a long time to install KeePass 2 (MONO) cleanly
on my Mac.

------
DjDarkman
No thank you, if I would want to develop for OS X I would stick to C++ and Qt.
I'm to young to get sued.

