Hello Mac (again)

Hello Mac (again)

Having the perfect machine for development and also for stuff I’m doing besides development (Web browsing, online banking, Netflix, …) is always a thing I strive for. As most of you will do.
A special thing about the “dev machine” (and also about my mobile phone) is something that is very hard to explain, but I will try nevertheless.

The social factor

I always try to have a setup that is achievable by “normal” people. Being gifted with a hobby that I’m quite good at that I can do as a full time job and is also payed very well I can afford almost any setup (dev machine, mobile phone, infrastructure) that I want to have.
But I always try to find the best setup that is not dependent on having much money to spare still considering things that are important to me like privacy and robustness.

Mobile phone

My first contact with mobile phones was the iPhone of a friend of mine. At that time that iPhone was ridiculously priced compared to the feature phones available at that time but also compared to the Windows CE devices I had. At that time the main reason to not have an iPhone was simple: money. I simply could not afford having one.
Then the Android devices popped up. My first Smartphone was a Samsung Galaxy S. Me and my wife both bought one by switching the mobile contract we had.
From that moment on I started looking into App development for Android as I really liked that idea to have creations of mine with me all the time (and I still do ;))
I kept searching for the best compromise between cost, privacy concerns and features by switching phones regularly. Often 4 times a year.
Having an iPhone was not really an option for me. Its limitations and not being able to do anything you want was one aspect but the much more important aspect for me has always been: This is something for the rich. I know plenty of people that simply couldn’t afford an iPhone. Regardless what they are doing.
So I stayed with Android over the years always knowing that this is a compromise on many levels:

  • Support - Android devices get old very fast. Manufacturers loose interest even in top smartphones quite fast. If you get 3 years security updates you were lucky
  • Privacy - Of course this is a very loaded topic. But even if not perfect, at least Apple is trying to preserve as much privacy as it can. Of course this doesn’t prevent users from installing Facebook, WhatsApp and Instagram - This is another story. On Googles side of the story privacy is only a topic as long it affects the relationship of their users with other people. Google wants and needs all your data in order to exist.

The notebooks

A similar thing goes for the MacBooks out there. I had a MacBook for roughly a year because it was almost the same price as a comparable windows notebook. Then I wanted to upgrade the specs (it had 8 GB of RAM and 256 GB of storage) and the price of that machines raised into areas that were no longer something that those mentioned people can afford. So I decided to switch back to Windows / Linux.
Over the years I often switched OS and devices. Gave Linux a try more than a couple of times always finding out that there is something not working (battery life of notebooks is one thing, getting that beamer to work another, the list continues).
Then Microsoft made that big step and was opening. It was possible to run Linux applications in Windows. They integrated Android (at least a bit) and did (and still do) so much work for the community. So I switched back to Windows.


PersonalDev Setup

Hello internet

Hello Internet (again)

This is my nth attempt to start something like a blog.
The last attempts all ended with me not writing anything. This time I try to force myself to do so every week.

Regarding topics here I think you can expect mainly software development related stuff. Embedded SW development (If this can be called like that nowadays), .NET stuff, Android development and whatever is engaging me currently.

My name is Michael Lamers (also known as Devmil in the internets) and I work for B/S/H/, a Bosch company creating household appliances of different brands. The most known ones are Bosch, Siemens, Neff, Thermador and Gaggenau. My job is defining the SW architecture of the UI software in those appliances. I also work in the UI Framework team providing all those UI projects a basis to create their UI software on.
As a technology stack we use C++ and Qt but even after 10 years of doing C++ I still don’t like that language. It is messy, error prone and leads to very long development cycles (change - build - test - repeat takes really long)
So a hobby of mine is to look out for alternatives that we might be able to use at work.

We recently moved to Linux as operating system which opened a huge door for alternative technology stacks.
At our current stage we are still very limited in hardware resources so currently most of the alternatives have no chance because of the size of the compiled binary + the framework needed to run it.

But I’m very confident that there will be a time for us where we will have enough resources so that a shift will be technologically possible. The next step then will be to convince all the experienced C++ developers to switch to something that they don’t know and where they have to start at the beginning.
Being open to such a change is a personality thing but also gets less when people get more old. I think the task of convincing the devs that a new language might bring a bunch of advantages and convincing the management that the risk of switching is worth to be taken will be much more challenging than getting the bits to run on our hardware.

In the context of looking at alternatives I already pushed a project called Qml.Net. The idea is: use .Net Core on our hardware and use Qt (as currently) as UI layer. Fast business logic development combined with a performant UI layer. The problem is size. ~20 MB of Framework gets added to the application. Too much for our lowest level hardware.

Interesting languages I want to look at are:

  • Go
  • Python
  • Kotlin Native