Posts/rsshttps://snook.ca/Comment from Derek Featherstonehttp://snook.ca/archives/building_a_web_application/building_a_web_6#c562https://snook.ca/posts/c562If it was me, I'd be torn in a few different directions.
I'd choose PHP if I wanted it to be most likely to be used by a lot of people - it seems there are a lot of people that are able to easily work with PHP these days, so an open source PHP project would probably get some decent usage, and contributions.
I'm also working on a few contracts with one company and all of their software is Java based, so I'm doing a lot of JSP right now, and to be honest, I'm loving it...
However, it I was looking at it from purely a personal standpoint, I'd very seriously look at something like Ruby.
In every project I do (either for a client or for myself), I always add something new -- incorporate new techniques, new strategies, and in some cases new languages.
I've been aching to build something with Ruby, so that would likely be my choice, but it would be primarily for personal reasons.Jonathan Snook <jonathan@snook.ca>Sat, 23 Oct 2004 08:11:00 +0000Comment from Kevinhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c563https://snook.ca/posts/c563If you're inspired by basecamp, work on a CMS using the same thing it's created on - ruby on rails.
It's picking up a lot of speed and popularity, and there's always a chatroom of 50 people help you figure things out. Lots of us have been talking about creating a rails CMS. Veen's suggestions are a great place to start...Jonathan Snook <jonathan@snook.ca>Sat, 23 Oct 2004 09:40:26 +0000Comment from MrRighthttp://snook.ca/archives/building_a_web_application/building_a_web_6#c573https://snook.ca/posts/c573Firefox plugin: There is only xul!Jonathan Snook <jonathan@snook.ca>Tue, 26 Oct 2004 07:12:05 +0000Comment from akhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c575https://snook.ca/posts/c575Ignore the technology. I've had to build many systems and the success of the project wasn't what technology you used, but how the features were implemented.
I have not had a client come to me and say "I want an ASP/SQL or PHP/MYSql website". They said they need something that can be easily updateable.
My choices are not based on technology, but on hosting companies. What are their pricing? Can I switch hosts? Do they have restrictions? Do I have time or should I repackage something I already have.
Look at Basecamp. They used Ruby. never heard of it outside of the academic circles until now.Jonathan Snook <jonathan@snook.ca>Tue, 26 Oct 2004 08:45:38 +0000Comment from Jonathan Snookhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c577https://snook.ca/posts/c577I often run into technology requirements handed down from a client because they have an existing infrastructure that I'm building within -- but that's not really the issue at hand.
Determining a hosting company has a lot to do with the technology choices you make. Putting together an ASP/SQL solution for a client could end up costing them more in hosting costs since most ISP's charge more for Windows hosting. Likewise, Java isn't as popular of a hosting solution. That's why PHP/MySQL is so popular. It's darn cheap, there's a huge existing codebase to build off of, and a great pool of resources to work with.
Performance is still a key factor in all of this. You're right in that the user only cares if his or her site is easily updateable. But if their site is sluggish then they'll walk away with a negative impression of your application.
Hosting, as it turns out, isn't really a factor for me since I'll be looking at co-locating. Therefore I'd look to a technology that can help me develop faster. Basecamp likely chose Ruby for that very reason. Jonathan Snook <jonathan@snook.ca>Tue, 26 Oct 2004 09:11:29 +0000Comment from akhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c578https://snook.ca/posts/c578Based on your comments, my recommendation would be PHP/MySQL. It's a proven platform with a large knowledge/code/user base.
If you're already worried about performance, you may be getting ahead of yourself. Do you really have that many users that would take the down the system? Are you implementing something so involved that it takes a long time to process? Wouldn't you be worried about this after you've reached capacity?
If you are worried, the solution that I liked is publishing the website as HTML. The majority of the server load will come from people accessing the public web site. Maybe even have them on a dedicated web server?
If the performance issue is on the CMS application, I would look into creating pre-compiled pieces rather than using scripted languages.
Jonathan Snook <jonathan@snook.ca>Tue, 26 Oct 2004 09:26:02 +0000Comment from Jonathan Snookhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c579https://snook.ca/posts/c579Performance may seem like a moot point but the more users that can be managed off of one machine (both from a site user and site admin pov), the more I can maximize my hardware costs. Which in the end means more profit for me and cheaper pricing for the end user.
Allowing site users to generate static HTML is always an option but then if there's a template change, rebuilding 10,000 (or even 1,000) pages would take time.
Pre-compiling logic is a good idea. I'll also be looking into caching as a way to boost performance.
It may seem like I'm nitpicking on performance specifically and I'm not trying to. With the article, I really tried to touch on the fact that there can be multiple factors that go into a decision and that it's important to think the process through thoroughly before settling on a specific technology. Because once you begin programming, it'll simply be time wasted to switch in the middle.Jonathan Snook <jonathan@snook.ca>Tue, 26 Oct 2004 10:32:10 +0000Comment from Rayhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c585https://snook.ca/posts/c585Just a suggestion, but if you're looking to use ASP/C# without the cost of a windows server or visual studio, be sure to take a look at <a href="//www.mono-project.com">the mono project</a>. I find C# to be a great language, but can't stand visual studio. It seems that most of the problems people have with the .net platform (including the site you cited) stem from the VS IDE. If you have shell access to the server, it is actually quite simple to get mono compiling code right away.
If you end up with others working on the code, C# is nice in that it doesn't take much to get a java developer writing decent C#.
I look forward to reading the rest of this series, it's great being able to gain the insight into how another developer approaches such a project.Jonathan Snook <jonathan@snook.ca>Thu, 28 Oct 2004 02:16:17 +0000Comment from David McCreathhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c590https://snook.ca/posts/c590I'm about to start a project for a non-profit and pondering this same question. The guy I'll be working with is an ace with C#/ASP.NET, and would have to learn PHP if we went that route. I know he's capable of it, but I really feel like I'd be doing the client a disservice if we didn't write the app in the language we know best.
One of our primary goals is the standards-compliance and we're actually hoping to use this side project as a test bed for our day jobs, which is an all-Microsoft environment.
ASP hosting seems to be getting more competitive, too. Webhost4life and Websecurestore both provide pretty reasonable packages in the $20/month range.Jonathan Snook <jonathan@snook.ca>Thu, 28 Oct 2004 11:59:57 +0000Comment from Jason Jystadhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c592https://snook.ca/posts/c592In reference to Kevin's comment about Ruby I would like to add my endorsement.
I have been wanting to do a large project in Ruby myself, ever since I ran into the language the first time.
Blogware, made by Tucows, is also built completely in Ruby and it is targeted at the large scale ISP reseller environment. Seems to work both well and fast.Jonathan Snook <jonathan@snook.ca>Sun, 31 Oct 2004 00:21:24 +0000Comment from Jason Jystadhttp://snook.ca/archives/building_a_web_application/building_a_web_6#c593https://snook.ca/posts/c593Whoops, forgot the link:
http://blog.blogware.com/blogJonathan Snook <jonathan@snook.ca>Sun, 31 Oct 2004 00:24:45 +0000Comment from Scotthttp://snook.ca/archives/building_a_web_application/building_a_web_6#c603https://snook.ca/posts/c603I recall reading some time ago that you were considering providing this CMS as a hosted solution. If that's the case, then What I'm about to say won't really apply. If you're selling it to be run on other hosts, however, target market might be a factor worth considering. If you're targeting large corporations or otherwise reasonably wealthy organizations, the added robustness you might get with an oracle database and the top-of the-line-language du jour could be worth it. If you're going after the little guys, PHP/MySQL is pretty homogenous across most web hosts. $0.02Jonathan Snook <jonathan@snook.ca>Tue, 02 Nov 2004 22:12:14 +0000Comment from http://snook.ca/archives/building_a_web_application/building_a_web_6#c697https://snook.ca/posts/c697cgi::application
Jonathan Snook <jonathan@snook.ca>Wed, 17 Nov 2004 13:43:42 +0000