My little idea is that the idea of “imprinting” in psychology can simply as simply be utilized to programming: A lot as a child goose decides that the primary shifting life-form it encounters is its mother or father, embryonic programmers kind ineradicable attachments to the patterns and quiddities of their first formative language.
For many individuals, that language is Ruby. It’s typically credited with making programming “click on”; imprintees converse of it with a sure indebtedness and affection. I get that. I wrote my first “Hi there world” in an terrible factor referred to as Java, however programming solely started to really feel intuitive after I realized JavaScript (I do know, I do know) and OCaml—each of which essentially formed my tastes.
I arrived considerably late to Ruby. It wasn’t till my fourth job that I discovered myself on a crew that primarily used it. By then, I’d heard sufficient paeans to its class that I used to be stuffed with anticipation, able to be charmed, to expertise the sort of skilled satori its adherents described. My dislike for it was rapid.
To reach at a language late is to see it with out the forgiving haze of sentimentality that comes with imprinting—the fond willingness to miss a flaw as a quirk. What I noticed wasn’t a bejeweled instrument however a poor little factor that hadn’t fairly gotten the information that the world of programming had moved on.
Ruby was created in 1995 by the Japanese programmer Yukihiro Matsumoto, affectionately referred to as “Matz.” Except for creating the one main programming language to have originated exterior the West, this Osaka-born training Mormon can be identified for being exceptionally good, a lot in order that the Ruby neighborhood adopted the motto MINASWAN, for “Matz Is Good And So We Are Good.”
Befitting this, in addition to its fairly identify, Ruby is straightforward on the eyes. Its syntax is straightforward, freed from semicolons or brackets. Extra so even than Python—a language identified for its readability—Ruby reads virtually like plain English.
Programming languages are usually divided into two camps: statically typed and dynamically typed. A static-type system resembles a set of Legos by which items interlock solely with others of the appropriate form and measurement, making sure errors bodily unattainable. With dynamic typing, you’ll be able to jam items collectively nonetheless you need. Whereas that is theoretically extra versatile on a small scale, that freedom backfires whenever you’re constructing massive constructions—sure varieties of errors are caught solely when this system is operating. The second you set weight in your Lego footbridge, in different phrases, it slumps right into a ineffective heap.
Ruby, you may’ve guessed, is dynamically typed. Python and JavaScript are too, however over time, these communities have developed refined instruments to make them behave extra responsibly. None of Ruby’s present options are on par with these. It’s far too conducive to what programmers name “footguns,” options that make all of it too straightforward to shoot your self within the foot.

























