Settings

Theme

Xamarin Open-Sourced

open.xamarin.com

581 points by fekberg 10 years ago · 205 comments

Reader

ghuntley 10 years ago

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

.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.

  • twoquestions 10 years ago

    Somewhat echoing what spriggan3 said, it seems odd that you suggest going straight to chat to learn about a piece of software rather than trying to find answers to your questions before bothering other people. To me (and this may be a function of where I'm from), it seems very rude to ask for help with something when you don't absolutely need said help (RTFM Noob!).

    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.

    • ghuntley 10 years ago

      Let's be clear, this isn't left-pad we are talking about - these are MASSIVE projects which are in some cases 16+ years old. Personally, I find the fastest way to get up to speed is on projects of this size is to usually jump into IRC, find a mentor and start sending in documentation patches. Here the engineers for the runtime, framework, compiler teams are hanging out in Gitter and engaging with the community out in the open instead of being hidden behind closed doors. Why would you ignore an opportunity like that? They are there soliciting the advice from the community and if the there is no uptake/reciprocal energy then that's a problem. I agree on RTFM but at this stage, there is minimal documentation for the majority of these projects and that internal domain knowledge needs to be dispersed into the community. Code only tells you about the implementation, it does not tell you about the why and information about trade-offs which were made.

      http://dirkriehle.com/publications/2014-2/the-five-stages-of...

      • MichaelGG 10 years ago

        So I followed the gitter link to Orleans. I see a bunch of people talking. I'm not going to write "hey so what's this all about" so they can link me to the readme.

        I went to the repo. The "homepage" includes the readme, which includes enough detail and code examples that I'm all set as far as knowing what Orlean's is "about".

        • yarou 10 years ago

          This is how I learned Haskell. I literally went to #haskell on freenode and asked "hey so what's this all about", and many veterans of the community helped me get my feet wet.

          I'm not sure what kind of toxic communities and work environments you are apart of, but if a newbie to the community can't ask questions, that's not a community that will survive or flourish in the long run.

          • chris_wot 10 years ago

            Whilst I would never be rude to a newbie, isn't it reasonable that they at least read the FAQ, README or an I tried before asking such basic questions?

            • domlebo70 10 years ago

              Sure. But ask in gitter first. You'll receive an answer suggesting you go read the README.md as it covers this info.

              • Bahamut 10 years ago

                That's the type of lazy behavior that drives a lot of experienced people away from some of these chat rooms. What self-respecting developer is going to waste other people's time before doing an initial search on his/her own? That's the type of person I would rather not help because their first instinct is to waste other people's time before investing their own.

                I have heard other developers call them parasites and energy vampires.

                Please do not recommend this.

              • MichaelGG 10 years ago

                I've never heard of people needing to ask where the project readme is, especially when your in a chatroom linked to the repo, which has it on the homepage.

                On top of that, it's inefficient. I want a couple of paragraphs telling me what the project is about, not a conversation.

              • chris_wot 10 years ago

                That seems... inefficient. Basically, instead of reading the readme, you suggest going to gitter to be told to read the readme?

                I think I could streamline that process a bit.

              • detaro 10 years ago

                Which you probably already could assume before, so you just wasted your AND somebody elses time. rude.

          • reitanqild 10 years ago

            > I'm not sure what kind of toxic communities and work environments you are apart of, but if a newbie to the community can't ask questions, that's not a community that will survive or flourish in the long run.

            Our definitions of toxic obviously differ a bit. I wouldn't flame anyone but (in a non paid setting of course, paying customers have the right to be wrong) I would tell them (politely) that we were there to help them when stuck, not to pull them up to speed.

            Before reading this I wouldn't have believed anybody would seriously suggest that.

            As others have pointed out going straight to the chat without even trying to read up on the docs first comes off as extremely entitled and lazy.

            I'm maybe to hesitant, I wont bother anyone before I've read the relevant docs twice, possibly also looked quickly into the source.

            • yarou 10 years ago

              I think a lot of people misunderstood my comment. I obviously understand that there are basic questions that can be answered by documentation.

              But my point was that for any community to survive, it should be welcoming to newbies and have an environment where people shouldn't be afraid to ask questions, even if they are "dumb" by some arbitrary metric. It's also a good way to convince someone of using your particular framework, programming language, etc.

              A newbie may ask why should I use X, and if experienced veterans of the community give set Y reasons to use it, I feel that's way more convincing than "RTFM scrub". It's way less elitist too.

      • twoquestions 10 years ago

        How do you start documenting software that you don't know well? That seems like a very good way for bad documentation to get out, damaging the project.

        Perhaps this is my impostor syndrome talking, but I for one would be hesitant to tempt the wrath of the Great Unseen Masters that make open source software with potentially inane questions.

        • MaulingMonkey 10 years ago

          > That seems like a very good way for bad documentation to get out, damaging the project.

          Read the code, try your best to understand it, and then get the documentation reviewed by someone who does know the software well. This works for code, too. Bonus points: Explicitly enlist feedback ("Anything I'm missing here? Any edge cases I forgot to note? Is my understanding of this correct?")

          > I for one would be hesitant to tempt the wrath of the Great Unseen Masters that make open source software with potentially inane questions.

          http://www.catb.org/esr/faqs/smart-questions.html

          But if you're making an effort to contribute, that already counts for a lot. There might be some gruff redirection towards more effective means of contributing, if you're being a significant time sink and not helping that much, but hopefully that's a win/win in the end.

        • ghuntley 10 years ago

          Overtime, common repetitive questions will surface in conversation. Identify these patterns, write up FAQ/documentation and submit them via the pull-request process. The Great Unseen Masters will typically be grateful and respond with dumping their brain or corrections as they would normally do so in a code review. Eventually, over time, this will build up into something they can point newbies towards to RTFM so the community does not burn out answering the same questions over and over.

          • muraiki 10 years ago

            I think the idea is that FAQ/documentation is normally easily accessible from the repo's page, but not necessarily as obvious to find inside of gitter. I have to confess to having read all your responses but still find your linking to gitter instead of the actual repos to be bizarre.

          • ashitlerferad 10 years ago

            If there is a FAQ it probably points to something that needs to be fixed or streamlined.

        • mastazi 10 years ago

          I have to say I agree. My only question in the chat would be "where do I find the documentation outside of this chat?"

      • bad_user 10 years ago

        You find a mentor even before knowing what the project does? Weird.

  • spriggan3 10 years ago

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

    • ghuntley 10 years ago

      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

      .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

      • geofft 10 years ago

        Usually what I look for is a description of the project. I don't know what an "Orleans Actor Framework" is. The GitHub link gives me a README with a description and links to examples. The Gitter link is a bunch of people who already know about the project talking about details of it, which is harder to learn from I think. (Right now there are people comparing it with "SF". Not sure what that is.)

        If there were something like Gitter that showed README.md and the chat room and not the code, then yeah, that's probably a better home page.

      • disremembered 10 years ago

        > 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

        Props for how you dealt with negative feedback in this thread, and this positive re-frame.

      • MichaelGG 10 years ago

        Certainly you'd want to peruse the README before asking questions in a chat?

      • the-dude 10 years ago

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

        • ChrisClark 10 years ago

          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.

        • wagglycocks 10 years ago

          He's obviously a shill for big chatroom

        • rattray 10 years ago

          Presumably, they prefer to learn by talking to people rather than browsing repos.

          The .NET community was, until recently, decidedly not-open-source, so the learning workflow of "open the repo, read the readme, browse the code" might be a new thing for them.

        • NicoJuicy 10 years ago

          Losen up, linking to something may be subjective. If it's not correct, HN mods can change the URL ;)

          Perhaps it's not a bad idea for widening the community ( linking to gitter). I'm actually wondering if they ever used jabber, a not-well-known community for chatting about .net

        • chris_wot 10 years ago

          I don't see that response as dodging anything. He did answer the question - he think that chatting is a decent way for newbies to learn.

          You or I may not fully agree, but this is subjective. And it's an answer, even if it might not satisfy you!

    • alexc05 10 years ago

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

      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.

    • _RPM 10 years ago

      I was _just_ about to type this exact string before I read yours. Linking to Gitter is _wrong_ IMO.

  • mintplant 10 years ago

    So, what's the story if I want to build a C# application that runs on Windows, OS X, and Linux? Do I use "regular" .NET for Windows and Mono for OS X and Linux? Or will everything eventually be unified into one common platform?

    • a-saleh 10 years ago

      It can be complicated, but if you want to see an example, you can look at MonoGame samples [1]

      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...

    • tomc1985 10 years ago

      Basically write in whatever is comfortable, they both run the same format binaries. Some .Net features are not available in Mono (yet). Other than that, the two seem fairly interchangeable

  • naasking 10 years ago

    Roslyn is cool, but there doesn't seem to be a standard way to tell Visual Studio to use a custom/roslyn C# compiler rather than the framework one. That kind of limits its usefulness.

  • stop1234 10 years ago

    Yes! We need more frameworks!

    And links that contains no source code! A chat room with a broken image!

    http://imgur.com/RF61z6Y

jeswin 10 years ago

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).

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

  • nivla 10 years ago

    >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 10 years ago

      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/

      > 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 10 years ago

        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.

        • zanny 10 years ago

          Google's treatment of open messaging, albeit terrible, has nothing to do with its patent behavior.

          Apple, Microsoft, Oracle, and many other companies are known aggressors who use software patents as weapons of war to destroy competition and extort other companies. Google has consistently refused to participate in such immoral behavior without first being attacked by similarly sized companies.

        • MichaelGG 10 years ago

          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.

      • ifdefdebug 10 years ago

        > MS is doing Open Source today because it really has no choice

        And that's a good thing. It shows the strength of open source.

        MS is a company. Just as Google. Companies will "work towards the best interests of the movement" as long as those interests converge with theirs: make money.

        AFAIK large portions of Google's core business are closed source. They are not in open source for love.

        • lottin 10 years ago

          MS has had in the past a systematic pattern of bullying, lying, cheating and a willingness to destroy social welfare by eliminating the competition and making their products the only option available in the market. This is extremely damaging. Yes every company wants to make money, but not every company will resort to that kind of sociopathic behaviour. Maybe they've changed, although I doubt it. I'm just saying - be careful.

          • ifdefdebug 10 years ago

            In my opinion the sociopathicness of Microsoft's behavior has always been highly overrated.

          • naasking 10 years ago

            > Maybe they've changed, although I doubt it. I'm just saying - be careful.

            Corporations aren't people where past behaviour predicts future behaviour. If MS's original executives are all gone, the fact that MS is behaving differently isn't surprising at all.

          • manigandham 10 years ago

            Companies are not people and describing them as "sociopathic" is meaningless.

            > eliminating the competition and making their products the only option available in the market.

            This is business and this is how you win.

      • throwawaykf05 10 years ago

        Throughout all the patent wars and all the rhetoric Google produced about competitors abusing patents, it was Google, as the owner of Motorola, that was the only company penalized in court for actually abusing patents:

        http://patentlyo.com/patent/2015/08/agreement-microsoft-moto...

        https://en.wikipedia.org/wiki/Microsoft_Corp._v._Motorola_In....

        Sure, the lawsuit was started 2 months before Google acquired Motorola, and it was in response to an MS lawsuit, but the continued abuse of FRAND patents and the ensuing 14M penalty happened on Google's watch. Literally no other company in the smartphone wars suffered this fate.

      • fsloth 10 years ago

        There is the licensing and the ecosystem side which are part of the 'meta runtime' of the code and then there is the political story.

        Is it possible that since the superiority of the open source model in several places is so obvious (i.e. when the code itself contains no secret sauce) this political narrative of whose development model is better is no longer pertinent?

        I would say privacy is partly a different arena altogether, as well are software patents.

        My head is too small to fit all of this into a coherent view. All I see is a delightful and shiny MIT license.

    • apayan 10 years ago

      Google purchased Motorola for the patents as a defensive measure, so they ward of suits from Apple, MS and Intellectual Ventures. Google has NEVER sued another company over patents. Examine the timeline of patent suits on Wikipedia:

      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.

    • bitmapbrother 10 years ago

      >That is a naive fanboy outlook towards a company

      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.

    • osweiller 10 years ago

      "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."

      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.

  • sremani 10 years ago

    A project under MIT license and accepting PR is good enough for me and is an open source project by definition.

    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)

    • treehau5 10 years ago

      > A project under MIT license and accepting PR is good enough for me

      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."

      • sremani 10 years ago

        Lets agree there are levels of open-ness and not being a Gnu-level or RedHat level OSS does not mean the contributions are not worth it nor should not be acknowledged.

        • treehau5 10 years ago

          Well I will most certainly agree there is "publicly accessible" source, which is essentially what Microsoft, Facebook, and the likes have, where you can view the code, but getting a pull request accepted requires signing a CLA (with varying levels of avarice) and conforming to the goals of the organization, rather than the project. (Actually I will defend facebook by saying their CLA is not that egregious, and according to most, the version of react that is open sourced is actually different than the version they use internally), but calling that "Open Source Software" is disingenuous at best.

          • dsp1234 10 years ago

            Well I will most certainly agree there is "publicly accessible" source,

            It's not just publicly accessible, it's MIT licensed with a patent grant. You could take the code, modify it in literally any way you want, wrap it in a commercial product and resell it. It doesn't come more free or open source without actually being public domain.

            What you're asking for appears to be some sort of 'super open source' where not only are free to view, modify, and distribute your code, but also have to a right to have your code merged into the mainline of the code. What you're asking for goes well beyond the four freedoms.[0]

            [0] - http://www.gnu.org/philosophy/free-sw.en.html

            • treehau5 10 years ago

              > wrap it in a commercial product and resell it.

              The PATENTS.txt file seems to suggest otherwise, you must stay within the bounds of "covered code". IANAL so I do not know what the side effects of this seemingly intersection of their patent/license coverage curtails, but it does seem like you lose protection and could have a Android/Oracle situation if you innovate something on top of the core CLR outside of the 'covered' bounds and then decided to sell it.

              There's a slightly older writeup about it here http://endsoftpatents.org/2014/11/ms-net/

              In any case, as the name suggests, it's only a promise, not a guarantee of rights.

          • serge2k 10 years ago

            If you have a strong objection then you are free to fork it and do whatever you want. If other people feel the same you can build a community around your fork.

            It's FOSS.

          • spicyj 10 years ago

            > the version of react that is open sourced is actually different than the version they use internally

            That's not true; we use the same code.

            • treehau5 10 years ago

              Thank you for confirming. A few people told me this but I was a little suspicious, but again you can never truly know.

    • csours 10 years ago

      OT Nitpick: I think you mean bulwark: http://www.thefreedictionary.com/bulwark

  • throwawaykf05 10 years ago

    It's a fallacy that you cannot support both open source and software patents. Religious opinions aside, they are both simply different forms of IP, each effective for different things.

  • BinaryIdiot 10 years ago

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

    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.

  • Aldo_MX 10 years ago

    I honestly disagree with your stance against patents, disregarding dull patents and the issues they bring like patent trolls, I really believe that the industry needs patents to prevent unfair competition.

    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.

    • Tenhundfeld 10 years ago

      I don't understand exactly what you mean by "dull patents". Is that a standard term? I'm not well versed in this space, but Google's not returning much for that phrase.

      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?

    • incepted 10 years ago

      Agree that software patents but to me, the issue is patent trolls.

      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.

  • munificent 10 years ago

    > To truly support Open Source, they should show a willingness to work against Software Patents.

    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.

  • anonymfus 10 years ago

    "To truly support Open Source" MS should open the source of their main products like Windows and Office.

  • pjmlp 10 years ago

    Like IBM and Intel?

greenspot 10 years ago

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?

  • gregmac 10 years ago

    > they open source to get PR, build a community; I hope that helps and it's not their last resort

    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...

  • tacos 10 years ago

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

    • apayan 10 years ago

      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 10 years ago

        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

        • apayan 10 years ago

          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 10 years ago

            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...

      • Skinney 10 years ago

        I don't think Unity does it any more, but it wasn't that long ago when Unity used Xamarin to be able to run on iOS, Android and PS4. Now they do it with il2cpp I think.

        Also, it seems you have no idea what you're talking about. Xamarin gives you access to the same native APIs that you use when developing a native app. You still need to know the native API if you want to build an iOS app. Xamarin.Forms helps, but doesn't support everything.

    • osweiller 10 years ago

      What does Unity have to do with Xamarin? Are you referring to the fact that Unity uses an old version of Mono, because that hardly is relevant to greenspot's comment.

      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.

      • mb_72 10 years ago

        I'm genuinely curious as to where you are getting your information from - ? Are you referring to Xamarin Forms in particular? One isn't forced to use Forms, it's possible to utilise Xamarin iOS and Android, but still have (for example) a PCL that contains everything except for the visual side of things.

        • osweiller 10 years ago

          This is based upon attempting to use the products to build some solutions. The Xamarin advantage is in the cross-platform tooling (if I'm making separate code for each, why would I bother with a layer of abstraction?), but when used it generates a compromised result.

          It is perfectly fine for some relatively simple things. Basic information apps, etc. But it isn't long in complex apps before the abstraction is leaking all over the place, and you find yourself fighting the tooling rather than leveraging the tooling. Which has been the case for virtually every similar "all platforms one tool" type solutions.

          • tacos 10 years ago

            "Compromised" how? "Leaky abstraction"? What is the abstraction and can you please provide specific examples of the leak?

            It worked between Mac and Windows on very complicated apps. It bridged Linux and Windows for tweaky MVC stacks a decade ago (then they wisely sharpened their focus.) It got the job done pumping data through hardcore game engines. The network stack is proven robust. You're talking about it like it's some stupid ORM wrapper or wonky Widget UI library. It is not.

            • osweiller 10 years ago

              You're talking about it like it's some stupid ORM wrapper or wonky Widget UI library. It is not.

              Again, this conversation is about Xamarin the mobile app studio. There is zero ambiguity in this, so it is perplexing that you keep bringing this up.

              https://www.xamarin.com/

              The context is the cross-platform app creation toolset. It generates extremely poor quality code, usually at a significantly increased development time (quite contrary to the promise). This is the case found by almost everyone who uses it, which is exactly why most teams have an Android project, fully using the tools of the platform, and an iOS project, fully using the tools of the platform. If Xamarin were heavily used, Windows Phone wouldn't be so generally unsupported.

              • tacos 10 years ago

                This post links to a different page. It shows three big boxes: One for iOS, watchOS, tvOS and MacOS X. One for Android. And a third one which provides a forms package providing native UI on iOS, Android and Windows. Which just received huge updates AND went open source.

                There is a language: C#. There are bindings to native toolkits. There's yet another imperfect Forms package. And there's a slightly wonky IDE. I'm not sure what you're expecting but I think the "lossy abstraction" here is mostly your expectations. I also think you are applying your narrow experience (which obviously was not a great one) and trying to amplify it by using unsubstantiated statements like "most teams" and "few wins."

                • osweiller 10 years ago

                  Xamarin (not Mono) is a solution that seems like all win: Why bother with completely separate solutions on iOS and Android...and maybe even Blackberry and Windows Phone and...

                  ...when there's a magic solution that covers them all. Surely such a solution would completely take over the industry, right?

                  Crickets.

                  Extremely few successful solutions are built in Xamarin. Their case studies are limited, and are generally close to trivial apps. And when you point this out, Xamarin advocates tell you not to use most of the cross platform stuff, but instead use platform specific code that is layered on abstractions from the underlying tech, always a step behind and a mile too far.

                  I'm not amplifying anything: The market demonstrates every statement. Xamarin is something that floundering teams buy hoping it gives them a big heads up, and then some time down the path they just end up starting separate projects for each platform.

                  You obviously are heavily biased, and strangely confrontational, towards Xamarin. But this open sourcing has been met with a universal yawn.

                  • tacos 10 years ago

                    Xamarin is a company, not a product. Mono is a Microsoft-sponsored project. If you can't be bothered to get that right it makes it even harder to accept you speaking on behalf of the entire industry.

                    > "this open sourcing has been met with a universal yawn"

                    It happened 18 hours ago! Do you think the kinds of companies that code in C# even noticed yet?

                    • osweiller 10 years ago

                      At this point I have to assume you're trolling. No one is this obtuse.

                      Xamarin is a company, not a product

                      Xamarin the company has a primary anchor product that is a tooling and SDK to build cross platform apps (indeed, on Xamarin.com it is literally the only non-service product. There is zero ambiguity). To anyone not autistic, that is clearly the focus on this entire discussion. Your bizarre incantation of Unity using a very old version of Mono as a citation in support of Xamarin set the bar pretty low for this conversation.

                      It happened 18 hours ago!

                      Microsoft made it completely free. Yawn.. Microsoft open sources the entire SDK. Yawn.

                      Clearly you work either for Microsoft, or you hitched your wagon entirely to Xamarin or Microsoft. Your emotions on this are bizarre and completely out of touch with the reality.

                      • tacos 10 years ago

                        > on Xamarin.com it is literally the only non-service product

                        > Microsoft made it completely free. Yawn.. Microsoft open sources the entire SDK. Yawn.

                        After your nap, click the "All Products" link. You'll see other products -- and 26 pages of components.

                        • osweiller 10 years ago

                          "All products" list four items, one of which is a product , three of which are services. Exactly as I already said.

                          Give it up. Your initial comment about Mono was ridiculous and grotesquely out of context, and you've just continued this bizarre obnoxiously.

                          And the most ridiculous part of all is that this very submission, and Xamarin's own terminology, calls their app development stack "Xamarin".

                          No one is confused but you.

                          • tacos 10 years ago

                            > "All products" list four items, one of which is a product

                            The Products menu has a fifth menu item, All Products. It will show you additional products.

                            Apparently you are not familiar with the (bumpy!) history of Xamarin's technology. Now that it's open source, you can actually trace lines of code from Xamarin Platform and Xamarin Forms and the Xamarin Profiler back to the early Mono and Unity days. They were a small team that bit off way more than they can chew, delivered more than seems possible even today, and gradually tightened their focus to mobile.

                            Now they are open source and have Microsoft fully behind them. I wasted a ton of time and money and performance running under Mono on Linux when I should've just used Windows server. But I got it back using Xamarin Platform on two recent large-scale mobile development efforts.

                            You win some, you lose some, and eventually you develop the maturity not to claim an entire industry had the same exact failures you did to make yourself feel better. Good luck.

                      • chris_wot 10 years ago

                        Please stop accusing others of being trolls.

              • Merad 10 years ago

                You don't seem to understand how Xamarin works at all. The entire point is that you have the ability to share code, but also to drop to platform specific code at any time. The absolute worst case should be that you build totally different UI code for each platform while most of your business logic can sit in shared code. If you do target their cross platform UI framework (Xamarin.Forms) then all or large chunks of of your UI are in shared code, but even then you can write things like platform specific renderers to tweak your controls to the platform.

                • osweiller 10 years ago

                  You just described exactly what I described in various other posts. How you came to the conclusion that I "don't seem to understand" can only possibly be due to some sort of zealot blindness that makes you a defender.

                  Best case -- terrible abstraction. Worst case -- you're rewriting much of your code for each platform, working on a 3rd party incomplete abstraction that is always behind and full of unnecessary layered surprises.

                  What a win!

                  And for the next bizarre Xamarin sponsor that decides to wallow in and throw up this -- I worked on a large scale solution with Xamarin. We threw it out and just went with separate projects for each platform, sharing code with C++. Works wonders. Way better than Xamarin.

          • mb_72 10 years ago

            I was specifically referring to your comment "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." that implied knowledge above one's own experience.

            BTW Xamarin Forms has or is about to receive a bunch of updates, perhaps it's worthwhile checking them out in case things have improved for you?

      • tacos 10 years ago

        People are mixing "Xamarin the company" with "Xamarin technologies" here and I'm not sure how to sort it out. Obviously the tech stack works. Obviously the stack ain't going away, especially now. As for "hard to build a quality product" and "so few wins" well that describes mobile in general now, doesn't it?

  • AlwaysBCoding 10 years ago

    No, use React Native

    • alexc05 10 years ago

      That's an unhelpful answer and misleading.

      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.

      • pookeh 10 years ago

        > 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.

        Eh? I use React Native on Windows. Works just fine. It's also very easy to install. Maybe you didn't try recently?

        • alexc05 10 years ago

          Few months. But we all know a lot has happened in the last few months.

          The f8 conference has happened since plus all these windows announcements.

          Did you install on a windows 7 machine?

      • burke_holland 10 years ago

        Have you tried NativeScript on Windows?

        • alexc05 10 years ago

          Haven't even heard of it! That looks really interesting. I'll add that to the list of candidates at the start of my next crossplat mobile app.

tree_of_item 10 years ago

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 10 years ago

    .NET CORE is exactly this (https://github.com/dotnet/cli)

    'dotnet build' to build it.

    • alexc05 10 years ago

      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 10 years ago

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

  • ZenoArrow 10 years ago

    Look into the tooling around F#, you can use most/all of it using the command line and simple text editors. Much of it can be applied to C# too. FAKE is a good place to start:

    http://fsharp.github.io/FAKE/

    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:

    http://ionide.io/

  • sago 10 years ago

    `mcs` to compile code, rough equivalent of javac

    `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.

  • ColinDabritz 10 years ago

    On the editing experience side, OmniSharp brings a richer text-editing experience to dot net development on many existing platforms and editors, including command line classics like emacs and vim.

    http://www.omnisharp.net/

  • ygra 10 years ago

    A trivial MSBuild project that simply compiles all C# files in the current folder is not hard to write by hand, although taking one generated by VS and trimming it down might be easier. In any case, there is csc as the command-line compiler as well.

davb 10 years ago

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 10 years ago

    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 10 years ago

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

cptskippy 10 years ago

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 10 years ago

    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 10 years ago

      How so?

      • colbyAFTrustedK 10 years ago

        I don't understand the question.

        • serge2k 10 years ago

          > 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 10 years ago

            > 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

  • pjmlp 10 years ago

    Google hasn't anyone to blame but themselves.

    • namelezz 10 years ago

      Yep, not buying Sun was their biggest mistake.

      • pjmlp 10 years ago

        That was their second mistake.

        The first mistake was screwing Sun during their license agreement discussions for Android.

      • rpgmaker 10 years ago

        It wasn't a mistake at all. Sun was a lot of things besides Java, it just wasn't worth it for them and they were right to take a pass. Even if they end up paying big dollars to Oracle, the amount won't be high enough to retroactively justify buying Sun. Android is big now and it can weather whatever comes from this patent battle.

        • Corrado 10 years ago

          I don't know, they basically bought Motorola to stop the patent trolls from getting them. After the purchase they broke up the company and sold the parts they didn't want/need. I could see the same thing happening to a Sun purchase; take the Java stuff and sell off everything else (SunOS, hardware, etc.)

          • cptskippy 10 years ago

            Sun had a nice patent portfolio too. Some of Google's current initiatives, like being part of the OpenPower Alliance, might have benefited from the hardware acquisition as well with RISC being all the rage again. Having Solaris in their back pocket would have been handy and ZFS might have been re-licensed to be more GPL friendly as well.

            I'm not sure how much of that Google could directly benefit from but they could have definitely gain a metric fkton of community good will by opening many of the technologies Sun owned that have floundered since the Oracle acquisition.

drudru11 10 years ago

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

seibelj 10 years ago

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.

  • sremani 10 years ago

    If Xamarin is open sourced and RoboVM is dropped, I can only speculate that Microsoft did not want to touch JVM with a 10-foot pole and chose to not entertain Oracle legal. May be I am wrong, but that is one possibility.

  • ZenoArrow 10 years ago

    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

    • seibelj 10 years ago

      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

  • Aldo_MX 10 years ago

    RoboVM was forked, the fork is named BugVM[1], and it's currently maintained.

    [1] http://bugvm.com/

    • dminor 10 years ago

      There's quite a bit of work that's been done in RoboVM since that was forked.

      • desdiv 10 years ago

        That I'm sure, but the project was only forked 6 months ago, so I'm sure BugVM can catch up, especially given that RoboVM is dead and thus a stationary target at this point.

koyote 10 years ago

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?

  • pier25 10 years ago

    I recently spent a few weeks with it and decided to not use it for a cross platform mobile app I'm working on.

    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.

  • mb_72 10 years ago

    Can't speak for the mobile side of things, but I used Xamarin for Mac to port a Delphi application and bring it to market last year. Considering when I started I didn't know anything about Macs, Cocoa or Xamarin for Mac / MonoMac, it turned out pretty well. Xamarin have some good people cruising their forums and offering support.

  • iask 10 years ago

    I am also curious. Does anyone know of any good apps done with Xamarin?

  • donniefitz2 10 years ago

    I'm using it for a few projects. One for a client on the side and one for my primary job. It's really nice to work with. There are issues here and there, but overall, it's a very viable solution and I'm quite happy with it.

  • vpanyam 10 years ago

    Slack and GitHub are mentioned on their customers page.

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

  • coldtea 10 years ago

    They have several on their webpage.

  • miguelrochefort 10 years ago

    Rdio.

oblio 10 years ago

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 10 years ago

    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 10 years ago

      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 10 years ago

        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

  • swalsh 10 years ago

    I built a website that just went live a few days ago (still crazy ugly). It is .NET core on Ubuntu using various Azure Services (nothing fancy, just standard ecommerce... but still):

    http://savorylane.com

    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.

  • shanselman 10 years ago

    It will.

    • alexc05 10 years ago

      Whoever this guy is he's probably right.

      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?).

dintech 10 years ago

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

mwcampbell 10 years ago

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.

  • ghuntley 10 years ago

    Recommended watching for iOS and Android - https://www.youtube.com/watch?v=VJsmrTQWD2k simple to identify these problems once you know of them. I keep coming across implementations that make some very fatal mistakes about resource management, notably these problems would potentially also happen when not using Xamarin as well (developers not reading documentation/being careful with allocations)

    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.

  • ianlevesque 10 years ago

    That's what RemObjects does.

    • mwcampbell 10 years ago

      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 10 years ago

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 10 years ago

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

Scramblejams 10 years ago

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

dep_b 10 years ago

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 10 years ago

Cool. Now bring back RoboVM.

ywecur 10 years ago

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 10 years ago

    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

    • ywecur 10 years ago

      Is it possible to use it without it?

      • jstedfast 10 years ago

        You don't need to use an IDE in order to write Xamarin.iOS or Android apps. You can just use a text editor (although Xamarin Studio is free).

        The MSBuild logic, at least for Xamarin.Mac and Xamarin.iOS has been made completely open source, so all the logic to build your apps + the SDKs are all open source.

      • donniefitz2 10 years ago

        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.

      • misterbwong 10 years ago

        I believe you can code in xamarin (for free) using visual studio 2015

      • mandeepj 10 years ago

        Of course, you can use it. Tools are under products at http://open.xamarin.com/

        Microsoft has not open sourced Visual studio (VS) so similarly they will not open source Xamarin. You can also use .net framework without using VS. Just use command line tools

  • ashitlerferad 10 years ago

    RoboVM will not be open sourced, only killed.

Keats 10 years ago

Is linux support for xamarin.android planned?

alashley 10 years ago

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.

  • j_s 10 years ago

    There is a Xamarin Evolve 16 session shown free on their live channel starting in a few minutes at 5:30pm ET (Wed Apr 27):

    "Everyone Can Create Beautiful Apps with Material Design"

    https://evolve.xamarin.com/live

  • m_fayer 10 years ago

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

    • alashley 10 years ago

      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!

  • pier25 10 years ago

    I found that too a few weeks ago. I ditched Xamarin and moved to Java.

Cyph0n 10 years ago

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?

  • frostmatthew 10 years ago

    > What I don't understand is why they had to purge the commit history.

    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).

    [1] https://github.com/vmware/upgrade-framework

  • coldtea 10 years ago

    >Do the commits contain sensitive information?

    Very likely.

    • munificent 10 years ago

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

hobarrera 10 years ago

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 10 years ago

Now when will they make RoboVM open source?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection