views:

213

answers:

5

We've just had YAFLQ and it got me thinking.

What's the more popular approach?

Dedicating your life to "The One and Only True Language"?

Or just realising that they're all just different tools in your toolbox, and having a range of languages to select from, allows you to pick the best tool for the job at hand?

I guess this can be extended to architects as well? Not just seeing Unix or Linux or Windows as being "the one and only solution" but, if you are comfortable with them all, being able to select the best platform for the job.

Otherwise it's like a building architect who can only give you a brick house when you wanted something in wood.

+2  A: 

I truly enjoy knowing many languages. But from my experiences, workplace tends to be one and only one language. I can clearly understand the reason for this, if you leave the place and no one know the language you used, they are in a bad position. But it piss me off when I have a simple thing to do, and I know I can make it work within a few hours under Ruby, but I have to do it with C# just because we are a .Net place and it take me a few days.

pmlarocque
I really think that a workplace should adopt a set of languages as the standard. For instance, C# (or java, or c++) for core development, and ruby (or python, or perl) for scripting/side projects.
chills42
Real programmers can understand code written in any language, the problem is that most manager thinks that once you have written something in perl nobody except you will ever understand it. It will take more time for a programmer to understand the code at first, but it will happen just once.
Fabio Gomes
@chills42 totally agree to bad my boss do not! We have a choice, C# or Vb .Net duh!
pmlarocque
There is some hope for .NET shops - IronPython, IronRuby ...
gimel
@gimel Tried to pass IronPython in (as IronRuby still not 1.0), my manager did not like the funky name. He simply asked who know python here, I was alone :(
pmlarocque
+4  A: 

The more experience you get, the more you realise that they're just different tools, and the more you realise which may be suited to a particular task.

You also (mercifully) realise that it's not always important to learn The Latest And Greatest to program well.

Galwegian
+1  A: 

Definitely the toolbox approach. Every language has it's own set of strengths/weaknesses:

  • C is great if you need speed/low memory/etc.
  • Java is used everywhere
  • Python is readable and cross-platform.
  • Perl is flexible.
  • ... etc.

You have to pick the right language to match the design/goals of the project...

If you really think about it, all languages are just syntactic sugar anyway... as long as the language is turing complete, we can make it do anything we want. (although maybe not as fast as we'd like)

chills42
+6  A: 

Toolbox. If all you have is a hammer, every problem looks like a nail.

That being said, you shouldn't bring too many languages to a workplace, even though they're the best for the job. To make all the code maintainable, it's important that many people understand the languages used.

Ace
+1  A: 

You don't use a hammer where you only need a bulldozer. Polyglotism is the word of the day in this. You already probably use sql for data queries and so on. Having enough knowledge on different tools lets you choose the most suitable one for the task. There are big differencies in productivity in languages.

JtR