views:

323

answers:

8

I am resonably experienced with asp.net and would like to learn a new language with a focus on web development.

Licensing and hosting costs are why I would like to use something not reliant on microsoft so something based on open source technologies is a plus. I have had a tiny bit of experience with php and did not like it but I guess I could be convinced otherwise.

Basically I'd like to know peoples opinion on the the best language for future web development with regards to longivity, resources, frameworks, hosting etc.

+6  A: 

In my opinion (and this is opinion), nothing beats Java/J2EE for corporate web development.

The tools are very good (Eclipse and its ilk are open source) and the architecture is very well understood.

Despite the Oracle purchase of Sun, Java won't be disappearing any time soon so that covers longevity. Resources and frameworks, you just have to Google to see how much is actually around for J2EE - it's an impressive amount (so there's bound to be some nuggets amongst all the dross). As to hosting, you have a wide range of web/application servers to choose from.

As an aside, we use Eclipse to make our J2EE applications with jQuery pumped out on the client side for UI pizazz.

paxdiablo
+7  A: 

Python, with a framework like Django, is an increasingly popular solution for web development. It's also compatible with Google App Engine which makes deployment simpler than running your own hardware.

Greg Hewgill
A: 

if you want to go free go for Java/J2EE. however it's not worth the bother. it's easier to shell out the money. i use aspspider to testing before hosting.

see_sharp_guy
A: 

JavaScript can be a good backbone if well implemented.

Perl can provide advanced features not incorporated in other languages.

Java is good but it's slow sometimes, be careful if you decide to write most of the code in it.

Secko
-1, "Java is good but it's slow sometimes" <-- Bullsh*t.
missingfaktor
+8  A: 

Just like the rest of the industry, no "best" option is available -all frameworks has its own share of strength, and weakness. Basically, when it comes to web development, there are 4 stable technology stacks:

  • ASP.NET -you already know it
  • PHP: strength: web development standard, and scaling it to very high levels is not only possible, but rather easy. Well documented, and a large array of libraries are already available. Weakness: due to ease of getting the basics, the surrounding community is rather noobish, which resulted in several khm less, than optimal khm code-bases. This can, however, be improved.
  • Java/J2EE: strength: stable scalability, a very large, and diverse set of tools already available. weakness: choosing the most optimal stack for your situation can be hard; hosting costs might be higher, than PHP
  • Python, along with Django
  • And the +1 is Ruby; the jury is still out with this one.

With all web developments, the question boils down to what you want to achieve, and what experience you / your team has. Statistically, PHP tends to be most popular choice, due to the fact, that any random developer can pick it up rather easily (compared to the other options), dive into the codebase, and fix / hack things right away. Again, YMMV, do the research, instead of asking for opinions.

Silver Dragon
+1 for PHP. It's not as horrible a language as people make it out to be. It is pretty easy to shoot yourself in the foot if you're so inclined, but good PHP code is as good as any other language. The benefits (ubiquitous, cheap, great docs) often outweigh the downsides.
deceze
Also +1 for Ruby, just because it brings some fresh perspectives with it.
deceze
As someone who programs all day in PHP, I have to disagree with the recommendation. While PHP is indeed a great choice for newbies who just want to copy/paste together something simple, but when you're talking about serious applications, there are other languages with better syntax, frameworks and tool chains. I would suggest java or ASP.NET, possibly python.
Joeri Sebrechts
+1  A: 

Ruby on Rails will probably be the most eye-opening experience. It's a lot of fun. The only downside is that you may not "get it" (especially the "why is x done this way") without at least buying the Pragmatic Programmers book Agile Web Development with Rails.

JasonTrue
A: 

Here is my two cents, I "came up the ranks" as a web designer/Front-end Engineer. I have masterly of the client side technologies. Then faced with a project where I would have to write code for the full stack, I chose PHP. For a long time I wished I chose Python because I heard from other people how fundamentally inferior PHP is, but once I sat down and thought about it, I realized my PHP application is well written.

PHP is what you make it. It will never have the speed of a compiled language, but that is true for 99% of interpreted languages. Further, when you think about it, for most web applications, the greatest time waste when loading a page is not the server parsing the scripting language, but the transfer of data over the wire and the browser painting the screen (by rendering your well or poorly written CSS/JS).

So my verdict, for most web applications, I recommend using a good PHP framework like the Symfony framework with the Doctrine ORM. This approach enforces you to write "good code". If you are writing an application to do flash-trading for Goldman Sachs, then maybe you need a compiled language. I am thinking Pascal or Ada.

Note: I will learn many other languages, python, perl, etc. It will be interesting if I still agree with this answer in two years.

Christopher Altman
A: 

Professional hosting will probably not see a significant difference in price from one platform to the next (at least when comparing .NET, JEE, php, etc.). The cost of databases, qualified technicians, hardware infrastructure, etc. far outweigh that of the operating system and possible application server licenses you'd have to cover.

That said, php and rails probably appear cheaper than .NET and JEE in particular (I've not seen many hosting providers offering other services like Python) because there are many more in that market segment offering lowcost, low service, packages. Lower uptime guarantees, lower bandwidth, etc. as compared to JEE especially which is usually targeted at higher end customers. Think of php being offered to the neighbourhood DIY store when Home Depot chooses JEE because they want 24/7 availability and expect a far larger number of visitors. Of course that package will be a lot more costly, but you get what you pay for.

It's probably possible to develop the same package using php (never tried, I'm a fulltime JEE developer working on large corporate and (semi)government applications) and the final cost of hosting it would be pretty much the same (especially if you chose to use the same RDBMS as a backend, rather than phps default mySQL whereas JEE projects tend to drift towards Oracle and other highend offerings, but even with that difference that's not a major factor in the running cost which is determined mostly by the hardware architecture of the hosting provider, network usage, etc. (if we assume similar number of support calls due to application bugs/feature requests, etc.)).

jwenting