DEV Community

Philipp Trommler
Philipp Trommler

Posted on • Originally published at blog.philipp-trommler.me on

My Opinion on the "Blauer Engel" for Software

For some time now, a group of experts has been working on evaluation criteria for the "Blauer Engel" seal for software. As usual with this award, the goal is to reward low resource consumption. So far, so reasonable. But...

Background: The seal called "Blauer Engel" is a more or less prominent German governmental award given to sustainable products and services after a voluntary application by the manufacturer for fullfilling product-category specific standards.

The German Federal Ministry for the Environment, Nature Conservation and Nuclear Safety (sic!) wants to award its "Blauer Engel" environmental seal to software in the future. To receive this more or less coveted award, the software must meet minimum energy efficiency requirements in previously defined and standardized usage scenarios (including an idle scenario). In addition, advertising is taboo and the exchange of data across open interfaces must be possible. The final decisive point for the award of the seal is the runnability of the software on a five-year old, so-called "reference system".

In principle, it is of course to be welcomed that the ever more widespread, often senseless growth of software is to be counteracted at least a little. In my opinion, however, the Commission misses its target open-eyed.

Scope of Comparison

First of all, for the award of the label, only software from the same segment is compared. What at first sight sounds like a sensible restriction is already a critical hit for me, because it will probably make little difference to resource consumption (both in terms of energy consumption and hardware obsolescence resulting from software growth) whether Microsoft Word or LibreOffice is used (although I actually fear that the open source variant will do even worse here – thanks to Java). The much more fundamental question that should be asked here is: Does it even have to be a full-fledged word processing program?

Government employees all over Germany (and let's face it, they are the ones most likely to be affected by the seal in some form) use huge office suites every day to create the simplest documents (letters, forms, etc.). These almost exclusively use strict templates and often consist of text modules. A specialized program using a Markdown renderer, LaTeX or similar in the background would probably even run on my router, assuming the appropriate GUI (TUI). In other words, every desktop computer sold in this millennium should be able to handle this workload with customized software. The typical office suite, however, is not custom software, but the exact opposite: a generalist. So it helps the environment little that Microsoft Office is 1 % more energy efficient than LibreOffice.

Operating systems

This thought also leads directly to the next point of criticism of the criteria for the "Blauer Engel": Operating systems are not evaluated, neither directly nor indirectly. What does that mean? First of all, operating systems are not awarded with the "Blauer Engel" (direct consideration), because there are simply too few of them to allow a meaningful evaluation. I can agree with that.

But the indirect consideration, i.e. the evaluation of the required operating system when looking at an application, is essential for me, still it is also left out by the jury. The operating system is a necessary prerequisite for the program running on it. Let's take the fictitious word processing program from the previous section: What use is it to me, if I programmed a highly specialized and efficient program for an operating system that was up-to-date at the beginning of the 2000s, if this operating system has been changed incompatibly since then or is not usable on newer hardware (which I had to buy, for example, due to failures)? What good is the efficiency of that same application if the original operating system is still up-to-date, but requires hardware upgrades at regular intervals due to its constantly increasing resource requirements? It is also important to keep in mind that the choice of a specific operating system necessarily influences the choice of all other applications.

For these reasons, in my opinion, the required operating system MUST be part of the evaluation criteria for an application, unless it has been programmed to be platform-independent – and that does not necessarily mean in Java! Otherwise, the following applies: Only if the underlying operating system meets the same requirements as the evaluated application, the seal can be awarded.

Reference System

The assessment standard of the five-year-old "reference system" is particularly random to me. Of course, the underlying idea is clear: the software should be so economical that it does not lead to hardware obsolescence even after five years. But the implementation here misses its goal in several ways:

  1. The requirement is more than vague: What exactly does this "reference system" look like? Does it correspond to the middle class of the time? What exactly is middle class (measured in terms of sales, power consumption, price, ...)?
  2. Never has a look into the past been a guarantee for the future. Rules known in computer science, such as Moore's Law, also show that linearity regarding computers is not too far off. Runnability on a five-year-old reference system therefore says next to nothing about runnability in five years.
  3. Ensuring runnability on a five-year-old system means either writing special code for the test (Hello, Volkswagen!) or having to work without current achievements.

Especially the last point is interesting. Assuming that the programmer does not cheat by writing special code for the test, he has to work without current achievements in order to pass the test. This means, on the one hand, that he cannot use any libraries or the like that were not available on a "reference system" from five years ago, unless he provides them himself. This leads to unnecessarily large, statically linked applications and bundles, as is common under Windows. One and the same code is present multiple times on every PC, because each application provides its own dependencies to be sure, which wastes disk space; not very efficient. On the other hand, the developer also has no access to new hardware features, which often handle typical workloads not only faster but also much more efficiently than a pure software solution.

In summary, the evaluation using this "reference system" leads to the fact that particularly efficient programming is penalized. If I were to develop a video decoder today that works with available libraries on a current Linux system and uses hardware acceleration to decode the imaginary new H285 data stream, I could not get a "Blauer Engel" no matter how efficient my program is.

Embedded Devices

The same problem also affects almost all embedded devices, or – better – the software running on them, as it is often much more hardware-specific than desktop programs. However, it is precisely this product group (in addition to all the IoT, I also include smartphones in it, for example) that is "shining" with strong growth on the one hand, but also with a particularly rapid obsolescence on the other. Accordingly, it is also the product group for which special attention should be paid to sustainability. But the current draft of the "Blauer Engel" guidelines for software simply cannot be applied to embedded devices.

Of course, the problem is well known, and it is not for nothing that the "Blauer Engel" jury knows standards for routers, set-top boxes and mobile phones, but these are far too specific. Why not generalize these rules and make them available for all embedded devices? The same basic things are always important: battery life, repair and recycling friendliness and update supply. And after the last update has been shipped, the only question that remains is whether and how easily the customer can put his own software on the hardware. It would then be easy to develop extensions to this for special product categories – for example, for the maximum radio wave exposure from mobile phones.

Conclusion

I am not as much at war with the "Blauer Engel" as it may appear from the criticism that has been made. In principle, I am a proponent of an independent, governmental seal that assesses the environmental friendliness of products and services. Such a label is probably more important today than ever before.

Unfortunately, the "Blauer Engel" lacks public awareness. Apart from governmental institutions, almost no one cares about the label, which means that very few manufacturers undergo the voluntary certification. A vicious circle. I'm also afraid that even with the extension to software, not much will change, especially not with this rather moderate design. The basic assumption that useless growth and unfounded, incompatible changes lead to hardware obsolescence is correct, but my perception is that these are problems of certain operating systems rather than application programs. However, the former are explicitly excluded from the assessment.

What is much more serious in my opinion, however, is that embedded devices, which are responsible for an ever-increasing share of hardware sales (and disposal!) today, are not only not brought into focus, but are completely excluded by the choice of evaluation criteria. Why do people prefer to ask the question whether Microsoft Office or LibreOffice is more efficient and which of the two runs on the mid-range computer from five years ago? For me this is difficult to understand. I can't remember the last time I heard someone talk about buying a new computer because their desktop program no longer runs smoothly. But I do remember people telling me about their new smartphones all the time.

The only thing I can fully welcome is the ban of advertising and the necessary support of open data exchange formats. I invite the jury to start all over again based on these two points.

Top comments (2)

 
ferruck profile image
Philipp Trommler

I guess the possibility to reason about the energy consumption of a program while coding is an interesting practical approach.

Indeed, I guess it's quite challenging for the programmer, though. Nevertheless, a really interesting topic and read, thanks!

Collapse
 
ferruck profile image
Philipp Trommler

Hi!

Nice to hear that efficiency is on your agenda. Alas, this is not the regular case anymore.

You're right that achieving efficiency is often a complex task, but the biggest improvements can be made quite easily just as often, in my opinion. It mostly boils down to using the right environment and waiting efficiently. 😅

I'm looking forward to reading about some of your findings in the near future!