16 August 2006

Web Development for My Dad

This is kind of a test, since I don't know what kind of expertise exists with you my faithful reader, but I need some advice, or rather, I need some advice for my Dad. He's 55+ and looking at getting back into the workforce and one option that has piqued his interest is web development. The question is this: What should he use as his web platform and why? Options that I've looked into are: Ruby on Rails on Mac OS or Linux WebObjects on Mac OS ASP.NET on Windows PHP on Mac OS or Linux Witango on Mac OS or Windows Note: I'm sure I've missed some others, but I think these are the big players. Keep in mind that he's used the Mac OS all his life as the basis for several of the businesses he's started over the years, so he'd like to stay developing on the Mac if at all possible. But it's not the end of the world if he's got to switch platforms. This has got to be a question others have asked, so if there's some web page that answers this directly, I'm sorry I haven't found it yet, but please leave the URL in the comments. Am I the only one that finds making a rational comparison in web development platforms difficult?


Robert said...

It really depends on what he's looking at.

Ruby on Rails is okay (some people swear by it, though), but has a very compact and unusual syntax if you are familiar with C-style syntax. It does allow for very rapid development, but I'm not a huge fan of it because it has too many weird syntactical features.

WebObjects is a dying breed of application and requires custom stuff from Apple. You'd be better off using Java and Struts (see below).

ASP.NET I have no experience using, but again it's propriety like WebObjects--though more widely-recognized and supported.

PHP is one of my favourite languages. It scales well (Yahoo! and Digg use it). It's pretty easy to get into, and very easy to setup. It also has a large help/support community. This is my language of choice for most web applications.

Never heard of Wintango, so can't comment on that.

That leaves something not on your list, Java JSP with Apache/Jakarta Struts. This combination is very powerful and can be used to write enterprise-level applications very easily. I love programming in Java/Struts but read on as to why I don't do so more often.

That's my general opinion on all the technologies. But if he's looking to make widely-avaliable applications, avaliablity should also be a concern.

PHP is probably the most-supported amongst web hosts, followed by Ruby on Rails, and then ASP.NET, followed by Java. WebObjects hosting is rare (and I've never heard of Wintango, so no comment). So if he's trying to reach a lot of shared-server hosting customers, then PHP or Ruby would be the choice language. If he's going with enterprise applications, Java or ASP.Net would be fine.

Julian Bennett Holmes said...

I would say Ruby on Rails, because Ruby is a powerful language, and the duo seems to be becoming a Big Thing.

After that, I would say PHP, because it's not to hard to learn.

Also, I would reccomend against ASP.NET, partially because Windows is a pain, especially if you're a longtime Mac user.

Nate said...

Since your dad is getting back into the workforce, should you compare web platforms and choose the best one, or should you choose the one that will get him hired? PHP and ASP.NET are going to offer the most job opportunities.

Of course, if he's going to be self-employed that changes things…

Zac Tolley said...

ASP is just yuck, if you are not a hardened windows user then learning how to get the right objects, dll's loading and in the right order etc.

It depens what he wants to do, your dad. If he wants to create websites with some functionaility then I'd say php along with a content management app like drupal (drupal.org). Drupal does most the work for you, is easy to install, and there are modules out there galore. The only thing I'd say is like most content management things, it takes some getting used to. The stuff it doesn't do or needs changing is where the php comes in.

If it's simple apps then for me it would be between php and JSP/Servlets.

Java and JSP are the best skills to use if wanting to get into serious development jobs in the commercial world, banks, businesses etc. Java has a history there now and there is a large job market for Java people.

Personally if I'm working on bigger contracts I tend to use Java, because they already have it and are comfortable with it so they can support it. If the client is smaller and it's a one off job for them then PHP is the tool.

Anonymous said...

Microsoft ASP .NET is an extremely powerful and easy to learn. A great wealth of documentation also abounds (e.g. alot of great MSDN support available, Microsoft Press books). With free tools such as Microsoft IIS, Microsoft VB .NET Express, Microsoft SQL Express its quite a good option. I have been using these with Parallels on the Mac with great success.

Web development with ASP .NET experience also have extremely good job prospects (at least in Australia anyway).

Anonymous said...

PHP all the way..

fontti-intoilija said...

I would not want to see your dad be bitten by PHP, PHP is the devil, the basic of web programming.

Rails could be fine if he already knows Ruby, but I'd recommend a look into Django, which is a framework on top of Python and looks very clean to me.

Yes, comparing web frameworks is hard. But I would not put too much weight on popularity of hosting, that changes all the time and how many hosts do you need? One. There are definitely enough Rails and Django savvy hosts. :)

John C. Welch said...

I forget how much ASP.Net Mono supports, but if you want, check into Mono. It's a really nice implemetnation of .Net on !Microsoft platforms.

Marcelo Lopez said...

I would say at this point it's between PHP and RoR ( Ruby on Rails, since we're being all hip on the lingo, Yo ! ).

Java using Struts or Spring, Hibernate, or whatever is probably more trouble than it's worth these days. Java for performing internal processes good, java for externalizing to the world via JSF bad ( folks can poo-poo on that all they want, they still know that it's a fair assessment ).

Which brings me to ASP.NET. Well, more and more hosters are carrying that, hell, even on Linux using Mono.

The question really becomes then, what's he looking to do. Notice I haven't mentioned WebObjects up to now ( there's a REASON for that ).

I guess what I'm trying to say is that the question in part depends on what your Dad's software background looks like. If he's programmed in C or C++, then Ruby or ASP.NET ( using C# ) wouldn't be so bad. But I would recommend he do it on Windows, as Mono on OSX is still a little lacking without a clean install. Yes I know there's AN install package that'll give you a build of MonoDevelop ( part of the install is to actually build it and it's requirement for you "yuck" ), but any install that doesn't have an uninstall isn't suitable for someone "getting back in the game" or software development.

RadRails is getting better, but there isn't a packaging of "InstantRails" for OSX like there is for Windows, so think carefully if he's prepared to manage the setup of Ruby+Gems+Rails+"Pick your fav Db"+Apache+phpAdmin"What ? You're not using phpAdmin ? Loco !" or not. Plus the whole "visual builder" thing isn't totally baked yet.

With ASP.NET he'll have to think about things like IS6 and it's maze of configuration settings ( App level security, website.config for determining who gets access to what parts of his web site, etc. )

Java again? Did you read what I wrote before ? Bad developer, go back to the first paragraph.

Witango...c'mon, ANOTHER J2EE appserver ? JBoss on Eclipse anyone, duh !

So what do I use ? Almost all of the above, but not for the same things.

Don't let anyone tell you that there's a "one solution fits all", you know better.

Bret Bouchard said...

PHP on a Mac is very easy to use in OS X. You turn on web sharing and you have an apache and PHP server running out of the box. Plus PHP has tons of free online tutorials and there are tons of books if he prefers having something in his hands to review. I personally have found that a combination of books for an overall view and the web for "ummm why didn’t that work" situations can get you along nicely. Plus its open source, which motivates all the free tutorials.

The online resources for Ruby are growing but still not as robust as PHP. But the people that use Ruby swear buy it. And it also come with OS X.
ASP and WebObjects have some online resources but not nearly enough for my taste.

Overall anything works if it works for you. But for the low low price of already came with the OS PHP is the way to go in my book.

But make sure you instill in him that CSS is the way to go. Table are evil. Lol

Victor Johnson said...

Ruby on Rails hands down. Just as they say, it favors convention over configuration.

The only way to go.

Anders Hovmöller said...

Django is the way to go clearly (http://www.djangoproject.com). Just looking at the "Creating a weblog in 15 minutes" thing from Ruby on Rails where he speaks as fast as he possibly can and hammers away like crazy to be able to do it in 15 mins, then comparing it to "Django in 7 minutes" where the guy talks slow and calm and takes his time typing, should be enough for anyone to get that story straight. The fact that RoR generates tons of code you need to maintain later is also a hint.

And coming from a Java background I can clearly say that even thinking about comparing that to either RoR och Django is like comparing walking backwards with a jet plane. And that's if you use a (for the platform) competent framework. If you use the big standard Spring you're into a world of hurt.

Mitchell Scott said...

If he is used to the Mac platform, I would keep on using it and use WebObjects. And anyway, I don't think I could switch to Windows. Plus, if he gets a new Mac, he can always boot into Windows and have two platforms on one computer.

Scott Cadillac said...

Your Dad should pick the language and platform that most appeals to him, and gets him the most excited to get to the desk in the morning.

Being charged about your work will rub off on your customers, and bring him the biggest return.

Your Dad is a smart guy, and been in the business a long time - he'll do well no matter what he picks. There are some exciting days ahead for him.

Best of luck.

Anonymous said...

It depends on if he wants to freelance and work with small local companies or if he wants to work on bigger, longer term projects for larger companies (including consulting companies). I've worked in several large markets over the past 15 years. Much as I personally love python and Zope, I know there aren't jobs there. So I went with PHP and Java (not together; that's just sick and wrong).

You can get a reasonable amount of work doing PHP and there is a pretty steady demand for Java developers even in a down economy. While RoR is HOT HOT HOT with web 2.0'ers and aspiring 2.0'ers, few companies outside of internet companies have even heard of it.

Ultimately it's up to him to determine what his employment/income goals are and balance it with working with tech that he likes. I find PHP moderately interesting and Java rather a pain in the ass. But they pay the bills.


Anonymous said...

I started my web development on PHP and thought it was great. I then did ASP (VBScript) for awhile and did not like it. Then I tried ASP.Net using C# and I've never looked back. It makes development so simple and quick. I can develop complex sites in days instead of weeks - and that's the real advantage over WebObjects and the others. And now that Microsoft is providing it's Express products for Visual Studio and SQL Server for free, it's even better. I recommend the O'Reilly book for getting started.

Daring Young Dad said...

Joel had something to say along these lines: http://www.joelonsoftware.com/items/2006/09/01.html.

Based on that, if your dad doesn't know any of these languages already, does he have a friend who does? Who is going to be his expert/mentor? Perhaps you? Which platform do you know best? Pick the one where he is most able to get expert help when he just can't figure it out or needs guidance.

(OT: do you play ultimate frisbee? At a high school?)