Because of Philosophy is closer to Mathematics and pure Science than one
might think I am writing this to you. Logic is something great that has
take me fifteen years to learn and care, and something that - I guess -
makes me able to give seminars and be in the position to share my
knowledge and experience in the field of education in web software
engineering.
A few weeks ago, I failed. I failed - miserably - during the course of a lecture I was giving at a corporate company, while explaining an example of software I codedfor a tutorial example.
Suddenly, a question from a student ( An excellent programmer, I have to say ): Master, How could we calculate the value of the result, varying the query of the first select entity you have exposed?
My mind went blank. I was unable to give a satisfactory answer. Inside me, I thought, one can not make that calculation. It is impossible in a logical way, I though. But they stared at me like if I was, not the authority , but an impostor.
I mumbled, and because of my failure, disgracefully, I received a strong unfavorable comment in the posterior evaluation of the course.
To excuse myself, remembered introducing myself the audience saying that my scholastic training was not as an Engineer, but in the realm of Philosophy. Of Logic, to be more precise.
But ,
alas!, after three hours of a master class.. My mind was blank. I felt like a dumb, unable to give a satisfactory answer to a simple question an alumni asked to the audience.
I give my sincere excuses and respect to the audience, and I came back home tangled. Then, at home, I tought about the problem. The problem that algorithm in that software I was asked for had to solve. And it was as simple as a Semaphore.
Three weeks later, this is, tonight, a possible solution to my inaptitude came in the form of an article from Wikipedia.This says the following:
The signal control system of a city.
The state of each of the lights (green, red or amber) is the facts of the real world. The program itself consists of a few common-sense rules: certain lights can not remain simultaneously in green, a semaphore can only move from green to amber and amber to red, etc.. The hypothesis is the state in which each should be traffic lights at the next instant of time.
This is an example unsolvable using traditional programming, as the logic underlying the behavior of traffic lights on a whole is masked by simple imperative commands such as "change color of a given light."
Educated, as I was, in the realms of Logic, the above might be a correct answer to:
How the Hell I was unable to give the correct explanation to a question proposed by the alumni?.
Besides considering some sociological
motifs or reasons. Besides my explanation and consideration given to the audience. Besides considering it is not my role, inside a corporate hierarchy, to think and act like a programmer.
Besides all of those human considerations, what I am sure is that the classical problem given to solve to scholars and apprentices of software engineering, this is,
the semaphore problem, has not a logical solution.
My mind has been structured , through education and labour, to understand and clarify logical problems. For this, when three weeks ago I faced a non-logical question, my mind went blank.
Tonight , after reading that article from
Wikipedia. I smiled again, and my soul was bright.