Today marks post number 94 of #100DaysToOffload and boy oh boy has it been a journey. I'll save the summary type spiel for post 100 but wow, I never thought I'd make it this far.
With the imminent end in sight, I've been starting to plan my next #100DaysOfSomething. Naturally, I fell straight towards the "Of Code" option because it's just something I've been meaning to get a handle on for years. I've dabbled here and there and made fantastic progress with Python at one point, creating a CLI based currency converter using live rates from a currency API. I'd be lucky to even know how to begin doing that these days...
As I mentioned in a recent post, I also completely fell in love with Elixir too and followed an incredible video based series called Red4 from https://redfour.io which no longer exists.
I've tried a few other languages but nothing has ever really stuck. Maybe I'm just not a developer, destined to be a Sysadmin Monkey for the rest of my days. Which isn't necessarily a bad thing - the things some developers do to servers and systems is truly heinous.
Some other languages that have tickled my juices are Rust and Elm. I looked in to Go at one point and just didn't like it, but being a complete amateur I couldn't tell you why. I've also skirted with beginner tutorials on Flutter (and Dart by extension) which seemed OK. The issue here is my indecision of knowing what exactly it is that I'd like to create with the tools.
Linux is my love, it has been a natural fit for many years. But I also work with Windows and macOS daily. IF (and that's one big if) I ever get around to creating anything, I want to be able to share that creation with any platform. That does, of course, push towards a web-based world but that doesn't seem right to me either. Electron, for all its good intentions, feels like an absolute scourge on the desktop environment that one day soon is going to bring things crashing down. Then there is the mobile aspect of things. People are permanently attached to their phones (I'm not one of them) but it is where most people live. Again, push towards web tech... Or is it?
Is C# the right choice?
With Microsoft's hard push of .NET Core and C# in to the open source world and with cross-platform interfaces such as MAUI (let's leave the whole MAUI naming issue at the door for this one), is there promise here?
After all, I spend my day working with Windows, Azure and Intune - this seems like a sensible fit. If I were to create any tools, they could be put to immediate use.
This option does feel like supporting evil in a way though. There is also the way people sneer at anything Microsoft. I don't know why that bothers me, but it does and it feels like they'd look down on me for choosing to side with the Microbeast.
And then there was Flutter
And then along came Flutter. The golden promise of being able to develop across Android & iOS with firm intentions of getting their feet under the desktop rug. It's not like they're hanging around here either, recently announcing their working partnership with Canonical to get it on the Linux desktop. They've also been working with Microsoft to get it there too with serious talk about the Surface Duo and Flutter applications.
The concept itself is simple enough being that "Everything is a Widget". I was able to slap together an incredibly simple app in an hour following a tutorial. But (here we go again), is this too simple? Is abstracting so much away going to lead to lazy development and end up being another Electron that shouldn't really be where it is.
There is also of course the whole "Google is Evil" issue which they seem to be embracing these days. What is it they are after? Firebase all the things and suck up that data? Is contributing to something like that really a direction I'd like to go in?
A lot of the advice for beginners is to just pick a language and get started. Doing something that scratches your own itch. From there you can generally move to other languages quite quickly. But honestly, where the hell do you start? I'm not someone who is blessed with a vast amount of time and I need to make the most of that 1-2 hours.
So what are your thoughts? C# with its already established base and hard push for pretty much full platform coverage? Or do you place your bets on Flutter and see what sticks?
Maybe there is another option that I've completely overlooked? Don't anyone, suggest Java.
I'm well aware this is completely a "me" issue. So come and join me on Fosstodon, share your thoughts and suggestions.