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
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.
Here's the instructions btw.
VS + MacVM = how iOS dev should be ;)
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.
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.
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.
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.
(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)
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
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.
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
You're welcome to other reasons to avoid C# and .NET, but worrying about their longevity doesn't look like a rational reason.
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.
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?
> "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.
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.
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...
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 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.
They already have the desktop market and it is pennies compared to the income they make from enterprise clients.
I bet if anyone showed up with a huge bag of cash, they would sell.
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.
(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.)
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.
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 !
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.
Actually that's exactly what it does. What were your pain points?
(Besides "it's proprietary").
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.
- 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).
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.
I would be curious to know what % of security flaws are discovered because exploited vs as a result of a code review.
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.
Have you used a recent Linux distro? They are mainly stable and no fuss, 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 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.
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.
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.
>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.
Go with Linux if you want to build on something that is not built on sand, greed and damned lies.
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.
swapoff -a -v
echo 3 > /proc/sys/vm/drop_caches
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.
(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+.)
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."
Instructions are included in the MonoDevelop repository, and they could not be simpler:
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...
We have some more details on our blog:
- 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.
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.
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.
Getting native performance would be a big differentiator. Hopefully, Ionic/Angular 2.0 will go a long way to improving performance.
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.
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.
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?
Unity was going to go C++ back in the day when Flash/Non-AOT code was being blocked in iOS 3.3.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.
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.
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).
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.
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
So, I think it's probably Apple ToS. I forgot about those.
edit: Thank you for all your answers!
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 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.
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.
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.
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.
I'd like to hear what that is, as it seems (to me) to be a stellar example of what really should be.
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.
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. :(
"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."
Not quite true; Android Studio has some tools to help you get a mobile backend onto Google's cloud.
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.
> 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.
Ubuntu has games and applications? Come back when Call of Duty 87 or Office 2016 works on Linux...
> Call of Duty
All you need is CS:GO. And you can get it on Linux. ;)
This one (from the same result set) may be useful too:
It just comes down to the fact that most enterprises like having technical support.
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?
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.
worked in the past, they hope it will work now.
The fact that ubuntu laid in bed with them is extremely scary.
You can develop Linux or Mac but you're not going to get the same quality tooling (hello Universal Windows App Model).
They're effectively following a freemium model, get as many developers onto the MS platform then direct them to Azure.
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.
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.
Adapting to the market flow to stay relevant, that's all.
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.
The new gen devs simply refused to buy into their old school closed shop practices.
evolve or die.
Seriously, do people even think before posting EEE on every Microsoft open source release? How exactly does that work?
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.
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.
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.
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.
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.
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.
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.
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.
Sorry I just don't see it like that.
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.
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.
Also give the developer an option to make the source code publicly available. How great would that be!
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 once there was a destinction between their program and my data.
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.