Preface to second edition
This text is around 4-5 years old. My old blog vanished and this is one of the posts that were on it. I am putting it back as it got very good critic review. Hack, somebody even translated it to some language so obscure that even Google can’t translate (try it for yourself, I think it is Burmese). Although that old, much of the things still holds true and when I read it today, I think that not has changed much.
If programming languages were kids
It’s summer. Day is sunny and all the kids went out to play. They all gathered at playground enjoying the beautiful day and we’re now going to describe some of them.
First kid that catches eye is one tall boy, larger then all the other kids and obviously older then all of them. His name is C. He’s casually dressed and is always smiling cheerfully. All the other smaller kids are swirling around him and he obviously enjoys playing with them. He knows he is the coolest kid there and that he got respect from all of them, but he is not presumptuous about it. He’s fast, his moves are sharp and intelligent and he likes to help other kids, knowing that they are helpless without him. Look, he just helped that kid Python to climb that tree. Python could climb that tree himself, but it would take him forever, and he asked C for help. C, smiling as always, immediately picked him up and put him on branch. He really is like older brother for all of them.
Speaking of brothers, C really have one younger brother. His name is C++. Actually, they are stepbrothers. C’s fathers had thicker beards then C++’s father, and C++’s father have less hair. You could see these two kids look alike, but C++ is little smaller and younger. C++’s father thought he could give C a little brother that will be better at handling objects at playground, but that will still looks similar to C, and although he succeeded, other kids still prefer to play with C. He’s also a bit fat for a child of that age and little slower then his older brother, but granted – he’s better at handling various objects. Reason for it’s slowness is maybe because he carries with him a lot of equipment. He got with himself a little shovel, rake and little plastic bin, and man, he even have a Swiss knife. Other kids looks in awe at C++’s tools and possibilities with it, but they also heard from elders that those tools he’s carrying are just burden and that it takes a skilled person to use all those tools properly and wisely, and that you may even cut yourself if you try to use them without any training, so that’s why they mostly like to play with his older brother.
We already mentioned Python kid. He’s one of the kids that often asks C to help him. He is fast and agile, but alas, there are some times when only C can help. He’s one small kid with shaggy hair and he enjoys doing things both nice and quick. He never stops, he’s restless, his trousers are scraped on knees from constant running, jumping and falling. In one word, he’s very dynamic. Because of his dynamic nature, he often breaks things, but he can also very quickly put them together because he always carries duct tape with him. There is one more thing he always carries with him. If you ask him to do something, he’ll get to work immediately, no matter how hard that is and when the job is finished, he likes to take out couple of batteries from his pocket and to shout childishly ”batteries included!”.
Another kid similar to Python is Ruby. They are both very similar, but interestingly, they like to compete. If one of them does something, other kid will try to do the same, but quicker and nicer, showing that it’s better. They are even dressed similar, except Ruby likes to wear red. When they have to do something in parallel and Python is faster then Ruby, he likes to say that Ruby’s red shirt is in fact woven from green threads. If, on the other hand, Ruby wins, he can then jump all day around Python making fun of him by shouting “Global Interpreter Lock!”. Ruby’s dad is from Japan and he really likes his kid. He’s so protective, and sometimes he worries so much about security of his child, that his child can’t develop normally because of him. C is also like older brother to Ruby and helps him a lot when he’s stuck.
PHP is one of the weirdest kids out there. He’s there, loves C, but rarely hangs with him or asks for help, mostly because he never needs it. He’s smallest, but also one of the fastest, most alive and most popular kids out there. Python and Ruby want to be as popular and fast as he is, when they grow up. Also, PHP doesn’t respect anyone, he is kind of rebel and has his own ways. One time, for example, kids wanted to build sand castle. They all gathered and started to talk how to do it. They mentioned “frameworks”, “scalability”, “paradigms”, “design patterns” and all those other stuff kids talk when they build a sand castles, and suddenly, in the middle of talk, they turned and saw that PHP already built his castle. He just said “Architecture – who needs that” and built it. It might not last long and you can’t build new floor on top of it, but ironically, his castle was better and more stable then any of the other castles.
Of course, not all the kids likes C and playing with him. There is this kid called Java. Although he is dependent of C, he think he’s better then him and doesn’t like to ask him for any help. Yes, he is respecting him, but thinks he can do everything on his own. He doesn’t like to play with other children and is very introvert. This is, because when he was younger, he was extremely fat and slow, and other kids always made fun of him. He is not accepted since then. All the kids remember when once one long bearded man, dressed like a hippie calling himself RMS, came to them one day and talked to them that they should avoid Java because he is not open to other kids and speaking on and on about trap they will fall into if they hang out with Java. This made Java grow inferiority complex. Inferiority complex soon developed into superiority complex and that explains his behavior a lot. Since then, Java tried hard to overcome that obesity problem he had and although he’s slim now, scars from bullying and wrinkled skin are still visible. Even today, he tries to be more open, but like it’s all in vain. He doesn’t even want to hear about the other kids, he created his own tools, his own toys that are not compatible with others kids toys, even his own part of the playground he calls open and accessible for everyone, and tries to lures other kids to join him, but other kids know that, once you enter his part of the playground, there is no returning back. Because of lack of other kids’ company, he artificially created his own kids from his special DNK called JVM and now plays with them.
There is one other kid who also thinks he’s too good to hang with C. His name is C#. He is just an ordinary kid, but he thinks that somehow, he is better then other kids. He wears corporate suit with pink tie and always keep his head high. He doesn’t speak with other children – they are all stupid and immature for him. Always surrounded with his fathers, who also wear corporate suits and forbid him to play with other kids. He is very spoiled because he’s very rich and his fathers buy him everything he wants. His suit is always clean because he really doesn’t want to play very much. If, for example, he needs to climb a tree, he just calls one of his dads and order him to buy him a ladder. Similar like Java, he has all the tools built for him by his fathers as people from community rarely donate any of the tools for him. Other kids and other kid’s fathers despise him because of his attitude and don’t want to have anything with him. Only ones that adores him very, very much are some other elders that also have corporate suits with pink ties, because they like that he is always safe and secure with his fathers.
Oh, I almost forgot one other kid. His name is Visual Basic. Unfortunately, he is retarded. He just sits all day long by the sandbox, with his head low, drooling in sand and hitting himself in head with his hand. Poor kid.