5 ms·
Except if you keep switching languages, you never truly become proficient in any of them. And you can pry C and Perl from my cold, dead hands. :)
by dima55 12y ago
Except if you keep switching languages, you never truly become proficient in any of them. And you can pry C and Perl from my cold, dead hands. :)
- thirsteh 12y agoLanguages aren't all that different from each other. Most of the knowledge is shared between them (with a few exceptions like imperative vs. functional.)
- dima55 12y agoOh please. A "language" is way more than a way to define functions and add numbers. All modern languages like to rewrite the world: standard library, help system, build system, distribution system, FFI and so on and so on. It'd be great if these were standardized, but language authors love to NIH apparently. Moving to another "language" is a HUGE endeavor, unless of course you like to half-ass it.
- thirsteh 12y agoRight, but there's nothing wrong with being a good programmer who needs to refer to the library docs more often. What's "oh please" is the notion that you can never be good at programming unless you've been using Perl nonstop since 1995. A Python programmer can pick up and become reasonably proficient in Go in a few days, for example.
- Retra 12y agoA lot of this depends on what level of proficiency you're talking about.
- jghn 12y agoSure, but they're not that different, particularly if you've been around the block a bit and seen a bunch of these. For a reasonable definition of the word productive, I've never found it terribly difficult to pick up and be productive in a new language. Sure, a year later I'll look back and say "man, I was so silly back then" but that's not the same as being useless. We routinely hire people at work who don't have experience in our primary language and it's never been an issue. One of the things that irritates me the most about our industry is the fetishization of the difficulty of switching languages. In my younger days people would say that the syntax was too difficult to pick up. Now that people realize that's hogwash they've moved on to saying that the frameworks are too difficult to pick up.
- eropple 12y agoThis isn't true, in my experience. I'm production-comfortable in at least half a dozen languages and yet I've never used any of them for more than maybe a few consecutive months at a time. I can go as deep on the JVM or the CLR as you'd want to go, I won't embarrass myself writing C++ in anger, and in the last year I've gotten quite comfortable with the idea of writing production code in Ruby (which, for me, means diving in and figuring out how MRI ticks). My travels indicate to me that "proficiency" grows from understanding the mental models that go into programming. Within a linguistic family (and most of the languages in heavy use are either dynamically-typed OO or statically-typed OO), the differences are marginal and mostly unimportant. If I had to go write Node ("like Play but without a working type system!") tomorrow--well, I'd quit, but before I did I'd be proficient in a week.
- Retra 12y agoYour experience is very narrow it would seem, and not an example worth generalizing from. So you know Java, C++, C#, and Ruby. That is _not_ a diverse set of languages.
- eropple 12y agoMan, you just read my post and went "I am driven to just be a jerk about this," huh? I'd really like you to tell me how "at least half a dozen languages" translates in your head to "four", because--and I'm not a linguist here, I'm not a dictionary, so maybe I'm wrong but I don't think so--"at least six" and "four" are not equivalent. But since you so nicely invited a brag, I've written code for production use cases in Java, Scala, Groovy, C#, Guile, PHP, JavaScript, Ruby, Python, Perl, VBA, and C. And shell scripting languages, but I don't think--going back to my point--the differences between zsh and bash and csh are really worth getting into. I have not written production code in C++ (aside from the game I'm writing, which isn't yet done), F#, or Erlang, but I know each well enough to look forward to doing so. (I'd need to practice Haskell before getting into it, but I've fooled around with it.) What I did was pick the four closest to the top of my head, folding Scala in with Java because I didn't want to dilute it further. And what I said isn't changed by your desired genital-measuring contest, though I do so hope I measure up; the basic outlines of everything the overwhelming majority of programmers are likely to see in most of their careers are close enough to share a huge amount of proficiency from ecosystem to ecosystem. The principles are so similar as to make the switch from striped to paisley wallpaper just a context switch. EDIT: Oh. I forgot Objective-C. Sorry.
- rtpg 12y agoseeing other languages can help you understand other paradigms better. Canonical example is people learning Haskell or Lisp and then going back to C++ and making much more stateless (and thus more maintanable) code.
- chaostheory 12y ago1. imo Being a specialist in a language and being sufficiently proficient in it are two different things. 2. It's not like you ever let really go of the languages you already learned if you keep using it. 3. It's pretty obvious when a language has run its course. It shows in the job market. Why not transition then instead of staying on the Titanic?