views:

2190

answers:

21

As a web developer, what languages do you think would be widely used (most popular) in a couple of years? Currently I am coding in PHP, but I would like to know if I should start heading into a new direction.
Many companies are going with ASP.NET and ColdFusion, should I start switching/learning these languages, or does PHP still have a couple of years left?
I just want to know in what directions most companies are heading.

+10  A: 

Just knowing multiple types of languages is good, not only because of the future of said platform but when a next generation of languages comes along, you can pick it up in a short time due to your experience in the field

Ólafur Waage
+1  A: 

PHP certainly has it's short comings (from duck typing, weird OO support, etc.,) but that's not to say that it's going away any time soon.

Do some searching on SO -- there are many questions similar to yours.

Any lastly, it's always good to know more than one language :)

Ian P
Can you please revise to make the answer less flamebait?
Sklivvz
Critical of PHP is not flamebait.
palmsey
I mean change this "PHP certainly has it's short comings (from duck typing, weird OO support, etc.,) but that's not to say that it's going away any time soon." to this "PHP certainly has its shortcomings, but that's not to say that it's going away any time soon."
Sklivvz
That's critical of PHP, but not flamebait.
Sklivvz
That's actually "nit-picking" - Nothing about this reply gets me riled up - all the languages suck somewhere or another.
Hugoware
Funny that the things mentioned aren't actually problems with PHP. They are merely characteristics of a dynamically typed language. PHP has problems, but not those.
troelskn
I don't think there really is anything wrong with PHP. Just PHP programmers :). Everything stated in this could be said about other languages. One programmer sees short comings, another programmer sees great features.
bruceatk
+43  A: 

Be a good programmer, not a PHP guy or .NET guy.

palmsey
I personally think that a good programmer has a specialty. Being a "PHP guy" does not mean your a bad programmer.
Jose Vega
In terms of career flexability in the future being a good programmer that can be flexible in what language your hired for is better. I think that is what the author meant in answering the original poster.
RedWolves
Completely agree! Languages come and go in fashions. Learning the fundamentals, though, stays with you for life.
Joe Pineda
I agree with being a good programmer above the language or the platform. But he's asking what to learn. It's a question about the tools. The tools doesn't make you a good builder... but tools are important! (and define some kind of scope to where you can go)
helios
I agree that PHP and .NET sucks. When a big company is looking for employee with 3 years of Java experience - just tell them that you did 1 year php, 1 year .net and 1 year Java. They will understand that you are more than they ask for and you wont even get an interview.
01
+1  A: 

I don't think PHP is leaving anytime soon, because it is being actively developed.
ASP.NET does also look like a good choice. My guess is that future would not be about languages, but about frameworks and libraries.

Currently, you have a lot of libraries out there and they still compete with each other to get a piece of developer market. So, the true question is which libraries will prevail and which ones are going to be the market leaders. Just like Delphi ruled desktop development market years ago, the whole RAD and IDE actually won, not Pascal as a language - although I admit Pascal is nice.

Milan Babuškov
+7  A: 

This is more like 'the future of web programming'.

It's always a question of what tool is best for the job, and not 'how can I make a screwdriver act like a hammer'.

I'm not saying learn them all, but rather, learn widely available languages first, then pick up syntax for appropriate solutions as you go.

Pete Karl II
"This is more like 'the future of web programming'." -- yes, that's the title of the question... ;)
Sklivvz
no, it's not. the omission of "languages" is the difference
Matt J
I still don't get the difference...
Sklivvz
Web Programming is a wide spectrum including management, tech transfer, syntax, architecture, resources, and any number of other disciplines. Talking only about 'which language should I hax next' is not really useful for anyone.
Pete Karl II
you can often use a screwdriver as a hammer, it really gets tricky the other way around though. ;)
Sylverdrag
good point, so when you want the best tool to get the money pick Java. I bet all companies likes to have every app written in different language that is the best for that problem.
01
+1  A: 

First of all, none here knows the future.

Second, knowing multiple languages is a must in programming. Of course you can master some more than others but, always play safe.

Third, PHP is not dying, but sometimes Java or .Net can be more "structured" for language in business. That doesn't mean that in few years PHP will not change and become as strong as Java or .Net for business.*

*PHP is strong, but business seems to like more .Net or Java because of many reasons.

Daok
+4  A: 

Knowing lots of different languages/frameworks is overrated. Beyond a certain level of basic competence, general intelligence is more important than technical knowledge.

Christopher
I agree with you that generalintelligence is very important, but your statement "Knowing lots of different languages/frameworks is overrated" I believe is wrong. Learning languages gives you frame of reference and will there by help you choose the right language for a given problem.
Jacob T. Nielsen
I suppose I agree. But only if (as someone upstream said) the languages are significantly different in concept. Say, assembly, a functional language, and a C-like language. No point in only learning 4 imperative languages.
Christopher
Great point, its always better to know nothing. You are not slowed down, but all this knowlage(i know i wrote that word incorrectly, but i'm smart, so who cares?). When you know nothing you can easier learn new things - not that you should, don't fall for that!
01
+1  A: 

I think a good choice would be to learn multiple languages that are different from each other (different ways of programming, not just syntax).

This will give you a broad experience, and when the time comes to use an unknown language in a project, you'll likely have tried a similar language before.

My 2 cents.

Sir Code-A-Lot
A: 

PHP will be viable for a long time. It doesn't hurt to learn ASP.NET, Java and Ruby. Don't try to learn them all at once. Stay focused on PHP unless after learning some other language you decide you should focus on a different language.

bruceatk
+1  A: 

Judging from what we've seen in the past few years, the popularity of a web programming language relies on two things - one is ease and speed of development, and the other is how powerful an app you can build with it. Look at how fast Ruby on Rails became popular, and why. I'm not saying that it's among the most popular languages now, but it certainly has it's share of devoted followers. Then again, Java on Spring MVC is still an extremely popular choice for building enterprise web apps, and for a good reason - you can build good, thoroughly tested and robust code. So, what can we conclude from all this? A future web programming language of choice of most developers would have to satisfy these terms - allow you to build powerful apps that have robust code, yet do it with the least possible effort. And, on top of all that, allow you to provide your users with a good user experience. Personally, I'd watch out for technologies for creating RIAs, like Flex, OpenLaszlo and others. They certainly have a lot to go when it comes to developing web apps, but I can see a bright future for them.

Sandman
+1  A: 

I suggest getting a strong working knowldge of the fundamentals that can translate to most languages.

I would suggest knowing some C because it teaches you pointers, memory and a lot of other programming concepts that will help you with other langauges.

Ben
+1  A: 

Programming is really about understanding abstract concepts. A [good|real] programmer can code in anything, provided he has reference material available for the environment he's got to code in. The comprehension of the business problem and what's needed to solve it are what's important. The language model is irrelevant to the bottom line.

That said, some are [easier|faster] to develop in, depending on pre-existing code that you have to interface with and how you go about debugging. When crossing environments, XML-RPC and SOAP are your friends. I am currently interfacing an application written in perl with an application written in classic ASP by creating XML-RPC servers in ruby. Fun stuff. However, the classic ASP is a horrific environment for debugging that I wouldn't wish on my worst enemy.

Tom Lahti
A: 

I really think that a form of JAVASCRIPT will become the standard one day

WACM161
+1  A: 

It shouldn't hurt you to learn more languages even if they are not going to be widely used. You can always get new ways of thinking from different kinds of languages.

Currently, there is some increasing popularity of functional programming, and dynamic languages are already widely used. You could at least sneak peek some of these languages so you can make decisions on what to use when the time comes.

Null303
A: 

It's not only about languages of course but about arquitectures. Try to see the global picture and caracterize the most used platforms.

By example: Java and .Net platforms provide more or less the same complexity (layers, abstractions). It can fit better for large or modular applications. PHP on the other side has a very different approach. You can also compare how every technology is more or less accesible. Again with Java vs. Net example: Java is more like multiple implementations, standarizations, strategy pattern, and .Net is a more centralized platform, giving more direct access to the developers.

So, try to see what things appeal the most to you (it's important to feel comfortable too) :)

helios
+1  A: 

Knowing multiple languages and being a polyglot is obviously advantages. However, at some point you have to pick a language to develop in and you will probably become more proficient in that language than the others you know.

One way to see what the trends are is to look at Google trends and see how search terms for different languages have changed over time. There's a blog post here about it.

I've also seen people analyze book sales for programming languages as a way for determining trends in languages. However, book sales of programming books are declining as more programmers turn to the web and sites such as Stack Overflow for information.

Guy
A: 

The current trend is towards javascript applications that have offline support, with client-side storage. This is already mostly the model that the google apps use. You can do this today quite easily with google gears, or natively in chrome. I expect that over time server-side html generation is going to become a thing of the past, or at most something for the first page view, and you'll use the server only as a collection of web services for data storage and data processing. So, what you'll need to know in 5 years: javascript, gears (html5 storage, worker pools, ...) and web services.

Joeri Sebrechts
A: 

Hmm difficult question.

I'm C# dev, I've done a fair bit of php in the past, and have a background in C/Java. Which language next... Javascript and F# at the moment.

+1  A: 

PHP is still going to be around for more than a couple of years.

However, if you do see a clear trend in your area, it's worth investigating further - maybe you could contact a few of the companies and ask why they are changing? (Afterall, even if 90% of the world is using language X, if you're in the middle of the 10% that doesn't use it, it's not the best choice for you.)

Eitherway, knowing (at least) the basics of several languages is always a good thing.



---

For ColdFusion / CFML, it is an interesting time...

  • the CFML language is being formalised by representatives of the three main engines plus key community members, to produce an open standard.
  • Adobe is working on ColdFusion 9, for which they are focussing on developer experience.
  • Railo 3.0 is out recently, with some really cool features (cfvideo & multimedia, cluster scope, easy Amazon EC2 and S3 use, and more)
  • Railo 3.1 is due in November, when they go LGPL v2 with Redhat/JBoss.
  • OpenBlueDragon is already out as GPL v3, with the first versioned release coming shortly.


With all this happening, CFML is definitely not going away, and is a good choice if you're looking to learn another language.

Peter Boughton
A: 

I'd take a somewhat different tact and ask if you know:

1) Web server software, e.g. how to configure Apache or Microsoft Internet Information Services or Websphere.

2) Database, e.g. MS-SQL, Oracle, MySQL to name a few.

3) Browser compatibility. How well does what you write work in IE8, Firefox 3 or Google Chrome? This is another area where developers have to keep on top of things in terms of which browsers are supported as well as which version.

4) Mark-up languages. HTML and XML are a couple of examples of what you may end up using at times and so familiarity with the concept is good.

5) Internet guts. So besides a web page, what other web ways are there? Web Services and AJAX are a couple of other ways for the Web to be used beyond the simple HMTL web page. RSS and some of the newer social media sites may be other ways that people communicate over the internet.

PHP is fine for a server-side programming though you may want to try some Java or C# just to try out a different language that are common for middleware and back-end systems.

JB King
A: 

What's the matter with you people?

This guy works in PHP and asks for alternative Web Programming Languages.

21 answers so far, people recommend Javascript, Java, Ruby, C#, F#, Railo (wuzzat?), SQL, C (!), Perl, yet nobody mentions Python??

Now I'm afraid to check outside of the windows for the fear of discovering that I woke up in a parallel universe. With no Python. Shit....

Marco Mariani