4 ms·
Ask HN: Is right/wrong to rate programmers by the language they use?
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.
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) ?
Let's consider the following stack :
-- Generic Applications (Web and Non Web) -- Level 3
-- Libraries and Frameworks -- Level 2
-- Drivers / Compilers -- Level 1
-- Operating Systems -- Level 0
I believe it is correct to make the following assumptions :
1 - Consider an average 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").
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 respect than programmers from the top layers?
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?
Edit : Problem with line feeds.
- Wickk 15y ago"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.
- gexla 15y ago"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.
- TeMPOraL 15y ago<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.
- AngeloAnolin 15y agoJust 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.
- esw 15y agoWe 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.
- bartonfink 15y agoI 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.
- rhizome 15y agoWhew, 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.
- trbecker 15y agoLanguages 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 15y agoReading 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.