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-...
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. https://developer.xamarin.com/guides/ios/getting_started/ins...
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...
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 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.)