Ich weiß ja nicht, in welcher traumhaften Welt ihr lebt - aber meine Erfahrung ist eigentlich, dass diese von euch als selbstverständlich angesehene Freiheit nicht existiert und aus Unternehmenssicht auch nicht zweckmäßig ist.
Ich bin Angestellter in der EDV eines großen Unternehmens (>25K Angestellte). Mein PC ist identisch den PCs der Sachbearbeiter, nämlich nichtexistent. Ich habe einen Network Client, immerhin mit zwei 24" Bildschirmen, verbinde mich damit zu einem Windows Terminal Server und kann dort die allgemein zur Verfügung gestellte Office-Umgebung nutzen (Mail, IM, Spreadsheet, Textverarbeitung). Mein Entwicklerrechner ist eine virtuelle Maschine, zu der ich mich per Citrix-Client verbinde. Diese Maschine ist vorinstalliert mit Windows und den Basistools (Visual Studio, SQL Server, IIS), was ich extra brauche kann ich nachinstallieren. Die Entwicklermaschine bekommt genau wie die Terminalserver monatlich die Betriebsupdates, und ist dadurch bisher nicht kaputtgegangen, bis auf eine Episode mit Internet Explorer 11, denn ich vorab installiert und damit das Betriebsupdate blockiert hatte. Wenn ich eine andere Testumgebung brauche, bestelle ich mir eine andere virtuelle Maschine, teste und schmeiße sie wieder weg.
Natürlich wird die Welt dadurch vereinfacht, dass meine Zielumgebung klar definiert ist: Win7+.net4+IE11 bzw. demnächst Win10+.net5+EDGE, mit Fallback auf Firefox.
Würde ich unbedingt unter MacOS oder Linux entwickeln wollen, würde man mich komisch angucken - zu Recht, wie sollte ich damit einen Windows-Service, ein Windows GUI-Programm oder eine unter IIS laufende ASP.NET Webseite schreiben? Mono kann viel, aber die Zielumgebung ist .net unter Windows. In unserem Laden arbeiten Hunderte von Entwicklern, deren Sourcen - hypothetisch - jederzeit an einen Kollegen übergebbar sein müssen. Wie soll das gehen, wenn jeder seine eigene Welt konstruiert?
Rolf