I would say that lines of code is of relative unimportance. Decades ago, when
computers were slow compared to today, I wrote some software that was
heavily table driven. This increased lines of code immensely compared to
algorithmic computations, but it was blindingly fast, which was one of my
primary objectives. It was also conceptually simple and therefore easy to
maintain.
I believe that the most important aspect of software is summed up by what I
would tell the programmers who worked for me: “I don’t care how difficult it is
for you to write the code, I care about how easy it is for the customers to
use.”
Beyond that, I think the most important characteristics of good software are,
in no rigorous order,
Algorithmically correct: it does what it’s supposed to do and nothing else. It
is essentially bug free in that unusual circumstances, such as unexpected
input will not cause it to do anything insane.
Simplicity: it should be easy to maintain.
Flexibility: it should be easy to add new features or modify behavior.
If it involves a GUI, it should be intuitive and pleasant to look at (which
IMHO kiss_sdl is not - the graphics are too primitive).
If it doesn’t have a gui, it should be intuitive and easy to use.
And so on… I’m not trying to write a treatise on good software design.
Lines of code is near the bottom of the list.
I did take a very brief look at your code, with a view to adapting it to SDL
1.2. I have a lot of code using 1.2 and rather than rewrite it for 2.0, I
think it would be easier to just rewrite it in Java, which also takes care of
porting issues - specifically that Apple intentionally makes it difficult for 3rd
party developers to compile code for Macs.
I admit I didn’t have time to look at your code in more depth, but at first
glance it didn’t seem to be all that easy to modify it for SDL 1.2 (and then
there’s the graphics issue).
Nevertheless, I would encourage you to continue working on kiss_sdl, but don’t
get hung up on lines of code. Keep It Simple is not the same as keep it short.
JeffOn Sunday 11 September 2016 13:48:12 actsl wrote:
Right but, the complexity of the code cannot be completely hidden, and
attempt to do so may decrease the freedom of the user to do what the user
wants to do, or what may be necessary to do in some case.
But as i said, this is only one aspect of comparing the libraries, i agree
that it no way says everything about the code or the library, other
features have to be considered also to meaningfully compare. Yet the
number of lines of code is one important aspect in comparing the codes.