views:

182

answers:

3

I consider myself as an entrepreneur with basic programming skills. My main experience is with PHP, but mostly as a code breaker- meaning being able to figure out the basics and manipulate the code to my needs. Recently took up studying RoR and it seems easy to understand.

I will be putting together some resources to build a niche social site which I strongly believe is currently lacking on the internet. Before diving straight into this endeavor, I would like to have couple of questions answered. My apologies in advance if a question looks simple and yet requires extensive answer.

Site Basics

  • Single and multi-user mode
  • Ability to join groups
  • Images, videos, and PDFs will be importable/exportable
  • Ability to save, edit, share
  • Complex map creations (e.g. VUE)

Site Enhancements

  • Use of javascripts (e.g. JQuery)
  • Basic e-commerce functionality (built-in)


Questions

1. Is PHP or RoR best suited for flexibility and scalability of my need?
2. Would integration of Adobe Flex be helpful?
3. Best hosting environment. Cloud computing (Amazon Web Services or better) OR not?

+2  A: 
  1. Neither is "best", the decision comes down to your personal preference. I know that's not the answer that you wanted but neither is "better" than the other, they both have their pros and cons. Rails is easier to get started with, but you already know PHP so that might be the way you want to go. It's up to you. If you decide to go with PHP, I'd recommend a framework such as CodeIgnighter for almost-Rails-like productivity.
  2. Again, that's up to you, but the "complex map creations" that you mention will run and look much better with Flex than with JavaScript. Also, Flash is really the only decent platform for video, so you're going to have to use Flash/Flex at least for some things. However, I personally have found that Flex isn't the easiest thing to learn, so if you don't want to (or can't) take the time to learn it, I wouldn't bother. (I assume you already know JavaScript. If not, then it may be worth your time to learn Flex instead.) Basically, with Flex, your application will be much more interactive, but there are many cons to using Flex instead of JavaScript as well.
  3. I don't really have too much experience in this area, but I'd highly recommend Amazon S3 for file storage (images, etc). It's fairly cheap and does most of the work for you (although you need to be sure your application does things like caching, etc, which can prove to be fairly difficult). As far as the other Amazon Web Services go (E2C, etc), I wouldn't bother with them until you need them. Use your own web/database servers, and if you feel the need to, for whatever reason, use AWS, then migrate.
musicfreak
Thanks musicfreak for your input. I see that Mashable.com recommend AJAX over Flex. I wasn't aware that AJAX has Flex qualities, I guess I'll also look into that.As for Amazon, I tried to play with it a little, but what would your recommend? Using their interface or a 3rd party management tool.
monocat
Ajax is nowhere near as powerful as Flex. "Open standards" fanboys may tell you otherwise, but there's a lot you can't do (or at least can't do well) with Ajax, that Flex does perfectly. However, it being a third-party plugin and not native to the browser, there are obvious side effects, but those can usually be worked around. As for AWS, like I said, I have little experience with it so I can't give a recommendation.
musicfreak
+2  A: 

First off, you're comparing apples and oranges. PHP is a programming language, RoR is a framework built on Ruby. The difference between the two is vast. With PHP you'd have to develop much of your data interaction from scratch, while with RoR, most of that is already built. RoR has various utilities to make your life easier, while with straight PHP many of those things don't already exist.

It would be easier to compare a PHP framework such as CakePHP or CodeIgniter to RoR than just PHP to RoR. I'm sure discussions on that already exist somewhere.

Of course, it all comes down to "do what you know" or "do what you're interested in". If you're more comfortable building something that scale in PHP, by all means do. If you're more interested in learning a new system, and expanding your knowledge and skills, go for that. You just have to decide what you prefer.

Flex might help, and it might not. It depends on what it gets used for. You should try to use the right tools for the proper purpose. If flex makes sense, then do.

As for your third point, how big do you expect it to get? If you'll only have a few tens of users, a shared server will probably be fine. If you're going to have lots (1000+), offloading static files to a cloud will help speed things up. Having a cloud computing environment only really makes sense if you have lots of users as well.

davethegr8
Thanks davethegr8 for your input. I see what you mean. It just happened that I ran into a good interview today that helped me understand more about the differences between languages and frameworks. blog.mixergy.com/what-is-ruby/ I guess I was looking into it from a wrong perspective.
monocat
+3  A: 

Your main question will likely cause flaming and be very contentious. So I'll state my feelings without backing it up ;)

  1. Ruby is better than php.

  2. Don't use flex. the web standards are quickly catching up to the capabilities of flash and standards based solutions are usually better. Check out the google wave video for what can be done with html 5 these days.

  3. Check out heroku for hosting rails sites. It's a great way to get started. It runs in ec2 so it can easily integrate with additional resources you bring up in ec2 if you need to. EDIT: and heroku is free to start with, a similar model to app engine.

jshen
Thanks jshen. Heroku looks interesting. Are you familiar with http://aptana.com/? It seems they also offer free advanced editing software.
monocat
I've never tried aptana before
jshen
I strongly disagree with #2. Flex is way more powerful than JavaScript at this point, and it'll be a few years before open standards (and browsers...in other words, Internet Explorer) catch up to the Flash platform. Yes, there are drawbacks, but there are some types of applications that absolutely need Flash/Flex at this point.
musicfreak
"but there are some types of applications that absolutely need Flash/Flex at this point. "And "some" is a small number.
jshen
Can you point me to a graphics-editing web application made with JavaScript? What about a video website? And how about a presentation application (that doesn't suck)? No? Didn't think so. :)
musicfreak
I went to google io and google is pushing to get video into html 5 and pushing the envelope with the canvas tag. It won't be too much longer before we can do these things well in html. Also, as I mentioned before, this is a very narrow range of apps.
jshen
Right, but browsers have to catch up to the standards. (I'm mainly talking about Internet Explorer.) So yeah, Firefox and Safari will happily support HTML video and all that other stuff, but IE won't, and that's a problem. Like I said, it'll be a few years... And yes, you're right, it's a narrow range of apps, but the OP said he wanted things like video and PDFs and visual maps, which at this point need Flash/Flex.
musicfreak