
Xamarin Open-Sourced - fekberg
http://open.xamarin.com/
======
ghuntley
It has been super exciting watching this all unfold over the last year, for
those wondering where to get started in the new world of .NET open source -
start here:

.NET CLR Managed Runtime -
[https://gitter.im/dotnet/coreclr](https://gitter.im/dotnet/coreclr)

.NET Framework -
[https://gitter.im/dotnet/corefx](https://gitter.im/dotnet/corefx)

.NET Compiler as a Service ("Roslyn") -
[https://gitter.im/dotnet/roslyn](https://gitter.im/dotnet/roslyn)

.NET Orleans Actor Framework -
[https://gitter.im/dotnet/orleans](https://gitter.im/dotnet/orleans)

Mono Framework - [https://gitter.im/mono/mono](https://gitter.im/mono/mono)

Xamarin iOS, Watch, Mac Bindings and Framework -
[https://gitter.im/xamarin/xamarin-macios](https://gitter.im/xamarin/xamarin-
macios)

Xamarin Android Bindings and Framework - [https://gitter.im/xamarin/xamarin-
android](https://gitter.im/xamarin/xamarin-android)

Everything is licensed under the MIT license w/patent pledges.

~~~
spriggan3
Why do you link to gitter when you should actually like to the repos instead ?

~~~
ghuntley
Depends on how you learn. Some learn by being around others, social
interaction, asking questions and absorbing knowledge. It's clear you fall
into the latter category which likes to learn by diving right into the code,
so here it is:

.NET CLR Managed Runtime -
[https://github.com/dotnet/coreclr](https://github.com/dotnet/coreclr)

.NET Framework -
[https://github.com/dotnet/corefx](https://github.com/dotnet/corefx)

.NET Compiler as a Service ("Roslyn") -
[https://github.com/dotnet/roslyn](https://github.com/dotnet/roslyn)

.NET Orleans Actor Framework -
[https://github.com/dotnet/orleans](https://github.com/dotnet/orleans)

Mono Framework - [https://github.com/mono/mono](https://github.com/mono/mono)

Xamarin iOS, Watch, Mac Bindings and Framework -
[https://github.com/xamarin/xamarin-
macios](https://github.com/xamarin/xamarin-macios)

Xamarin Android Bindings and Framework - [https://github.com/xamarin/xamarin-
android](https://github.com/xamarin/xamarin-android)

~~~
the-dude
You seem to be dodging the question. The question is why -you- are linking to
gitter.

~~~
ChrisClark
He answered it, he linked to gitter because he assumed people wanted a social
link instead.

He's not dodging the question at all, he answered it directly. He obviously
likes gitter and chatting with others.

------
jeswin
Honestly, I am a little tired of all the articles (edit: I meant posts)
claiming MS is suddenly in the Open Source camp.

To truly support Open Source, they should show a willingness to work against
Software Patents. The essence of Open Source is the freedom for anyone with a
computer to turn their imagination into code. MS remains one of the biggest
obstacles in that path.

Instead here is what they do:

1) Directly attack the Linux kernel in Android through patents

2) Sell patents to trolls like Intellectual Ventures, and directly fund them
via investments

3) Support the cartel called BSA, which includes other luminaries like Oracle
([http://www.bsa.org/about-bsa/bsa-members](http://www.bsa.org/about-bsa/bsa-
members)).

Honestly, say what you will about Google, but I can't imagine them ever
threatening another software company with software patents.

~~~
nivla
>Honestly, say what you will about Google, but I can't imagine them ever
threatening another software company with software patents.

That is a naive fanboy outlook towards a company. Its a well known fact that
Google bought Motorola only for the patents. Google has also managed to use
the patents to sue other companies including Microsoft. Although I still
believe it is the game that is flawed and not the players. Google has also
done things that could hold back the Windows Phone ecosystem. However, none of
that should discount how much Google has contributed to betterment of the web
just like Facebook or Microsoft. Open-Source is open source, the only thing
that matters is license here and it is as liberal as it could get MIT.

~~~
jeswin
I am not a Google fanboy, I am merely saying they abide by the spirit of Open
Source. I just used them as an example. RedHat is another example.

> Google has also managed to use the patents to sue other companies including
> Microsoft.

Can you post a link to Google suing Microsoft first (not in retaliation)?
Google was way behind in the patent game until they got hurt. Google bought
Motorola to have a defensive patent portfolio. Also, see their Open Patent
Non-Assertion Pledge
[https://www.google.com/patents/opnpledge/](https://www.google.com/patents/opnpledge/)

> Open-Source is open source, the only thing that matters is license here and
> it is as liberal as it could get MIT.

Open Source is where it is today from the decades of hard work by many, many
people (in the early days, just for the love of it with no pay). MS is doing
Open Source today because it really has no choice. There is no comparison
between these two.

Open Source can welcome MS, but it should demonstrate a willingness to work
towards the best interests of the movement. There are bigger goals here.

~~~
scrollaway
Google replaced their XMPP messaging system by Hangouts, a 100% closed
protocol with no signs of even wanting to open source it.

From a FOSS pov, both Google and Microsoft have positive and negative sides to
it. They're massive companies, you can't judge them as one giant blob.

What MS is doing _right now_ with .NET is fantastic for open source. Just like
what Google is doing right now with Hangouts is frankly bullshit. Judge
actions, not entities.

~~~
MichaelGG
XMPP had a fair amount of shortcomings and the real issue is that federated
systems don't solve spam. So everyone living in this "we'll run our own IM
systems, just like email" is deluded, as spam in email is barely a solved
issue. And much of the solution involves blocking "independent" servers.

~~~
scrollaway
You missed the part where Google is not open sourcing Hangouts.

------
greenspot
First thought: Xamarin is now open source—great!

Second thought: Every time I looked into Xamarin (and I do this every 6
months) there was a lack of killer apps created with Xamarin on both iOS and
Android, users' experiences with Xamarin were either rare or negative and in
total the community felt non-existent

Third thought: Ok got it, they open source to get PR, build a community; I
hope that helps and it's not their last resort

So, _is_ Xamarin really a viable solution?

~~~
tacos
Couple billion dollars in revenue generated with it via Unity alone.
[https://en.wikipedia.org/wiki/Unity_(game_engine)](https://en.wikipedia.org/wiki/Unity_\(game_engine\))
\-- and that was a HORRIBLE version of it. Way better now.

~~~
apayan
tl;dr. The success of Unity can't be used as an indicator that cross-platform
frameworks are good for productivity/utility apps.

Xamarin and Unity don't have anything in common, other than the fact that
Unity uses C# for scripting (on an ancient runtime).

Cross-platform app development frameworks are generally awful because they
don't tightly integrate with the native look and feel of every platform. Video
games don't even try to achieve native looks on any platforms. They're always
full screen works of art, without any hint of a UIButton (iOS) or TextView
(Android).

~~~
tacos
I too hate cross-platform schlockware but it sounds like you are not familiar
with the technology.

"controls are mapped to platform-specific native user interface elements; for
example, a Xamarin.Forms Entry becomes a UITextView on iOS, an EditText on
Android, and a TextBox on Windows."

[https://www.xamarin.com/forms](https://www.xamarin.com/forms)

~~~
apayan
Interesting. I was unaware that Xamarin maps widgets like that. Thanks for
enlightening me. :-)

How does it abstract away the more fundamental differences between platforms
Activities/Fragments vs. UIViewControllers?

~~~
tacos
You win some you lose some. With Fragments Xamarin actually extends support to
earlier Android devices. Less of an issue now, but there was a time when this
actually extended platform reach, reduced code, and simplified
training/upgrades.

For some things it's about the common talk-to-the-backend code, not true-code-
once across iOS/Android...

------
tree_of_item
Quick question for .NET developers: is there a solution for totally command
line driven workflows yet? I really don't want to mess around with .SLN files
and IDEs like Visual Studio and MonoDevelop. I'm sure VS is fine for people
who like it, but I really want something like `cargo build` or `go build`.

~~~
muttech
.NET CORE is exactly this
([https://github.com/dotnet/cli](https://github.com/dotnet/cli))

'dotnet build' to build it.

~~~
alexc05
yes and no of course ... yes dotnet cli will be exactly this and it will be
_GREAT_ (IMO)

but it isn't actually "out" yet (you can get your hands on it but it will be
buggy)

still, will be 100% fantastic.

~~~
swalsh
I've been using it on a production project. Life hasn't been smooth, but once
Its totally functional.

------
davb
I just wish they didn't kill RoboVM. I get the warm and fuzzies when something
big is open sourced just like everyone else. Then I snap back to reality and
remember that it's ultimately the same organisation that close-sourced RoboVM
then killed it, screwing over a lot of people depending on it.

~~~
jestar_jokin
Seriously, RoboVM could have been _huge_. An ingenious way to introduce app
development to your existing hordes of Java devs. Great tech, killed because
of business decisions...

~~~
thomasz
it was most likely killed because it was seen as an invitation for a multi-
billion lawsuit by oracle.

------
cptskippy
I'm glad to see Microsoft embracing Open-Source, C# is such a wonderful
language and easy language to use. In light of all the trouble Oracle has been
giving Google, I would love to see them embrace it and provide a true
alternative to Java on Android.

~~~
colbyAFTrustedK
Microsoft will need to revise their patent pledge first. If you look at the
way it's currently written, it's almost as if it was specifically meant to
preserve their option to pull an Oracle v Google against a vendor who decides
to pick up .NET and run with it.

Meanwhile, Google has switched away from their Apache Harmony derivative to
the officially anointed sources, so there's not much incentive to make the
move away from Java entirely, anyway.

~~~
serge2k
How so?

~~~
colbyAFTrustedK
I don't understand the question.

~~~
serge2k
> If you look at the way it's currently written, it's almost as if it was
> specifically meant to preserve their option to pull an Oracle v Google
> against a vendor who decides to pick up .NET and run with it

how so?

~~~
carussell
> Microsoft Corporation and its affiliates ("Microsoft") promise not to assert
> any .NET Patents against you for making, using, selling, offering for sale,
> importing, or distributing Covered Code, as part of [...] any compliant
> implementation in software of (a) _all of the required parts of the
> mandatory provisions of Standard ECMA-335_ [...] and (b) if implemented, any
> additional functionality in Microsoft's .NET Framework

------
drudru11
Crazy seeing those Novell copyrights in the headers! I totally forgot about
them and their relationship to Xamarin.

------
seibelj
This is amazing! But question - where is RoboVM? Please release to MIT license
so it doesn't waste all of the work done so far.

~~~
ZenoArrow
IIRC, RoboVM is being dropped. No further development work. I could be wrong
though, I'm half remembering it being discussed on a Reddit AMA with Miguel de
Icaza.

EDIT: It wasn't in the AMA after all, but it has been dropped:

[http://www.linuxjournal.com/content/death-
robovm](http://www.linuxjournal.com/content/death-robovm)

~~~
seibelj
Perfect, so open source it so the community can continue, it's still #1 for
the moment and libGDX might be better served by it than intel

~~~
ZenoArrow
Why would Microsoft open source a direct competitor to the Xamarin .NET
platform?

The best option you're likely to get is to build on top of the older open-
source RoboVM release:

[https://github.com/robovm/robovm](https://github.com/robovm/robovm)

------
koyote
This is great news!

Last time I used it (more than a year ago) it was still felt quite buggy. That
being said, has anyone successfully used Xamarin or have an example of a large
and successful app built with it?

~~~
vpanyam
Slack and GitHub are mentioned on their customers page.

There's a list with some more companies here:
[https://www.xamarin.com/customers](https://www.xamarin.com/customers)

~~~
philwebster
That list is somewhat misleading. Slack, for instance, only uses Xamarin Test
Cloud.

------
oblio
Now only if .NET adoption on Linux would pick back up like when Mono was
pushing it. .NET is a great environment for developing desktop applications
and Linux really needs them.

~~~
snuxoll
GTK# could use some serious love, as much as I enjoy Vala I would much prefer
to be able to use Npgsql for database access than deal with the crapshoot that
is libgda. Unfortunately after the GTK3 transition it seems nobody has really
felt like maintaining GTK# much, meanwhile plain old C and Vala have been
getting all the cool stuff (GTK composite templates, in particular).

~~~
edwinnathaniel
I tried Vala once and didn't really like it.

It's me not Vala. I enjoyed proper tooling: SCM (e.g.: maven), test automation
(unit-test framework), some form of IDE.

~~~
snuxoll
GNU Autotools now has vala integration, just specifying .vala files in your
source list will have automake run valac to generate the C files, which will
then be compiled by GCC automatically. Going one further, the C files get
packaged into your distribution tarballs so users don't need valac installed
to compile your application.

The usual M4 headaches with autotools apply, but as long as you don't have
some crazy build (just compiling libraries/binaries, linking with libraries,
use pkg-config) it's not too bad.

As far as testing, GLib.Test [0] is part of the standard library. Since vala
compiles to C at the end of the day there's no easy way to test other than
just building a test runner, but it's not _too_ bad to work with.

GNOME Builder is finally getting support for Vala in GNOME 3.20, it's still
young but hopefully we'll have a first class IDE soon. Still, Builder has a
long way to go before it even catches up with MonoDevelop, but progress is
good, right?

[0]:
[http://valadoc.org/#!api=glib-2.0/GLib.Test](http://valadoc.org/#!api=glib-2.0/GLib.Test)

------
dintech
Now RoboVM too please. It's almost criminal that they canned it.

~~~
Aldo_MX
There's BugVM[1], a maintained fork of the FOSS RoboVM

[1] [http://bugvm.com/](http://bugvm.com/)

~~~
badlogic
It's a very bad and broken fork, i'd stay away from it.

------
mwcampbell
Now my only remaining qualm with Xamarin is this: Having two garbage-collected
environments interacting within the same program, as is the case with Xamarin
on Android, just seems pathologically complex. Does anyone have enough
experience with Xamarin on Android to know if this is ever a problem in
practice?

Edit: I wonder if the Xamarin.Android developers ever considered compiling CIL
to JVM bytecode (which would then be compiled to Dex bytecode), then
reimplementing mscorlib on top of the Java standard libraries. So basically,
IKVM.NET in reverse. Then there'd be no bridging between two environments.

~~~
ianlevesque
That's what RemObjects does.

~~~
mwcampbell
Yep, I've thoroughly studied RemObjects Elements and seriously considered
using it. But it doesn't have nearly as big a standard library or surrounding
ecosystem as .NET and Xamarin.

------
ianleeclark
Nice, I've recently been honing my C# chops, so I'm super excited to see this
arrive at such an incredible (for me) time.

------
skrowl
With Forms we finally have native FOSS cross platform that we've been waiting
for. See ya Cordova / React Native / etc!

------
Scramblejams
So, what does this mean for Unity3D? I'm tired of being limited to
.Net(-sorta-ish) 3.5 and a stuttering garbage collector.

~~~
yedpodtrzitko
See their older blogpost here: [http://blogs.unity3d.com/2016/04/01/unity-
joins-the-net-foun...](http://blogs.unity3d.com/2016/04/01/unity-joins-the-
net-foundation/)

"For Unity developers, this means making sure the latest .NET APIs, tools, and
language features are available to you."

– Support for C# 6

– Upgrade Mono Runtime and Class Libraries

etc...

~~~
Scramblejams
I wonder when all that's actually going to drop. Like, when I can set VS's
target framework to .NET 4.6.1, I'll be pleased.

------
dep_b
Of course Xamarin was built on top of earlier Open Source work in MonoMac, you
still could do OS X applications without actually paying for Xamarin but it
wasn't as easy as using Xamarin straight.

So this is also partly just giving back from where they took it.

------
hugi
Cool. Now bring back RoboVM.

------
ywecur
Ok, so is there anything NOT being open sourced?

Is everything needed to actually be able to use it productively open source
now?

Is Xamarin Studio open source?

~~~
mandeepj
No, Xamarin Studio is not getting open sourced.

For more details, you can listen to this podcast from founders of Xamarin -
[http://www.dotnetrocks.com/?show=1276](http://www.dotnetrocks.com/?show=1276)

~~~
ywecur
Is it possible to use it without it?

~~~
donniefitz2
With Xamarin, you can use it with both Xamarin Studio and Visual Studio. I
believe XS is free now and you can get VS Community for free too.

~~~
pritambaral
But not under Linux. XS is available only for Mac, and VS is Windows-only (of
course).

------
Keats
Is linux support for xamarin.android planned?

~~~
Bouncingsoul1
I'm not sure how credible this is but there might be comming something.
[https://www.reddit.com/r/programmerchat/comments/4dxpcp/i_am...](https://www.reddit.com/r/programmerchat/comments/4dxpcp/i_am_miguel_de_icaza_i_started_xamarin_mono_gnome/d1vdfwz)

------
alashley
As an aside, has anyone here created a Xamarin android app using material
design? I was recently trying to integrate their component for the design
support library, but it seemed horribly buggy.

~~~
m_fayer
Actively working with it now, seems fine to me, maybe you're using an old
version of the design support lib?

~~~
alashley
Hmm, its possible. I tried installing via NuGet and also the component store
when that didn't work, but I'll just give it another shot, thanks!

------
Cyph0n
What I don't understand is why they had to purge the commit history. Did they
not use Git internally? Do the commits contain sensitive information? Does it
make it easier to clone the repo?

~~~
coldtea
> _Do the commits contain sensitive information?_

Very likely.

~~~
munificent
Or, more likely, no one wants to spend the time to exhaustively prove that
they do _not_ contain sensitive information.

------
hobarrera
Looks like OS X only? (since I get a "download for OS X" link, but no
reference to GNU/Linux). Or am I missing something?

------
ashitlerferad
Now when will they make RoboVM open source?

