Hacker News new | past | comments | ask | show | jobs | submit login

Odd languages attract above average programmers, if nothing else than because they are engaged. Small teams are more productive than large teams, because there are almost no communication problems. I wonder how much is due to this?



I came here to make the same point. The real test would be to take those same Lisp or Smalltalk programmers, and have them work in Java. I’ll bet you see the same increase in productivity. It’s the people, not the language.


No, the language is part of the equation.

I have code, for work, in: FoxPro, Delphi, Python, VB, VB.NET, C#, F#, Obj-C, Swift, Rust, Sql, Js.

I rewrite apps and codebases, and move them. I rewrite the same stuff many times, and make my own pseudo-ORM is my main thing when learn new languages.

Absolutely I'm more productive in some Langs than others:

Amazing at:

- Fox, Delphi, Python (#1), F#, Swift

Average, low:

- VB, C#, Obj-C, Js

Barely move:

- Rust (this is my last lang, and also doing a programming language that I have sketch in python, swift, f#. The task hit against the hardest and weakest parts of rust).

I look at C, C++ and my instinct tell me I will suck forever at them. Same Haskell. Ocalm? I will fly. Lisp? Nope, that crazy stuff never click. Kdb+? I don't know, maybe.

I don't buy the meme "the language not matter, is the people" because languages are made FOR the people. And some stuff click on you or not.

That is the reason APL is a thing for some.


Whenever I hear "it might work for you, or not", my ears perk up. Not understanding when something works or not is a great question. It's something to explore. It's not the endgame.

I briefly studied French in college, and to say it "didn't click" would be an understatement. It was the worst grade I got in any class ever, by far. And yet, even the dumbest French person is fluent from when they were just a kid. It's probably not the case that French is simply impossible for some people to learn. Something else is going on.

Couldn't it be that we simply haven't figured out a good way to teach programming languages yet? Software is still generally "go read the reference manual online and you're good", but most other mature fields have moved beyond that. Boeing is in hot water this month in part because they essentially used that as pilot training for the 737 MAX, and it's clear to everyone that this is not an adequate way to learn a complex new technical tool.

Unlike you, I don't find Swift particularly productive (and I've written tens of thousands of lines in it!) -- but maybe with the right training, I would.


Learning a language as an adult is completely different from learning as a kid. Your hypothetical “dumbest French person” would not have been able to learn French as an adult, the same way that the most physically fit 100 year old could not survive the falls down the stairs that 3 year olds do without even crying.


Correct. A different part of the brain is used when learning a language past a certain age (I think 8 or 10 years old).


It's not a "meme", it's just my speculation. Yes, languages are made for people, but the people aren't all the same. TFA overlooked the point that maybe it is more curious and more talented people who make their way to esoteric languages.


So we are on agreement (how weird that happened often on HN, at least on tech!)

I also add that you need to explore that languages to become talented.

I'm pretty certain to be an average developer, at most. Not because low self-esteem, but after 20+ years I have know people above and below.

BUT, the use of many paradigms have help me to look like much better than if I have been stuck on a single lang (or paradigm).

I credit, by intuition, to FoxPro in how I tend to be better on RDBMS work. Delphi, for how build UIs and have certain understanding of low level. And so on.

Every new lang/paradigm make you better, and that lessons carry over.

One of my favorite anecdotes was someday I was stuck with C# solving a task, that even with libraries can't get.

I think to myself "let do that on python". I solve it in no time. I port it to C#, and almost get the same line count!


Yes, you do need to explore languages to become talented in using languages. I think you are not an average developer if you are learning and using so many languages, pretty much by definition.


Thanks for the compliment.

I consider "talent" as the amount skills you have at your disposal. I think a average idiot will be more productive the more broad is their horizons ;)


> I came here to make the same point. The real test would be to take those same Lisp or Smalltalk programmers, and have them work in Java. I’ll bet you see the same increase in productivity. It’s the people, not the language.

A good example to strengthen this argument is Petr Mitrichev who has won numerous competitive programming competitions and his language of choice is... Pascal https://en.m.wikipedia.org/wiki/Petr_Mitrichev


> It’s the people, not the language.

Then why is it that so many good developers who have learned these more esoteric languages cannot stand going back to Java etc?


Because those esoteric languages are better. The comment I responded to points out that TFA makes the unreasonable assumption that the Java programmers and the Smalltalk programmers are equally talented. And that perhaps what is going on is that the people attracted to explore beyond Java are more curious and perhaps more interested in their craft. If that is the case, then I predict these people will be better in Java, even if it isn't their first choice.


For one thing, highly popular languages tend to have communities which are flooded by people who can't use those languages, can't describe the problems they are solving, or can't understand basic programming concepts.

Like, it wouldn't even matter to me if PHP is a good language if I have to sift through thousands of comments of "I did this and it worked" without any description of why it worked, why it is better than other ideas, or what problem it is even meant to solve.


Did you get the name mixed up? Says here that Gennady Korotkevitch uses Pascal but Petr uses Java. https://www.quora.com/What-language-do-Gennady-Korotkevich-a...


>I came here to make the same point. The real test would be to take those same Lisp or Smalltalk programmers, and have them work in Java. I’ll bet you see the same increase in productivity. It’s the people, not the language.

They write a mini-lisp in Java and obfuscate it. I've been on project where this had happened.


> above average programmers, if nothing else than because they are engaged

But are you really "above average" if you are incapable of actually producing something large scale because your temperament is such that you can't stand working in a "boring" "unproductive" language?

It's sort a tortoise or hare type situation: the hare runs really fast but if that doesn't win you the race, who cares? There is an even rarer breed of programmer who operates as both the tortoise or the hare. Those are the true "above average" programmers in my view, but you can pretty much exclude the elite crowd of folks who "refuse to program in Java" or will confine their entire job search to companies that use their favorite language from that category.


Good point. When I discovered Clojure and saw the light after listening to Rich Hickey's sermons on The Mount I found it almost impossible to work with OO code. Years later I asked myself if this had actually benefited me professionally, other than simply broadening my mind, and I concluded it hadn't because it limited me to the tiny number of Clojure jobs available and ruled-out earning good money working on existing code. In recent years I've had to reverse-engineer this experience and get to grips with the likes of Java, Kotlin, Ruby and Python.


> But are you really "above average" if you are incapable of actually producing something large scale

Wasn't the OP's conclusion that large scale was due to not being able to scale the team into the hundreds and not any limitation of a small team?

There's only so much code that a handful of programmers can write and maintain in any language. The scaling issues comes up when you need to make your team a lot larger.


Yes. I think one of the interesting things in software is the irrational amount of productivity that a small team can accomplish, but that it can only be done by doing things in a way that can never be executed by a 50 person team.

So it is possible for 3 - 10 developers to maintain a product that perhaps, would need 50 developers using fully maintainable methods. But the 3-10 developers can never produce what 500 developers can. And there's a valley of death between about 10 and 30 where you actually go backwards. With 20 developers you might accomplish less than with 10 unless you very carefully and strictly compartmentalise the team (at which point you have two teams of 10 developers that don't interact ...).




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: