Lessons on the Future of Technology

I attended the We Are Developers 2017 conference recently and returned from it completely changed. All of my former grudges and qualms are long gone, to be replaced by a strong need for Getting The Job Done. I wanted to share some of my observations so people will hopefully avoid making similar mistakes in the future:

  1. It doesn’t matter which operating system (OS) you use. Philosophy and personal preference aside, it really doesn’t matter. You write .NET and C# software on MS Windows? Fine. You do Objective-C and iOS development in MacOS X’s Xcode? Fine. You like Ubuntu, Fedora, openSUSE, this-other-super-lean-Linux-distribution, because it’s open-source? That’s also fine! In the end, we need extra libraries, frameworks, IDEs, etc. to code efficiently, regardless of the platform of choice. We use the same commonly accessible (often open-source) tools as well.
  2. Networking/collaborating is mandatory. Technology is moving faster than ever (as Martin Wezowski put it – exponentially) and we need to adjust our approach to its pace. We’re in this together so we need to work together. Otherwise, we’re severely limiting ourselves and I am sure that no one wants that. If you have/know a piece of technology that may be useful to someone else, share it. Let’s help each other fulfilling this one goal we all have – making the world a better place to live in.
  3.   Software development doesn’t need to be hard. Long gone are the days of Fortran, Assembly and C89. To create useful programs you don’t have to struggle with manual memory management or arcane coding techniques anymore. There is Python, Ruby, Java, Javascript and a load of utilities that aid us in our endeavors. In addition, we can teach ourselves and our offspring how to code effectively via Scratch and tinkering with ARM-powered devices such as Raspberry Pi or BeagleBone.
  4. It doesn’t matter which language you code in. Most languages can handle SQL databases, file I/O,  URLs, system signaling, I/O streams, etc. Pick one, learn the syntax, learn the libraries/frameworks and roll out great code. In the end it’s the goal that matters not the language it’s fulfilled in.

Summarizing the empowering vibe I felt at the conference is difficult. It was simply incredible! I believe the main take-home message is Work together to make great things and a bright future for ourselves and the generations to come.

On Devuan and Debian

As you probably know, I’m all heart and soul into FreeBSD. I simply love it and cannot accept anything (apart from other BSDs) that would remind me of true Unix. However, I’m also quite naive and in my naivety I again decided to look for Unix in GNU/Linux. I pondered over Gentoo, Arch Linux and CRUX, though for various reasons I realized that neither of them is a distribution I could just quickly install and get on with my life (Python coding, hardware tinkering, etc.). Then, I remembered there is Devuan, which I’ve already used some time ago and was quite satisfied with it.

One could say Devuan was founded by Debian developers who went rogue. That’s the common misconception, unfortunately. The truth is a lot less dramatic. There was a disagreement on the default init system in Debian “Jessie” and a lot of experienced Debian developers decided to exert their right to fork. “Jessie” was the first Debian version to use systemd as the init and supervisor suite. I believe it was far too early as an init system requires years to mature. Roughly half of Debian developers shared such opinion. Devuan, like former Stable “Wheezy”, uses sysVinit and tries to adhere to the Unix ideology by utilizing basic Debian utilities for system tasks. As the notion of Taco Bell Programming states, almost everything can be done with just those basic tools.

Much has been said about systemd already. Despite its presumably obvious merits, it is still buggy and the bugs tend to be quite severe. More so, it doesn’t really solve any problems other than the ones it creates. I wouldn’t want to run something as dangerous on my mission critical machines. As simple as that. It has nothing to do with trust and everything to do with perceived software stability.

Devuan, being a spiritual successor of “Wheezy”, free from the Debian reign may now grow in extremely interesting directions. As sysVinit allows the use of additional supervisors, I think a lot can be done with such flexibility (s6 anyone?). Also, it might be prime time to clean up the GNU mess of numerous overlapping tools and remove the ones that are outdated, vulnerable or lack upstream maintenance.