

What are the best languages for aspiring programmers in 2014? - err4nt

Hello HN, I&#x27;m a front-end web developer and I write HTML, CSS, and work with with PHP and JavaScript. My girlfriend tinkers with a little HTML, a little CSS, and learned Java in university but has since forgotten most of it (just remembers the thrill of solving problems through code).<p>She&#x27;s interested in picking up programming again as a hobby and I&#x27;d love to join in on the fun too! She thinks building simple Android apps would be a good goal&#x2F;reward to work toward, so here&#x27;s my question: Which language(s) would be good for non-programmers to ease into that could eventually lead to hobby Android apps, or make it easier to learn further languages?<p>PHP - seems like it has passed peak relevance<p>JavaScript - seem useful but limited (but getting more powerful slowly)<p>Ruby - seems easy to get into but hard to perfect<p>Python - seems solid but with a steep learning curve<p>Java - saying Java is great because it works on all OS&#x27;s is like saying...<p>What would be some good options for us to tackle, are any of the above languages ideal, or there are other languages (like Go or others) that would suit us better? Any insight you could offer would be a big help to both of us!<p>Thanks so much, and happy hacking :)
======
jtreminio
> PHP - seems like it has passed peak relevance

You're joking, right? If you hang around HN and /r/php for too long then maybe
you might not be joking.

PHP is becoming better and better for each release.

VentureBeats says PHP powers 75% of the web[0], although they don't give an
exact source for that number.

Python is extremely simple to learn. Heck, there's a book for 8 year old
children to learn it[1].

If you're a pure front-end guy that doesn't have much experience with server-
side languages, why not learn something that utilizes Javascript? I've heard
good things about Node, for example.

Go and Java may be a little too different to what you know to serve well as a
starting point, imho.

[0] [http://venturebeat.com/2013/05/17/google-app-engine-
finally-...](http://venturebeat.com/2013/05/17/google-app-engine-finally-
supports-php-the-language-that-runs-75-of-the-web/)

[1] [http://briggs.net.nz/snake-wrangling-for-
kids.html](http://briggs.net.nz/snake-wrangling-for-kids.html)

~~~
err4nt
Don't get me wrong, I don't think PHP is going anywhere, and it certainly
won't decrease in usefulness - but since I first started dealing with PHP
around a decade ago I have seen it blossom and grow, but lately it doesn't
feel like it's such a good choice to jump onto.

Mind you, I just finally started releasing my own PHP code on Github this
year, but I just can't see how diving deep into PHP in 2013/2014 to be the
most useful exercise. It seems to me like many of the newer languages are
solving problems PHP has to work around, and I'd hate to introduce more
headaches to this than necessary.

I've done stuff with CMS's like Wordpress, Joomla, and others, and worked on a
variety of PHP-based web apps, but none of those seem to be a great spot to
jump on the bandwagon.

I do have a private server, which means I can set my PHP options however I
like (full access). If you know more about PHP than me and think it's still a
great time to hop on board, what are some resources or things we could do with
it that would fit the type of learning we want to achieve?

~~~
jtreminio
Wordpress, Joomla and Drupal are not good examples of "good" PHP code. They
work, and are used extensively, but experienced developers who care about code
quality blow a gasket when they look at the source code.

To do proper PHP development you should have a local VM. I created something
to help in that regard[0]. It's been fairly well received.

There's also websites like PHP The Right Way [1] that act like a collection of
best practices. If you're not using Composer[2] you should start doing so. I
wish Javascript had a package manager as robust and useful as Composer (I know
of Bower, but imo it's not nearly as good!). PHP Developer[3] is a source of
good daily blog posts. The ones I read on a regular basis are ircmaxell [4],
fabpot[5], lornajane[6], philsturgeon[7], richardmiller[8], and phparch[9]. I
also sometimes write some things[10].

[0] [https://puphpet.com](https://puphpet.com)

[1] [http://phptherightway.com](http://phptherightway.com)

[2] [http://getcomposer.org](http://getcomposer.org)

[3] [http://phpdeveloper.org](http://phpdeveloper.org)

[4] [http://blog.ircmaxell.com](http://blog.ircmaxell.com)

[5] [http://fabien.potencier.org](http://fabien.potencier.org)

[6] [http://lornajane.net](http://lornajane.net)

[7] [http://philsturgeon.co.uk/blog](http://philsturgeon.co.uk/blog)

[8] [http://richardmiller.co.uk](http://richardmiller.co.uk)

[9] [http://phparch.com](http://phparch.com)

[10] [https://jtreminio.com](https://jtreminio.com)

~~~
err4nt
Oh dear, thank you for these! I've finally moved from the 'I can edit existing
code' category to authoring my own simple scripts so these will definitely
come in handy. I've got some reading to do!

------
projectramo
Did you say Android Apps? Those are programmed in Java (natively).

~~~
err4nt
Yeah, Android apps are a goal/idea here, but I think what she's wanting is
something that she can make, that runs, that another person might actually
find useful. I know you probably shudder and cringe at the thought of Phone-
gapped apps, but I think for our purposes learning a little server-side
programming (where I already know how to do all the front-end stuff) could be
a viable way we 'see' our code on a mobile device. It could just be a web app
with a mobile interface too. I have my own VPS so custom language support on a
web server is no problem :D

------
erkose
The web designer crowd appears to favor ruby.

~~~
err4nt
My take on Ruby was that it's easy to get into and very malleable into
whatever you want, but because of that people can get set in their ways and
write code in a way that other rubyists may not be able to decipher (where
Python was described to me as there only being ONE valid way to do it: the
Python way).

I'm leery of Ruby on Rails because of the average quality of apps I see being
produced by it, I don't want to start down a path that can't lead to polished
great product in the end.

Are there more valuable approaches to Ruby than picking up RoR that we could
go after - or maybe I'm just way off base here and have been hearing biased
things. I'd love to hear why Ruby is a good fit as it seems like it can get
pretty messy pretty fast...

------
ericosperrella
English is probably the best language.

