J
jacob navia
Why did you start programming?
Wasn't it for the fun of it?
I am sure you did not start because of the need to apply your software engineering principles...
For me most of the fun was the curiosity of getting a machine do whatever I wanted to. This creative
side, that was so tightly coupled with building powerful yet simple systems.
Powerful, yet simple. It was the opposite of the gargantuan systems of today. No C# just C, a
language that captured the essence of the machine with a few powerful abstractions.
Today, simplicity is looked down upon, forgotten, together with the fun of understanding the machine
and its quirks. Software should be machine independent, language independent, programmer
independent, the dream of software writing software, multiplying the salary of each programmer
into thousands:
PRODUCTIVITY!
There is no time to waste in learning, crafting software from the ground up. There is no time to
polish it, so it is shipped when it barely runs, if at all.
Do not get me wrong. I am not against software engineering, or against trying to increase
productivity. But what I am missing in many programming environments now is the fun.
The C language is seen by many as a thing of the past. Or worst, as all the concentrated errors
done in the past. No generics, no objects no classes, no nothing. Nothing comes pre-cooked,
ready to swallow, ready to use. You have to build it yourself.
For some, this is horrible, for others like me, it is precisely the greatest freedom. There is no
language corset where you have to fit in. You can do whatever you want.
The container library uses C but draws from OO and generic programming. Its objective is to prove
that C can be used in a high level undertaking, and that C remains (precisely because its
simplicity) a good base to build such a library. The thesis of this library is that with a simple
mechanism (the function table) you can build very flexible interfaces, that can be adapted by
anyone to any purpose.
I have posted a few containers already, and I will post later a simple template mechanism that will
allow the library to be generic without being too complex, without outgrowing your mind, without
killing the fun of hacking, programming, letting your mind create new things.
Wasn't it for the fun of it?
I am sure you did not start because of the need to apply your software engineering principles...
For me most of the fun was the curiosity of getting a machine do whatever I wanted to. This creative
side, that was so tightly coupled with building powerful yet simple systems.
Powerful, yet simple. It was the opposite of the gargantuan systems of today. No C# just C, a
language that captured the essence of the machine with a few powerful abstractions.
Today, simplicity is looked down upon, forgotten, together with the fun of understanding the machine
and its quirks. Software should be machine independent, language independent, programmer
independent, the dream of software writing software, multiplying the salary of each programmer
into thousands:
PRODUCTIVITY!
There is no time to waste in learning, crafting software from the ground up. There is no time to
polish it, so it is shipped when it barely runs, if at all.
Do not get me wrong. I am not against software engineering, or against trying to increase
productivity. But what I am missing in many programming environments now is the fun.
The C language is seen by many as a thing of the past. Or worst, as all the concentrated errors
done in the past. No generics, no objects no classes, no nothing. Nothing comes pre-cooked,
ready to swallow, ready to use. You have to build it yourself.
For some, this is horrible, for others like me, it is precisely the greatest freedom. There is no
language corset where you have to fit in. You can do whatever you want.
The container library uses C but draws from OO and generic programming. Its objective is to prove
that C can be used in a high level undertaking, and that C remains (precisely because its
simplicity) a good base to build such a library. The thesis of this library is that with a simple
mechanism (the function table) you can build very flexible interfaces, that can be adapted by
anyone to any purpose.
I have posted a few containers already, and I will post later a simple template mechanism that will
allow the library to be generic without being too complex, without outgrowing your mind, without
killing the fun of hacking, programming, letting your mind create new things.