[HN Gopher] Why is it difficult for developers to learn another ...
       ___________________________________________________________________
        
       Why is it difficult for developers to learn another programming
       language? (2020)
        
       Author : mooreds
       Score  : 18 points
       Date   : 2022-03-09 02:02 UTC (20 hours ago)
        
 (HTM) web link (cacm.acm.org)
 (TXT) w3m dump (cacm.acm.org)
        
       | tester756 wrote:
       | >Why is it difficult for developers to learn another programming
       | language?
       | 
       | I started with
       | 
       | C++/PHP/JS
       | 
       | and then I started doing C# + meanwhile some Lua
       | 
       | I cannot use anything that has not as good IDE as at least Visual
       | Studio
       | 
       | I struggle to overcome the lack of reliable IDE
        
         | dmd wrote:
         | I started with C64 Basic and then GW-Basic, so /any/ IDE is
         | better than editing via line numbers.
        
           | wanderer_ wrote:
           | LOL, did anyone else ever make programs in TI BASIC on a TI
           | calculator?
        
       | jleyank wrote:
       | I would think that the specifics of the new language would
       | (greatly) influence the difficulty. If the languages (known vs.
       | new) are similar, it's typographical more than anything else. How
       | to make a code block, end statements, indicate arrays and
       | pointers, etc. There's a vocabulary to pick up, but it should be
       | like learning a new similar romance language when you're fluent
       | in another.
       | 
       | However, if the language paradigm is different, such as vector
       | vs. scalar or other significant differences then developers can
       | end up wrestling the language rather than working with in. I
       | would suspect, as it was in my case, that the more experience one
       | has, the worse this conflict will be. I had a way of approaching
       | and implementing code that was just not what the language wanted
       | to see. It was rather frustrating falling into the write/tune
       | rather than write-then-tune process. My only "solution" was to
       | first write things the way I had internalized and then revise
       | them into the appropriate form(s) for the new language.
       | 
       | Once this was done, and I would say it was a 3-6 month process,
       | then the "normal" learning process started. Syntax, grammar and
       | vocabulary is an ongoing process but it's easier as language
       | familiarity grew.
        
       | herdcall wrote:
       | I'm not sure if it is "difficult," I've always found it pretty
       | straightforward. Sure, there will be differences, like types in
       | Python vs. say Go, but we learn to switch context pretty
       | comfortably over time (like we switch from English to say Spanish
       | and back). I think the bigger challenge is to write
       | idiomatically: e.g., if you're coming from Java, your Python code
       | may not be "Pythonic" and a class-for-everything mindset won't
       | quite work in Go.
        
       | brimble wrote:
       | The language is rarely a hurdle. The (almost always bad and
       | broken) tools, the (often misleading, as far as best-practices
       | go, or muddled with old versions and outdated advice)
       | documentation, and learning the culture and ecosystem ("Oh no,
       | no-one uses that built in function since it's bad for reasons X
       | and Y, use this 3rd party FOSS library entirely supported by one
       | guy living in a cabin in Wyoming instead") are what make it
       | difficult.
       | 
       | The language itself is often no trouble at all. It's all the
       | stuff around it that ends up eating shitloads of time.
        
       | cc101 wrote:
       | I've been programming for 54 years. Languages come and go in a
       | career. For me, each new language was an enthralling experience,
       | an adventure. Mostly I think this was because each new language
       | came with some valuable new insight in how to do my work. I don't
       | know if that is true any more. I get the impression that there
       | are too many new languages and paradigms. I suspect this is a
       | confusing burden that detracts from the enjoyment. There doesn't
       | seem to be a clear evolutionary path anymore. I imagine this
       | weighs on a programmer's mind.
        
         | FpUser wrote:
         | 41-42 years here. My experience was right from the beginning in
         | designing new products so for me programming languages were
         | just tools. After a while it was not a problem for me to start
         | a project in completely new language and get the shit done
         | without much fuzz. Most of the general-purpose languages are
         | more or less the same and so are the libraries. Some are great.
         | Some are not that much.
         | 
         | What I see now is that programmers are often concerned with not
         | what they deliver but how - I'll do anything as long as it is
         | in A/B/C. Basically means substitute goals. I find it not very
         | healthy.
         | 
         | There are some exotic languages of course which could make my
         | brain melt but since I do not need any for my projects/products
         | I would not care.
        
         | [deleted]
        
         | beardyw wrote:
         | 54 years. I can just match that if I count the very first time
         | I wrote a line of code!
         | 
         | I agree with all you say and my experience was the same.
         | 
         | I think the current problem you describe is a disconnect
         | between the means and the end. We lived through times when the
         | end result was all anyone cared about. Now people have jobs
         | where they don't really know what the end result is.
        
       | baby wrote:
       | Anecdotal, but I've been learning a lot of different languages
       | over the years, the language itself is probably less than half
       | what makes it difficult to learn. The real difficulty comes when
       | there's no good resource to learn the language, a poorly
       | documented ecosystem, and a lack of good libraries (and worse, a
       | bad standard library).
       | 
       | For example, languages like Rust are complex and hard to learn,
       | yet many people get into Rust because it's easy to setup
       | (rustup), easy to run or test (cargo, vscode), easy to compose
       | (crates, stdlib), and easy to learn (so many online resources).
       | 
       | On the other hand I've been learning OCaml and suffering. I would
       | advise anyone who wants to have real world impact in a low-level
       | language to give a shot to OCaml, because there are just soooo
       | many ways to influence the language. If you write a library it
       | will be used, there's so many opportunities for creating learning
       | resources or improving the tooling, it's uncharted territory for
       | the most part and it's probably the functional language that has
       | the most chance of having a real-world story.
        
         | irrational wrote:
         | > yet many people get into Rust because it's easy to setup
         | (rustup), easy to run or test (cargo, vscode), easy to compose
         | (crates, stdlib), and easy to learn (so many online resources).
         | 
         | All those things apply to Python too (not that I've learned
         | Python ;-) There must be more than just these reasons why
         | people learn Rust instead of Python.
        
           | Gigachad wrote:
           | More people would be getting in to Python every day than
           | Rust. Python is what the universities teach now so you have
           | thousands trying python for the first time probably daily.
        
       | wanderer_ wrote:
       | Just the other day I was working out a Java numerical-operation
       | logic error and decided to type it out in a simple online Python
       | shell. Unfortunately, I had forgotten that the ints and doubles I
       | was working with in Java didn't exist in python. And then I spent
       | a few minutes trying to remember how to import the math module...
       | 
       | Suffice it to say that I have been away from Python too long, now
       | it's like learning a new language all over again.
        
       ___________________________________________________________________
       (page generated 2022-03-09 23:00 UTC)