
Ask HN: Is right/wrong to rate programmers by the language they use? - matheusalmeida
Before I start writing, I want to say that it is not my intention to criticize anyone. It is an open-ended question and I want to know what do you think.<p>Intentionally or unintentionally, do you rate an arbitrary programmer by the language he/she uses ? For instance, do you give more credit to a kernel developer (let's say he/she uses assembly and low-level C) than to a web developer (HLL and frameworks) ?<p>Let's consider the following stack :<p>--   Generic Applications (Web and Non Web) -- Level 3<p>--   Libraries and Frameworks -- Level 2<p>--   Drivers / Compilers -- Level 1<p>--   Operating Systems -- Level 0<p>I believe it is correct to make the following assumptions :
1 - Consider an <i>average</i> generic application. Let's forget the difficulty of scaling Web applications like Google, Amazon, Twitter and Facebook.
2 - I know that you can have gurus in each layer of the stack. Let's consider again an average programmer in each layer.
3 - Ignore the time needed to study/use a framework (e.g. Spring, Ruby on Rails... Django). This is important because I am expecting comments like : "but a compiler developer doesn't know framework XYZ").<p>Do you think that a programmer from one layer can do the same work as the programmer in the layer above? I'm positive that the same does not happen in the opposite direction. If so, do you think he/she deserves more <i>respect</i> than programmers from the top layers?<p>I'd really like to know the opinion of different people. For instance, in a company, do you feel that distinction/separation ? What about compensations? Do you think that a kernel developer earns more than a Web developer?<p>Edit : Problem with line feeds.
======
bartonfink
I think that it makes more sense to "rate" programmers not by the tools they
use but by the problems they solve. If I met someone who showed me a system he
programmed that was capable of language recognition and disambiguation but
told me it was programmed in COBOL, I think it would be really silly to laugh
in the programmer's face because of the language choice. I'd ask some ?'s to
be sure, but ultimately it's a matter of what the programmer feels most
comfortable and productive in. Since I have not yet delivered a human-
equivalent AI system, I'm not really in a position to judge someone who has
based on how they decided to do it.

tl; dr - tools don't garner respect, problems do.

------
gexla
"Do you think that a programmer from one layer can do the same work as the
programmer in the layer above?"

A programmer can do what he / she is familiar with. You don't automatically
know how to build web applications just because you write code for NASA for a
living. A web developer who codes in PHP could do the same thing as the NASA
coder if he / she were to roughly go through the same path of learning.

"What about compensations? Do you think that a kernel developer earns more
than a Web developer?"

I think you left out the most important parts. I would consider marketing,
creativity, luck, people skills, etc to be as important or more when it comes
to earnings. You can be the greatest developer but if you don't fit in with
the company culture then you don't get a job. Highly creative people might be
able to sniff out different ways to earn better than more conventional
counterparts. People who are good with other people and communication might be
better able to negotiate higher salaries.

I believe some of the largest contributors to the Linux kernel are large
corporations such as Redhat and IBM. Web development is an industry with a
relatively large number of contractors and small web shops, so it's a highly
entrepreneurial industry. I would say that anything where you can strike out
on your own has more potential for earnings.

We could also talk about things like location (developers working for
outsourcing shops in India.) How about enterprise vs early stage companies
(startups) vs government vs open source? A different person in each of these
categories could be doing the same sorts of things but get paid differently.
Theoretically the market would smooth these bumps out, but that's not always
the case (especially with outsourcing or startup employees working for peanuts
in exchange for the possibility of hitting the lottery.)

In other words, I think your questions are simplistic.

------
rhizome
Whew, no. Not like that anyway. You sound young and you're putting way too
much effort into wanting this to be true, and what ain't assumptions and
baseless assertions is parody. I can't think of any way that anybody could be
offended by this as criticism. Am I supposed to rank DHH against Matt Dillon?

What of the driver engineer who doesn't know how to install a video card? You
may be surprised at how many "Level 0" people know a language much more than
they know computers in general.

Put it this way, if your answer to "what exactly is an _average_ webapp?" is
something like "you know what I mean," chances are the argument is a non-
starter.

------
AngeloAnolin
Just my 2 cents.

I think it is not fair to rate programmers by the language they use. What
would be fair is how they are able to deliver in the real world. Successful
start-ups and other services like Facebook, Twitter, Quora, Hipmunk, etc. came
to be not because they hired programmers simply based on the language they
used but rather on the premise of what they can execute towards improving the
company's services.

------
trbecker
Languages in computers are equivalent to languages in the real world: ways to
express ideas (or solve problems.) So it's wrong to rate by language. Rate
them by the problems they solve and how they solve it, if you want to rate
them at all. Some of the programmers ("buzzworders") will feel outraged, but
at least there's real merit involved into the way you rate developers.

------
matheusalmeida
Reading your comments I realized that I made a mistake of using the word
"language". Yes, it would be more interesting to see the same questions asked
with a different context. You are right by saying that "problems they solve"
is more correct than "languages they use". Thank you for the comments.

------
TeMPOraL
<edit> I'm talking about respecting someones programming skills. Respecting
someone as a person is a whole different topic. </edit>

It's a great question. After rewriting this post several times I realized that
I never really thought about it carefully before.

I know I have great respect for people who invent things like closures,
Aspect-Oriented Programming, Metaobject Protocol or Erlang-style concurrency.
I have great respect for low-level hackers. I have great respect for
demoscene, where people store almost unimaginable amounts of animation, sound
and action in kilobytes (sometimes it's a demo in 4KB, sometimes an FPS game
in 96KB).

After some thinking I believe that what I really respect in people is the way
they solve problems - be it a beautiful design, a really smart hack, a clever
abstraction, or a great idea for a product.

About rating by language, I think there are two different kinds of "using the
language", that differ by the reason, why one is using that language. Let me
give an example of each:

1\. "I code in C++ because it's the best language,... and the only one I
really know." (that would be me, few years ago ;))

2\. "I code in C++ because I like it and it fits the problems I like to solve.
I also know Erlang, Common Lisp, Haskell, Prolog, Java and (...), and I can
apply the lessons they gave me in my C++ programming, but I really - both in
the context of the projects I want to do, and my personal feelings - like C++
the most."

I'd really respect the second programmer even if I didn't like the language he
is using, whereas the first programmer simply has a lot to learn about the
world.

It seems that I respect creativity, 'MacGyverism' and hacking spirit. I
understand that in many places it might not be what's needed. In some places
you need people to do repetitive, almost mechanical work, or maintenance work.
I do believe that people ultimately should not do repetitive work; that this
kind of work should be automated in the future. People should solve problems,
machines should do the boring work. I don't know if it is possible with
maintenance though.

I do have a _feeling_ , that enterprise work, all the 'business/corporate
development' is full of boring, overly complicated, useless and redundant work
that comes from using poor tools. It's just a gut feeling (based on brief look
on some technologies and stories over the Internet), I never worked
professionally on enterprise software and have no hard data points to prove
(or disprove) it. I'd like to know the opinions of people working on
'corporate stuff'.

//EDITed line feeds.

------
esw
We all acquire highly specialized knowledge based on our training and work
experience. Some of that knowledge is easily transferable to other areas, and
some of it isn't.

------
Wickk
"if so, do you think he/she deserves more respect than programmers from the
top layers?" And we get to the entire point of this post.

Short answer: No. Long answer: No.

