This is a mobile version, full one is here.

Yegor Bugayenko
23 October 2016

Software Quality Award, 2017

This is the third year of the Software Quality Award. The prize is still the same—$4,096. The rules are still the same. Read on. Previous years are here: 2015, 2016.

The rules:

Each project must be:

The best project is selected using this criteria.

What doesn't matter:

By the way, if you want to sponsor this award and increase the bonus, email me.


These 28 projects submitted so far (in order of submission):


[15 Sep 2017] I invited six people to help me review the projects. Their names are:

[15 Oct 2017] This is the summary of everything they sent me: award-2017.txt. I will pick the winner in the next few days, stay tuned!

[21 Oct 2017] My short list includes these six projects (in random order): php-ai/php-ml, vavr-io/vavr, zetaops/ulakbus, mafagafogigante/dungeon, ribtoks/xpiks, javascript-obfuscator/javascript-obfuscator. Tomorrow (hopefully) I will decide how to split $4096.

[23 Oct 2017] These are my own observations per project from the short list. I will only mention negative things, since all projects are pretty good, no need to say how good they are. I listed problems in order of importance (most critical on top).

php-ai/php-ml (9.8K LoC PHP, 29K HoC):

vavr-io/vavr (70K LoC Java, 834K HoC):

zetaops/ulakbus (25K LoC Python, 707K HoC):

mafagafogigante/dungeon (14K LoC Java, 88K HoC):

ribtoks/xpiks (180K+ LoC C/C++, 739K HoC):

javascript-obfuscator/javascript-obfuscator (72K LoC JS/TS, 400K HoC):

My overall impression this year is that I'm getting much less garbage. There are fewer projects submitted, but the quality of them is much higher than in the previous two years. I'm glad to see this tendency. It means to me that I'm doing the right thing.

This time I paid more attention to the elegance of OOP and maintainability of the code base. Key factors for the maintainability were:

For the elegance of OOP, as usual, I paid attention to the absence of anti-patterns, including NULL, getters, setters, static, mutability, etc.

There are two winners this year: php-ai/php-ml and mafagafogigante/dungeon. But I don't really like the code I found in these repositories. It's obviously better than everybody else, but not perfect at all.

That's why, here is my decision: I will give just $1,024 to each winner, instead of $2,048.

Congratulations to @itcraftsmanpl for php-ml ($1,024) and to @mafagafogigante for dungeon ($1,024).

Here are your badges:

 

Put this code into GitHub README (replace ??? with your GitHub name in the URL):

<a href="http://www.yegor256.com/2016/10/23/award-2017.html">
  <img src="http://www.yegor256.com/images/award/2017/winner-???.png"
  style="width:203px;height:45px;"/></a>

Thanks to everybody for your participation! See you next year.