Programmer classification by Tolkien

Рейтинг: 66

If you have ever worked as a software developer and have read or seen "The Lord of the Ring" by Tolkien, this classification may amuse you a bit, and you can even ask yourself: "Who am I in the Tolkien world?" :) So, let's see:


Elves write in functional, complex and exotic program languages. They do it alone making during the ages fretwork masterpieces without releasing. After the release they upload their creations to the open source (if you love it – let it go). There are almost no bugs in their programs, but if there is one, then it’s of the level “this ring enslaves all living”. They treat the enterprise and deployment with defiance, usually they deploy their application only once and in the only place, for a new case they write a new masterpiece. “Portability and reuse are for the people who don’t know, how to write new programs”, so to say. Sometimes their masterpieces are found by orcs, then they become surrounded by crutches and “improvements”, but not for a long time: in ten years a particular initiative orc “rewrites the bicycle” in the enterprise style and alone with that adds to the project a dozen new dependencies.

Dwarfs are programmers for the embedded. They develop in clear “hardcoded” C, and neglect any unit tests, modularity, code reuse, third-party libraries or something like this. They write only one time of good quality and built for last, then after a couple of years of debugging by tracing appears at last a firm result, that casted in stone and used to operate a flight to the moon. Dwarfs don’t care about UX, GUI or any embellishments (however UI, as they see it, is a hardware button). They despise the new-fangled trend of object oriented programming.

Hobbits write for the good of their soul and not much. Small useful handy utilities, no big deal, but they work fine. Hobbits organize a user group and drink there tea in thoughtful talks. But they talk there more about the life than about programming. Once in a century one of the hobbits leaves for the USA and writes there the core of an operating system.

Orcs are programmers in the enterprise. They write in Java and C# huge ugly industrial systems. Their slogan is “Let it be ugly, but it’s a real business!” They like getting themselves covered with fabrics of abstract controllers that create managers that initiate workflows that are instantiated via a dependency injection container. Orcs disregard elves and call them something like “ugly hipsters fuck themselves with their java-scripts, whilst we create Real Systems of Enterprise Quality”. Nazguls force orcs to write unit-tests. Orcs dread nazguls but don’t see any use of unit-tests and write them in the manner like “if the function receives string hello as a parameter than it prints hello”. Orcs like very much to reuse code and to include libraries that-have-a-few-dependencies-just-a-little-bit-but-they-solve-our-problem-completely. They like also ORM, SOAP, WSDL, WCF and a pile of abbreviations in general.

Western People write an enterprise code, but not something like the stupid orcs do. They discuss everyday on stackoverflow, reddit or habrhabr a new article written by an elf, and swear to implement it in a new project. But at heart they know, that they are not destined to achieve the level of the great masters, therefore they do everything as they did always before. Western People’s code becomes year after year less elf-like and more orc-like, and to explain it they plead that the magic left this world, and today’s programmer didn’t read Knuth, and enterprise requirements become every year more horrible. They happen to read about elves’ masterpieces only in books, and more often integrate their code with a huge orcs’ enterprise system. To resist it somehow Western People write a firm layer to isolate themselves from the orcs’ hell, send bugs to the orcs and disassemble their code to understand the horrible orcs’ logic, and then complain about it in their private blogs.


The original russian version of the classification can be found here.

up 66 users have voted.