I work at a branding company doing web development and use PHP for all development because it's what I know and what I'm fastest with.<p>If I want to learn a new language to use at my job, is it appropriate to start a new client project with the new language or is it something I should learn on my free time until I become familiar with it?<p>The reason I ask is because I'd be using (or wasting) client/company time to learn something I can already do in another language.
I've always gone this route in terms of learning new technologies. If I think a tool is essential or will make the project better in the long run, I use time on the job to learn it. An example would be backbone.js. I recently had to build a complicated UI, and didn't want jQuery soupe (even well tasting soupe), so I went about reading the backbone source and engraining all the details of backbone over a couple of days, then I built the UI and the client and our company benefited from having well-organized, clean code, that is easily maintainable, and also I think it would have been much more difficult in the long run to even build the interface without backbone. As far as languages go, I've never had the "need" to learn a new one for a project (usually Bash,C,C++,PHP,Javascript fit the bill for most anything), and so I've always learned new languages in my free time. Without knowing any specifics, I would caution against using a new language for a client project, since the goal is to build the best app that best fits the clients needs, and using a completely new language is probably going to give you unneeded headaches and not be the best code.<p>Just out of curiosity, what's the language your thinking about learning?
It's largely a question of internal standards and maintenance. If everyone else is writing PHP and you decide to build a site in Rails, you're creating a maintenance problem for everybody else.