i have also used many other programming languages in the past out of sudden necessity just like anyone else. that does not mean i have any interest in maintaining those or learning new languages. i don’t need to be lectured on what i need to do, thanks.
i know perfectly well what point i am making and you do not have to spin this differently and try to make me look like a fool. you stated that anyone who is not interested in learning a new language is a bad programmer, and you are wrong. people make choices for different reasons.
learning a new language means you will learn two more new languages next year. eventually you will reach age 40 and be exhausted. i refused to learn new languages for many years and i’m doing ok. there is no need to learn new languages. specializing is a valid option. your post illustrates how only learning python or java or similar languages that hide complexity can make you ignorant of the machine and the reality you are dealing with. i believe anyone should learn C and know how to use pointers.
I am not disagreeing with you, and I use the functional aspects of Python a fair bit. As I said I don't think learning new languages is a bad thing. But I do see some devs that collect languages / frameworks like football stickers. If you are learning a new one every second month you won't have much depth to your knowledge in any of them.
Eh I disagree learning new languages can make you think in different ways. I know Ruby, Shell, C, Javascript and some OCaml and Haskell, each have taught me something that I apply to others.
Not to say you are wrong, but if one has an interest in a new or different language they should not think they shouldn't because they already know enough.
Learning a new language can also be a supplement, say learning haskell in such a way that you improve your math ability and critical thinking at the same time. Or attempting to write a project in a new language would be far more interesting say if you are burned out from a job in a certain programming language. New and different things can be very refreshing!
I have to agree with the OP. I just have not felt like it's worth it to learn a bunch of programming languages. Don't get me wrong, I know a few & I'm familiar with the patterns that different languages/platforms bring. I'm not exactly itching to learn and practice yet another programming language.
There's more to life than learning & practicing all of the flavors of programming languages. Like learning how to create, express yourself, and feel/think in different & unique ways.
“Absorb what is useful, Discard what is not, Add what is uniquely your own.”
I fully agree. It takes a long time to get familiar enough with a language that you can really use it very well. It takes practical experience building real products to get enough of a feel of what the strengths and weaknesses really are. This precludes learning a very large amount of languages, even for someone who's a full-time programmer with some liberty to goof off.
Even if you know several of those languages, if you've coded in one for a while, the odds are good you won't remember the syntax intricacies, the gotchas, etc when moving to the next one, not to mention what the name and argument order of every function in the standard library is.
Blaming programmers for being too lazy to learn new languages is silly. We use languages to solve problems. Working in an unfamiliar language makes the problem harder to solve, not easier. Unless the new language is a much better fit to the problem at hand. That's why its handy to know a few with widely different characteristics.
If there's a language that can hit many positive characteristics at once, it's more useful to know well than one that doesn't. That isn't laziness. That's called being smart.
Disagree. I've found over the years that I pick up new programming languages rapidly. I attribute this to already having a broad base of experience in different paradigms and techniques such that at this point everything is just a variation on something I've worked with before.
Never said I stopped learning. I learn new things all the time. I just don't waste time trying to pick up new languages. I read about the features of other languages all the time and I try to glean insights to use in my Ruby code.
But people really underestimate how deep topics like object orientation really are. If you burn all this time figuring out syntax, semantics, standard libraries, toolsets, et al of languages, then you won't have the time or the head space to dive deep into them.
Well obviously if you're willing to spend the time you can do it.
The issue is that they're not willing to spend the time, given that there are so many unknowns and decisions that have to be made. That's a very legitimate point, given that the default attitude in most programming communities is to pretend that learning new languages is almost zero cost and pure benefit.
I'm in the same boat. A few months ago, I decided I'm not going to learn a new programming language unless I need to.
These days, learning a new programming language every year is the fashionable thing to do. This trend, IMO, is stupid. I'd say build something new every year with what you already know. If what you know isn't enough to build that something, then go ahead and learn a new technology. (For example, I mostly program Cocoa but now I want to build a webapp. I can't write a webapp in Cocoa, which is why I'm learning Django.)
What if I don't care about salsa dancing and would rather learn the intricacies of a language to help myself learn more complex concepts? What type of code would we all have to work on (to get money for salsa dancing) if no one became attached to whatever programming language that gives way to quality examples, books, and tools?
Use the right tool for the job and all that, but there is nothing wrong with still being attached to something else. I've learned a lot more about programming in general by being attached to a specific language and bringing that experience to other languages than I ever would have by worrying about zip lining in costa rica while writing crap code lacking concepts I hadn't had the chance to realize yet. And to me thats perfectly fine.
Even if you never use it, you'll be exposed to different ways of thinking, methodologies, and that what you've learned will be relevant to programming in general.
The thing is, I can write a program in any language. The reason for learning a new language would be to learn a new way of thinking, to "get the maximum out of it". If I can't get involved in its community, I can't do that properly.
I am the author of that post, and that is why I suggest this course of action. My post was not about "picking the winning language" but about getting moving actually practicing new languages. That practice helps us to get faster at learning. Once you have learned a few, you will be dramatically faster at learning new ones, and at programming in general. You will have seen the same concepts implemented a few different ways. It will be harder to be a fanboy of any specific one, because they all have pros and cons that have to be weighed.
If you asked me this question, I would assume you are a mediocre programmer. The good ones don't consider it a big investment to learn a new language, because they can do it really fast and because they enjoy it.
> Maybe it's just that many of the languages I've been learning have had little syntax and no operator precedence quirks
This is a good point. It is probably not a good use of your time to learn Java and then C# (or similar), or Perl and then Python and Ruby. Sure, there are differences, but basically the languages in the same groups are the same.
If you go for the more "academic" languages, you'll get more return on your learning investment. Recently, I've learned Lisp (this is what started me down the "wait, learning new languages isn't a waste of time!" path), Smalltalk, and OCaml, and I've picked up a lot of good ideas to port to my primary language. (Otherwise, my background before that was C, Perl, and Haskell. All good languages to know :)
I have no plans to learn new languages for the time being. I've been exposed to most of the big concepts, so I feel a creeping sense of diminishing returns as I have to invest time in increasingly different syntaxes to learn anything really different.
That is time I could spend building out more productive libraries and architecture for my real goals.
i know perfectly well what point i am making and you do not have to spin this differently and try to make me look like a fool. you stated that anyone who is not interested in learning a new language is a bad programmer, and you are wrong. people make choices for different reasons.
reply