[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)