

Ask HN: PHP vs Rails vs obj C vs scala - smwhreyebelong

So I am fairly well versed in Javascript, DHTML, CSS et al and have done a good amount of C/C++ in the past.<p>I'm looking for the next thing to add to my skill set and there are a bunch of things I am considering and I am thoroughly confused. The case for each of the above is here :<p>- PHP : Huge installed base. backed and used by Y! so a safe choice and not going away anytime soon. Not a steep learning curve. Hard to find something new / something that hasn't been done before.<p>- Rails : The new 'cool' framework everybody is talking about since it makes front-end dev really easy. Steeper learning curve.<p>- objC : helpful when developing for mobile devices. Fun programming environment.<p>- scala : A brand new way of thinking about things. Arguably more scalable ?<p>Thoughts, suggestions, comments, expriences (good/bad) ?
======
evdawg
Hey, if you think Objective C is fun, go for Objective C. If you're not
enjoying learning a new language and adding it to your skillset, you're doing
it wrong. Do you want do pursue jobs in a language you don't enjoy coding?

Scala / Ruby are viewed as "fun" languages as well. You might as well try
everything... you might find a groove quickly in one of them.

------
alanthonyc
For your consideration: Django / Python.

Not sure why they're not on your list, but I was pretty much in your shoes a
few months ago and am having a lot of fun with these at the moment.

------
spooneybarger
If you want to add to your skill set, I would think you have a couple possible
motivations...

motivation a- expand the mind.

If that is the case and you know c/c++, I would say, go with scala as it is
the farthest afield from what you already know.

motivation b- develop a marketable skill.

If that is the case, then I've always been of the opinion that it is better to
develop skills that others don't have. If you learn PHP, you've learned a
commodity skill. If you learn scala, you are in a select few for the time
being and although their might be fewer jobs, there will also be less
competition for them and you can probably charge more. I don't know what the
going rate for Rails developers is now but a couple years ago, it was crazy
high because the demand outstripped the supply.

------
TallGuyShort
If you've done a good amount of C/C++ in the past, you'll find very little
trouble picking up objC and PHP if you need them for a particular project. If
you want to expand your skills, I would learn scala. MAYBE Rails.

------
compay
PHP is easy to pick up but will likely teach you bad programming habits. This
is coming from someone who got their start with PHP. :-)

If you want to do web stuff I think Ruby and Python would be better choices.
If you want to avoid the learning curve of Rails, you can start off doing
stuff with Sinatra instead, and mostly just tackle the Ruby learning curve
first.

------
smwhreyebelong
The other thing was availability of good projects to work on for the
languages.

For objC, I can think of a few iPhone apps I could work on to learn the
platform. For things like PHP, Rails, Scala (where you'll need a good amount
of traffic to really excel at them and get real world experience beyond some
small hello-world-like web-apps), how does one get involved with the
complicated/ involved stuff ?

------
dem0o8
PHP + CakePHP framework

as one of the commenter pointed out about bad programming habits with PHP, a
framework will give you guidelines on good coding practices. It'll also help
you develop faster and it's also quite easy to integrate with the front-end.
CakePHP is like Rails framework but for PHP

------
yan
What are your goals?

~~~
smwhreyebelong
I wanna start my own thing in a couple of years. I am doing a bunch of
Javascript/HTML/CSS at work.

~~~
mpf62
It sounds like you are "fit" on the client side. If you want to start
programming the part on the server side, I would propose to study "data
modeling" first. If you do not even know what "entity" means, your backend is
probably going to a permanent construction site. If you are not able to
"design" a good fundament it doesn't really matter what programming language
you are going to use. Choosing/switching the programming language is the easy
part - in my opinion.

