4 ms·
Your 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 la
by Retra 12y ago
Your 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.
- dkarapetyan 12y agoRetra is wrong. You're right. No reason for the hostility.
- eropple 12y agoWhat you're scanning as hostility is exasperation. I have been writing code for twenty years and getting paid for it for twelve. That's not a "get off my lawn," either, not least because I don't know many 27-year-olds in the Boston area with a lawn and I certainly don't have one either. That's a "get out of the basement and go outside." I am remarkably sick and tired of the endemic social insecurity that runs through this industry. There are so very many fun examples of it around here - I miss @shithnsays desperately. At some point in the last couple years I finally grew up to the point where I realized that the tireless posturing and wellactuallying just doesn't get anyone anywhere. When the best he could do was "oh, you only know four languages, smarm smarm smarm," the jimmies, they were rustled. At least if you're going to be That Guy who everyone hates dealing with ever, be right about it. (Also I'm drinking, and somewhere between two and five in the morning I sort of explode into a particularly prickly thesaurus. It's a medical condition. I have a doctor's note. Don't judge me.)
- nostrademons 12y agohttp://xkcd.com/386/ http://xkcd.com/386/ There is nothing wrong with someone continuing to be wrong on the Internet.
- dkarapetyan 12y agoI hear you but various studies show that negative feedback actually exasperates the problem instead of helping to fix it. When people are given negative feedback their subsequent contributions are of even lower quality and also more numerous.
- eropple 12y agoI wasn't writing that for him. =)
- jacquesm 12y agoHe's pretty matter of fact, I see no hostility there.
- Retra 12y agoHalf a dozen is not significantly more than four in the context of "number of languages known." But when you're making an argument "in your experience" and happen to list your experiences in such a narrow band, you are not making a good argument. That was my point. I don't know why you think it is being a jerk to tell you to make a better argument. To address your point: almost everything a programmer does is achieved through the manipulation of language. We solve problems using language. Learning a new language is learning a new way to solve problems. If you find this to be easy, then maybe that is because you keep solving the same problems. My experiences stand in stark contrast with yours. So what are you really basing your claim on? How do I, as someone who cares about this subject, resolve the conflict of what you're saying with what I've experienced? Surely measuring our genitals is not the solution you'd propose.
- eropple 12y agoThis wasn't about my "argument", because it's really hard to be so unclueful as to think that a mild relation of experiences and shop talk is an argument. This was a chance for you being That Guy. But nobody likes That Guy. So stop. > My experiences stand in stark contrast with yours. So what are you really basing your claim on? How do I, as someone who cares about this subject, resolve the conflict of what you're saying with what I've experienced? By actually choosing to participate in discussion? By sharing your point of view and maybe everyone could learn from it? I might have been interested in your point of view if you had chosen to share it rather than being snide and dismissive. Now because you couldn't resist that I just want you to go away, and I won't reply to you again.
- Retra 12y ago"In logic and philosophy, an argument is a series of statements typically used to persuade someone of something or to present reasons for accepting a conclusion." I don't have any more patience for your offended emotional tirade. Get some rest and get over it.
- dang 12y ago> your offended emotional tirade. Get some rest and get over it. Personal attacks are not allowed on Hacker News.
- bad_user 12y agoHello - I also worked with Java, Scala, Clojure, Groovy, C#, PHP, Ruby, Perl, Python, Javascript, PHP and C and have been playing with Rust, Haskell, F#, Erlang and Scheme as well. In my opinion it isn't just an easy context switch and the principles aren't necessarily similar between OOP languages and functional languages, or between dynamic or static languages. Some things remain the same, but some things are different, like the design patterns used, the techniques, the libraries and tools available, the mentality as a whole. When picking a language, you're not picking just a bunch of syntax and type system rules, but the ecosystem around it as well. It takes me one or two weeks to learn the basics of a programming language (i.e. the point at which I'm actually able to start coding and solve problems), but it takes me a year or more to learn the ecosystem around it. For example doing functional programming doesn't fly in a language like Java, even if you can (as painful as that may be), because then you're the odd duckling swimming against the tide and you can't do that if your peers aren't doing it as well or if the libraries you're using are working against you. LISPs are very FP, but the abstractions used in comparison to what people do in a static language like Haskell are very different - for example LISP people don't think in terms of monads or applicative functors and they do like wacky things like rules engines. Erlang's or Akka's actor model is also very different than any other model for dealing with concurrency, because even though the rules look simple at first, that "let it crash" mentality and the ability of actors to communicate across address spaces changes everything. Ruby's meta-programming is also very foreign to people accustomed to Java or Haskell. Scala looks familiar to Java developers starting out, but beginners shouldn't be fooled, because Scala in common use is actually closer to Haskell and combined with OOP it sort of makes it unique in the approaches used. FP developers in general tend to prefer doing things with FRP, rather than MVC. Etc, etc... Of course, you also have families. Python and Ruby are very similar, in spite of the seemingly different mentalities of their communities and after learning one, then learning the other is barely worth it. Ditto for Java and C#, many people would argue that C# is the nicer language, but Java has the nicer ecosystem of libraries and on the whole developers barely have a reason to jump from one to the other. I'm not sure if I have a point - I guess what I'm trying to say is that developers should expose themselves to different ways of approaching problems. And when you're learning a language, one should go past the superficial syntax differences to discover the goodies and that takes time.
- 12y ago
- vorg 12y ago> I've written code for production use cases in Java, Scala, Groovy, C#, Guile, PHP, JavaScript, Ruby, Python, Perl, VBA, and C Whenever I see a list of high use languages with 1 or 2 obscure ones like Guile or even Groovy stuck in the middle, I wonder if the real intention of the list is to promote the obscure one by associating it with more respectable ones.