You are reading a MIX Online Opinion. In which we speak our minds. Thomas Lewis Meet Thomas Arrow

Opinions

11Comment Retweet

The Ugliness of Real

Sep 25, 2009 In Development By Thomas Lewis

It always starts out as a friendly conversation. Developers or designers are discussing the language or tool of the week, when someone pulls out the “real programmers/designers use x” talk. The mood shifts. What was once a friendly little chat has become a chess game of defending the position.

Perspective

I see this attitude a lot when the discussion revolves around scripting languages—especially our good friend JavaScript. Apparently you are a ‘real’ programmer only when compiling from a language. In my opinion, it doesn’t matter whether you’re working with JavaScript, C++, Assembly, or whatever—even if you’re scripting, you’re a real programmer. Period.

The ‘real’ issue also rears its head whenever people discuss problem solving and workflow tools. There’s an attitude that the more “to the metal” you are, the better. We’ve all heard someone say, “I don’t like to use x because I want to handcraft all my code.” Ugh.

Clients Are ‘Real’

I don’t like the ‘real’ talk because it hinges on what tool you decide is best—not on what tool is best for the job. If a technology fits your needs but isn’t ‘hardcore’, so what? At the end of the day, what matters is whether the people you created your product or application for are satisfied. They don’t care what you used to get there. This is what’s ‘real’.

Stop the Insanity

How about we stop bogarting love in our industry by helping and encouraging each other instead of pounding chests pontificating why X is better than Y? Or bickering over who is more real? And while we’re at it, let’s stop adding to the link-bait madness and quit clicking on links to articles that promote rivalries that don’t really matter (and are actually unsubstantiated by the article anyway). Do we really need another “Technology Company Y Announces a Company Z’s product killer”?

What do you think? Is there a need to differentiate a real designer or real developer from others? In what ways we bogart love and spread negativity? Let me know in the comments below. Also,follow us on Twitter (or me,if you are a ‘real’ Twit).

Follow the Conversation

11 comments so far. You should leave one, too.

Travis Lowdermilk said on Sep 25, 2009

I couldn''t have put it better myself. Well said.

Petros Amiridis said on Sep 26, 2009

I don''t know. It reminds me of when I was a small kid, and the other kids in the neighborhood were trying to persuade us they were superior because of the bicycle the were using.

I couldn''t help thinking back then, that each type of bicycle was right for the job it was designed to do. BMX type were nice for doing acrobatics and impress the girls, mountain bikes were nice if you were riding on rough roads, city bikes with a basket were nice for riding in the city and going to the grocer.

Some kids insisted that they were smarter because the had one type or another.

What I did though, was choose a bike that could be used almost in every situation and learned how to use it very well.

shoka said on Sep 26, 2009

"even if you''re scripting, you''re a real programmer. Period"
An experienced software engineer will select from a wide variety of tools at their disposal, those tools include such things as languages, techniques, and the engineer will know when to judiciously apply certain techniques and the advantages and disadvantages of each tool. It''s not about whether you are scripting or not. I would state clearly that there is a difference between a software engineer and a web developer. That does not mean to say that there is no overlap. There is and there can be. Generally though by no means exclusiebly, a software engineer should have a deeper training and a greater understanding of the field, because necessarily they should be able to apply themselves to a broader range of problems than that typically undertaken by a pure web developer. And that is where one can often hit the "elitist" type of argument, X is better than Y etc. I have been a software engineer for over 30 years now and actually built some of the earliest software that underpins the ''Net and know 12 computer languages well enough to develop reasonably well in. And this sort of debate has been going on for the best of that 30 years - it''s nonsense really. Either you have an engineering bent and desire to learn and apply yourself and dont have a closed mind - or you do. If you are the former, then call yourself a programmer - if the latter then you are not

Scott Radcliff said on Sep 26, 2009

Well said! I would say that a developer''s desire to constantly learn, help others through teaching, and consistently improve is what makes them outstanding.

Like many others, I have been guilty of the same trap or comparing x to y, but just like you stated, it all comes down to the finished product. Use the right tool for the job.

Douglas Neiner said on Sep 26, 2009

OK, so I totally agree in spirit. But as a business owner, when I meet a programmer its important for me to feel out where they are at from a skill perspective to decide if I have work for them or not. Knowing what languages they feel comfortable with, and if they see themselves as a self proclaimed coder (eat/drink/sleep), or just a code enthusiast. Now, argument for argument sake... or one-up-manship has no place in life.

Really great article and a great reminder to focus on more important things in life. :)

fjpoblam said on Sep 26, 2009

Really true, or at least it seems that way. If an unreal programmer were to write a program before my seeming eyes, I wouldn''t be able to tell the difference, it seems to me. There are even programs that write programs, ¿qué no? Maybe THEY are not real programmers. Or maybe so. What?

Ian Muir said on Sep 26, 2009

@Shoka:

I would have to disagree with you. In a lot of ways, the passive agressive agrument you make is just as common, and frustrating as the issue Thomas is pointing out.

As a pure web developer, I would consider my training and understanding equal to that of most software engineers. Like a software engineer, I need to be able to analyze and architect solutions, leverage OO design techniques and design database structures. While I may not be as specialized in these areas, I have to understand a variety of client-side technologies unique to the web.

My level of skill and expertise is no less or greater as a result of my job title. The idea that one programmer is superior to another based soley on the platform or environment they work with is perfect example of what Thomas is talking about.

Nikita Polyakov said on Sep 27, 2009

Thank you! So true.

I chose this industry for one thing only - to help the end-user enjoy software they work with everyday.

Because no one deserves a bad day because some coder somewhere had a pissy pride driven moment to hack up the app this poor user will be using for years or some BA never bothered to listen to the business and now you have to cancel an order to change the zip code the package is shipping to. Stupidity. Everywhere.

buzz saw said on Sep 28, 2009

How did this topic end up on Techmeme? Did you use Javascript to hike your numbers?

Jeff Putz said on Sep 28, 2009

I agree that Shoka''s comments are indeed a part of the problem. I can''t even tell you the number of times I''ve worked in consulting gigs where some "real engineer" making back-end or Windows apps can''t code their way out of a box, while a "Web developer" comes up with brilliantly written code. Really, these discussions are about as useful as comparing genital size in the frat house.

That said, I do believe that if you''ve reached a point in your career where you have a solid knowledge around an object-oriented language and framework (like C# and .Net), having to use a scripting language feels like you''re going backward. I don''t disagree with that. But as Thomas rightfully points out, it doesn''t mean that these platforms don''t have a time and place, and it''s particularly asinine to make a lot of assumptions about what a person is capable of who spends most of their time in one of these worlds.

Grant BlahaErath said on Sep 28, 2009

Rather than tools and languages, I would suggest that spectrum from entry level to software engineering god is loosely correlated to the layers of abstraction usable by that engineer. At the entry level, code becomes extremely intermixed, say freely interleaving behavior, state, and appearance into a single "object". On the other end of the scale architectural dereferencing leads to code that requires the engineer to hold a large number of facts in short term memory just to write a single line. I''m not suggesting that insane levels of abstraction is always good, or that linear procedural coding is always bad, but I''d assert that the ability to work at increasing complex levels of abstraction is a good indicator of the ability of the engineer as a coder.

Some languages more easily support abstraction than others. As a result, some languages are more preferable for abstraction than others, and some languages even force a layer of abstraction on the software engineer. On the other side, there are languages that make coding without abstraction easier and more efficient.

So, "Real" is a rather moot point. There is so much coding to be done in the world that it doesn''t matter who the "real" programmers are and the "unreal" programmers are. You just need to match the tools and the software engineers to the solution. If you get it right, the code gets written.

The most "real", insane, uber code task might be a veritable 7th wonder of the software world, but its rather hard to get it finished if only 5 people in the world are capable of coding it. A great deal of tension in software design is about balancing abstraction with practicality.