.NET CLR Managed Runtime - https://gitter.im/dotnet/coreclr
.NET Framework - https://gitter.im/dotnet/corefx
.NET Compiler as a Service ("Roslyn") - https://gitter.im/dotnet/roslyn
.NET Orleans Actor Framework - https://gitter.im/dotnet/orleans
Mono Framework - https://gitter.im/mono/mono
Xamarin iOS, Watch, Mac Bindings and Framework - https://gitter.im/xamarin/xamarin-macios
Xamarin Android Bindings and Framework - https://gitter.im/xamarin/xamarin-android
Everything is licensed under the MIT license w/patent pledges.
It's entirely possible you meant your comment for people who already have experience with the source in question, in which case I've misunderstood you.
http://dirkriehle.com/publications/2014-2/the-five-stages-of...
.NET CLR Managed Runtime - https://github.com/dotnet/coreclr
.NET Framework - https://github.com/dotnet/corefx
.NET Compiler as a Service ("Roslyn") - https://github.com/dotnet/roslyn
.NET Orleans Actor Framework - https://github.com/dotnet/orleans
Mono Framework - https://github.com/mono/mono
Xamarin iOS, Watch, Mac Bindings and Framework - https://github.com/xamarin/xamarin-macios
Xamarin Android Bindings and Framework - https://github.com/xamarin/xamarin-android
Before I clicked the link I imagined it to be some sort of annotated source code thing. (imagine the inline code with yellow "sticky notes" applied)
Turns out it's just an IRC type chat client. Still interesting.
The simple platformer has one source, but you should be able to compile it with Mono on Linux/OSX/Win or with Visual studio after you do the setup.
With Xamarin in the mix, your build targets can include Android and iOS.
Most of the time when I built with mono on linux, I was able to run the binary on windows, but I was creating smallish projects so far, so I don't know how well that works for larger projects.
But with libraries, there are often built in such way, that you have shared interface, that will be usable no matter the target and during compilation the correct platform version would be linked, but my memory is kind-of hazy on the details.
[1] https://github.com/MonoGame/MonoGame.Samples/tree/develop/Pl...
And links that contains no source code! A chat room with a broken image!
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).
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.
> 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/
> 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.
https://en.wikipedia.org/wiki/Smartphone_patent_wars
It's all Apple and Microsoft, and then Samsung started firing shots at Apple in retaliation. Google has never gone offensive with a patent suit.
Last time I checked Microsoft was still threatening Android OEM's with their prior art ridden / pile of junk patents (M-CAM analysis). I don't believe Google has ever used patents for offensive purposes, but Microsoft continues to collect quite a bit of money from shaking down Android OEM's.
Really? Which suits were that?
Google has never sued another company over patents. They've made counterclaims when themselves sued, but claiming otherwise is just a fiction.
And they bought Motorola because Motorola was threatening to start suing all of the other Android makers, causing infighting that Google didn't want. So Google bought Motorola....to stop those patents from being used to sue, further diminishing your point.
On the whole, Google is very much the good guys, and Microsoft are very much the bad guys.
However I will say it is naive to assume this will continue forever. There was a period where Microsoft seldom threatened anyone, and we all held quaint notions about all of their "defensive" patents. Situations and markets change, and suddenly desperation takes foot and the company that was hugs and kisses becomes claws and kicks, so I would never assume that Google will always be a fairly good citizen. It could change.
No one is taking away your right to hate Microsoft, but picking OSS as bull-work of your argument is not there any more.
edit: bull-work(tm)
He is not pretending to be an arbiter but speaking generally to what many people, including myself, believe. And in any case, you attempted to refute what you reduced down to his own subjective opinion, with your own subjective opinion.
Working against software patents is part of the larger essence of OSS, and it was just a specific example of it. If you are for software patents, and somehow magically "for" open source, then you aren't really "Open Source" you are just hiding behind that facade so you can now accept free labor when it serves your purposes.
So, in that regard, it isn't difficult to see where the negative sentiment is coming from in regard's to the recent media blast of the "new Microsoft."
Okay...but this isn't one nor is it really an "article". It's simply the page about Xamarin being opened source. That's it. It's MIT licensed and opened sourced.
Did you not read the page or did you just want to rant about the same things people complain about with Microsoft in almost every HN thread about their open source efforts? I'm not saying some of these are not issues but when they're unrelated and don't add anything to the context of the content I don't get the point.
The issue is the length of patents, the Software industry doesn't need 20 year-long patents, it's too much time, at most a patent should be valid for 5 years...
And well, we also need mechanisms to punish people who abuse the patent system with dull patents.
I'm guessing you mean overly broad or generic patents, i.e., not sharp and specific. I'm thinking something like a patent for adding an item to a virtual shopping cart. Am I inferring correctly?
Patents should only be applicable if the company can show it's actually working in a domain that will apply this patent.
With rules like this, patent trolls would cease to exist and software patents would go back to being extremely useful to software innovation, like they were designed to be.
See: http://www.cnet.com/news/google-microsoft-settle-long-runnin...
It is very hard for large software companies to unilaterally work against software patents because it puts them at a competitive disadvantage, at least temporarily. It's sort of like arms limitation talks where you can't put down your nukes before anyone else does or it's an open invitation to attack.
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?
It's not that: Microsoft acquired Xamarin earlier this year [1].
Xamarin is also holding a conference [2] right now, so I suspect this announcement is part of that.
Edit: Yes, it was. [3]
[1] https://news.ycombinator.com/item?id=11169215
[2] https://evolve.xamarin.com/live
[3] https://adtmag.com/articles/2016/04/27/xamarin-evolve-16.asp...
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).
To their actual comment, it is extraordinarily difficult to make a quality product with Xamarin. As they said, there are shockingly few wins built with it. There are loads and loads of teams using it, all sure that it's the short cut that will build for everything with one code base, but so few wins.
React native has a LOT of attention. It has a lot of support. BUT as of this writing if you are developing in corporate IT (meaning possibly running windows 7 systems) you actually CANNOT run react-native tools on windows easily.
I'm currently building an ionic project because I needed a cross-plat mobile app and work with a mix of OSX and windows 7 machines.
Now that said, windows 10 systems with the ubuntu emulator should be able to emulate all the calls you need to run react native on windows machines.
HOWEVER windows 10 bash has not yet implemented all 350 linux system calls (https://wpdev.uservoice.com/forums/266908-command-prompt-con...) and there is no guarantee that is bug free.
I'd hate to be 2 months into development to find there are deep internals that block me from using a critical feature.
None of this is to say Xamarin doesn't have its own baggage. The reason I web with cordova/ionic was for the good of the other developers on my team (html+css+javascript over C#) and, at the time, the additional cost of the Xamarin licenses.
I would have given XAMARIN a much closer look if it were bundled with a Visual Studio license, and all things considered, if I were looking today, it might beat out React Native.
That said, I do agree that react-native MAY be the way forward in the next generation, but, Xamarin does have more than enough upside to make it a reasonable contender.
'dotnet build' to build it.
but it isn't actually "out" yet (you can get your hands on it but it will be buggy)
still, will be 100% fantastic.
Forge is also worth checking out:
https://github.com/fsprojects/Forge/blob/master/README.md
One more suggestion, if you'd like an easy (but simple) all-in-one solution for F#, check out Ionide:
`mono` to run it, rough equivalent of java.
We code for the Unity game engine, but use command line mono tools for testing and feature development.
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.
EDIT: It wasn't in the AMA after all, but it has been dropped:
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?
1) The documentation seems good at first, but some parts are outdated and I did find myself stuck with it a number of times. iOS and Android docs are lightyears ahead.
2) The code editor in Xamarin Studio for OSX is mediocre. I've tried using VSCode instead but intellisense didn't work. I imagine using Visual Studio must be a lot better. Both Xcode and Android Studio are much better in my experience. Maybe with the upcoming C# IDE from JetBrain this will change.
3) You need to learn iOS/Android development anyway. Xamarin Forms works well for prototypes and such but in the end you need platform specific UIs and libraries. So you need to do the leg work in the native docs (Swift/Java) and understand how these APIs/languages work and be able to "translate" those to C#. It's double the work compared to writing directly in native code.
4) The community around Xamarin is minuscule. If you get stuck there isn't much material out there to help you compared to native iOS or Android. Also in my short experience their forums were not very helpful. I imagine with an expensive corporate account with dedicated support that must be very different, but for a solo developer it feels like you are on your own.
As much as I like C# as a language I really don't see the point of Xamarin in my case. I started learning Java/Android form scratch and I'm having better results in less time. I will have to work more to get both iOS and Android, but I won't feel miserable and the dev experience in OSX will be awesome with first class tools.
I'd say Xamarin would be perfect for someone that already knows how to develop for iOS and Android but hates working with Swift and/or Java, loves C#, and has access to Visual Studio in Windows.
There's a list with some more companies here: https://www.xamarin.com/customers
It's me not Vala. I enjoyed proper tooling: SCM (e.g.: maven), test automation (unit-test framework), some form of IDE.
The biggest hurdle has been dependencies, but support has been improving a lot every month. Getting deployed was initially a pain, but I've found a way to make it smooth. I think soon i'll be writing up how I deal with it. I deploy about 3 times a day without interruption on my single server behind an nginix reverse proxy.
There are some really cool things coming forward in the land of dotnet.core.
Specifically you can now build projects on linux machines. Command line and web are basically a "no brainer" already (even with RC1 and RC-here-be-dragons).
For anyone seriously considering linux desktop apps, the'll want to consider some sort of cross-plat gui library, but there are a number of threads discussing it over at the dotnet foundation and some of the suggestions there seem like real "contenders"
http://forums.dotnetfoundation.org/t/cross-platform-wpf/421
http://forums.dotnetfoundation.org/t/cross-platform-gui/514
(for example this one looked neat) http://www.noesisengine.com/
When you're looking at C# vs. Java, I wouldn't be surprised if you found the new openness of dotnetcore to chip away at some of the "base" of Java. Maybe you start to see C# as the goto choice for CompSci classes.
Maybe the face-melting performance benchmarks http://web.ageofascent.com/asp-net-core-exeeds-1-15-million-... (1.15 million requests per second vs. ~150k in nodejs and vs. 50k in .NET46) will have an impact on people interested in lowering their server costs.
We certainly saw NODEJS was adopted rapidly thanks to its performance in 2012 http://highscalability.com/blog/2012/10/4/linkedin-moved-fro...
and paypal followed suit in 2013 http://highscalability.com/blog/2013/12/11/using-nodejs-payp...
C# under dotnet core, when written correctly has the potential to lower latency, require fewer servers, and all sorts of fun stuff.
Fewer servers means lower costs, while lower latency has proven to convert into more users or sales.
Of course, this is all best-case, pollyanna & coming from a bit of a fanboy... so please take what I say with a tiny grain of salt, but I do think this is pretty exciting stuff.
To be fair, I'm so excited about this stuff I'd kindof like for someone to take me down a peg and push a bunch of counter points at me so I get a more balanced and realistic opinion (just be nice OK?).
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.
With Android the most common mistake is cross-heap references, putting a large C# array into a java arrayadapter for example will result in objects that live in both worlds which makes it expensive for Java to see the C# object and C# to see the Java object. The objects are effectively being mirrored, the solution is to use C# all the way down. Where the object was created defines ownership, for example ArrayAdapter containing C# objects means owned by Java with overhead for Java to bridge the C# objects.
"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...
So this is also partly just giving back from where they took it.
Is everything needed to actually be able to use it productively open source now?
Is Xamarin Studio open source?
For more details, you can listen to this podcast from founders of Xamarin - http://www.dotnetrocks.com/?show=1276
"Everyone Can Create Beautiful Apps with Material Design"
When the team I'm on open sourced an upgrade framework[1] of ours we did the same. There's hundreds of commits over the course of years where the only intended audience was internal, some of those may contain information that wouldn't be appropriate for external consumption (e.g. a reference to non-public information) and others (well most of them really) contain information that would be useless externally (e.g. links to builds or reviews that are accessible only internally, bug numbers, etc).
Very likely.