Live data from Hacker News

Polyglot programming and the benefits of mastering several languages

stxnext.com

31–40 of 68 posts

Re: Polyglot programming and the benefits of mastering several languages

#31

As I master my 15th or so language, I can't help noticing how often I have to search online for the simplest of tasks whenever I switch languages now because it's all turned into a big jumble. Does it need parentheses or not? How are closure variables managed? Do I need to release things? Do lambdas require scoping braces or not? What's the damn syntax for them again??? Do I need to use case(X), switch(X), when(X), s…

Also tricky because many things "work" but aren't stylistically acceptable.

Like, python oo is perfectly happy with "this" instead of "self".

Re: Polyglot programming and the benefits of mastering several languages

#32

As I master my 15th or so language, I can't help noticing how often I have to search online for the simplest of tasks whenever I switch languages now because it's all turned into a big jumble. Does it need parentheses or not? How are closure variables managed? Do I need to release things? Do lambdas require scoping braces or not? What's the damn syntax for them again??? Do I need to use case(X), switch(X), when(X), s…

I don't agree that you look like you don't know a damn thing. You know quite a lot.

In fact, I would happily hire any programmer for, say, a python or a C++ job, that knows nothing about the language in use but knows to ask precisely these questions. Bonus points for questions about function semantics and memory management.

Everything else boils down to syntax and ecosystem/tooling. The former is essentially irrelevant and the latter changes so often and is used differently in different contexts that there is little point in asking about prior experience.

Re: Polyglot programming and the benefits of mastering several languages

#33
post #21

Earlier quoted context omitted.

Ruby is in the post-hype phase.

Right, but my point is adoption and hype don't always go hand-in-hand. JavaScript for example has always had heavy adoption but now is going through a hype phase. Ruby had a hype phase a decade ago but only now is seeing heavy adoption. Similarly PHP hype peaked in the early 00s, but adoption didn't peak until ~2017 and is now beginning to decline. Rust is seeing heavy hype that will probably be followed in 5-10 year…

Anecdata, but PHP is still growing outside the valley. It has the shortest effort to MVP measure of all languages. So if you only have money for one part time engineer, you go with PHP.

Re: Polyglot programming and the benefits of mastering several languages

#34
post #8
post #5

So since my early days I've been doing multiple languages, started in Java at school then picked up JavaScript and Ruby pretty quickly, as well as being a bash Unix cli afficiando, since then my list of languages numbers in the double digits. One of the things I am always astounded by is developers that only know one language, having multiple languages has changed the way I understand programming in general. At that…

since languages seem so easy to pickup. What takes time is being productive with the APIs and ecosystem, not learning the language.

Or learning the underlying programming paradigm.

Even if Haskell used a Python-like syntax, I bet people would still find it 90% as hard to learn as they do now, due to the killer combination of lazy evaluation and purely-functional design.

Re: Polyglot programming and the benefits of mastering several languages

#35

As I master my 15th or so language, I can't help noticing how often I have to search online for the simplest of tasks whenever I switch languages now because it's all turned into a big jumble. Does it need parentheses or not? How are closure variables managed? Do I need to release things? Do lambdas require scoping braces or not? What's the damn syntax for them again??? Do I need to use case(X), switch(X), when(X), s…

Hypothesis: this is your brain doing normal garbage-collection on pieces of information that you haven't accessed frecently (frequently + recently) - you're at the tail end of the forgetting curve[1].

Does your experience confirm or deny this? That is, do you have much more trouble with languages you learned 5/10/25 years ago than ones you were using last month? Or is the process random, and you'll forget features of a language that you were just using?

Alternate hypothesis: you're getting old, and your memory is starting to go - nothing to do with programming languages in particular, the process is just more noticeable there because we have to remember so darn many little things.

Less depressing hypothesis: your brain has gotten out of the habit of remembering those things. I used to be extremely bad at remembering names, until I started paying attention to them because I learned that people really like it when you remember your name. Now I'm great with names without even trying, and I'm convinced that you can also train yourself to be better at remembering other things (i.e. programming stuff) than your natural tendencies.

[1] https://en.wikipedia.org/wiki/Forgetting_curve

Re: Polyglot programming and the benefits of mastering several languages

#36

As I master my 15th or so language, I can't help noticing how often I have to search online for the simplest of tasks whenever I switch languages now because it's all turned into a big jumble. Does it need parentheses or not? How are closure variables managed? Do I need to release things? Do lambdas require scoping braces or not? What's the damn syntax for them again??? Do I need to use case(X), switch(X), when(X), s…

Anyone watching me work would probably think I don't know a damn thing. And after 25 years in the industry, I sometimes wonder the same thing.

I suspect the people watching who thought you didn't know a thing would probably be the ones too inexperienced to recognise what you describe.

I also suspect that every other programmer with 25 years of experience who can be productive using many different programming languages would immediately recognise and empathise with the feeling you describe, and they also have a search window permanently open while working.

Re: Polyglot programming and the benefits of mastering several languages

#37

As I master my 15th or so language, I can't help noticing how often I have to search online for the simplest of tasks whenever I switch languages now because it's all turned into a big jumble. Does it need parentheses or not? How are closure variables managed? Do I need to release things? Do lambdas require scoping braces or not? What's the damn syntax for them again??? Do I need to use case(X), switch(X), when(X), s…

My brain is in the exact same state, which is frustrating when doing live coding interviews, as suddenly it's impossible to not come off looking like a complete beginner. Throw it some nervous jitters on top and it gets ugly fast.

Re: Polyglot programming and the benefits of mastering several languages

#38
I think I’ve now reached a state where I only need two languages:

- Rust for when performance really matters

  - F# for everything else and React
Do I miss out on features from other languages? Probably, although it’s not worth the extra learning and switching at this point for me.

I guess I’m fortunate enough that I can pick my work.

Re: Polyglot programming and the benefits of mastering several languages

#39

As I master my 15th or so language, I can't help noticing how often I have to search online for the simplest of tasks whenever I switch languages now because it's all turned into a big jumble. Does it need parentheses or not? How are closure variables managed? Do I need to release things? Do lambdas require scoping braces or not? What's the damn syntax for them again??? Do I need to use case(X), switch(X), when(X), s…

That's because they are mostly the same language. Brain can't be fooled by manifestos.

Re: Polyglot programming and the benefits of mastering several languages

#40
post #18

As I master my 15th or so language, I can't help noticing how often I have to search online for the simplest of tasks whenever I switch languages now because it's all turned into a big jumble. Does it need parentheses or not? How are closure variables managed? Do I need to release things? Do lambdas require scoping braces or not? What's the damn syntax for them again??? Do I need to use case(X), switch(X), when(X), s…

I agree with the spirit of your point, but I'd be hesitant to say you're "mastering" your 15th language if they are all jumbled together. It sounds like you've learned 15 languages, but mastery implies an extreme depth of understanding beyond the point of confusing minor details. I would bet you have at least one or two languages that you work in often that you never get this stuff confused for, and those are the one…

Some people here learned, mastered and thoroughly forgot more languages and technologies than other people have started with yet.
Post reply on HN