News for hackers. Stuff that matters.
Re:Kubernetes is a red flag signalling premature optimisation by Izkata on Monday July 04, 2022 @04:51AM (#31974938)
The impression I've gotten from some of my co-workers is that in bootcamps and college they only learned one language, remember the time and effort that went into that, and assume learning another language will take the same time and effort. Because they haven't really put effort into a second one, they don't yet realize just how much conceptually transfers between the languages.
Re:Kubernetes is a red flag signalling premature optimisation by jsiepkes on Monday July 04, 2022 @04:54AM (#31974961)
While concepts transfer over between languages the language is only 10% of it. The rest of it is the standard library, ecosystem, buildsystem and all kinds of intricacies you have to know about and what not which is specific to the language (ecosystem).
Re:Kubernetes is a red flag signalling premature optimisation by ratww on Monday July 04, 2022 @05:26AM (#31975145)
This is an underestimation of how hard it is to learn to program.

Someone learning a first language isn't just learning a new language: they're learning how to program. It's a new profession, a new hobby, a new superpower.

The rest of the stuff (standard library, ecosystem, buildsystem and all kinds of intricacies) is just a mix of trivia and bureaucratic garbage you gotta fill your brain with but will all be replaced in 10 years anyway. Sure it takes time but it's nowhere near as important as actually knowing how to program.

Even changing paradigms (imperative to functional) isn't as hard as learning the first language.

Re:Kubernetes is a red flag signalling premature optimisation by Beltalowda on Monday July 04, 2022 @07:51AM (#31976027)
I think a lot of people here have been doing this programming thing for so long we've forgotten we once had trouble understanding things like:

  x = 1
  for i in [1, 2, 3] {
     x = i
  }
What is the value of "x" at the end? Assuming block scope, it will be 1, or assuming it doesn't have block scope (or that it uses the already defined "x" in this pseudo-example) it will be 3.

A lot of beginning programmers struggle with this kind of stuff, as did I. Reading this fluently and keeping track of what variables are set to takes quite a bit of practice.

I've been hired to work on languages I had no prior experience on, and while there was of course some ramp-up time and such, overall I managed pretty well because variables are variables, ifs are ifs, loops are loops, etc.

Re:Kubernetes is a red flag signalling premature optimisation by cpursley on Monday July 04, 2022 @08:26AM (#31976296)
Well, loops are not loops in functional languages...
Re:Kubernetes is a red flag signalling premature optimisation by ratww on Monday July 04, 2022 @08:42AM (#31976419)
The concepts still roughly translate and help, though. You have projections/mappings in FP. Or if you want to go deeper, recursion. Understanding loops before those will definitely make them easier since they are equivalent.

The argument that learning a second language is as difficult as learning the first doesn’t really hold water in practice as well, lots of people have done so.

Re:Kubernetes is a red flag signalling premature optimisation by Beltalowda on Monday July 04, 2022 @09:25AM (#31976766)
I'm not saying there are zero differences or that $other_language never has any new concepts to learn, but in functional languages variables are still variables, functions are still functions, conditionals are still conditionals, etc. Important aspects differ, but the basics are still quite similar as is a large chunk of the required reasoning and thinking.
Re:Kubernetes is a red flag signalling premature optimisation by waffles2021 on Monday July 04, 2022 @05:09AM (#31975053)
There is also an issue with conceptual leakage, most noticeably I've found with devs well versed in one language bending another language into behaving like the former.
Re:Kubernetes is a red flag signalling premature optimisation by snorremd on Monday July 04, 2022 @07:13AM (#31975796)
Agreed. You see this a lot with people with a C# and/or Java background using TypeScript with annotation based decorators and libraries/frameworks that implement dependency injection, etc. They don't really embrace the nature of the new language and ecosystem. And I can sympathise, it is simpler to do things as you have been doing them before.

You also see it when people who've mostly done imperative programming tries their hands with a lisp or some ml based language. I've been there myself. You still find yourself using the equivalent of variable bindings, trying to write in an imperative rather than declarative style.

I guess when trying to learn a new language in a different paradigm you also need to unlearn a lot of the concepts from the former language.

Re:Kubernetes is a red flag signalling premature optimisation by pjmlp on Monday July 04, 2022 @08:17AM (#31976223)
Well, that is the reason why outside HN bubble, Angular still wins the hearts of most enterprise consulting shops, as its quite close to JEE/Spring and ASP.NET concepts.
Re:Kubernetes is a red flag signalling premature optimisation by john_the_writer on Monday July 04, 2022 @06:22AM (#31975499)
That wares off if they have decent PR processes, and mentors.

I write elixir that smells like rails, but as the months move on, I change.

Re:Kubernetes is a red flag signalling premature optimisation by CRConrad on Monday July 04, 2022 @10:45AM (#31977604)
> ...the standard library, ecosystem, buildsystem and all kinds of intricacies you have to know about and what not which is specific to the language (ecosystem)

IME a lot of the conceptual stuff transfers pretty well there too.