Everything was fine until I installed Update 2 for Visual Studio 2015. First I noticed that automatic tag closing stopped working in *.html files, while the same thing worked without any problems in *.aspx. Fine, so I won’t use HTML for static pages. Of course I searched the web, but found nothing that would point me in any useful direction. I did see that someone else had the same problem, but nobody could say anything about it. Now, though, the same thing, being unable to type the > character, started showing up when writing C# code as well, in my case with a generic class type. I deleted all the *.suo files and the bin and obj folders, reset to default settings several times, deleted the VS settings folders, but nothing changed.
I even uninstalled all plugins and extensions. The only thing left was to reinstall the whole of Windows, but it would end up the same, because I have a fresh one right now for this very reason. It must be a bug that shows up very rarely; unfortunately it hit me and I don’t know what to do about it. I’ve had enough, and I told myself I have to start using the Express editions. The problem with those is that they don’t support extensions, so I couldn’t use, for example, across all programs, whether web, desktop or mobile, the thing I worked so hard on a few months ago ( 👻 This page moved out and left no forwarding address. is, apart from MS itself, in the Universal apps that MS has been pushing since the beginning of Windows 8. I understand that mobile devices need to save as much performance and resources as possible, so it makes sense there. I understand there is little point in developing one version for desktop and another for phones/tablets plus many other devices like the Raspberry Pi, so it is better to write it lean enough to run everywhere.
But it is exactly this cross-platform approach (as if running across devices were not enough, it also runs across OSes; .NET Core and, for example, VS Code have long been available for Linux and OS X too) combined with the legacy of the original .NET, which is Windows-only and was made for it, that turns everything into a huge mess. Nobody could make heads or tails of it anymore. To tell the truth, I’m really glad that ASP.NET 5 (now called ASP.NET Core 1.0) will also run on OS X and Linux.
OS X means nothing to me, but Linux is something I would seriously like to switch to one day instead of Windows. I have come to understand that MS always was and probably always will be a brake on the real IT world. It is a matter of habit and, above all, the backing of a strong corporation. That is exactly why I quite like Google Chrome OS. Some things in it, typically the file manager, are made for idiots and try to be smarter than the user.
Still, if I could run Linux there (which is possible; not on my Samsung Chromebook because of the supported CPU instructions, but in general yes), I could browse the web from Chrome OS and launch Linux wherever web apps are not enough.
For several hours now I have been downloading VS Express 2015 for Windows 10 using the online installer, which is probably grabbing everything (it offered me no options for what to download and what not), and it is 5.4 GB. I don’t understand what it is downloading; when I did this after VS 2015 RTM was released, it was 2.66 GB ( 👻 A page used to live here. Now there is only wind and weeds.). Actually, well done, MS, for this achievement. It is unacceptable for an IDE, even if in my opinion the most sophisticated one on the market, to be this big. So let’s sum up what we have from MS:
- Classic desktop applications, console or WPF – The flaw is that WPF will no longer be very popular for this type of application and will be phased out. After all, MS is desperately pushing Windows Universal Apps.
- ASP.NET Web Forms applications – what, for example, the whole of sunamo.cz or webelieve.cz is built with. This hurts the most; rewriting it all will take a very long time, but it is probably unavoidable. The death knell is ringing for this technology too.
- ASP.NET MVC applications – As the name suggests, this is a split into a Model-View-Controller architecture. It is a matter of habit, like everything. I don’t feel like learning it, because Web Forms can do the same thing, just differently. But MS keeps pushing me into it.
- Windows Store Universal Apps – Mobile Windows is worthless compared to Android, but there is Xamarin and with it Xamarin Studio, which is free, so in theory I could switch to Android/iOS, which would be the only right and rational choice.
So, to sum it up: I don’t even know what to develop for, nor in which IDE or language.
I want to stay with C#, I don’t want to stay with MS. I have to choose one or the other. But if not C#, then what? According to https://survey.stackoverflow.co/2016/#technology (bear in mind that stack overflow is visited mostly by home-based developers rather than full-time ones, although those also form a large group, just not the majority), the most popular languages today are:
- JavaScript (55%) – Some call it the king of programming languages because of its versatility and the fact that you don’t have to deal with things all the time. But because it is untyped, the IDE provides almost no Intellisense. Sure, it is my problem that I can’t program in it, that I rely more on the IDE, the debugger and similar conveniences than on my own skills. It would be a sensible choice for the web, also because of JS frameworks like server-side NodeJS or client-side AngularJS. But if it is this widespread, it must have some magic that I don’t see and don’t know.
- SQL (49%) – This is for databases, where you can also do a bit of scripting, but I’m not concerned with that here; I’ll have it everywhere.
- Java (36%) – It would be good to learn it because of Android. It is typed, too. What bothers me is its slowness and hardware demands. I’m quite surprised, though, that it has 36%, 6% more than C#, in which everything for Windows is developed.
- C# (30%) – This is what it’s all about, for better or worse.
- PHP (25%) – PHP rounds out the top five. Again untyped, primarily for the web; together with JS it is perfect for websites.
After that, the only interesting ones are C++ or C. With those I can develop desktop applications where speed matters. The problem is that speed doesn’t matter much, more so for small embedded devices, but those are outside my scope for now. If we add it up, typed languages have 66% (36+30). Untyped ones 80% (55+25). So I’ll try to take a radical step: wipe Windows off the disk completely and start using some Linux, where PHP is at home and JS (sort of) at home. It pains me to see where .NET, C# and everything around them have ended up.
I don’t want to waste time learning something new, yet I keep wasting it figuring out why things from MS don’t work. I have no illusions that everything will always work there, but until I try it, it is just guesswork. I know that every update screws something up. I really no longer have the strength to spend whole days figuring out why this doesn’t work, when it is all a clean install, all updates, no tweaking on my part, everything at default values. I know this has come up here many times before. But I never had Windows for good. If only Google would release Chrome OS as a regular ISO.
There are projects like CloudReady that do this, but it is a third party that makes no secret of wanting to be profitable, and it is only a matter of time before it starts limiting things, charging for what used to be free, or ceases to exist or fades away.
Yes, it will hurt. It will cost a lot of energy, nerves, sleepless nights, rewriting and experimenting, and the result may be mixed.
But until I look into another world, I can complain about this one, yet complaining is only for losers. The capable aren’t afraid of challenges and love pushing past their own limits, discovering the unknown. Everything you know or can do moves you forward.
There are big changes in my life right now – for the better, for the best. It’s time to be done with MS technologies, MS design, MS policies. Why stick with something everyone is running away from? And I don’t accept the excuse that I won’t easily learn anything else. If I want to grow and develop – and I do – I have to go where the quality is.
PS: VS 2015 Express for Windows 10 has finally finished downloading. I don’t know if I’ll ever install it.
