Friday, February 26, 2016

Computer programming is not in the right track



Every time I see a computer programmer asking for advice at StackOverflow because he/she is writing a login routine or something of this kind, I feel sad.

Yes, sad because I've been programming computers since 1985, 31 years now, and I'm still seeing people doing the same old things, as if all this stuff hadn't been done thousands, millions of times by other programmers.

It is true that now things are a bit better than when I started. Things like Ruby gems allow people to reuse code in efficient ways.

But then, why people still do the same old stuff?

According to some, it is necessary, because beginners need to learn all this stuff. But I don't fully agree with this theory. Only a partial agreement.

They need to learn, of course. And doing things is the best way to learn. But when it comes to practical matters, they don't need to learn doing all this stuff. They need to learn, yes, but only the principles of these elementary and repetitive tasks. Not the repetitive coding to make the same tasks all over again. More than that, they need to learn how to use what others did before. How to start from the point others stopped.

We need to create a perfect development environment, where this kind of stuff is available, ready and tested and well documented, for those who need. We must provide conditions for programmers to focus on things really valuable.

Ruby gems are a good beginning, but we still need to have the same provided to other languages as well. Programmers must be free from repetitive tasks if we really want programming to reach the peaks we believe it may.

Programmers should not be forced to repeat things all over the time, forced to reinvent the wheel. Our minds would be much better used if we could focus on the complexity of the systems we deal with nowadays.

Where is all that stuff about Artificial Intelligence we were learning in the middle of the 80's? Why haven't it advanced as expected? And we started talking about this again, about Machine Learning, when they coined the expression "Big Data". But where are the real advances? I tell you where...

These advances, these technologies, are restricted to Google-sized companies. (Is there really something Google-sized but for Google itself? I doubt it!) While the common programmer is still imprisoned by login procedures, queries, loops and other small things.

We need to be free of all this!

Suggestions?