I'm a self taught web developer working primarily with advanced PHP and wanted to get an idea of what you guys think is the most enjoyable language to create something with? I tend to feel "comfortable" coding things with PHP but hate the fact it's one of the poorest languages to have in the toolkit. Looking for prospects...
I'm pretty much a self-taught programmer in my 50th year of programming, and the languages I've enjoyed most aren't so much languages as environments. They all provide one thing: quick feedback: not necessarily a REPL, but very close.<p>They've included: assembly language on III Comp-80/FR-80, Basic and Modula-2 on DEC Vaxen, Oberon-F/Black Box on 68K Macs, and Octave, Racket, and Scala(in Eclipse) on current Macs. My favorite is still the Black Box environment, and I mourn the fact thet Oberon Microsystems hasn't seen fit to port it to Intel Macs.
Clojure (or any Lisp dialect). Because there are few simple powerful abstractions (so it puts less cognitive load in terms of language so you focus on problem) and of course you can change the language to suit your problem (whereas with other language you have to change your problem to suit the language)
Like you, I was a self taught developer working on PHP. I switched jobs to a Python shop and love it. It is so clean and nice to write.<p>That said, I think I like JavaScript the most. Simply because I know it the best, it's simple, and flexible.<p>I picked up Objective-C last year and really liked it too.<p>All that to say, there's a lot more out there and I think you should definitely explore outside of PHP. Once you get comfortable with a couple the rest come much easier and it doesn't really matter anymore.
I'd suggest looking at Perl with Mojolicious for web apps - great fun.<p>Just stay away from dated Perl tutorials - Perl development has evolved a lot over the years. (perlbrew also recommended)
For me it's always been the language that gets the job done. If you are a hobbyist programmer you can pick whatever feels fun or interesting, but if someone is paying you to code they usually don't care about programming languages. In most real work you won't get to choose the language anyway, because the decision has been made already or you are working with a big base of production code.<p>I enjoy getting things to work and making clients happy. The programming language doesn't really enter into it, though some tool sets can be more frustrating than others. I charge more if I have to work with something I know in advance will be tedious or painful.<p>As for saying PHP is "one of the poorest languages to have in the toolkit," that's only true for bragging to other programmers. PHP is what the majority of web sites are written with. If you want to make money programming you'll find that the uncool languages and tools such as PHP and MySQL (like Visual Basic and Access before them) are the richest vein of paying work.<p>Keep your eye on new things but don't forget that professional programmers -- those who get paid for programming -- shouldn't hobble themselves by insisting on only using their favorite language or tools.
I agree with a lot of you about PHP being quite great for the applicable job. I just tend to feel the hn community can be pretty biased at times. Either way, I appreciate the input. Lots of great points made, particularly:<p>"You can make a masterpiece in any programming language."<p>and<p>"Keep your eye on new things but don't forget that professional programmers -- those who get paid for programming -- shouldn't hobble themselves by insisting on only using their favorite language or tools."<p>I actually enjoy javascript better than PHP even though it tends to be more tedious.
C# for backend stuff (servers, DB access, business logic). LINQ, Lambdas, await and all the other syntatic sugar is unmatched.<p>MXML + AS3 for frontend stuff. MXML with the easy (two way) databinding, event system combined with a strictly typed language like AS3 are so fast to get things done and maintainable. (For the notes: I am not using FLEX witch is kind of bloated, just MXML)
Self-taught like you and by no means a coding genius (I can only really code Ruby/JS) - but I really enjoy Ruby's syntax, its super clean and simple. I think Python has a similar approach.<p>Well written Ruby just reads like plan 'ol English.
I like Python and JavaScript. But I code in Java because of robustness, speed (runtime and ... development speed, yes!) and because here (in Germany) Java is first choice language and because of good salaries.
A poor coder blames his tools (or language). You can make a masterpiece in any programming language. For that matter though I love PHP, been using it for over 10 years. I've used other languages extensively too but for my own projects it usually falls back to good old PHP.<p>I definitely wouldn't say it's one of the poorest languages to have in the toolkit though; <a href="http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html" rel="nofollow">http://news.netcraft.com/archives/2013/01/31/php-just-grows-...</a><p>Most enjoyable for web : php,<p>Most enjoyable for apps : c
For me its C# - but maybe because I've become 'fluent' in it, so I now find it easy to churn out decent code. Also I find the Visual Studio IDE a great help.
> I tend to feel "comfortable" coding things with PHP but hate the fact it's one of the poorest languages to have in the toolkit.<p>Well, then you've already lost, because you're accepting what the herd is telling you without any form of critical insight.<p>Enjoy wasting the next five years chasing fads.