Code Generators And Automatic Gear Cars

The other day at work, I don’t know what re-opened the whole code generation tools discussion.

Personally, I have a strong conviction that no code generator, no matter how advanced or good it is, can match the quality of code well written by a good developer, full stop.
I’ve believed in that for years and years, and will believe in it for years to come. And I’m not talking theoretically, I’ve been in the field long enough to see the results of different code generation tools, varying from the disastrous to the quite good and pretty clean.

But the thing is that it’s a code generator after all, so it’s pretty much generic, which could be good enough if you’re just working on some simple form that won’t do much more than insert some contact info into a database or something of the sorts, but once you get a bit deeper, its generic solutions just aren’t enough, you need someone good to work out the logic and to optimize the code, …etc etc etc.

One thing to keep in mind though is the importance of having a good developer who can write good code.

Anyway, this morning while driving to work, the issue popped up in my head again, with a rather interesting analogy that I think really explains the difference between generated code and human written code.
The analogy is with cars; human written code is pretty much a stick shift car, and generated code is an automatic.

If you were to enter a race, you’d actually have more control over the car with a stick shift, over when you change gears, how much power it gives you and when, thereby giving you an edge that would help you win the race.
Automatic gear doesn’t give you all that flexibility, it just lets you drive, with different levels of control, according to how advanced the automatic gear is, but never equaling that of a manual gear.

The driver and how good he is is also a factor here, because it takes a good one to know how to control a car well and get the most out of it to win the race.

To me, this analogy perfectly illustrates the difference between developer-written code and generated code, and shows why the first is superior to the latter; it all lies in the results: quality, flexibility, optimization and robustness.

Between Knowing What To Do And Doing It

What is it that stands between us knowing what we’re supposed to do and actually doing it?

In many cases in our everyday lives, whether personal or professional, we find ourselves in a situation where we know what we’re supposed to do to reach a certain goal, to become better, to move forward, but still for some unknown reason we just don’t do it.

We know what is needed to finish off this projet or that… to become better husbands/wives/fathers/children… to move forward in our careers… to ameliorate our incomes… to live happier… to do whatever it is we want to do.

But it stops there, we know, yet we don’t actually take the steps to do.

Why?
Is it just plain old procrastination at work?
But procrastination is the act of putting off things for the future, delaying them, and it’s mainly a psychological mechanism for coping with the anxiety associated with starting or completing any task or decision.
So even though it may apply to a bunch of the projects/actions we have in mind, I don’t think it covers them all.

When you really want to do a certain something like become a better husband/wife/father/child for example; there you’ve got all the good will to do it, you know it’s something that will make you happy in the end, the outcome is positive no matter what, and you know what you have to do; but you’re just not doing it.

Maybe it boils down to something like the difference between theory and practice. You know or learn a lot of things in theory, but you don’t always go on and practice them.
Are we taking some of our decisions in theory but lacking the courage, will or whatever else it is to carry them out in practice?

I found a simple quote by a certain Dr. Robert Anthony that goes as follows: “It is not enough to know what to do, you must do what you know.”
And even though that is clear, and everyone would agree on it, a lot of us are not applying that simple, logical rule.

Unlike procrastination where we can actually come up with sets of different absurd reasons why we’re putting off something, in these cases we ask ourselves and find no answer. We just don’t know why we’re not doing what we have to do; there are no reasons.
So, what is it that stands between us knowing what we’re supposed to do and actually doing it?

My Name Is Earl, Karma & Us

A show I’ve been enjoying a lot recently is NBC’s “My Name Is Earl“.

It’s a light comedy show that takes the main character’s interesting simplistic definition of Karma: “You do good things, and good things happen to you. You do bad things, and bad things happen to you.”, and makes a really cool show out of it.

In order to turn his life around, Earl makes a list of all the bad things he did in his life to try and set them right in order to get on Karma’s good side. A bunch of funny situations and stories follow on from that point on.

Other than it being a really fun and light show to end a full work day with, I also like its simplistic approach to things, I myself am a fan of breaking things down to a simple straight-forward formula; I don’t like all the complicated weaving of words to make something sound sophisticated and well thought out, a great idea/conception is a great one no matter how you say it, in fact it’s even greater if it’s so simple to explain.

Anyway, today while out doing our shopping, a question occurred to me, inspired from the tv show: If I created a list of bad things I did in the past and that I had to set right, how long would the list be? What would be in it?

Fortunately for me, I’ve been a pretty good person in my past, and I still try to be one in my present, but that only means that my list isn’t such a long one, still it does exist. Maybe the things on it aren’t that bad, including stuff like not attending a friend’s wedding when I could, or not calling someone I should have, or other stuff of that caliber; but still if it’s there and I can set things straight in one way or another, maybe I should at least try to.

What do you think? Have you ever remembered some of the things you’re not so proud of from your past and thought of correcting them? Or do you think that what’s buried in the past should remain that way? Do you believe in karma? Do you believe that what goes around comes around?

The Simple Life

The simple life…

“The best things in life are nearest: Breath in your nostrils, light in your eyes, flowers at your feet, duties at your hand, the path of right just before you. Then do not grasp at the stars, but do life’s plain, common work as it comes, certain that daily duties and daily bread are the sweetest things in life.”

~ Robert Louis Stevenson

So many people dream of a simple life, or at least that’s what they say. In fact I haven’t met a person yet who doesn’t seem to have this sense of nostalgia for the good old days when life was simple and beautiful, even if they never actually witnessed those days.

But in most people’s cases it’s just talk… They finish the passionate discussion and then they go back to their ever-so-complicated lives, doing their inexplicable detailed jobs, piling up ever more gadgets that are supposed to simplify their lives by complicating them even more, building more stress upon stress from their fast paced lives.

If we just think about it a little bit, we’d see that if a person really wanted to, a switch to a really simple life would be pretty easy. Moving to some place out of the city, and nearer to the country-side, brings a lot of advantages with it: cheaper property prices/rent, cleaner air, calmer environs, beautiful relaxing scenery…etc. And it’s pretty easy to find a good place and move there.
Now for work, it depends what a person is more inclined to do, and what they enjoy the most, it could be fishing, farming, carpentry, or any other activity; they could open up a small shop/atelier for their work in their garage or rent a small place in the town center.
I could go on with more details, but my point is that it’s possible and easy to make such a move if a person really wanted to.

But why don’t we see much people making such moves?
Is it that all the talk about how they would love a simple life and how life was much more beautiful in the old days is nothing but just that: talk?
Or is it that they’ve gotten too used to their hectic everyday lifestyles they don’t think they’ll be able to live a simpler life away from all the rotating bits and pieces around them?
Is it that they feel like the simple life is too hard for them and that they wouldn’t be able to make a living leading a simple life and going back to the basics?
Is it that they have higher standards of living in mind now that living in the country-side wouldn’t give them?

I think it’s a combination of all the above and more, with the complex paradoxal human psyche playing a role in it, having contradictory inclinations towards both sides of the spectrum: the simple basic life and the hectic complicated counterpart; wanting one without having to give up on the other.

I too am guilty of the same contradiction; I believe that simple is beautiful, and that it’s the simpler, more basic things in life that really count and make a life worth living, but I’m still too involved with life in the city and all that revolves around it to disengage and move away. Eventually, one day, I hope I will get to take such a step, but I like to believe that for the time being I still have some personally set objectives to realize in the hectic sphere we live in, and that once I’m done with them, I’ll be free to disappear into a calm relaxed life away from all the hustle and bustle of the city.

How To Provoke Thought

I was just chatting with a friend of mine on Gtalk, when they asked me to write another one of my posts that make a person think.

So me being in the mood, that got me thinking, what is it that makes people think? In other words, how do you provoke thought?

I mean, for me and for a lot of other people, when you write something, you post a photograph you’ve taken, you quote somebody, …etc; your absolute goal is mostly to get people to think about a certain something, and maybe even eventually get to a certain destination you had in mind.
Sometimes you help guide them into the thought you’re trying to pass on and that you want them to carry on with, and sometimes you leave it open for them to interpret and think as they wish.

But generally speaking, what is it that triggers that thinking process for the person that is consuming what you’ve just published?
In short, are there any universally applicable guidelines to provoke thought?

Here are some of my thoughts and ideas on ways thought can be provoked:

– Get to know the crowd you’re talking to and pick a topic they’re already pretty interested in.
– Present the issue in a way that exposes all the important and necessary points but still leaves a number of open questions for the people to ponder on.
– Cast doubt on a subject that most people already take for granted, making them go back and reconsider what they thought they already knew.
– Show how important the point is and how they’re directly touched and involved in it.
– Don’t make it feel like you’re just handing out hard information, but rather like initial pointers for a discussion.
– One of the easier ways is to somehow get into a debate that touches upon existentialism.
– One of the harder ways is to come up with a different point of view on a subject that’s rarely discussed and expose it for people to ponder.
– Ask questions. There’s nothing easier to make someone think than actually asking them to.

I’m sure there are many other ways and approaches that I haven’t mentionned here. Please do feel free to share your thoughts and ideas, what you think about all this, and what makes you think.

Knowledge Building: The Internet vs. Television

Sometime ago, I remember a friend and I were talking about the internet and television as sources of information, which one is more useful, which one gives us more knowledge and generally comparing the two mediums.

At the end of the discussion we reached the conclusion that the main difference between the internet and TV is that one, the internet, is a “Pull” medium, while the other, TV, is a “Push” one.

Online, you generally know what you’re looking for or you have a little idea about it, so you search for it and go to places where you can find it, something you can do pretty easily; which means that it’s you who is pulling the information, seeking it, finding it and using it.

As for television, you don’t have much control over what’s on, you get a series for example, then the news, then some documentary, then some music, …etc. Information is pushed your way, some of it you were looking for, some other stuff you weren’t necessarily seeking but that gains your interest anyway, and other stuff you just ignore.

Even though sometimes the dividing line isn’t as clear, if we try to look a little closer, we can more or less find it in most cases.

But what does that mean? Which is more useful?
A direct thought could be that maybe the internet is better suited for research, diving deeper into what we already know a bit about and getting the information we need; while on the other hand, TV is a better source for general knowledge and initiating us to new kinds of information, with all the different bits and pieces it pushes at us, given we’re open to all these different things.

And so, these two mediums more or less compliment each other in our knowledge-building process, filling up each other’s gaps.

For example, many times, I’d get a bit of information on TV that I didn’t know about before, that I might have never gotten otherwise, something I would find really interesting, and that I would go on to research in greater detail online.

What’s your opinion on all this?