views:

749

answers:

9

I'm looking to develop a website that will be fairly database intensive and that will be playing quite a few videos. My question is this: I don't have any experience as a programmer and I'm trying to figure out whether or not I should learn Ruby on Rails or Flex...or both. I have several people that are working on this project with me that want to help with the development as well. Should we learn different languages? if so, which ones?

I know that the Best method would be to just hire an experienced developer, but we don't have the cash and want to learn how to quickly create websites in the future. Any advice would be appreciated. Thanks!

+2  A: 

Can you afford a book?

Avdi
+5  A: 

I would strongly urge against creating an entire website in Flash; web standards exist for a reason, and unless you have a very specific requirement that can only be fulfilled with a proprietary plugin, you should stick to the standards.

Also, what you learn developing for Ruby on Rails will be much more general. You will use HTML, CSS and Javascript to build a website with Rails, which can be used with any web framework. Adobe uses their own markup format, MXML, which is proprietary. The MVC design pattern used by Rails can be found in many other places, like Apple's Cocoa toolkit and Microsoft's ASP.Net MVC framework.

Finally, the tools for developing Ruby on Rails are free. While Adobe has released the Flex SDK under the MPL, the runtime and the IDE still must be licensed.

Adam Lassek
+14  A: 

Sorry to tell you this, but programming is for programmers. I say it cus you might have a great idea that will fail if a non programmer try to implement it.

Good news is, if you will you can study to become a programmer. In this case I would suggest you to learn Ruby and then Rails. Well, learning this you will naturaly know when, where and whether to use flex or not.

Good luck.

Ricardo Acras
+7  A: 

As you're not already a coder you simply won't stand a chance with Flex. Flex is really great at what it does, but it's most defiantly not a tool for the inexperienced.

Furthermore as you're not already a coder you chances of success even with Ruby are marginal. There are certainly a lot of talented people out there who are self taught and coding is one of those things where raw talent and persistence can get you a long way, but without some formal training and the chance to work alongside other coders your chances of producing mince rise exponentially with the size and complexity of the project.

I currently have a large and ongoing contract to clean up the mess left by a self-taught coder. The person in question impressed my client with a portfolio of a couple of websites he'd put together which appeared to work fine (and the client didn't understand code). A couple of years down the line after he was finally sacked I'm trying to clean up monstrosities such as a portfolio site hacked together from a custom shopping cart, zend, smarty, another custom template system and mounds of other code smashed together because the guy thought they looked cool. Variables are badly named, database tables have no indexes, the site runs like a pig and has a codebase 10 times what is needed - the list goes on and on. My charges are 5 times the price of my 'predecessor', but it would have been vastly more cost effective for my client to have employed me from the start.

I would therefore strongly advise you get a professional in. If you really have to do it yourself then at least try and find enough cash to employ a consultant to act as Guru for you. If you find you do have some aptitude for code then this may be enough see you through. If you don't even if you find you can build something it's a virtual certainty that as the site evolves you will find you have major issues at some point because of avoidable wrong choices you made at the start you were too inexperienced to spot.

Cruachan
+2  A: 

There are quite a few concepts to wrap your head around when trying to create the sort of web site you are talking about, and have to agree with Ricardo that programming is for programmers.

That doesn't mean you can't become a programmer, but try to break it into easily digestible chunks, and start with learning in areas where there is a lot of community support, and plenty of open source material to learn from.

That being said, it takes at least a few years full time experience to get anywhere near good enough to design and architect a medium scale system.

I would even suggest looking at PHP (no platform war please - I'm actually from the other side), mainly because there are so many open source projects out there, and so many active forums. You may be able to find significant chunks of your app already written for you. Once you have half a dozen languages under your belt, picking up new ones becomes a lot easier.

Have you considered using off the shelf web app frameworks? Drupal, Joomla, Mambo, ..., etc.
That way you can get your feet wet without biting off more than you can chew.

Also agree with Cruachan, that at the very least, you need to get someone who knows what they are doing to make sure you are not shooting yourself in the foot without knowing it. Just because something works, doesn't mean its good.

Don't want to discourage you from learning to program, far from it, but please keep in mind that it is harder than it looks, and you must learn to crawl before you can walk, and if you try to skip the basics, it will bite you later. If this is a commercial venture, it will bite you hard.

seanb
+1  A: 

I would recommend using Ruby on Rails if this is your first exposure to web programming and programming in general. There are many options available for web programming, but RoR has the most third-party teaching materials available in the form of books, videos, and blogs. Given that this is your first foray into programming, I'd recommend keeping with Rails simply because of the resources available. Also, because of the attention giving to Rails, Ruby is getting reasonable coverage as a general programming language making it easy to find teaching material on plain-old Ruby programming.

Here's a couple of resources to get you started:

For an introduction into programming concepts: Learn To Program is a great book for beginning programmers, and it uses Ruby as the example language.

Once you've worked your way through that short book, I'd recommend getting a copy of Agile Web Development with Rails. Not only is that the defacto standard introduction to Rails, but it is a great introduction to the concepts involved in programming web applications.

You can also check out Peep Code for tutorial videos. They have a 2-part video introduction to rails. If you are a person who learns better by screencasts than books, these are good resources.

Good luck with your project. Frankly, I wouldn't worry too much about not being a programmer, everyone starts somewhere. Be studious, ask questions, try building things in small chunks and don't be afraid to throw away your first attempt after you've learned enough to bump into some mistakes.

gbc
+1  A: 

To answer your first question, Flex or Rails: Flex is a set of APIs and Tools to create .swf (compiled Flash) files. These files are served up statically and can provide an interactive user interface. In order to dynamically load data or perform database queries, it needs to talk to an application on the server. Rails is a set of APIs and tools to create an application running on the server that (generally) listens to requests and dynamically generates a response (generally HTML, but frequently plain text or xml). Many developers use Flex and Rails together where Flex shows the user interface and Rails executes database queries and dynamically populates UI elements on the screen.

My advice if you have never written a Web application before is to start by using off the shelf tools - try using Wordpress or the like for content management and hosting videos with a third party (YouTube, PhotoBucket, Flickr or the like). While it won't do everything you want, you can get something out there that will help you figure out what features customers really need, and more importantly, giving you the time to start acquiring the cash or skills to do any custom devlopment.

Cameron Pope
+1  A: 

I will not tell one thing that if you want to be programmer be prepare to spend hours in front of computer screen. You have to learn everything from start and develop something where professional need some help i.e. Flex & ROR together.

I am professional programmer but don't like other tone where they discourage beginners as useless (don't forget everybody has to start from zero)

anyways if you feel like climbing mountain go ahead do it otherwise ask someone for help & that might be good books, hours of study or hire professional + $$$ to spend.

Good luck

A: 

Usually I would recommend to do it in Rails, because it's awesome. In your case I'd say: do it in PHP because it's simpler and you can hack around easily. Rails is fairly complicated for a non-programmer, you have to wrap your head around the MVC concept, Object Oriented Programming...

As much as I'd love to tell you to go with rails, I think that it would just lead to a failled project.

marcgg