Moving On

2021-08-14

Campbell

<- Back


All good things must come to an end. And for me, that thing is my time working with C#. In this article I will outline my reasons for abandoning C# as well as what will happen with my C# programs.

I. Why I’m Leaving It

1. Free as in beer

One of my biggest issues with C# is the lack of open source. While all of my C# code is open, nothing about the language or its tools are. It’s a proprietary language that uses proprietary tools and, if you’re making a GUI app, only runs on a proprietary OS. So yes it may be free to use, but it offers no freedom.

With a language like C, there are options for what compiler you want to use because nothing about the language is proprietary. Or if, for example, let’s say you’d like to make a GUI in C. You have several options, such as GTK+, which is an open source solution. When you’re programming in C#, you have to use Microsoft’s proprietary compiler and one of Microsoft’s proprietary GUI frameworks, if you intend to make a GUI app.

2. Platforms

Another large issue I have is OS compatibility. C# desktop apps run only on Windows, and even then you have to install the .NET 5/Framework Desktop Runtime first. C# console apps can be run on Linux and macOS in addition to Windows, however you still need the .NET 5/Framework Runtime installed and you need launch the apps with the dotnet run command in the terminal.

On the other side, C code can be written to work on multiple platforms, and even if the same code won’t you can (usually) make adjustments to let it run different code on different operating systems. (Of course Windows support can be a lot harder due to it not being POSIX compliant, read more about that here). C code also just runs on whatever OS it’s compiled for, no need for any frameworks or runtimes, only the libraries for your program (and unless you’re doing something crazy, a lot of common libraries you want to use might already be installed).

3. Abandoning Windows

My final reason for leaving C# behind is that I’d like to leave Windows behind, quite possibly for good. Since none of the GUI designer tools, cough Visual Studio cough, run on Linux or macOS (the 2 operating systems I will still have access to), then that leaves me with no way to continue developing my C# apps. And that brings me to the second part of this article:

II. What will happen to my projects

CSharpCollection

I’ll keep this short. I have no intentions to continue developing CSharpCollection, or to pass it on to another developer. It is a test app and nothing more.

NCX-Core, XStore and NCX-News

While I, and by extension, NCX Programming, will still own the project, it is being passed on to Rolfie, who will handle any future development or maintaining work. She will also be maintaining XStore. NCX-News will still be managed and updated by NCX Programming.

XWare

Like with NCX-Core, XWare will be passed on to Rolfie as well.

III. Closing words

I’d like to wrap up this article by saying that this is by no means the end of any major NCX Programming projects. There will be more to come in the future, even if I don’t know what they’ll be now. That’s all for now, and I’ll be back next time with a fun Microsoft rant.