4 ms·
>Being a Python programmer I yearn for the day when we'll stop calling ourselves X programmer, and writing articles about "switching languages" or "going from
by adamors 13y ago
>Being a Python programmer
I yearn for the day when we'll stop calling ourselves X programmer, and writing articles about "switching languages" or "going from one to the other".
A language is a tool, not an identity.
- franze 13y agosaid that, i find it kinda cool that reality trumps fiction: no SF author (really no one) predicted that we will build tribes around the languages we use to speak to machines.
- jacquesm 13y agoI think you're wrong about that. There were some stories in the 70's about that theme, specifically the parallels between 'magic' in one branch of fiction and programming a computer by interacting with them in some arcane language casting spells in another. The Well World series would probably qualify as an example of the latter. http://en.wikipedia.org/wiki/Well_World_series http://en.wikipedia.org/wiki/Well_World_series
- twic 13y agoA 1977 collection called "Tales From The Computer Room" contains a Bradbury pastiche called "On Mars, Sloppy COBOL is Sudden Death" (or something like that - that's from memory), in which the Martians end up murdering a Terran astronaut because he uses a GOTO.
- andybak 13y agoLearning a language, tooling and ecosystem represents a significant time investment. Whilst I aspire to being a polyglot and agree that it's a desirable trait, until you can arrange me a 30 hour day and a 10 day week, I'm going to spend my time where I get the highest return at the moment - getting things done in the best way I know how.
- ASneakyFox 13y agoThis is the age of Google. And in top of that all oop languages are basically based off eachothor. On top of that intellisense. I don't see what's so hard.
- rtpg 13y agoThis only covers a small subset of languages. Dynamic languages like python or ruby have very malleable definitions of what a class is, and a lot of static verification you can be used to in C# or Java isn't there anymore. Pattern-matching heavy languages like ML have much simpler object heirarchies than what you might find in OO languages, and have different design patterns to compensate. Purely functional languages like Haskell require a completely different way of thinking about state (seeing how there is none on a purely language-semantic level). There are many languages worth looking at that are not OO, and the lessons learned from really trying to learn them and their design patterns can make your code better in your "native" tongue.
- _random_ 13y agoC# supports dynamic typing BTW: http://msdn.microsoft.com/en-us/library/dd264736.aspx http://msdn.microsoft.com/en-us/library/dd264736.aspx
- chrisdew 13y agoTry some non-oop languages (e.g. Haskell, Clojure, Prolog, etc.) They're not so easy to switch between.
- pjmlp 13y agoOnly if you stick to the language grammar, instead of the mathematical concepts, eg Lambda calculus, Logic, ...
- espeed 13y agoHowever, once you grok a new language paradigm -- like functional programming or logic programming if you only knew OOP -- you get to see the world in a whole new way and then you realize the new way isn't harder, it's just different. It's experiences like these that reveal a bigger picture. It's experiences like these where you become more aware of how easy and limiting it is for our minds to get locked into certain ways of thinking. With each new lens you come face to face with the reality that the fewer mental models you have, the more each one colors what you see, think, and believe -- the thought patterns driving your decisions and ultimately setting your trajectory. It's experiences like these that transcend tech and reveal what Alan Kay means when he says "we see things not as they are, but as we are" and "a change in perspective is worth 80 IQ points".
- jsnk 13y agoYes, we get it, but repeatedly stating "A language is a tool, not an identity." every thread about X programming language adds nothing to the conversation. 1. Learning a new programming language or a framework requires a significant effort for someone to use it comfortably. No matter how smart you are, there's the inevitable "grind" you have to go through to achieve the level of familiarity with a new language. It's only natural that people gravitate towards what they are familiar with and grow attached to what they know more. 2. Identifying oneself with some programming language is completely fine. Would you have any problem if Dennis Ritchie identified himself as a C programmer or Matz as a Ruby programmer?
- uniclaude 13y ago> repeatedly stating "A language is a tool, not an identity." every thread about X programming language adds nothing to the conversation. You're being unnecessarily harsh, this type of comment might have educational value for newer developers. The fact that a programming language is a tool is not understood by all of us, and I personally admit that a very similar message I read on IRC opened my eyes when I was younger. > Would you have any problem if Dennis Ritchie identified himself as a C programmer or Matz as a Ruby programmer? Your own example ruins your whole argument. Matz is a programmer, he invented Ruby and wrote its interpreter in C. Calling him a C programmer or a Ruby programmer makes therefore very little sense. Same goes for Dennis Ritchie and the assembly he used to create C.
- bryanlarsen 13y agoTo be pedantic: Ritchie did not write C in Assembly, he wrote it in C. Or more accurately, version N of C was written in version N-1 of C. Version 0 of C could be compiled by the B compiler. Your point still stands though: you need to be fairly competent at assembly language to write a compiler that emits machine code.
- uniclaude 13y agoEither you or the wikipedia article is wrong. >"The origin of C is closely tied to the development of the Unix operating system, originally implemented in assembly language on a PDP-7 by Ritchie and Thompson, incorporating several ideas from colleagues." It's also written that the B rewrite only came later.
- zgoat 13y agoThis can be dictated by circumstances though, I work in a situation where programming isn't the main value add of the work (but is necessary anyhow), so people tend to identify with their language and formally "switch" because there isn't time to work with / learn more than one or two languages max. I've happily identified as a "Python programmer" while it was the main language I was using, and now more or less call myself a "Go programmer" after a similar switch. In less code-centric teams it's a handy way to identify where you are coming from. Another reply here noted the time investment can lead to attachment, I find this true as well. When I decided to switch to Go for my next project, the only way to learn it was to put in some serious hours on the weekend and late into the evenings. You can't help but identify with something when you make that kind of effort towards it. All of the little cognitive biases and tricks with ego keep you invested enough to keep learning.
- myth_drannon 13y agoTell that to the interviewer who needs you to dive into the project right away and he can't wait couple of weeks until you brush up your rusty X language that you used 4-5 years ago or even worse learned on your own time. It's not we that call us it's the other side of table that feels compelled to compartmentalize us
- kethinov 13y agoWhich they shouldn't do. Both sides of the table should embrace programming language agnosticism. I've spent most of my career doing PHP and later Node.js, but I'd be happy to take a job working on a product written in Python or Ruby if such an opportunity arose.
- joebo 13y agoIs it different than calling oneself a country singer, western author or violin player? All are useful descriptions in context and not necessarily identities
- levosmetalo 13y agoI don't know much about the difference between country and western, but would that mean that someone that sings western professionally won't be able to sing some country song the same day he haer it? Sorry, but if he can't do it, he's not a singer at all, neither country nor western.
- coldtea 13y agoA language is like a musical instrument. People say "I'm a pianist", or "I'm a guitarist" all the time. Sure you can learn more than one. But you can only really learn a few, and you only fully master (at the "concert pianist" level) one -- except if you're some crazy outlier. Same for languages. And I'm including the library and framework ecosystem, language tooling and culture here too.