Monoglot Heros

Sunday, April 1st, 2012

I hate bilateral debates. Coke is better than Pepsi, PS3 has .374% sharper graphics then the Xbox 360, or that sandals are better than shoes. I bring up my hate for this hate around two topics for this rant: networking config syntax and programing languages. While these are very different topics they, much like the age old Coke vs Pepsi, are one in the same. Let me start with programing languages since that started this blog for me and I will end with networking configs since that made it blow up in my mind.

Arguing over the value of programing langages has been onc of those epic nerd debates since the beginning of time. I am sure that even Grace Hopper had some classic jokes in her time. If anything defines nerds is passion and humor. To be a nerd (geek, dweeb, or any sort of you focus too much on one thing adjetives) you must deeply love something beyond the point of rational thought this is the passion part. Also you must have humor around what you love. The passion can be so intense that it can jade your vision around the other topics within the same genre. It can make anything that tries to harm your “precious” an act of war. I get it, just try and ask me a question about something. I like to say with me there are no short answers and too often thats true. But I like to look at things objectively. I feel that everything has value relative to itself.

With programing languages you often get these “hip in the moment languages” that drive furious rage. On one side you get those who love the language and the others that will stop at nothing to destroy any good will. There are those of us that are caught in the middle and say “can’t the language be good, but is it ok that it doesn’t solve everything?” This is where the key nerd characteristics come into play. The passion. If you are extremely passionate about your cause odds are your going to annoy someone. Not everyone wants to know about how JavaScript can solve world hunger, shine your shoes, and calculate every number in Pi within 6.432525 seconds (just an example with real world performance research coming).

A friend recently asked me why are there so many scripting languages. To him, a VPN guru who has worked mostly in compiled languages, saw the various non-compiled languages to be the same. This turned into a beautiful discussion. What we determined is that often someone learns a language and then they never choose or need to learn another. Also the language is well rounded enough to solve all of their needs. This leaves people to stick with what they know and not move on. Really they don’t need to as they have the perfect hammer for their nails. Then you get the folks who do move on as the hammer doesn’t strike as true as it used to. This has continued on from the days of shell scripting until today where JavaScript is the language of the now. Various language tribes have been created and this is where the war begins.

To draw a parallel lets look at networking devices. Most networking devices have a “flavor” to its syntax and mechanics. All of which were derived at different times for different needs. Cisco’s IOS defined the standard in networking CLI. Its the friend almost all of us grew up with. Its familiar and loving but often not forgiving. I could write a book just on the syntax and its impact to networking as its so iconic. At the time it made perfect sense to its operation where as today it may be missing some key features that are preferred. Cisco has also moved on by adding more modern features to its newer CLI operating systems. ScreenOS, the OS for NetScreen firewalls, copied its operation nearly 1:1 due to the fact that people were familiar with it.

When Junos came out in the late 90’s it changed the game by adding some new key features. These features were added because at the time there were some huge pain points to the IOS operational model. For the networking world this was huge as new developments in CLI were so rare. Over time Cisco and other vendors added the “Junos-like” features back into their CLIs to create an equilibrium in the CLI community. The important point I want to draw is that things evolve to meet the needs of today. If not we will all still be wearing powered wigs and monocles (unless your an ultra classy chap today). We don’t need to throw dookie at each other over these debates. As there are two important items to note: things are created for whats appropriate for the time and over time mechanics evolve.

I feel these two ideas are easier to explain with networking configs as programing languages seem to stick around for much longer. In fact C has been around for thirty years and its nearly identical to the modern versions. But C has evolved to meet the needs of today without trying to become the one stop shop of programing language features. C knows its limits and sticks to them, true to the design of the language. If we wouldn’t have had C then we wouldn’t have JavaScript. If we didn’t have Cisco IOS we wouldn’t have Junos. If we didn’t have Junos we wouldn’t have IOS XE. So please don’t hate these other things that you don’t use, aren’t familiar with, or don’t understand. They all exist together in an ecosystem. You can’t have B without A and without C it can’t be as easy as ABC123.

I title this blog “Monoglot Heros” or those of you that are lucky enough to use one language to get your job done. For those of you that are lucky enough to be able to use one thing and be amazing at it please don’t hate us polyglots. You know who you are polyglots. Those that must configure Junos, IOS, PanOS, Check Point, Adtran and all the other network operating systems out there. Those who must program in a dozen languages due to working in a schizophrenic environment or because you rapidly evolve with the world and want to learn all there is to know. Each language is a tool and its a tool to solve a problem. Some of us have more problems than others to deal with so please love us, embrace us, understand that we need to live the life of a polyglot.

When being passionate have humility. There was a time no seeming oh so long ago when I didn’t have humility. For me my wake up call was a large group of upset union workers. I found my humility and luckily kept my legs in fine working order. I haven’t seen these violent threats in the networking or programming communities and I hope it doesn’t come to that. Keep an open mind around what your brothers/sisters in arms do and come to understand more of the WHY people are passionate about something. It will help you understand the other language/config and where the other person is coming from. Take a lesson from the Jedi and don’t deal in absolutes, search your feelings and you will know what is true.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: