News for hackers. Stuff that matters.
Re:Why I Went From Python To Go (and not Node.js) (2012) by adamors on Wednesday April 16, 2014 @03:15AM (#7596511)
>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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by coldtea on Wednesday April 16, 2014 @08:19AM (#7597271)
A 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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by andybak on Wednesday April 16, 2014 @03:32AM (#7596537)
Learning 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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by pjmlp on Wednesday April 16, 2014 @04:35AM (#7596699)
On the consulting world I work on, there is only space for polyglots.

The customers dictate the technology stack and we are expect to be able to dive in, learn what is missing from our side and start developing.

Re:Why I Went From Python To Go (and not Node.js) (2012) by coldtea on Wednesday April 16, 2014 @08:22AM (#7597283)
Well in other consulting worlds, and lucrative ones at that, they specifically ask for people like C++ experts, Java experts, Fortran and Cobol experts etc. Heck, I've seen people specialized in some specific vendor toolset get top dollar from consulting.
Re:Why I Went From Python To Go (and not Node.js) (2012) by pjmlp on Wednesday April 16, 2014 @08:58AM (#7597426)
Just like our field.

You just need a mix of real experts, the ones dealing directly with the customer on site, with a blend of not so experts hacking along a few lines behind in the battlefield.

When one those "not so well experts" gets the next gig, they are themselves experts in the said technology. :)

Re:Why I Went From Python To Go (and not Node.js) (2012) by ASneakyFox on Wednesday April 16, 2014 @03:37AM (#7596552)
This 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.
Re:Why I Went From Python To Go (and not Node.js) (2012) by rtpg on Wednesday April 16, 2014 @03:43AM (#7596570)
This 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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by _random_ on Wednesday April 16, 2014 @02:47PM (#7599691)
Re:Why I Went From Python To Go (and not Node.js) (2012) by chrisdew on Wednesday April 16, 2014 @03:48AM (#7596581)
Try some non-oop languages (e.g. Haskell, Clojure, Prolog, etc.) They're not so easy to switch between.
Re:Why I Went From Python To Go (and not Node.js) (2012) by espeed on Wednesday April 16, 2014 @06:32AM (#7596952)
However, 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".

Re:Why I Went From Python To Go (and not Node.js) (2012) by kazagistar on Wednesday April 16, 2014 @08:24AM (#7597292)
Between, say, Python and Haskell is a pretty solid difference. If you spread out your known languages well enough, however, most languages become very close.
Re:Why I Went From Python To Go (and not Node.js) (2012) by pjmlp on Wednesday April 16, 2014 @04:37AM (#7596704)
Only if you stick to the language grammar, instead of the mathematical concepts, eg Lambda calculus, Logic, ...
Re:Why I Went From Python To Go (and not Node.js) (2012) by myth_drannon on Wednesday April 16, 2014 @06:47AM (#7596990)
Tell 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
Re:Why I Went From Python To Go (and not Node.js) (2012) by kethinov on Wednesday April 16, 2014 @10:30PM (#7601740)
Which 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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by zgoat on Wednesday April 16, 2014 @06:19AM (#7596927)
This 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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by joebo on Wednesday April 16, 2014 @06:52AM (#7596997)
Is it different than calling oneself a country singer, western author or violin player? All are useful descriptions in context and not necessarily identities
Re:Why I Went From Python To Go (and not Node.js) (2012) by levosmetalo on Wednesday April 16, 2014 @06:59AM (#7597018)
I 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.
Re:Why I Went From Python To Go (and not Node.js) (2012) by franze on Wednesday April 16, 2014 @03:30AM (#7596536)
said 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.
Re:Why I Went From Python To Go (and not Node.js) (2012) by twic on Wednesday April 16, 2014 @09:46AM (#7597682)
A 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.
Re:Why I Went From Python To Go (and not Node.js) (2012) by jacquesm on Wednesday April 16, 2014 @06:02AM (#7596886)
I 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

Re:Why I Went From Python To Go (and not Node.js) (2012) by jsnk on Wednesday April 16, 2014 @03:35AM (#7596547)
Yes, 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?

Re:Why I Went From Python To Go (and not Node.js) (2012) by uniclaude on Wednesday April 16, 2014 @06:01AM (#7596884)
> 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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by bryanlarsen on Wednesday April 16, 2014 @06:55AM (#7597007)
To 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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by uniclaude on Thursday April 17, 2014 @01:01AM (#7602065)
Either 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.

Re:Why I Went From Python To Go (and not Node.js) (2012) by bryanlarsen on Thursday April 17, 2014 @09:11AM (#7603314)
Unix was originally written in assembly language.