01-06-2010, 12:03 AM
|
#1
|
GOAT!
|
Best Web Application Language/Framework?
Python/Django? Ruby/Rails? PHP/Cake?
My focus is on database-driven web apps. I don't really know the right questions to ask, but I want to pick a language that I can learn parallel to all this VB crap I'm learning in class right now.
Also, where does Ajax fit into all this? I thought it was a framework itself, but Wiki has it listed as a column heading right beside "MVC" on its web application framework comparison page. I know MVC is a programming methodology, so why is Ajax listed in the same way?
Anyway, I'm rambling. All I know is learning VB is giving me the basics, and it's probably going to be up to me to teach myself the really good languages. Whenever I try to pick something to learn, I wind up getting lost in the endless stream of articles about why one language is better than the other, etc. They all just lead me in circles though, because everyone thinks their language of choice is better than the other ones.
So... what do some of you guys think? Is there a simpler way of picking something? Rails would be pretty easy to pick up, since there is a ton of documentation and videos, etc, but the scalability issues concern me. As a counter point, Django looks really good, but there is almost nothing out there in the way of professional instruction media... PHP had the advantage of being solidly tried and tested over the years, but that doesn't necessarily make it an automatic choice for someone looking at a future career...
Yeesh. Maybe I should just go back to running networks.
Edit: I should mention that I'm currently trying to teach myself Objective-C... I don't really get what makes it so special, though, other than it's the language of choice for OS X apps.
Last edited by FanIn80; 01-06-2010 at 12:07 AM.
|
|
|
01-06-2010, 08:33 AM
|
#2
|
Atomic Nerd
Join Date: Jul 2004
Location: Calgary
|
OT: without your pew, pew cat, I don't recognize you anymore.
|
|
|
01-06-2010, 09:21 AM
|
#3
|
First Line Centre
Join Date: Oct 2002
Location: Calgary
|
If there's enough nerds here, this thread is just going to end up being another circle of "my language is better". Nothing is "best" - there are tons of competing technologies and all of them do something better than anyone else.
I don't really understand why the wiki would list Ajax support at all. As long as you can use javascript on the client and the server can handle XMLHTTPRequsts, you can have Ajax. I suppose, in a sense, Ajax is a programming methodology but it's more of a data-retrieval/view-update technique than a software design pattern. I'm guessing it means that the language has a native Ajax framework of its own?
I can't speak to Ruby/Rails, but I've got a friend who works in it and raves about it. As I understand it, it's better suited for getting a web application up and running in a shortest period of time and less suited for large-scale web applications.
I noticed you didn't list C#/ASP.Net in your list but it's no joke. C# started out sort of trying to match Java but in the new versions of .Net, they've been beating Java to the punch in a lot of areas. .Net now has it's own (apparently very good) Ajax framework - from what I hear it's one of the simplest to use available. .Net's templating is solid, garbage collection is good, reasonable learning curve, etc. If you're used to objective-C, Generics will change your life!
But by far the "best" web tech I've used is GWT/Java. I say "best" because you can have a database-driven web application up and running in no time but it's also good for large-scale web apps. Java is a far more powerful/elegant programming language than say, PHP, but the biggest knock on using Java for web apps has always been the web frameworks available (i.e. Struts, JSF, etc.). They are heavy, cumbersome, hard to learn, etc. Enter GWT.
GWT allows you to program your UI in Java code, meaning you get all the tried, tested, and true Java development tools at your disposal for UI development. To my knowledge, you won't get that anywhere else. On top of that, GWT is based on direct DOM manipulation meaning you ideally update the UI purely in the client rather than having a server build and send new HTML down to the browser every time the user clicks something. You can shift a big chunk of your web app processing cycles to the client and hit the server only on the first visit and for data updates. A server that was almost unusable serving a Struts app could handle a GWT/Java app without skipping a beat.
Plus, if this wasn't implied, GWT ALL Ajax. The user experience is excellent. Web designers love it because you can code your widgets to compile differently for IE than Mozilla, etc. Developers love it because any Java guy can code the UI, since it compiles java code into obfuscated javascript, and they can use a mature OO language on the backend with all the goodies (Hibernate, ANT, etc. etc. etc.). Java's got huge community support and GWT does now too; Google's been pushing it pretty hard.
|
|
|
01-06-2010, 09:31 AM
|
#4
|
GOAT!
|
Quote:
Originally Posted by MickMcGeough
If there's enough nerds here, this thread is just going to end up being another circle of "my language is better". Nothing is "best" - there are tons of competing technologies and all of them do something better than anyone else.
I don't really understand why the wiki would list Ajax support at all. As long as you can use javascript on the client and the server can handle XMLHTTPRequsts, you can have Ajax. I suppose, in a sense, Ajax is a programming methodology but it's more of a data-retrieval/view-update technique than a software design pattern. I'm guessing it means that the language has a native Ajax framework of its own?
I can't speak to Ruby/Rails, but I've got a friend who works in it and raves about it. As I understand it, it's better suited for getting a web application up and running in a shortest period of time and less suited for large-scale web applications.
I noticed you didn't list C#/ASP.Net in your list but it's no joke. C# started out sort of trying to match Java but in the new versions of .Net, they've been beating Java to the punch in a lot of areas. .Net now has it's own (apparently very good) Ajax framework - from what I hear it's one of the simplest to use available. .Net's templating is solid, garbage collection is good, reasonable learning curve, etc. If you're used to objective-C, Generics will change your life!
But by far the "best" web tech I've used is GWT/Java. I say "best" because you can have a database-driven web application up and running in no time but it's also good for large-scale web apps. Java is a far more powerful/elegant programming language than say, PHP, but the biggest knock on using Java for web apps has always been the web frameworks available (i.e. Struts, JSF, etc.). They are heavy, cumbersome, hard to learn, etc. Enter GWT.
GWT allows you to program your UI in Java code, meaning you get all the tried, tested, and true Java development tools at your disposal for UI development. To my knowledge, you won't get that anywhere else. On top of that, GWT is based on direct DOM manipulation meaning you ideally update the UI purely in the client rather than having a server build and send new HTML down to the browser every time the user clicks something. You can shift a big chunk of your web app processing cycles to the client and hit the server only on the first visit and for data updates. A server that was almost unusable serving a Struts app could handle a GWT/Java app without skipping a beat.
Plus, if this wasn't implied, GWT ALL Ajax. The user experience is excellent. Web designers love it because you can code your widgets to compile differently for IE than Mozilla, etc. Developers love it because any Java guy can code the UI, since it compiles java code into obfuscated javascript, and they can use a mature OO language on the backend with all the goodies (Hibernate, ANT, etc. etc. etc.). Java's got huge community support and GWT does now too; Google's been pushing it pretty hard.
|
You know... I keep hearing good things about Java lately. I'll be honest, Java really turned me off in the early days with its clunky VMs and those annoying early web apps which were just animated bodies of water in a loop. Even today, I still hate that first moment when I realize there's just no way to avoid installing a JRE on my newly set up machine. Perhaps I should give it another look though. That GWT framework does sound interesting.
Also, it's good to hear some good things about C# and ASP. I do like the .Net IDE, so it's nice to know there might be a valid option for me in there.
Last edited by FanIn80; 01-06-2010 at 09:41 AM.
|
|
|
01-06-2010, 10:01 AM
|
#5
|
First Line Centre
Join Date: Oct 2002
Location: Calgary
|
Quote:
Originally Posted by FanIn80
You know... I keep hearing good things about Java lately. I'll be honest, Java really turned me off in the early days with its clunky VMs and those annoying early web apps which were just animated bodies of water in a loop. Even today, I still hate that first moment when I realize there's just no way to avoid installing a JRE on my newly set up machine. Perhaps I should give it another look though. That GWT framework does sound interesting.
Also, it's good to hear some good things about C# and ASP. I do like the .Net IDE, so it's nice to know there might be a valid option for me in there.
|
I haven't used the .Net IDE since 2005; it was a hog then but I've heard good things lately. My favorite is Eclipse for Java/HTML/etc. Lightweight enough to run on my netbook but surprisingly powerful. Some of the best refactoring tools I've ever used. Awesome plugin support.
The whole write-once-run-anywhere java concept hasn't exactly panned out as well as planned as JREs never really became totally standard in OS's. But almost everything requires the runtime library to be installed - C++ has a runtime environment, the .Net framework is far heavier than any JRE, etc.
Just to be clear, the JRE is of no consequence here. Web app clients don't need it, and as a developer you'll need the JDK (probably will come with the IDE, like most languages).
|
|
|
01-06-2010, 10:01 AM
|
#6
|
GOAT!
|
Quote:
Originally Posted by Hack&Lube
OT: without your pew, pew cat, I don't recognize you anymore.
|
Ha. Yeah, I was half asleep the other night and thought it might be fun to change my avatar to an OS X logo. I figured it would mess with some heads and get some fun comments, but no dice.
|
|
|
01-06-2010, 10:08 AM
|
#7
|
GOAT!
|
Quote:
Originally Posted by MickMcGeough
I haven't used the .Net IDE since 2005; it was a hog then but I've heard good things lately. My favorite is Eclipse for Java/HTML/etc. Lightweight enough to run on my netbook but surprisingly powerful. Some of the best refactoring tools I've ever used. Awesome plugin support.
The whole write-once-run-anywhere java concept hasn't exactly panned out as well as planned as JREs never really became totally standard in OS's. But almost everything requires the runtime library to be installed - C++ has a runtime environment, the .Net framework is far heavier than any JRE, etc.
Just to be clear, the JRE is of no consequence here. Web app clients don't need it, and as a developer you'll need the JDK (probably will come with the IDE, like most languages).
|
Actually, this brings me to another thing I'm wondering about... IDEs. There's a ton of them out there, which ones do people like? I'd want to stick with Mac versions pretty much. I'm starting to get familiar with Xcode, and I've heard of Komodo and Eclipse and RadRails...
|
|
|
01-06-2010, 10:09 AM
|
#8
|
First Line Centre
|
Personally, I like working with python.
I'll say I haven't built anything large scale or critical with it. Its mostly been tinkering for my own self satisfaction and some minor tools/scripts/apps for personal use but I really like how the language is set up.
If you're looking for some information to get yourself started there's some good books on it. I started with an e-book I found online called 'dive into python'.
Those are just my $0.02. Hope its useful to you.
edit: If you're looking into this for career advancement though, PHP is far more widely used.
|
|
|
01-06-2010, 10:35 AM
|
#9
|
The new goggles also do nothing.
Join Date: Oct 2001
Location: Calgary
|
PHP is pretty widely used for webapps. I personally like Java but it is more complex and heavy, but tons of people use it for server side stuff.
Personally I'd avoid doing web applications entirely and stick to back end programming
__________________
Uncertainty is an uncomfortable position.
But certainty is an absurd one.
|
|
|
01-06-2010, 03:49 PM
|
#10
|
GOAT!
|
Quote:
Originally Posted by photon
PHP is pretty widely used for webapps. I personally like Java but it is more complex and heavy, but tons of people use it for server side stuff.
Personally I'd avoid doing web applications entirely and stick to back end programming 
|
Hmm... What do you mean by back end programming? I suspect that might be the stuff I'm looking forward to doing as well, which is databases, interfaces, APIs, etc. I'm not so keen on the front end graphics and layout stuff.
|
|
|
01-06-2010, 03:51 PM
|
#11
|
GOAT!
|
Quote:
Originally Posted by Phaneuf3
edit: If you're looking into this for career advancement though, PHP is far more widely used.
|
That's something I didn't really think to ask either... thanks!
|
|
|
01-06-2010, 03:53 PM
|
#12
|
Franchise Player
Join Date: Aug 2005
Location: Memento Mori
|
.NET framework and Java are far, far, far more widely used than PHP, especially in corporate environments.
__________________
If you don't pass this sig to ten of your friends, you will become an Oilers fan.
|
|
|
01-06-2010, 08:36 PM
|
#13
|
The new goggles also do nothing.
Join Date: Oct 2001
Location: Calgary
|
Quote:
Originally Posted by FanIn80
Hmm... What do you mean by back end programming? I suspect that might be the stuff I'm looking forward to doing as well, which is databases, interfaces, APIs, etc. I'm not so keen on the front end graphics and layout stuff.
|
Yeah, all the server stuff which is just pushing data around or doing the special work that is whatever the app is that you are designing.
The web front end stuff is horrible, I hate it because unless you have full control over the design (or you are an expert) you end up spending your life fighting with CSS to try and get the design that whoever has authority wants on all the browsers.
There's not many things in life I hate more than web programming.
__________________
Uncertainty is an uncomfortable position.
But certainty is an absurd one.
|
|
|
The Following User Says Thank You to photon For This Useful Post:
|
|
01-06-2010, 08:57 PM
|
#14
|
Lifetime Suspension
Join Date: Mar 2007
Location: Calgary
|
PHP for me. But once you know the basics of one language, others are gravy.
|
|
|
01-06-2010, 09:14 PM
|
#15
|
GOAT!
|
So far, I'm thinking a lot about Java/NWT. If I look at the PHP route, is Cake the best framework?
|
|
|
01-06-2010, 10:16 PM
|
#16
|
#1 Goaltender
|
You sound like you are just getting started - my advice is not to worry about which is "best", trendiest, or most scalable. Work with whatever one you can get the best resources, help, tutorials, and education on, and write lots and lots of code. The fundamentals of client-server programming are the same, and once you get proficient in one, picking up additional languages and frameworks is easy.
I'd seriously consider .NET on this front, as the development environment is rich and excellent; Visual Studio is in a class of its own for doing development work, and all the tools, including your SQL backend, are available free for hobbiest/personal development. That same code is going to deploy to real server systems when you step up to the enterprise level Visual Studio products. Microsoft also has excellent documentation, and a metric tonne of books available.
In my experience as well, in the SMB space, and even on the enterprise side, unless a business is an Internet app pure-play, there are lots and lots of Windows web servers and database back ends out there. So the knowledge you gain with the MS product line is going to pay dividends down the road. I work with clients that range from health, to pure science R&D to not-for-profits currently, and all of them have Microsoft DB and web apps, some off the shelf, some written in house. Linux, PHP, Ruby, etc, aren't even on the roadmap for these people - they need apps they can write and deploy quickly with best of breed tools, and that they can either maintain or contract out maintenance and draw on a rich pool of developer talent. That's just the way it is with probably 80-90% of the market.
__________________
-Scott
Last edited by sclitheroe; 01-06-2010 at 10:25 PM.
|
|
|
The Following 2 Users Say Thank You to sclitheroe For This Useful Post:
|
|
01-06-2010, 10:47 PM
|
#17
|
Franchise Player
Join Date: Nov 2006
Location: Supporting Urban Sprawl
|
Quote:
Originally Posted by sclitheroe
I work with clients that range from health, to pure science R&D to not-for-profits currently, and all of them have Microsoft DB and web apps, some off the shelf, some written in house. Linux, PHP, Ruby, etc, aren't even on the roadmap for these people - they need apps they can write and deploy quickly with best of breed tools, and that they can either maintain or contract out maintenance and draw on a rich pool of developer talent. That's just the way it is with probably 80-90% of the market.
|
This.
Microsoft is the one company that people love to hate, but the reality is in business that is where the money is at. If you are in IT and know nothing about the MS products related to your specific area of expertise, you are hurting your job prospects and money making potential.
__________________
"Wake up, Luigi! The only time plumbers sleep on the job is when we're working by the hour."
|
|
|
The Following User Says Thank You to Rathji For This Useful Post:
|
|
01-06-2010, 10:50 PM
|
#18
|
The new goggles also do nothing.
Join Date: Oct 2001
Location: Calgary
|
Yeah, best is very dependent on situation and requirements.
Java is a good choice to start out with as well as it has lots of resources and lots of support and books and such. It can get heavy though, I tend to stay away from a lot of the big stuff like EJB (Enterprise Java Beans) and stick with lighter stuff like Spring.
Some companies like it because of a lot of open source stuff available for it and some companies don't like running Microsoft servers (though there are options available to run .NET stuff without having a front facing Microsoft server).
Getting stuff to run properly in Java can be a real pain sometimes though, when you start getting into deploying apps on an app server and such it can get real complicated.
With .NET the only problem I found was that if I wanted to go beyond the GUI way of doing things, or go deep into something, the depth of documentation and help dried up rapidly, but it's been a number of years since I've been in that so it's had time to develop I'm sure. I have a few friends that do work in it now though and they like it.
__________________
Uncertainty is an uncomfortable position.
But certainty is an absurd one.
|
|
|
01-07-2010, 08:42 AM
|
#19
|
First Line Centre
Join Date: Oct 2002
Location: Calgary
|
Quote:
Originally Posted by photon
Yeah, all the server stuff which is just pushing data around or doing the special work that is whatever the app is that you are designing.
The web front end stuff is horrible, I hate it because unless you have full control over the design (or you are an expert) you end up spending your life fighting with CSS to try and get the design that whoever has authority wants on all the browsers.
There's not many things in life I hate more than web programming.
|
That's very subjective. CSS is no fun if you don't know it, but not much is. Mozilla and webkit render almost identically now and the hacks you need for IE aren't nearly as bad as they used to be. And once you know them, it just becomes part of your toolset like a design pattern.
Plus, UI frameworks like GWT mostly eliminate the need for investing large amounts of time on cross-browser compatibility. GWT compiles into separate JS files for each renderer
Backend development isn't all roses either. Any medium/large team I've worked with, many of the junior/intermediate resources end up in code monkey positions, where they spend months implementing predesigned classes on a bottomless TODO list. Or writing unit tests for stuff you didn't write. I seriously think I lost a piece of my soul in my 2nd year as a developer.
It really just comes down to the type of person you are and the environment you work in. I'd recommend getting your feet wet in both areas and seeing what you enjoy most.
|
|
|
01-07-2010, 09:15 AM
|
#20
|
First Line Centre
|
Quote:
Originally Posted by Shazam
.NET framework and Java are far, far, far more widely used than PHP, especially in corporate environments.
|
.NET is a very good recommendation for career advancement and is one I would have mentioned as well if the original poster wasn't one of the biggest mac fanboys on the board. (Not using fanboy as an insult in this instance, btw).
Out of the three he mentioned, PHP is the most widely used.
IMO, out of the three he mentioned, Python is the most interesting and rewarding to me and got me thinking in different ways about programming.
As someone else mentioned, just learn SOMETHING and you'll do alright. After the first, picking up other languages isn't that hard.
Last edited by Phaneuf3; 01-07-2010 at 09:22 AM.
|
|
|
Thread Tools |
Search this Thread |
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -6. The time now is 03:43 PM.
|
|