The other day I was at work and my buddy Juicebox and I took a walk around the building. This is a good thing to do when you can’t solve a problem, or the system is down, or you’re going a little nuts.
Juicebox was sharing with me a list that he had made on his phone of all the movies he owned. The list was alphabetized and everything. About halfway through the list I realized it wasn’t him rattling off movies he had memorized, he was reading from a list.
“Wait you wrote all this down?”
“Yeah it was from the other day when I was studying.”
You see, Juicebox, BattleToad (another friend) and I are studying SysML. In the words of Inigo Montoya … “Let me explain … No, there is too much. Let me sum up …”
First came UML, or the Unified Modeling Language. UML, like any other language, has grammar and syntax rules. Unlike the English language, you express yourself with UML via diagrams and pictures. The language is used to help design and explain software (code). Let’s say you work with a bunch of coders, and then you have to explain what you are doing … There’s a chance you will confuse people because you’ll explain something to death or go off on a tangent (favorite hobbies of my coworkers and I).
If you know the rules of drawing, and someone who doesn’t know code knows the rules of drawing, you just draw a picture using this language and wha-la, everyone is wiser for it. Now everyone knows exactly what you’re trying to build.
SysML is Systems Modeling Language. This is an extension of UML (take 1 part UML, add a little dash of … whatever). People thought, “hey this UML is nice – I can explain difficult concepts in a different way … Why are we just using this for code?” And there you have it, SysML is born.
What’s my point?
Today I was reading SysML (borrrrrinngggggg) and I found this bit very interesting (what this sentence is talking about is how you use this high-level language to build languages that are like SysML or UML … only you can modify them to make them specific to your needs like car manufacturing or whatnot):
A language designer will look for a metaclass with some of the characteristics needed to represent the new concept and then add others and, if necessary, remove characteristics that are not required.
I read that and thought, “what an unexpectedly creepy remark.” I think it’s because of the “remove characteristics that are not required” piece. It came to me, “I should write this down and write a short story about this! Some sort of crazy genetics engineer or … Some nutcase who has a bunch of kids … Like a new take on the Island of Dr. Difficult to pronounce last name …”
Then, in a flash of clarity, I realized I would never actually write that. It was just a foolish thought based on my desire to not do homework.
(Pssst. Guess what writing about how I’m not writing is called? Metaprocrastinating! Sorry, I blame the book.)