Hacker News new | past | comments | ask | show | jobs | submit login
Xamarin now free in Visual Studio, and Xamarin SDK being open-sourced (arstechnica.com)
944 points by ingve on March 31, 2016 | hide | past | favorite | 386 comments



We've also re-released Mono under the MIT license: http://www.mono-project.com/news/2016/03/31/mono-relicensed-...


Looks like MS made a decision to make Windows as attractive to developers as possible.


I've said this before and I'm sure others have noticed. Microsoft's focus is 'developers developers developers' whether it's for Visual Studio, or Azure Cloud, if you want software built for your platform you should cater to developers. I also said if I were JetBrains I'd worry about Microsoft's new agenda, they're going to have to take on Microsoft's new route. If Visual Studio itself (not Code) becomes cross-platform in the future that would be a huge blow for IntelliJ and other IDE's that JetBrains makes, maybe not at first but eventually. From my own experience Python Tools for Visual Studio and PyCharm are two of the best IDE's I've ever had the pleasure of using for Python, if that level of detail went into other IDE's that would be fantastic. Not to down other work others have done.


Incidentally, JetBrains is starting out with Project Rider (a C# IDE).

I've been working professionally with Xamarin for the past month, honestly I'm shocked how half-baked Xamarin Studio is, both in terms of stability and features. (Since we develop for iOS, we use Macs and VS is not an option).

Of course now that Microsoft has stepped in all the way, things may turn around, but my feeling is that the best window of opportunity for JetBrains would be to provide compelling Xamarin tooling on non-Windows platforms. That's the weak spot of their mammoth competitor as far as C# goes

https://forums.xamarin.com/discussion/62250/vote-for-project...

https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FRIDER-...


JetBrains need to get better --far better-- at providing support. In fact, I think they need to have full-time, US-based, knowledgeable support. I've been using their tools for years. We own a few full-product-line subscriptions yet every single time we have to ask for support I know it will be a disappointing experience.

We don't do it that frequently, maybe two to four times a year. And, when we do, you can be the problem was well researched and we simply ran into a wall. Between the time it takes for them to get back to you and some of the answers that come back, well, it's less than ideal. This is harsh, but sometimes I think "you might as well have asked me to re-install Windows to fix the problem".

What ends-up happening is that we will generally google the heck out of the problem, post it on SO and experiment and sometimes figure it out. In other cases you just give up and live with the issues.

On the developer side MS has far better support and the community of developers using their tools is much larger, which means you have a higher probability of finding one or more answers to your problem.

Still. Love JetBrains tools. I just wish they'd take support seriously.


You could have hooked a Mac up to Visual Studio for building and Deploying Xamarin apps. I used to have a Mac mini on my desk for this.

Here's the instructions btw. https://developer.xamarin.com/guides/ios/getting_started/ins...


That's possible, true, but the company deemed it too expensive to supply everyone with two computers and then pay for VS licenses on the top of Xamarin licensing (already rather pricey)


As a former manager IT KILLS ME. We spend millions on salaries but we can't spend thousands on hardware? A $700 mac mini is less then a week of salary. Heck the license fees are more then a mac mini.


This same thing works for OS X running on VMware on a Windows host. While it's not officially supported, it works and is pretty simple to get up and running.


That's for people who don't usually use Macs. Parent is in the opposite situation.


I run a Mac VM using hackintosh on my windows box!

VS + MacVM = how iOS dev should be ;)


Is it difficult to set up?


The VM or Visual Studio?

The VM? A coworker had no problems installing OS X in VMWare for his pet project, less than a day.

Visual Studio? This is Microsoft that we're talking about. I haven't done this or seen anyone do it, but I've read articles and it seems as though it has the usual straightforward qualities.


Well of course Vs is an option. You just use View models and cover them with unit tests. Then you sacrifice one of your developers on the altar of Jobs and force him to implement your iOS code.


:) The idea is that everybody works on Android and iOS alike, no specialization on the team. And the UI itself (Xamarin.Forms) takes the bulk of our development time, we're running into so many quirks, and the cross-platform abstraction is very leaky unfortunately. So your recommendation may be good, but I don't think it would pan out in our particular scenario. Especially since the team consists of people with no prior exposure to Xamarin (C#/MVVM devs + me, an Android dev with some half-forgotten familiarity with C#), so we've been learning on the job a lot


Our mac loving c# developers use parallels, perhaps that's an option for you


Yea, I agree that the IntelliJ IDEA and VS (not code) are the two best IDEs out there.

The three major factors I would rank the IDEA over VS.

1. Extensibility, its more likely to support X language

2. Crossplatform, it actually runs on my platform

3. Its UI doesn't change drastically every few years. This is such an underrated thing IMO. Neither VS or IDEA are pretty IDEs, they both are actually butt ugly. They don't need to be. But VS goes thru so many visual changes and reorganizations, its the same reason why I don't use Office. I'm not sure many ppl view this as a bad thing however. I often find MS fans loving to brag about how "modern" their software always looks, even if it still looks just as shitty as the old one lol.


I think the key to UX design is that it's very different to make a website or an application that is occasionally used than it is to make an application where most users use it 40h/week. I really welcome that ms keep iterating on the VS UI, and it doesn't matter if it slows me down the first days if it helps me over the coming year.


And now with the one you excluded (VS Code), we are seeing them making a serious move on your two big advantages of IDEA over VS.

They have apparently built a lot of the "big" VS in C#, and they have apparently architected VS Code with a C# runtime on top of Electron to make it easier to port big pieces of VS into VS Code.

Today they announced a preview of their upcoming C/C++ extension (https://blogs.msdn.microsoft.com/vcblog/2016/03/31/cc-extens...) and they say their Python tools for VS are coming to VS Code this year.

And VS Code "runs on my platform(s)".

The more developers they convert to VS Code, which is a lot deeper than just an editor for C# and Typescript, the more influence they will have on development patterns on all platforms. This seems like a bigger push than just "make Windows the best platform for developing for all platforms". They're attempting to get devs who continue working on Mac and Linux to switch to their dev tools.


I've used both, but I'm forced to use VS at work. I think that its changes are for the better. It's definitely a strength. There are also very cool tools for source control; code reviews, continuous integration, bug tracking.

In addition, you can see a reference counter above your classes that offer a quick jump to where your class is being referenced from. It is majorly helpful.

The down side is when Visual Studio breaks. Sometimes, it caches files, causing strange functionality. There is this thing called MsBuild that can break your package management. It defaults to an auto-merge, which is the worst possible thing to do to your team mates.

I don't find VS ugly at all, but I guess beauty is in the eye of the beholder.


Yeah I stopped using MS Office when the "ribbon" was introduced, and on the rare occasions when I have to use it now it always seems to look completely different from what I remember, I'm completely lost and I find that common functions seem to be utterly undiscoverable.


#3 must be the most underrated software feature ever. Too bad that it is at odds with the model of making money by selling new software revisions. Maybe the slow move to paid subscriptions will spare us the hassle of re-learning UIs for no good reason when we are old and grey :)

(How much would i pay for a carefully maintained subscription of Office 97? Well, not that much, but that is more than i paid for office software since)


It's at odds with employees' own agendas as well -- nobody gets promoted for fixing a few bugs. Rearranging buttons, that is something your manager will notice.


I don't understand this hostility. Some change in design is OK. Nobody knows the future so when major new features get introduced or excised, some reorganization makes sense. The "What would you like to do?" In Microsoft office is a simple little textbox that adds a lot of value for casual users I'd say enough to warrant them paying $5 a month for an Office subscription.

The ribbon makes it seem easy to surface features that would otherwise be hidden deep in menus and sub menus.

Of course, UI design is difficult just as doing any work for consumption by others is difficult especially when there is no complete spec. I am not a UI designer but even I can make a UI that I will think is good enough. However, making a UI for others is tough.

Maybe it is just my luck but project managers or owners have always been hesitant to support UI changes. Maybe I've just been lucky to have good managers but I can't recall a single time I've had to make a UI change that wasn't driven by what I thought was a valid business need.

Also maybe why I'm not employed now :P


#3 they're not too bad with the darker themes, but to each his own. Eclipse does a bad job at this though, I think they should modernize their UI extensively. Android Studio isn't too ugly and it's based off IntelliJ.


In my opinion eclipse is still a lot better than VS. It is smaller, faster and provides more features. For C++ visual studio is not much better than smart editor. It cannot even find all symbol references (it searches just for text). I also do not like licensing (free version works 30 days and than requires registration with a lot of info about you).

I remember that C# version had totally different project settings window as if created by someone else than the rest of VS. But I haven't used it for some time so maybe it is already fixed.


Microsoft's focus is profit, as it is for every corporation. If someone screams developers, developers it doesn't mean much.

I can remember several instances where developers were nicely screwed by policy and strategy changes, products languages and tools got canceled.

I find that the best strategy for someone that doesn't want to depend on Microsoft's moods is to not use their tools, or at least stick to the ones that have a long history and won't be messed up by strategy changes - that doesn't include C# or .NET


C# and .NET have been around for 16 years. C# is on version 6. Both are open sourced under MIT license (including runtime, compiler, etc.).

You're welcome to other reasons to avoid C# and .NET, but worrying about their longevity doesn't look like a rational reason.


XNA, managed C++, C++/cli, c++/cx, Silverlight, WinForms, WPF, WinRT.

C# and .NET will endure in one form or another, but all these transformations waste developers' time and make their skills obsolete. No thanks, I'd rather learn something and use it more than a couple of years without having it change under me for no good reason.


None of those are C# or .net. You're complaining about frameworks, which really naturally evolve and change over time. It's downright silly to say that because frameworks are changing, the core language will change too.


Well, whose fault is it that all things have .net in their names? I meant the .net frameworks in my original comment (even though the runtime environment changed a lot too, causing pain for deployment - read some old Paint.net blogs to find out more).

My point was that it doesn't matter if c# or .net continue to exist or not, all it matters for me is whether one can count on one's skills being still valuable. My Visual C++, WinAPI (bit WinRT is replacing it) skills are still fine, my C# & .net framework that I learned back in 2006 are nearly useless, because a lot of stuff changed.

Why do companies expect developers to always gobble up whatever they throw over the wall and say "thank you sir, may I have more sir?", as if it's our duty to relearn how to do X for the Nth time, this time with bells and whistles?

More importantly, why do devs like investing in such ephemeral knowledge?


What about community-driven languages that are rapidly evolving? In that case, would you say that the community expects developers to always gobble up whatever is thrown over the wall? (See: web frontend development)

> "as if it's our duty to relearn how to do X for the Nth time, this time with bells and whistles?"

There are a few areas of computing that are fairly stable, if stability of knowledge is your priority, you should seek one of those out.

But in many other areas of computing, our discipline is young and rapidly evolving. Some of that evolution is being driven by a corporate need to sell the next version. But plenty is driven by the rapid evolution in languages and paradigms. And why is that? Because we all know that programming can still be (much) easier, more reliable, more predictable, cheaper, and more fun. This is why many devs, myself included, like investing in "ephemeral" knowledge.

Honestly, I understand that the decay of hard-earned skills is distressing for many people. Not all fields have this characteristic. But in our field, it just comes with the territory.


The web front-end is shooting itself in the foot in a spectacular way and is a pathological example of software entropy. :) Personally I am seeking thay out - the stuff I work on has existed since before I was born and is evolving in quite a rational manner.

I don't mind at all when a language is evolving, that's indeed to be expected and manageable, because one can leverage existing knowledge and augment it. But a lot of change is either driven by corporate interests as you mentioned or by fashion and is disruptive, as in replace X with Y. And it's not clear how Y is more robust or faster, usually it's a mixed bag of pluses and minuses.


So which 2006 skills besides C and POSIX are still unchanged today?


Fortran 70.


You do realize that, although Silverlight and WPF aren't being actually developped ( and transformed into something else). You can keep your XAML skills in the newer platforms.

And Windows Forms still works on the new platforms ( except mobile), so it's not like it broke functionality.

VB 6 Applications still work and that IS a long time ago...


What better way to profit than selling developers the tools they need to build projects? Again, Microsoft is focusing on developers. As for being locked in to their products, it doesn't look like Visual Studio is going anywhere, and as others have said, their stack has been around at least over a decade now. The only newcomer is Visual Studio Code and that is open sourced anyway.


Just because the product isn't going anywhere, doesn't mean the licensing structure isn't going to change. You ready to pay for your monthly VS Studio subscription?


Visual studio community is free if your product is open source.

https://channel9.msdn.com/coding4fun/blog/Visual-Studio-2013...

Q: Who can use Visual Studio Community? A: Here’s how individual developers can use Visual Studio Community:

Any individual developer can use Visual Studio Community to create their own free or paid apps.

Here’s how Visual Studio Community can be used in organizations:

An unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects.

For all other usage scenarios: In non-enterprise organizations, up to 5 users can use Visual Studio Community. In enterprise organizations (meaning those with >250 PCs or > $1MM in annual revenue), no use is permitted beyond the open source, academic research, and classroom learning environment scenarios described above.


The best way to profit is to make it easy for developers to build software that works on their (mobile) platforms. Right now most dev's focus is iOS/Android (at least it's mine). If M$ can make it easy to produce a front end for Windows mobile and reuse all the business/server code then THAT is where they win. Selling dev toolkits doesn't bank anyone billions.


Why do you not include C# or .NET? Both have been going for quite some time and there's a tonne of code in the world depending on both. What strategy changes do you think could affect them?


I agree re: PyCharm being great and comprehensive; atom currently can't hold a candle to all the features. VS isn't an option since I'm on a Mac, and I assume many people who occasionally / more than occasionally develop in Python are in the same boat. If nothing else, it'd be nice to have a second good option for IDEs. As far as it beating PyCharm...we shall see :)


If I had to be honest I'd use either of them. I think they're both really well designed. I would not be against using Pycharm or Python Tools for Visual Studio since they're both really great pieces of software from my personal experience. However, Visual Studio would have the benefit of not running on top of Java which at times can either be slow or "fast enough." At least without proper tweaking.


Visual Studio proper going cross platform would remove probably the biggest reason to run Windows, which would defeat the purpose of all this.


Microsoft doesn't make its money on Windows licenses. It makes money on Enterprise versions of Office and its various server projects.

The value of a developer's machine is pretty much a rounding error to Microsoft. The value of a developer's output (production and DR instances of server products/Azure services) is immense to Microsoft.


But if developers are using Windows, that means that they're also going to write software for Windows. A lot of the high quality, 3rd party applications that run on OS X come from the fact that the authors had been running Mac for a long time, had a need for something, and turned it into a product. Had those developers been on Windows instead, they might be there. That's what Microsoft wants.


Microsoft wants Azure consumption, SQL Server Enterprise licenses, Office 365 Enterprise seats, Dynamics licenses, and ISV and Cloud Services partners.

They already have the desktop market and it is pennies compared to the income they make from enterprise clients.


It wouldn't surprise me if Microsoft buy Jetbrains


It would surprise me a lot less if Google did.


i don't know what is worse. "Embrace, extend and extinguish", or "Acquire, hype, abandon".


What about Amazon? It sounds to me that a large part of the drive toward better dev tools is Microsoft trying to promote its cloud. Amazon has no such relationship with developers. If that becomes a competitive advantage, wouldn't Amazon try to get in?


I've thought about this, or maybe Atlassian or GitHub doing so, or even GitLab, they're all companies that cater to developers and if they acquired JetBrains it would be a move that would keep them on top of their competitors on a new platform, especially Atlassian and GitLab since GitHub at least has Atom (though it suffers performance issues among other things).


GitLab seems like a significantly smaller company than Atlassian and GitHub.


We indeed have no plans to acquire Jetbrains. I think they are doing awesome and we probably couldn't afford them. But also we would like to have a development environment that runs online while allowing for browser based and client based editors. Currently we're looking at Koding https://gitlab.com/gitlab-org/gitlab-ce/issues/12759


This doesn't change the affordability bit, but IDEA is working on a web hosted IDE. They are rolling it out as an online code review tool first, with nice features like goto definition, but eventually going to full run tests or edit code.



Atlassian are the right fit there but I doubt Jetbrains want to sell. They don't get to where they are hoping for an exit.


JetBrains are in the middle of a daring switch to SaaS which may or may not work; they face threats from all sides; and they're not exactly a "cloud first" business.

I bet if anyone showed up with a huge bag of cash, they would sell.


It'll work just fine. Professional tools are used by professionals.


Lord please no prays


As nice as it would be for Microsoft to kind of run those IDE's and toolsets, I think it would be bad for the market altogether, we can't have just one company running every developer offering out there, competition is good. I hope someone else buys them out though, just to see how that ends up.


This, in so many ways. I'd be considered a Microsoft schill, and even I don't like that idea. Microsoft needs companies like Apple, Google, and JetBrains to keep them from getting complacent.


I hope Visual Studio for Java. IntelliJ is sluggish and looks weird for me. I prefer native UI to Java UI.


If you would prefer "native UI", then you would hate Visual Studio as well. Visual Studio 6 (1998) was the last one which used Win32 API for the UI. Visual Studio.net (aka 2002) already had this non-standard UI controls. Even Eclipse is more "native UI" than Visual Studio, as Eclipse UI is rendered by Win32API and uses common controls. VS uses WPF and they switched to an non-native-look skin starting with Visual Studio 2013.

Btw. even Office uses non-native UI controls since the very beginning of Office programs around 1990. You can see this if you open Word 6 in Win95 (or later), the controls and even child-window theme looks like Win3.1. Office 97 had a very visible non-standard window theme with the application title in italic font (no other Win95 app looks like that). The menu bar of Office 1997 and later looks non-standard as well. Office 2007 and later draw a custom drawn ribbon area over the Win32 menu. With COM you can integrate a Word/Excel/etc document area in your sample Win32 application and you can watch how the traditional nativ menu bar is overdrawn by a ribbon area if you click inside the document area.


Last time I installed a trial version of VS, it had these weird all-caps menu bars and some kind of metro-ish, flat UI. Compared to that, Swing looked more native…

(What is it with MS changing the UI with every OS/Office release? Worse than even OS X, and barely better than the plethora of Linux look-and-feels. And yes, I did object to flat tool bar buttons back in the day, too.)


That ship has sailed long ago.


That is awesome Nat! Do you have any plan open sourcing Xamarin Studio as well?


Xamarin Studio is already, essentially, open source. It's called "MonoDevelop". Xamarin Studio is just a "skin" of MonoDevelop, because it just bundles 4 plugins that MD doesn't have: Xamarin.Android, Xamarin.iOS, Xamarin.Mac, and Xamarin-Branding. If the SDKs are going to be opensourced, for sure this distinction between XamarinStudio and MonoDevelop will not hold anymore?


Those plugins won't be open sourced. We're releasing the Xamarin runtime and all the commandline tools you need to build apps, but we're going to keep some of the IDE stuff proprietary.


:(

I was really hoping I would be able to develop on Linux. Visual Studio is nice (my favorite IDE actually), but I'm willing to put up with lesser IDEs if it means I don't have to use Windows.


>but I'm willing to put up with lesser IDEs if it means I don't have to use Windows.

Check out the recent news - Microsoft is making Windows a lot more attractive to developers even those with Linux background.

I spent the last ~12 months doing C++ with Clang on Linux and porting that to windows was a lot less painful than I though it would be, even Visual C++ required maybe a day of work to get working - the biggest issue being Nuget and their Angle Packages are only available for sandboxed Windows apps - it took two hours to configure projects and fix stuff that made VC++ choke. This was a template using C++14 project btw. so I'm impressed.

And they now support using Clang as a front-end to VS code generator backend - no MinGW or Cygwin. Sadly the compiler crashed when I tried that and I still haven't gotten around to sending them the bug with repro - need to try with Update 2 first.

And on top of all this they just announced they will implement linux kernel interfaces in windows and add support for running ELF binaries - and they will port apt-get with cannonical - basically you can get Ubuntu packages to run natively on windows kernel - without recompiling or nothing.

Huge props to Microsoft !


Tacking on some of the good stuff from Linux doesn't make Windows any less of a horrible option for many, if not most, of us.

I am impressed by what Microsoft is doing, and I'm willing to use Azure and other MS tech at some point, but only if I can get away with not having to deal with Windows for anything but a small build slave server for Windows Phone and Windows builds, just like I currently do with a Mac Mini.


>Tacking on some of the good stuff from Linux doesn't make Windows any less of a horrible option for many, if not most, of us.

Actually that's exactly what it does. What were your pain points?

(Besides "it's proprietary").


st3v3r mentioned two valid points.

On top of that I will add "It's propietary". Because it is. It's a security risk, it means I have to buy it and I have to manage every license I buy. No need for the Stallman pasta here to express clear reasons why it is unacceptable for me and many others.

Other reasons:

- Bloated by default. Comes with many things I do not need, and some I outright despise.

- Resource hungry. It's gotten much, much better with the last few versions, but I can take my Linux set-up to a lowly Chromebook, a discardable netbook or a cheap SoC like the RPi and barely notice a difference for most of what I do. I cannot do that with Windows.

- Not POSIX. I could switch to OS X or BSD tomorrow and barely notice the difference for most of my computing. Not on Windows.

- Carries a particular culture of everything having to be done on the GUI. And what a bad GUI it is.

- Security wise it's terrible, you can't simply brush off the threat of malware as I do on Linux.

- No first class package management. The App Store is a joke.

- It is a completely different system from what I run or would run on my servers anyway.

I could go on but I think it's enough to justify why Windows is not a good option for me (me, as in, me, not someone who's really happy now with Windows).


> And what a bad GUI it is.

IMHO every GUI (Win, Mac, Gnome, KDE etc.) is bad compared to any decent CLI, if you are trying to complete non-trivial tasks. The real problem is, on Windows you don't have a simple way to switch from doing things in the GUI to doing them on command line. You can, but it's sort of second-class citizen.

> you can't simply brush off the threat of malware as I do on Linux

Uhm, as a former Linux-only user (for about 2 years, circa 2011-2012) I would advise you not to brush it off completely.


Did you have a lot of bad experiences with malware on Linux?


No but TBH I didn't with Windows 8/8.1/10 either. In either case, you should be aware that malware exists for any platform (Linux too) and always apply the right level of caution.


To be honest my last malware experience on Windows date from years ago, when I was still naive and clicking on popups in a browser. Haven't seen a malware in a long time, if we don't count as malware the nuisances like the Java installer, Java updater, flash updater, iTunes updater, Adobe updater, all of which either install malware or open popups regularly to nag me to update or install things.


"It's proprietary" is a fully legitimate pain point. It means that I can never fully trust that part of my toolbox, what if it has a bug that gets neglected by the developer or it gets abandoned. The open source ideology is not attractive just because of its ethics.


But open source has its own history of major security flaws, particularly the last two years.

I would be curious to know what % of security flaws are discovered because exploited vs as a result of a code review.


Why is this being discussed like Ubuntu is the only Linux edition available? You seriously think CentOS, Arch or *BSD users will jump ship because of this?


No, but people wanting a stable no-fuss desktop with everything (from laptop sleep to device drivers) working, access to proprietary software and all kinds of 3rd party drivers available, will.

I use OS X mostly because of the UNIX underpinnings. I could not care less for Linux of the desktop, despite having used it since 1997 (and having a history with UNIX going back to Sun OS and HP-UX).

If Windows gets good enough with its basic unix userland support, and has a decent shell, I'll be very tempted to try it.

After all, any actual deployment etc, I do on Linux servers and VMs (vagrant etc) -- no reason to pollute one's base desktop system with development libs and setups.


> No, but people wanting a stable no-fuss desktop with everything (from laptop sleep to device drivers) working, access to proprietary software and all kinds of 3rd party drivers available, will.

Have you used a recent Linux distro? They are mainly stable and no fuss, and they don't require you to run proprietary software.


>and they don't require you to run proprietary software.

Only I specifically asked the inverse: to be able to run all the proprietary software I want.

Besides, that's always the case -- "a recent Linux distro" is always supposed to fix all of these problems, I've been hearing that (and trying in vain) ever since 2000 or so. And I use Linux on the server side just fine (and actually have several desktop Linux installations too, since 1997 and RedHat 5.3 IIRC, just not as my basic everyday work/fun desktop, because they're dreadful still).


I must say you are quite delusional to argue that Linux desktop is still in the same state as it was in 1997.


I must say it is quite delusional to argue that I wrote that the "Linux desktop is still in the same state as it was in 1997".

I never wrote that, and it is indeed much improved.

What I wrote is another thing: that the total parity with proprietary desktop OSes (Windows, OS X) "just works-iness" is always "in another distro" or "a release away".

And there's another problem: proprietary desktop OSs haven't stood still in their 1997 state either. They are a moving target.


Perhaps not, but that was the core of your argument, wasnt it? That Linux is still in the sorry state it was back then, in the way that still, in 2016 Linux is behind the proprietary OSes?

Sorry to break it to you, but this is simply false.

In fact Linux offers far superior hardware support to OS X or Windows. Also the actual "desktop software" provided on Linux is far superior (WMs and such).

But don't let the facts hit you on your way out.


Tracking, ads on the desktop...


It's proprietary. And Microsoft spies on its users. So there's that. I don't need any more justification.


>It's proprietary.

Which doesn't mean much -- or even it's a plus for some.

>And Microsoft spies on its users.

Well, we're spied on any network use we do anyway.


>>It's proprietary.

>Which doesn't mean much -- or even it's a plus for some.

It does mean a lot, you just don't accept that it does. And yes, some people are masochists. That's their decision, but we should reward people who force people to be masochists.

>>And Microsoft spies on its users.

>Well, we're spied on any network use we do anyway.

Privacy isn't binary. Just because it's possible to penetrate walls with xrays doesn't suddenly mean that you don't close the curtains in your house when you're naked.


I really can not understand how anyone would trust Windows or anything else from M$ after what they have pulled off so far.

Go with Linux if you want to build on something that is not built on sand, greed and damned lies.


If Microsoft develops cross-platform IDE's and office tools I would happily use their software on Linux. Windows is a bit bloated for me, I've reinstalled Windows 10 and 8 a couple of times and upon fresh install it winds up using half of my available RAM, while on Linux running the same amount of software I use less than 1 GB of ram. I don't think I'll ever go back unless they made it less resource hungry. "Windows Lite" would be cool to see if anything.


How much of that "half your RAM" was actually taken up by windows caching? Windows caches pretty heavily these days, so will show a lot of memory used but will give that RAM up when needed. It also will swap out a lot of stuff that's unneeded, so bloat in my experience has been pretty minimal, and that's with some rather hungry programs running.


I don't run a PC with low ram nowdays and I've had the exact opposite problem - about 6 months ago after a random Fedora update I started noticing my system would start swapping after using it for a long time (6+ hours). I tried to diagnose memory usage but every tool I used didn't sum up used memory to the memory used by programs - and it wasn't reserved vs used or whatever - the system was visibly swapping on a machine with 8 GB ram and ~4GB memory used by running processes. I would just restart the machine after 8 hours but I've never had such issues with Windows (at least past XP, Win9x was basically restart after everything).


I have also found that desktop Linux has stopped being a reasonable solution to "bloat". I don't concern myself too much with bloat, as my machines are all pretty big (8GB laptop, 16GB desktop), but even with 8GB I can occasional get myself into a swapping situation. Firefox (I use the multiprocess developer version) and Thunderbird are memory hogs with an impressive appetite, so if I also start up a large-ish editor (like Atom or VSCode) and Inkscape or a video editor, I can end up with real memory problems.

I haven't actually dug in to see where all the memory is going precisely, but my email/web workflow (Firefox+Thunderbird) has been the same for about ten years now, so it's interesting that it continues to bump up against memory limits no matter how much memory I have. But, Windows on the same system has similar memory issues when working on the same tasks; so it is not immune, but I don't think it is notably worse than Linux.


Turn off swap and clear your caches to see your true ram usage:

    swapoff -a -v
    echo 3 > /proc/sys/vm/drop_caches
I recommend `htop` to check out your memory usage after that.

You can also tweak the vm.swapiness variable to change Linux's behavior there. I personally just turn swap off on all my systems as soon as I set them up.


What happens if you turn off swap while using more virtual memory than you have RAM?


I imagine the OOM killer would take out a process. In that case, I would suggest paying for some more ram before turning off swap. Swap is death for performance! :)


But necessary.


I've had issues with my Nvidia graphics card that's about it. Thankfully my laptop has Intel Iris so I just switch to that when it happens.


I desperately hope you know how the Windows memory manager works before you say it "uses half your RAM". Windows is very aggressive about caching and (especially) precaching-- if you're not using a memory readout tool that's been updated since Windows Vista changed things around, it's probably misleading you into thinking Windows' precache is actual "in-use" memory. It's not.

(If you're looking at Microsoft's Task Manager, make sure you're seeing the amount of memory in "available", that's what counts. "Free" is kind of a useless measure in Vista+.)


Aggregation does not necessarily imply improvement.

Architecturally, it's quite worse than just putting lipstick on a pig - they're bolting a racehorse on top of their pig.

If you look at things just right and ignore the pig, you can pretend you're galloping around on an able horse. but, inevitably, both you and the horse will have to deal with the fact that there's a pig bolted to the undercarriage.

Linux doesn't need to be put inside another OS to be any more relevant or useful.

I think, if it could talk, Linux would tell Windows: "Sit down - I got this."


But now you can Ubuntu inside of Windows... Natively!


Last I checked you were able to install the Xamarin plugins into MonoDevelop, maybe I'm wrong.


Why is some of the IDE code being kept proprietary, and what, if any, impact might this have on the code that was released?


However, the Roslyn language services are open source, which is what currently powers the C#/VB IDE services in Visual Studio and Omnisharp (optionally).


Xamarin Studio is based on the open source MonoDevelop project already: http://www.monodevelop.com/.


The download page there has me downloading Xamarin Studio. How do I get just MonoDevelop?


You can't because nobody from the community has stepped up to create Windows&Mac binaries of a plain MonoDevelop build.


Can I compile it myself? I don't know why this isn't clear, but the pages don't really say any of this.


Yes

Instructions are included in the MonoDevelop repository, and they could not be simpler:

https://github.com/mono/monodevelop/blob/master/README.md


Fantastic news, thanks Nat.


What would be great is to be able to also run VB on xamarin


Microsoft, you only need to resurrect IronRuby now...


Coincidentally: PacktPub, HN-famous for 'quantity over quality'¹, is offering the e-book iOS Development with Xamarin Cookbook (4+ stars @ 10 reviews²) as their daily free e-book for 5.5 more hours.

https://www.packtpub.com/packt/offers/free-learning

¹ https://news.ycombinator.com/item?id=6933716

² http://amzn.com/B00KJX443C


Thank you! To download the book you have to register first.

Or you could take it directly from here if you are one of my HN friends, this is a temporary link http://victorantos.com/IOS_DEVELOPMENT_WITH_XAMARIN_COOKBOOK...


Bad form


Thanks for the kudos everyone! This is a very exciting day for those of us who have been working on Mono and Xamarin for many years.

We have some more details on our blog: https://blog.xamarin.com/xamarin-for-all/


Some analysis:

- Having an open source alternative like this will be a blow to Phonegap's/Apache Cordova's use for new apps.

- The change in Mono's licensing means Unity may finally upgrade to a newer version of Mono.

- Let's not forget Microsoft now owns RoboVM. I wonder what this event implies for it.


I'm leading a small team in building an ionic app right now.

The edge that cordova/phonegap/ionic will retain is the HTML and CSS part. As well as, at least for a little while, a more robust plugin ecosystem. Though that second one will change VERY rapidly.

The other developers on my team are very much frontend & CSS types.

I would be too much of a bottleneck if I were the only developer able to write the code for the app.

If xamarin were free when I started, I may have given it more time in evaluation, but at the end of the day, I think that the choice would have remained ionic.

Even react-native isn't ready yet if you're a windows based shop. But maybe that's come along in the last couple months too.


> Even react-native isn't ready yet if you're a windows based shop.

Don't forget, Facebook's annual developer conference F8 is coming up next (April 12th 2016). They will surely have some new announcements in a few weeks.


True! And as I realized in another thread... Having an Ubuntu space on Windows actually makes "native" react-native totally plausible.


I'm practically in the exact same boat as you and also using Ionic. The only thing I can think of to make me consider migrating is performance. Cordova/Ionic can be slow to handle complicated screens, animations and transitions.

Getting native performance would be a big differentiator. Hopefully, Ionic/Angular 2.0 will go a long way to improving performance.


I can sympathize! I'm using an encrypted database on the device and there are some real slowdowns.

For as far as I trace the code, the only part I can't really optimize is the db open commands

For the most part it's pretty slick, but I can still feel it. It could be faster.


One database trick I used was to pre-select queries in the background and cache the results. It creates some code overhead for updating/inserting that has to keep the cache in sync. However, it simplified the logic in the rest of the code because I didn't need a promise for a select, I just read the cached object. That allows me to outsource the controllers for screens to developers who don't have to work with promise overload. They access my wrapper service for the content using synchronized code.

My database is also very simple. If you have a complicated schema with lots of joins, it'll be tough to cache things and keep it in sync with the db.

Feel free to email me, if you want more details on this concept.


> The change in Mono's licensing means Unity may finally upgrade to a newer version of Mono.

That was never an issue other than Unity's unwillingness to pay to the company that helped them gain market share.

Before Unity added PC support and Mono into their engine they were yet another company trying to sell a game's engine.

Taking into account developer salaries, how much money have they already invested into IL2CPP vs paying for new licenses?


I wonder if today though, with the licenses costing nothing, if they still would have done IL2CPP. I think there are benefits of it especially on iOS where they need to be sure there aren't future cases where development is blocked. But it was a massive undertaking and almost made Unity unusable/unstable for a good portion of 2015. They appear to have weathered the storm even though they had to recreate AOT compilation in C++ (which spawns massive amounts of files).

Unity was going to go C++ back in the day when Flash/Non-AOT code was being blocked in iOS 3.3.1. [1] I actually wish pure C++ was an option for Unity. Being C++ at build allows Unity to control it's destiny a little more and I am sure the 3.3.1 thing with Apple influenced that.

[1] http://blogs.unity3d.com/2010/07/02/unity-and-ios-4-0-update...


Thanks for linking to that blog post.

One interesting aspect is that they make use of C++ inline declarations when doing the JavaScript vs C++ examples, without explaining that there are semantic differences between writing the code like that or .h/.cpp files.


Honestly Cordova is good for beginners. It won't fade away but look for more of a pivot to something like React Native or like Xamarin where it'll compile to native code. Their current approach of running in a web view is great for people tranistioning from traditional web development to app development. However as I've experienced, once you begin adding lots of plugins, things get really hacky or incompatible with each other. That's where Cordova platforms like Phonegap and Ionic lose out.


Honestly, I think it still has its place.

HTML+CSS means we don't have to retrain our web developers but can still produce work for our clients that meets their needs.

Personally, I'd like to go more native and xamarin could enable that, but in consideration for the team holistically, HTML&CSS&js was the way to go.


It also depends greatly on the app... for many apps you don't need more than web tech in a web-view offers...


> - Having an open source alternative like this will be a blow to Phonegap's/Apache Cordova's use for new apps.

Really? Do you think Zuckerberg is now shaking in his boots thinking Facebook will have to pull out of React Native?

> - Let's not forget Microsoft now owns RoboVM. I wonder what this event implies for it.

Thank you for noting this. It is potentially interesting to Clojurians since Clojure targets the JVM (would be cool if Clojure could be used for cross platform native app development with RoboVM, as an alternative to a convoluted mess of trying to use ClojureScript with React Native).


Projects such as Ionic Framework that build upon Cordova will still remain popular becuase they appeal to front-end web developers with Javascript skills. However, Xamarin is a great fit for Windows web developers that already work with C#.


I didn't think about RoboVM. I would definitely be interested in the future of that project.


I was shocked the other day to also discover that Cordova is also included in Visual Studio!


They also have an open-source React Native plugin for Visual Studio Code (developed by MS)


.NET proper has been OSS for a year and a half now (in the form of .NET Core), and .NET Micro Framework, which was specifically created to target resource-constrained devices, has been available under Apache 2.0 since 2009. Since parts of Mono have been available under MIT all along, even if Unity had some reason to favor Mono over the others, then they could have replaced the GPL/LGPL bits on their own.

It's likely that Unity hasn't done any of these things because they need support. This might help, but I'd be unsurprised if the Unity situation stayed the same as it has been for the last few years.


Actually, in my experience phonegap/Cordova was only good untill you have something like background geolocation updates... A lot of hassle and never got it to work. For just basic apps, it's great / easy though


I've built a very simple app in Cordova and I'm now re-building that same app in Swift and animation/transition-wise/UI I don't really feel too much of a difference. I am however having issues with some bluetooth iBeacons and local notifications in the Cordova one so that's why I'm going (and learning) full native. (Swift is great, I really like it.. well at least compared to Obj-C and coming from the JS world)


Why Unity wasn't just able to take LGPLv2-licensed Mono and use it? LGPL doesn't impose any requirements on the linked code (be it Unity libraries or third-party code or anything), it's basically "link with anything you wish but keep this particular library free, please". What was the issue here?


It think it's that you can't release GPLed code, even LGPLed code, through the iOS App Store, per Apple's Terms of Use.


It's not Apple's terms of use. It's how iOS binaries are created. On iOS all the libs must be statically linked. This means the LGPL code becomes the integral part of the app so all of the app must be released under LGPL. If you are fine with this you can have LGPL code in your app. This is one of the reasons if you want to use QT for iOS development you need to purchase commercial version.


No, LGPL doesn't work like this.

It's well possible to statically link LGPL library and non-free proprietary code. You just have to provide end-users a way relink with their own builds of said LGPL library (i.e. give them an .a file with all your proprietary bits, and, if you're nice, a linker invocation command). Yes, this is some significant hassle to set up two-step linking (unless you don't really care about not revealing the internal structure - if you don't, you can just throw a bunch of .objs), but not a complete game-stopper.

Here what FSF says about this:

> If you statically link against an LGPL'd library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application

http://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic

So, I think it's probably Apple ToS. I forgot about those.


Yes, the issue with the Apple store was about the ToS.


Cordova is still useful for android, you have api's like web midi that don't exist on native android but can be accessed through the chrome web view on android 5.0+.


Ah, that's good. Cordova is so horribly, horribly awful I am glad to see this happen.


Can somebody please explain to me why Microsoft is suddenly being so open? Are they afraid to lose relevancy due to Linux/OSX/Android and this is their way to fight back? What is the long-term strategy behind all of this?

edit: Thank you for all your answers!


Software-wise: The open source advocates (Scott Hanselman, Scott Guthrie, Damien Edwards, and many others) won the internal struggle. Microsoft is more open because they recognize this is a superior model over the proprietary closed systems they had built in the past.

Business-wise: The answer is Azure. While Microsoft wants you to run Windows, they care even more that you're running in their cloud.


"The answer is Azure. While Microsoft wants you to run Windows, they care even more that you're running in their cloud."

The lock in here is a very hard to resist value proposition. I started using Azure because they gave hundreds of dollars a month for free (for I think 3 years). I then started to use their services because it's just simpler. Core made that decision even easier for me. I originally started using Core because my thinking was "if i'm on linux, I can always move to AWS, linux is pretty competitive everywhere", then I needed a solution that had a market place offer (which is not free) or an azure service offer (which is free). I decided to choose the azure solution, but I designed my software with an interface so in theory i could replace the implementation if I ever needed to move to AWS. However, i'm now starting to realize that while I've always tried to choose solutions so I can easily move, it's becoming increasingly more difficult. In 3 years I may have the capability to move, but i'm now becoming aware that it might not be practical to move. They got me.


We evaluate cloud services quite often to see if we are still betting on the right horse and I can't say (but that might be taste) that I find Azure any easier to use that AWS. What do you find simpler? AWS is almost no work; you write code and the rest is handled for you. I'm not sure how to get simpler 'beyond' that.


Azure does that too, you can create a Web Application project in Visual Studio and publish it directly to your Azure subscription, it provisions everything it needs automagically and just works. I haven't played around with testing that out tooo much but it seemed pretty slick based on the demo project I set up. Tearing it down later was also incredibly easy.


Yes, but then it does the same thing and given I would not want to run Windows currently anyway. It seems at least it's just the same thing (Functions copies Lamdba etcetc). No reason to switch or find one 'better' than the other unless you are fully Windows. That's why I always thought they should just port VS to Linux/Mac OS X; then they are on to something.


Azure is ten times more simple for an indie developer like me.

First thing I have immediate trouble with is the phrasing of AWS which is confusing. Second is their offerings and ux which is also totally confusing. But when you get passed that, you still have to do more configures than in azure. If you do not use Visual Studio (VS) or .NET you can still download the whole deploy profile file you need directly from the app service within Azure.

In Azure, I can create a new project and it will autogenerate the entire profile for me, run my migrations and I can deploy from within visual studio in minutes.

Coming from a "classic open source background", Microsoft has totally won me over. I save so much time with Azure and VS it's crazy.

I have experience of AWS and Azure and personally I just think Azure beats AWS in every aspect.


Still seems from what you say (as we are used to the naming and ux of aws already anyway) is highly dependent on VS which depends on Windows which our teams simply do not want to use. I guess I will have to re-evaluate Azure again soon but VS on Win is not an option so I think the same conclusion will come out of it. Again, if they port VS they will probably win the battle from AWS. Or AWS can make things smooth with VS (do not know if that is possible).


Even if you're not using VS you can download an xml file that is everything your project need to deploy to Azure AFAIK.


> The open source advocates (Scott Hanselman, Scott Guthrie, Damien Edwards, and many others) won the internal struggle.

This is truly an amazing feat. Imagine the cultural headwinds these guys were up against. They also won over the Microsoft Board of Directors to eject Steve Ballmer (finally). Hats off to Scott, Scott, Damien et al for staying the course and pulling off a coup.


Will they Open Source the windows spyware... er... "metrics collection" code?


Why not? Chrome released the RLZ library code...


Hopefully you're right, and MS does Open Source it. :)

That would give people a chance to see what's really happening, rather than just seeing bad actions + hearing weasel words (aka corporate speak) to justify them.


Guess by the downvoting that there's a reason people feel the "metrics collection" shouldn't be Open Sourced?

I'd like to hear what that is, as it seems (to me) to be a stellar example of what really should be.


> Guess by the downvoting that there's a reason people feel the "metrics collection" shouldn't be Open Sourced?

It was a childish and immature comment, not appropriate for HN. That's why it is getting downvoted. In addition, this comment talking about the downvotes will get downvoted as well. Not only for the fact that you are talking about downvotes in your comment, but by the fact that your comment is effectively "begging the question."

Rather than make one-off snide comments, actually contribute something that is respectful to other people's time.


What's a better way to point out MS should be Open Sourcing the parts of their codebase which people don't trust (eg their spyware)?

They seem to be making large numbers of moves trying to get people to use their platform... and at the same time, shooting themselves in the foot-head-foot with trust-destroying moves... and ignoring everything in relation to that. :(


How about:

"Maybe Microsoft should consider open sourcing the components of their system which track users. It's possible that this would help rebuild the trust that was eroded with the release of Windows 10."


Thanks. Tried to change it... but the "edit" link was gone by that time. Oh well, next time. :)


You are disrespectful and your rudeness adds nothing to the discussion. His made a valid point. This entire site is just by its nature very pro business even in the case of really bad businesses.


I think the downvoting is more in response to your editorial tone.


If you post something negative about M, it will be down-voted. It's kinda weird that they choose to ruin their goodwill. They had the chance to be the premium alternative in the freemium world.


Yep, seems like it.


Sarcasm is the lowest form of wit.


My guess is that it's two things: To get developers to use Windows again and to get developers to use Azure for everything.


Making the barriers low for Azure is huge. They have such an advantage over Amazon and Google here. Google has no IDE to speak of. Amazon has no IDE, language(s), runtime, etc.


> Google has no IDE to speak of.

Not quite true; Android Studio has some tools to help you get a mobile backend onto Google's cloud.


Another way of saying it is that Amazon has every IDE, language, runtime, etc.


Do they need them? There are hundreds of free(dom) choices.


And all of those choices are utterly horrible (IDEs, not editors).


What makes you say that?


For backend developers, this is super smart. When I'm running an app on my phone or in my browser, I don't care if the brains reside on AWS, Google, Azure, Rackspace, etc...

For the front end, this probably won't have much effect. Developers go where the users are and there's very little excitement around Windows applications (win32 or universal). If keeping developers happy was all that important, then Linux would be the dominant desktop OS.


Nobody really knows for sure. But here is what I've read in other comments and it makes the most sense to me (sorry can't find the source!):

> Microsoft has lost in server space against Linux. Developers developing any server software switch to either Linux or OSX. They want to prevent this switch.


The problem with windows sever, is that free is hard to beat.


Red Hat isn't free.


Ubuntu / Debian is. A lot of startups don't care about "official support" -- at least until they're big enough that price is not a factor anymore.


The problem with Ubuntu? Lack of games and applications... and a desktop that people have to learn to use vs tried and true Windows.

Ubuntu has games and applications? Come back when Call of Duty 87 or Office 2016 works on Linux...


This thread is about servers.


It's 2016, Steam is available on Linux. I even managed to run AoE2 HD on Wine.

> Call of Duty

All you need is CS:GO. And you can get it on Linux. ;)


You seem to be totally off topic here


CentOS sure is.




???

This one (from the same result set) may be useful too:

http://w3techs.com/technologies/details/os-linux/all/all


The one I linked is websites running on Linux. Besides we're splitting hairs, right?

It just comes down to the fact that most enterprises like having technical support.


That's but _one_ of the problems....


Plus Windows server is not even cheap...


A lot of people talk about this as something new. This is really Microsoft going back to its roots. Remember, before the PC, Microsoft made its money selling development tools for multiple platforms. This is their DNA.


Agreed. This is an astute observation.



Two obvious answers:

1) Use developer tools as onramps to Azure. Same reason Amazon made Lumberyard free. Yes, developers can opt for other clouds, but the effort required to do so will often seem more costly than it's worth.

2) Specifically for Xamarin, if you've already built your iOS and Android app in .NET, in Visual Studio, and there's little more than a recompile between you and a Windows Mobile version, why not do that too?


This is a long term trend that began with Gates leaving his position as CEO. I'd imagine the engineers have slowly been gaining more influence over time and most engineers can see the value of openness as it increases the scope of what they can achieve. The first echoes of this trend in my opinion were codeplex and providing sources for .NET.


The strategy is an enterprise play. MS has loss the consumer for mobile, so focusing on enterprise to take advantage of its strongest strength. Enterprise needs cloud: Azure. Enterprise needs hardware: Surface Pro/Win10. Making it stick is the many enterprise C# developers and one developer tools for all platforms, outside or within enterprise. This will effectively counter IBM/Apple's Swift strategy with iOS devices for the enterprise. And keeping its enterprise customers away from AWS and Google. I'm learning React Native, MS is giving me pause to look at Xamarin. As a side note, it might be good startup idea to create a Xamarin clone that uses Swift that targets all platform. Likely acquire by Apple or IBM. Fastest way is for JetBrain to spin off one unit :-).


> This will effectively counter IBM/Apple's Swift strategy with iOS devices for the enterprise.

In a similar vein, Satya Nadella's new "vision" expressed in yesterday's keynote, aka the future of chat bots with their AI / personal agents (channeling some of the original General Magic vision of 25 years ago), strikes me as more attainable for "developers developers developers" v.s. the marketing messages / PR spin coming from IBM on the Watson AI.

> I'm learning React Native, MS is giving me pause to look at Xamarin.

Likewise. Let's see what Facebook has to say at F8 starting April 12th. The competition is great. We are in a much better place today v.s. 20 years ago when Microsoft was a monopoly and expending time and money trying to kill Netscape and battle Sun's lawyers over Java.


Also out of curiosity, have any of the original vanguard for FOSS (Stallman, ESR, Torvalds, etc.) made any recent comments about this trend from MS?


I don't think Stallman even recommends Red hat or Ubuntu, MS has a long way to go.


Hell, Debian isn't Free enough for RMS.


i seem to recall he was somewhat... unenthusiastic about the amazon-canonical team up.


Developers, developers, developers.


https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish

worked in the past, they hope it will work now.

The fact that ubuntu laid in bed with them is extremely scary.


It seems like Microsoft wants to free the developer tools but control the distribution of binaries through the Windows Store. Seems like an intelligent business decision to me.

You can develop Linux or Mac but you're not going to get the same quality tooling (hello Universal Windows App Model).


Because Windows is loosing as a dev platform for web and mobile. Enterprise developers are in control as enterprise already did their lock-in with the Office365 platform and surrounding technologies. Don't worry they close down again when enough have come back.


Azure and Server licenses is the business center that's behind funding their recent OSS efforts.

They're effectively following a freemium model, get as many developers onto the MS platform then direct them to Azure.


To swallow Linux whole, especially dev environments.


I would say that it's not to swallow but rather to embrace. I have been developing middleware in Java, C++ and .NET on Linux and Windows Servers using basically every possible editor/ide/debugger combination. I have always regretted the fact that Java and Linux did not have anything on par with what Visual Studio provides. Now that most of the tooling is free deciding which tool to use will be a no brainer for everyone that has just touched VS and will become extremly tempting also for anybody else. At the same time this will push adoption of .NET and I foresee that in the next 10 years .NET will erode much of Java space.

In my opinion the stategy is not to swallow Linux but rather to push .NET. On premise Servers are becoming less relevant Linux or Windows won't make much difference in the future. What will make a difference is what the cloud will support and provide.


>I have always regretted the fact that Java and Linux did not have anything on par with what Visual Studio provides.

Linux has had JetBrains IDEs for a long time now.

In any case, without Xamarin being ported to Linux and tied to VS, the embrace you're talking about is shortly followed by the other two "E"s.


Have you ever tried Jetbrains IDEs on Linux? The font support in their java swing app is so horrible it's unbearable.


I use PyCharm all the time. But... I do use a patched Java Virtual Machine to make it work well with Infinality. Yes, by default, fonts suck.


Not entirely true, visual studio without resharper is a pain, IntelliJ idea is definitely better. With resharper the experience is pretty much the same with a small advantage to visual studio.


VS 2015 with R# is a pain.


Sure, that its becoming less relevant that the dev environment is linux or windows, seems to me to be a huge win for MSFT.


Too late, another company already did the same with its own proprietary software.


Kings never fall? Ask Palm & Blackberry how they are doing...


Easy, look at the old IBM and the new IBM.

Adapting to the market flow to stay relevant, that's all.


Aside from a good lesson in "how to fuck up financial engineering" (give in to your shareholders every demand, without ever once mentioning that that's exactly why your share price dropped by a factor of 35-40% since the last CEO got appointed, even while debt increased a LOT and assets were reduced by even more (ie. despite the drop, IBM is definitely overvalued). We're getting close to the point that IBM might actually die, or at least get taken over by something like Oracle), what exactly does IBM still do that matters even a little bit ?

I always wonder about how companies with such resources manage to make so little use of the advantages they develop. For instance: why wasn't Watson running every callcenter on the planet 5 years ago ?

Right now there is little in Watson's tech that can't be duplicated by 10 other firms and give it another year or 5 and every startup can do it. It's too late. How can management of such behemoths as IBM let those things happen.

Not that Microsoft did better with Windows Speech Server, and Google and Facebook, well they're not even trying.


Without significant developer mindshare, long-term MS is toast.

The new gen devs simply refused to buy into their old school closed shop practices.

evolve or die.



https://opensource.org/licenses/MIT

Seriously, do people even think before posting EEE on every Microsoft open source release? How exactly does that work?


The thing with software is that it gets outdated quickly... and if you don't get the updates, security fixes etc., there is no point in using it. Microsoft releases it with certain license today, will change license tomorrow and then drop support for open source version... most people using it will have to move to their proprietary shit.

Do you know what Microsoft did when they tried to kill Java? They implemented a version of JVM on their OS... and that in such a way that if you made apps for Microsoft's JVM, you wouldn't be able to run it on other platforms.

There is direct and indirect evidence that this is one of the core strategies Microsoft has used for many years. Given Microsoft's recent embracing of Linux and open source in general, which of the possibilities you think is likely:

1. After calling Linux and Open Source "cancer", "something to be not touched with a 12-foot pole", suing Linux and open source software makers for patent violations, making Linux vendors pay to not sue them, now they suddenly believe in healthy competition and want to part take in open source revolution

2. This is a new strategy to "embrace" Linux and Open Source to start extending at some point in order to finally extinguish it

EVEN IF there is A TINY possibility that scenario 1 may be true, I think it is a wise decision to ditch Microsoft for what they have done in the past.


The issue with that is people will leave for alternatives. It will also probably be more quick than before and then they would for sure never win the users back.

I think alternative 2 is a really bad business decision nowadays and thus will never happen. The difference from the past and today is that they really have open sources a lot. They actually proves their agenda with code and support like never before.


>The issue with that is people will leave for alternatives.

You seem to think most Microsoft users choose their operating systems. They don't. Most of them don't know any better or even if they do, they keep on using the operating system that came with the computer. Also, they have to use software that only runs on Windows.

> they would for sure never win the users back.

People like me who know about this and care never go back. Fortunately for them, most people don't care. Those who choose them do so either because they have software to run on Windows or because of their excellent marketing in the corporate market.


Wow. Very, very nice!

If anyone from MS is listening:

All you need to do to potentially convert me from a Mac user is to address some of the privacy/security and "user exploitation" concerns around Windows 10.

When I heard that Windows 10 would serve ads to users, just hearing that blacklisted it for me. Anything that serves ads is a low-end bargain-basement crap product, period. You are pegging your entire ecosystem as discount bin trash with those moves. I don't mind paying for good stuff, but I won't even use that kind of crap for free. Apple would never serve me ads on my login screen.

I'm also very concerned about the total lack of user control over telemetry and phone-home features in Windows. Mac also has this problem, but less. You could leapfrog Mac by making this stuff visible and configurable to the user in an easy way via some kind of control panel. There is an opportunity to do better than Apple here.

It's not that I would turn it all off. I'm not a total paranoid in that respect. But I want to see what it is, what it is doing, and have the ability to control my privacy/security "envelope." Obviously if I am doing anything security critical like... oh... I dunno... developing software to be distributed to millions of endpoint devices... then I care a lot about security. Security is not just for huge "enterprise" customers.

(Privacy equals security equals privacy, since privacy invasion exposes information that can be used to violate security.)

Honestly, the fact of the matter is that Microsoft has a significantly weaker reputation for security and privacy than Apple. That makes me more concerned about MS software phoning home than Apple software. This is a major problem and you have to do something about it, and in the 21st century that means actually fixing the problem rather than relying on PR to con people into thinking you've fixed the problem.

The sorts of power users you are trying to convert with all this dev outreach stuff are not morons and they will see through any shallow commitment to security or privacy instantly. Pure PR plays in these areas will make you look worse, not better.

That is all.


Same situation for me. I like everything about the way Microsoft is currently going except in terms of privacy, and it's a massive dealbrealer. Windows 10 has a lot of strengths but I'll never willingly use it until the privacy controls allow for all the 'phone home' features to be turned off. I just hope either Microsoft sorts it out before Windows 7 is no longer supported or an open source platform is polished enough to take its place.


It's enough to give me the impression that MS and other tech companies (Google, Apple, Facebook) are leveraging superiority in certain areas (with user experience and UI being chief among these) to try to ram privacy invasions and other very undesirable features down the market's throat.

Why? Some suspect a government push behind the scenes, but personally I think the answer is simpler and more economic: that data is extremely valuable to advertisers and advertisers are willing to pay a lot for ultra-fine-grained targeting services. Sure governments can piggy-back on all this to implement panopticon type surveillance, but the primary driver is demand for user data in the private sector.

The new business model of the tech industry is: give away free stuff and use it to productize the user. Maybe MS is extending this model to developers. (Facebook too with things like wit.ai.)

OSS can't compete. The problem with the OSS ecosystem is this: a product that works is only 10% done. The other 90% is making it work well and making it easy to use. It's not done until I can use it in minutes, not hours or days, and that takes a lot of painful work.

An example hit home for me today:

Today I was evaluating Microsoft LUIS and wit.ai and I realized that for simpler use cases a lot of what they do could be done with OSS like the Stanford Parser. The problem is that to make those work I'd spend at least a few days just getting that ball of twine up and running, let alone figuring out how to represent my app's intents and entities and such and actually get to something useful. But with LUIS or wit.ai I can do it in minutes to hours and have a ready to go app.

It's incredible. I can get natural language command and control in minutes!. The catch? Facebook or Microsoft get to mine every single bit of data I send and get a strong degree of lock-in.

There are OSS alternatives but they'd take days, weeks, or months to integrate... therefore they do not exist.


With regards to Microsoft's business model when it comes to Windows, you could be right about the advertising angle, but I believe some people would pay a premium to not have the advertising in their OS. If Microsoft offered the enterprise version of Windows 10 to the general public at a premium price then at least individuals who cared about privacy would have a valid upgrade option.


What's the plan regarding better documentation? That's the number one reason I've lost interest in Xamarin. Outwardly, esp. coming from a C# background, it seems awesome. Then you try to build something other than a todo list and you quickly find out how lacking the docs are. You might find a decent sample for Android, but then nothing for iOS, or vice verse. Forget about OS-X development, the docs are even worse when you get outside of iOS/Android.

I would reconsider Xamarin if the docs improved greatly. Maybe with MS involvement this will finally happen?

MS at this point would be better served by integrating React and React-Native in Visual Studio 2015 and Community. I know they recently came out with support for VS Code, but that's a different beast if you are a traditional C#/.Net/VS guy. From my experience with both, React is a pleasure to use, while Xamarin often had me cursing my decision to use the platform.


I work actively in Xamarin with both iOS and OSX. Documentation can be somewhat lacking, but it's usually not too hard to figure out. Xamarin.Forms is pretty well documented, and if ever you need to dive into platform specific code, the translation from Obj-C/Java to C# is about as straightforward as you can get. The classes have the same names, the methods take the same arguments, and if it deviates, the autocomplete provides enough info to figure out the difference. The only exception I've found is for Obj-C constants. It's not always clear which class they're buried in.

Overall, I've really enjoyed Xamarin. Development is quick and easy, you can use a lot of NuGet packages, and if you think C# first, platform specific second, it's easy to port code between platforms.


What I've found lately is that almost all the docs and examples for the various "hybrid" mobile platforms are out-of-date or flat-out don't work.

My guess it's just that things are moving so damn fast in that space that it's impossible to keep up with the churn.


I agree with you about the documentation not being very useful, but Xamarin isn't what's usually referred to as "hybrid". It's fully native code, no webviews needed.


So with that logic, Telerik's Nativescript can be called "fully native code" as well? Or Appcelerator's Titanium?

Sorry I just don't see it like that.


Fantastic. Xamarin was very slick, but the licensing costs to actually be able to use it was pretty hefty


Went ahead and downloaded Xamarin Studio for the Mac. Still has an "Enterprise Trial" button, and apparently I still have to login to activate it.

It annoys me to no end that I have to log in to Visual Studio as well (even Community) for it to even open a project, and I wish both Microsoft and Xamarin were more respectful of our privacy.


They're providing brilliant developer tools for free and all they are asking for is an email address- give them a break.


It's not about a crummy e-mail address, it's about privacy, trust and freedom, things which you get by default with libre software tools and things which Microsoft has not proven that they can deliver.

And that software is not really free, it comes with a nice lock-in in the form of .NET and C#, two technologies under Microsoft's control. After MS has a track record of at least ten years of doing this open source stuff they will get a break.

This thread is proof that for many getting stuff for free is enough to forget a long corporate history and throw their caution to the wind.


I agree with you. That's why I prefer to use Xamarin Studio than Visual Studio.


On the other side, I wish app stores required submitting all source code and not binaries. Then, the store would build the app binaries on their end and keep the source code archive somewhere.

Also give the developer an option to make the source code publicly available. How great would that be!


its not like you even have to give them a real/live email address either. some people just like to complain no matter what.


Nobody would be complaining about this if it didn't ask for a login.


I have VS2015. I've never had to login or create an account. It's purely optional.


I've been using Visual Studio for more than 10 years, it never required a login to work or sent any information to Microsoft without a clear permission.

Having said that, if you really feel that Visual Studio is disrespectful of your privacy, you shouldn't be compromising on that and simply not use the application. I don't understand people who whine about services while they are enjoying them for free.

It's always the same people you never hear complaining about having to create an Apple account to use their developer tools.


Because it's so completely unnecessary.

Because once there was a destinction between their program and my data.


You need to login with your MS account if you want to use Azure, Github, and other services... don't comment about stuff you don't know lol "my precious data"


> I don't understand people who whine about services while they are enjoying them for free.

It's not hard to understand. Just because you call something a service doesn't make it valuable to your customers. In fact, it could very easily be a burden on them.


I usually put absolute gibberish info in such cases. It's very annoying. You could also try bugmenot.com


I could feel inclined to take up iOS/Android app development if I could use Visual Studio. Last time I considered moving into mobile development, I had a "life is too short" reaction.

Why would I still need an OS X machine for iOS development though? If MS could eliminate whatever that last link in the chain is, I'd have to give going into mobile development some serious reconsideration.


You need a Mac to be able to build IOS apps. And to run the IOS simulator.

Announced today however, is the ability to remote the simulator to a Windows machine. That probably means you can just buy a mac mini and stick it in a closet, potentially sharing it between multiple devs.


You can't quite stick the Mac Mini in a closet and forget about it, because you'll still need to connect devices to it when it comes time to deploy to device-- the simulator isn't complete enough to be the only test environment you use.


Apple still sells hardware. Their TOS require it be compiled on their hardware.


Ughh....

They are THE WORST. Why do people support Apple?

Remember when they said everything had to be written in Objective-C?

Gah.


Microsoft being amazing again, what a time to be alive, I can't wait to see other things that MSFT will do in the future .


They finally did it. Thank you! Literally just got approval to buy Xamarin licenses at work which was a hard sell - now we get to go and deliver the good news that it will be free after all.

Words cannot express how big this is for the .NET community.


This is cool. They updated the pricing page: https://store.xamarin.com/. Hint, it's free.


Strange that the section about Visual Studio Professional says "contact us for a quote". Can't you just purchase that from the Microsoft online store?


It could be also that Xamarin didn't want to use pricing it has no control over, e.g. what Microsoft dictates for commercial versions of Visual Studio. I assume that "contact us for a quote" would take you to the MS online store through their sales personnel anyway.

edit: typo


It's likely the case that if you need a license of VS Pro you probably need multiple (for multiple developers) and then a volume discount may apply.


I think VS Professional has been discontinued. The contact us for a quote is probably to cover legacy users.


VS Professional is not discontinued: https://www.visualstudio.com/products/how-to-buy-vs

You can buy both it and Enterprise online. Not sure why Xamarin says to contact them for a quote, except that Xamarin's sales people really like to talk to people.


It's free in your MSDN if you're subscribed. I downloaded them all :-)

So if you're a VS user already, it's likely bundled with an MSDN subscription. Just link it to your Xamarin account and you're done.


You can download Xamarin Studio for OS X or Visual Studio with Xamarin here https://www.xamarin.com/download


How does it compare to React Native, anyone using both? I was just starting a project with RN, will be my first React project. But I have years of C# experience, so Xamarin way would be faster.


I haven't used Xamarin, so take this with a big grain of salt. But my understanding is that its API is similar to that of the underlying platform, meaning that it's mostly imperative and you write and interact with views in much the same way you would in Objective-C or Java, just in a different and arguably better language (C#).

React Native has a different philosophy -- it intentionally abstracts away the platform APIs entirely, and unless you're writing a native plugin you're only able to access a React-centric API. This is a lot more ambitious and leads to a great developer experience when it works. Some people however feel that it's a misguided effort and that you can't expect to write fluid mobile applications without interacting with the platform primitives directly. The jury is still out on how well it will scale and there definitely still are pain points with both the developer experience and app performance, but many people including myself have written production apps in it and in my opinion it largely delivers on its promise.


I've made apps with Xamarin before. For UI it's basically a very thin wrapper around existing UI code (at least pre-Xamarin Forms). I basically could take my existing native iOS knowledge, look up what they changed the function or object name to in Xamarin (usually a minor name change to be more idiomatic to C#), and set things up almost exactly the way I would have done in Objective-C code.

It was actually very common that if I didn't know how to do something I'd look it up for iOS on Stack Overflow, because it was almost certainly answered there, then look up the corresponding Xamarin object/function names.


Correct. The Xamarin API is 1:1 aligned with the native platform. To the point that it is almost entirely generated from automatic tooling with the odd "fix up" here and there.

Xamarin Forms however is a framework that performs abstraction, in a similar vein as React Native. Xamarin Forms is built upon the Xamarin API.


The great thing about Xamarin Forms is you can use Dependency Injection [1] to access the Native features. I started with Xamarin Forms without any pre-knowledge of iOS or Android development. I use Xamarin Forms on a daily basis and share 99% of my code.

[1] https://developer.xamarin.com/guides/xamarin-forms/dependenc...


Is it on GitHub? I've been working with C# for a decade and will be getting into Xamarin now that it won't cost me thousands of dollars to do so. It would be great to have some Open Source examples to look at!


There are some good tutorials about Xamarin Forms, e.g. https://developer.xamarin.com/guides/xamarin-forms/getting-s....

Xamarin Forms Labs is a great open source project for controls and services using Xamarin Forms: https://github.com/XLabs/Xamarin-Forms-Labs


I am currently developing a hybrid app. Where communication with backend, image manipulation, interaction with settings+security features of the platform -- are in Android Java. While the basic data entry / data presentation forms are in React-native.

I would not mind switching the Android Java side -- to Xamarin, but will I still be able to have a portion of my app in React Native? Are there any open source examples that use Xamarin and React-native?


Having tried both, Xamarin has been significantly more mature environment with better libraries and better support for underlying OS than React-Native.


This blog post, written by mpweiher shortly after the initial public release of React Native, explains why it can't truly be considered "native":

http://blog.metaobject.com/2015/04/reactnative-isn.html

Xamarin is much closer to native. In particular, unless you choose to use Xamarin Forms, you'll be using each platform's native UI APIs, so your UI will be indistinguishable from an app written in the platform's native language. Also, whereas React Native for iOS is restricted to using the JavaScriptCore interpreter (not even the JIT compiler), the Xamarin toolchain AOT-compiles .NET IL to native code.


Good lord that blog makes for tedious reading! It is like he is on a one man crusade to overturn decades of irreversible missteps with the practice of OOP. Rather than trying to fix an unfixable wrong the author should simply get on board the Actor-based Programming bandwagon instead which is almost entirely aligned to Alan Kay's original thoughts. Being "hung up" on ideologies, especially those which are decades old, is not a good personal development strategy.


You may be right, but I still consider him an authority on developing native apps for Apple platforms, because he has so much experience in that area. So in that context, the blog post on React Native is relevant.


Yeah the post about React Native is fair.


React Native support is coming to Visual Studio Code

https://github.com/Microsoft/vscode-react-native


The thing that makes me most excited about microsoft buying xamarin, is I have high hopes that mono + core will improve. While libraries are being ported, there's still a bunch of dependencies on 4.5, which I understand dnx uses mono for. I've wasted several hours trying to deploy my MVC app to a linux server only to learn that the fix is to downgrade the version of mono i'm using :(


> "Microsoft will also be open sourcing the Xamarin SDK over the next few months." ... "Included in this open sourcing is the Xamarin Forms library that provides a cross-platform toolkit for building user interfaces."

This is great news! For those that aren't familiar...

https://www.xamarin.com/forms


I'd like to see a really thorough comparison of the advantages and disadvantages of React Native vs Xamarin, but I doubt there are enough people out there with in-depth experience of both to do the comparison justice.


I don't know anything about Xamarin, but i've been needing to learn C# so this is really nice timing for me! Learning Rust for my local server, and C#+Xamarin for the mobile app interacting with it, exciting!


Sweetness, the license change means anyone can use mkbundle with --static. Essentially you can produce a single executable containing an embedded copy of the mono runtime, this wouldn't have been possible been possible under the previous open source license.

(edit: previous comment mentioned AOT, actually mkbundle doesn't support this in a single step, you still need to manually AOT the assemblies inside your executable and ship them side-by-side)


That's some incredible news. Thanks Miguel!


I still want a full IDE for Mac that is equivalent to VS and that is more mature than Xamarin Studio (VS Cose doesn't count). Is rather have Visual Studio for Mac than Xamarin Studio.


JetBrains' Rider may fit that bill in the very near future https://www.jetbrains.com/rider/


What if I want to write F#? JetBrains has said F# isn't planned.


Then best stick with Xamarin. There's still nothing better for F# dev on Mac currently (and unfortunately).


Xamarin have some very smart people on the case.


Limited code-completion, but Atom has an F# plugin, you could also just use any plain old text editor. This is what I have been doing, personally, and I just use FAKE for builds.


Yeah, Ionide is pretty good. I personally use vim-fsharp because Atom is flaky and VSCode doesn't have a good vim emulator yet, and vim-fsharp does the trick well enough for most of my usages.

Apropos of nothing, I recognize you from #ubuntu-offtopic on Freenode. Hiya!


As a Xamarin developer for the past year, I don't want to use Visual Studio, I want to use Xamarin Studio.

Visual Studio is slow and doesn't work near as well as Xamarin Studio for many core development tasks. Not to mention, it's completely hamstrung by its dependency on a Mac build host. VS integration needs to step up, dramatically.


I tried using VS some time ago and didn't find anything I don't already have in other IDEs like Eclipse (I mostly write C++ and Java code). Except that it is faster.

Perhaps I missed something that could increase my productivity... Would you care to tell what features make VS so powerful for you?


IMO, being faster is a significant feature that increases productivity and it shouldn't be casually dismissed.


The difference is not really big and if that's the only thing, I think I will stay on Linux/Mac.


With the direction Microsoft has gone in the last 18 months, Visual Studio for Mac and Linux might very well turn into a thing. I like it - Microsoft is returning to its roots as a supplier of cross platform solutions.


I believe VS uses WPF pretty extensively. And neither switching from WPF or porting WPF would be easy. So I don't think VS is going to be ported anytime soon (otherwise, why have VS Code in the first place?).


But then you wouldn't have any reason to run Windows.


What's the status of F# on the Mac? Is it usable as a scripting language? I've got a few tasks I'd like to automate. That'll give me a reason to give F# a try.


It's perfect as a scripting language on the Mac. That's how I do 90% of my scripting work.


Using functional ml-like programming language for developing Apps ? It is like dream comes true , count me in . I am literally sick of Java.


Have you tried any other JVM langs, especially kotlin - https://kotlinlang.org/ ?


Very usable :) I use it all the time via Xamarin Studio


We just spent almost £2k in February renewing our licenses, doh!


We'll give you a full refund. Drop a note to hello@xamarin.com.


Like I said. Brilliant.


I only spent $500 on my renewal last month, so I'll wait to see what's the actual difference between the free and business editions


Do you happen to know what will happen to Indie licences? I have an Indie licence for both iOS and Android. Are these ongoing if I don't cancel them or is the pricing simply set to $0?


You'll probably get a refund if you ask. Please, let's know the outcome.


With all these MS open sourcing stuff stuff - any plans for Visual FoxPro? :)


So how would I use this on Linux? I'm seeing different versions of VS to download from the official website. Only VS Code is available on Linux?! Does/will that contain Xamarin?!


Visual Studio proper is still a Windows only product. Microsoft's aim here is to make Windows and Visual Studio the only solution you'll ever need to develop for every platform under the sun, be it iOS, Mac OS, Android, Linux, Windows, or web.

Visual Studio Code is a very lightweight semi-open source IDE for writing code, and not much else.


In what way is it semi-open source? The code is on GitHub under MIT: https://github.com/Microsoft/vscode.


I think the "semi" was for "IDE", to compare it to Visual Studio.


I don't think you can right now. It's likely to be a community effort once the SDK will be open sourced. Then you'd have to use MonoDevelop (Xamarin Studio OSS, basically).


I think you can still download xamarin studio.


Xamarin Studio doesn't run on Linux.


Monodevelop, which is Xamarin Studio without skin works like a charm on my GeckoLinux box and Linux Mint before that.


But Xamarin's tools do not run on Monodevelop.


Amazing news! I was looking for how to make cross-platform apps and the best one was React Native and I already do enough React/JavaScript on the web to want to do it elsewhere.

Looking at http://www.monodevelop.com/download/ though, does that mean that you can't write android/ios apps while on linux? What's the reasoning behind that?


Now that the full runtime and, presumably, the AOT compiler are being open sourced, I wonder if someone will port them to Apple tvOS. I'm disappointed that 6 months after the first beta of tvOS, Xamarin still doesn't support it.

Edit: Never mind; tvOS support has been in preview since October. I wonder why it isn't in the stable release yet, but I guess it's just a low priority.



Thanks. Clearly I didn't research enough.



Exactly what I was hopping for! I have about 7 Obj-C/Swift iOS apps but any new one will be built with C#/Xamarin!


As someone who's never used Mono or Xamarin, but who has played around with CoreCLR and the DNX tooling. I can't figure out whether to start developing with Mono, or wait for CoreCLR to mature. I don't understand the roadmap.


CoreCLR is the future. If you're playing around because you want to build something now, use the classic CLR or Mono. If you're playing around to build up skills you can use in the future, go with CoreCLR.


Woah, I use NativeScript right now, but I will definitely download this and try it out!



That's awesome, and very fast indeed after Microsoft's acquisition of Xamarin. Thanks to all involved, I was waiting a long time for these moves!


This is a testament to Miguel de Icaza and his team's ability to take on the insanely tough and often thankless task of creating a cross-platform SDK. You have to keep up with the changes in three native SDKs and develop your own APIs, too. It will be interesting to have this code base available as open source. I'd read it just for the comparative anatomy of native APIs.


hope they port the full thing to linux (i mean xamarin studio, not visual studio)

i was kinda always turned off, that xamarin treated linux as a second class citizen


I would love to start messing around with Xamarin, and I definitely plan to because of this news. However, I'm using Microsoft's Bizspark, and I have Visual Studio Professional through MSDN. So it doesn't appear that I can download Xamarin for free unless I go down to the Community version. Is this correct?


I am thinking about buying new phone and it is really tempting to buy windows phone now. This Microsoft is not going to lose and better to make investment on windows phone now rather than later.


Too bad I am already neck deep in react-native.


This is fantastic news. Hopefully a wider userbase and Microsoft support leads to faster turnover on bugs and niggling issues.


Google should really, really be worried about Microsoft acquiring Jetbrains.

Like, shitting-their-pants worried.


It will be interesting to see what happens to RoboVM (because it acquired by Xamarin)?


I wonder what odds I would get on MS bringing the UWP to OS X and Linux and maybe even Android?


Xamarin already has tools to create Mac apps from .Net/MonoDevelop.

The work has been started - it's just a matter of time.


Indeed. To be honest I would be shocked if Microsoft don't make the Universal Windows Platform a true Universal App Platform available on as many platforms as possible.

It seems to be the way they are going. Then every MS product will become a Universal App and Microsoft can deliver their software anywhere the UWP/UAP is available.


Best news I've seen all year! +10 microsoft


"...though iOS development continues to need access to an OS X machine..."

Now if MS could do the same thing they did with Ubuntu and add native support for OSX, I'd be in heaven.


That mostly depends on Apple, which is not likely to happen


"Likely" is an understatement. Apple will have to go into 90's style decline before they let that happen :)


Would be more likely that Apple allowed compiling iOS applications on non-OS X machines.

I can't understand why they don't want to maximize the number of developers and the number of apps they produce for Apples stores. What would be the drawback for them if I could build my iOS app directly in Windows?


Perhaps quality? Having developers who know the environment they are developing for instead of a lot of one-size-fits-all apps.

You can do it if you're the only supplier of a given service but as a customer you will not get my money in a multi player game if I smell you took the shortcut or have no idea what my platform is capable off.


You're making it sound like that's a problem they have. If anything, they have too many developers.

And the drawback would be that you're not using a Mac. Just like Microsoft is doing all this, yet leaving VS on Windows, to try and get you to use Windows.


Thank you, guys at MS, you're awesome !


omg omg omg - thx msft :)


so should you use react-native or xamarin now?

how much 'write-once-run-everywhere' is available in xamarin vs react-native?

I've long avoided .net and c# but now I'm getting interested because these things are becoming open source.


Inb4 "embrace, extend, extuingish": regardless of whether it's it or not, the "embrace" step like thos one benefits everyone.


Plus at this point Microsoft should be more afraid of the "extinguish" part coming from the OSS community, than vice versa.


Seems like it's been "embrace, open source code" lately.


Not the mention the open sourcing part make the extinguish part very hard.


Oh it's not that strategy, it's the other one where they give stuff away for free to hurt competition.


Super news, but I think more and more people will go React Native way... Especially after React Native Mac OS X recent release!


Not so sure about that, for most Windows developers Xamarin will offer more benefits and it is extremely mature by now. React-Native is still pretty early on Android for example.


Probably not C# (and to a lesser extent F#) enterprise .NET developers.


No, but I don't think that group was big into writing apps to begin with.


I was learning react native, after this I will try Xamarin. Much better to be able to use c# (that I use for work) than JavaScript.


TypeScript is learning from C# though, so you may yet circle back to it. :)


Did you check the pros and cons of both?


It seems like Microsoft will help you with that too.

https://github.com/Microsoft/vscode-react-native


At my previous job, mobile projects were all done in xamarin (after like 2013/14 or so) and the developers who did those projects raved about it, often. If I were going to make a mobile app right now, I would definitely use it. However, I'm much more at home in C# than I am javascript. To each their own.


I don't know. I've been spending some time learning React-Native, but it's in fits and starts. There are several things that trip me up. I've got the basics pretty much down now, but now I'm banging my head against local storage and wrapping my head around Redux in general. It is interesting, but time consuming. And I don't have much leisure time right now.

I've made stuff in Xamarin before, and it was a pretty smooth experience, except for needing to have separate UI code for each platform. The language and syntax never got in the way, it was more just having to look up the corresponding UI elements (especially Android, where I have less experience) and get those working from time to time. As such, I could generally code like a fiend and get tons accomplished in a short period of time.

That being said, I really, really like how most of the React Native code is the same, and it's quite possible I'll get to that point with React Native also.


> but now I'm banging my head against local storage and wrapping my head around Redux in general.

Have you tried using Realm for the local storage?

https://realm.io/docs/react-native/latest/

It worked really well for us and removed the need for Redux.


Do you ever have to be connected to the internet to use local storage? I'd like my app to be totally usable offline. I've heard of Realm, but something made me think that it needed to be online. If not, I'll look into it.

Also why did it allow you to skip Redux altogether? I thought that was necessary for anything remotely complicated.


"I've made stuff in Xamarin before, and it was a pretty smooth experience, except for needing to have separate UI code for each platform."

That's what you SHOULD be doing. Trying to force the same UI on platforms with different paradigms and look and feel is a recipe for a shitty, shitty app.


It's not the same UI with React Native. It conforms to Native expectations (more or less) with each platform. It just wraps both of them in the same component name, and you can have separate files if you need to specify a parameter unique to a platform. So you still have platform specific code, it's just RN's approach gets you a lot closer with the same code.


That's what Xamarin.Forms (https://www.xamarin.com/forms) does, for iOS, Android and UWP (desktop, mobile, xbox). My preference is still to go the native UI route though. If you take an MVVM approach, you'll naturally keep the logic in the shared code - the models and viewmodels - and you then can build views specifically for each platform and bind them on.


Seems unlikely. Xamarin supports F# and C# and is aligned 1:1 to the native platform.


Has the damage already been done though? Previous Xamarin pricing killed off any investment in that product/ecosystem when the mobile game was hot


It certainly killed off investment by people that had no money to invest in the first place. Which enabled Xamarin to create a base of over 500,000 of paying customers which tends to help when your business plan stretches about 5 years, to bump up the value as much as possible, before the planned sale to Microsoft.


Does anyone remember why Mono was created in the first place? There was no reason to take C# seriously back then, and if we'd all just ignored it it would've gone away or been replaced by something other than a copy of Java.


Xamarin also supports development on OS X using Xamarin Studio. This too is now available for free as a community edition for small teams, and is included in MSDN Subscriptions.

This would explain the message I got on my Macbook the other day.

Sadly Xamarin isn't supported for F#, so it's still basically useless to me.


Xamarin works in F#. What are you talking about?


Our entire Xamarin codebase is written in F# so not quite sure what you mean by that.


Wow! I tried, but with minimal .NET knowledge I ran into roadblocks everywhere due to lack of documentation. Do you know of any standard/idiomatic ways of defining viewmodels in F#? What about HTTP calls and JSON parsing?


HTTP and JSON are well catered for on .NET and Xamarin. Newtonsoft.Json is the most popular. And then HttpClient has first class support in Xamarin.

In terms of view models... how long is a piece of string? There are literally dozens of approaches one could take. Or you could use Xamarin.Forms which is a MVVM framework (amongst other things).


Xamarin does support F#.


Then why is it excluded as an option for Xamarin.Forms or iOS/Android projects in Studio?

Xamarin the framework and the editor are not the same thing.

And I find it ironic that official support for the framework is limited to C# only just as Windows Phone was.

Apparently no one wants first class mobile support to exist for any .Net languages other than C#.


An oversight, we have just been very busy improving our core F# support before we unleashed a suboptimal experience.

You will be happy to know that they are coming (and Miguel who runs the team loves F#)


This is great to hear. The prospect of writing cross-mobile apps in F# is very exciting.


> Then why is it excluded as an option for Xamarin.Forms or iOS/Android projects in Studio?

Try the preview version (6.0) where F# is enabled for those project types as well:

https://forums.xamarin.com/discussion/53121/preview-release-...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: