Find the answer to your Linux question:
Results 1 to 7 of 7
Hi All, I'm looking for recommendations for a website that I'm developing. Basic idea will require a very large database, multiple tables, multiple types of logins (ie. different groups with ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Linux Guru jmadero's Avatar
    Join Date
    Jul 2007
    Location
    California
    Posts
    1,998

    Language Recommendations


    Hi All,

    I'm looking for recommendations for a website that I'm developing.

    Basic idea will require a very large database, multiple tables, multiple types of logins (ie. different groups with different capabilities), live updates (such as how facebook works with comments), some basic math capabilities, large amounts of data uploaded and downloaded, and flash capabilities.

    I've been recommended to use ajax for the live updates (which makes sense, not even sure if there's an alternative) but for the other things I've had mixed opinions, general ideas I've been given:

    html + php + sql

    &

    html + ruby + sql


    Any advice would be greatly appreciated. Thank you
    Bodhi 1.3 & Bodhi 1.4 using E17
    Dell Studio 17, Intel Graphics card, 4 gigs of RAM, E17

    "The beauty in life can only be found by moving past the materialism which defines human nature and into the higher realm of thought and knowledge"

  2. #2
    Linux Guru Cabhan's Avatar
    Join Date
    Jan 2005
    Location
    Seattle, WA, USA
    Posts
    3,252
    So, a database will always require SQL. The question is what particular database software. MySQL and PostgreSQL are the popular open-source databases. I've never used Postgre, but I've heard good things.

    PHP is a terrible language, imho. Use Ruby on Rails. PHP combines logic and display, which makes pages super complicated and difficult to maintain. Ruby on Rails is an MVC framework that is simple to use and makes writing a web app pretty easy. It also contains built-in support for databases and a very nice ORM layer.

    Live updating does require AJAX, but use jQuery for all of your Javascript. Raw Javascript is a pain to use, and is basically impossible to do in a cross-browser way.

    Flash is pretty much an entirely separate story, and requires writing your Flash code and then embedding it into your site. I would encourage you to look into HTML5, but if you decide to go to Flash route, it's pretty much unconnected to your use of other technologies: anything can embed a Flash object.

    Let me know if you have other questions.

  3. #3
    Linux Guru jmadero's Avatar
    Join Date
    Jul 2007
    Location
    California
    Posts
    1,998
    Thanks for the really useful post.

    I'm going with:

    HTML, Flash (because it will host commercials so I think flash is the most useful), Ajax (with jQuery), Ruby on Rails and MySql. I've never worked on a project with so many languages so I had a couple questions.

    I'm a quick learner for languages, self taught C++, HTML, some Python, some MySql and basic. How difficult is Ajax and Ruby on Rails?

    Are there any books that you'd recommend using for a reference/teaching guide?

    Lastly, for these kinds of projects is there a set protocol on how to do it? Ie. do you do a lot of the basic html first, get the layout done and then start adding the database and ajax, or do you personally have some other recommendation?

    Appreciate the guidance
    Bodhi 1.3 & Bodhi 1.4 using E17
    Dell Studio 17, Intel Graphics card, 4 gigs of RAM, E17

    "The beauty in life can only be found by moving past the materialism which defines human nature and into the higher realm of thought and knowledge"

  4. #4
    Just Joined!
    Join Date
    Sep 2008
    Posts
    13

    hmm...

    OK, you get zero votes from for ruby. It doesn't scale well, and you'll pay far more for dev due to it's scarcity. I don't care how good the language is... you can screw ruby just as impressively as you can PHP. To say it's terrible is pointless, quality of code depends more on the devs skills and attitude than anything else.

    As for choice of database. All have different pluses and minuses, even when removing Larry Ellison from the equation (:

    Generally speaking postgres is slower, but handles data with a high churn better, whereas mysql has the edge on speed, and replication ( especially multi-master ), but will require far more maintenance to keep that performance.

    Flash is effectively dead, due to the extreme pressure put upon it by Apple. Go for HTML5 solutions.

    I would look for the CMS that provides you with the framework that does everything that you want... writing from scratch is so 90's!

    Steve

  5. #5
    Linux Enthusiast Mudgen's Avatar
    Join Date
    Feb 2007
    Location
    Virginia
    Posts
    664
    Quote Originally Posted by sholdowa View Post

    I would look for the CMS that provides you with the framework that does everything that you want... writing from scratch is so 90's!
    Hey, I came from the '90's! Actually, much earlier than that, but I was running the NCSA httpd reference model code back in the day.

    Seriously, if you use a JFM front end (just freakin' magic), be sure to get under the hood and learn something about what the code is doing. It will save you in some dark alley.

  6. #6
    Linux Guru Cabhan's Avatar
    Join Date
    Jan 2005
    Location
    Seattle, WA, USA
    Posts
    3,252
    To be sure, you can write terrible code in both PHP and Ruby. However, I do very much believe that Ruby on Rails is an excellent framework that makes development and maintenance much easier than normal PHP. I know that PHP has MVC frameworks available, but to my understanding, they do not have the userbase that RoR does. And to be clear, RoR is fairly widely used, with plenty of documentation available.

    So, some notes to you, jmadero:

    AJAX is not a language. It is a way of doing things. In particular, it involves making asynchronous calls from an already-loaded webpage in order to run client-side Javascript using information newly obtained from a server. The way that you use AJAX will have two components:

    1) A client-side Javascript component that, at some time or through some user action makes an asynchronous request to your webserver to retrieve data, then does normal DOM manipulation to present that data to the user.

    2) A server-side component that will be connected to by the client that will return some information.

    This is typically implemented by having the server either return a JSON object of information for the Javascript to use, or having the server return HTML directly that the clientside JS will push somewhere into the DOM.


    There are Rails books out there, but the one I used is fairly out of date now. There are some guides to RoR available at:
    Ruby on Rails Guides

    I'm sure you can find advice on books and such online as well.


    A pretty normal way of doing these sorts of things is to define your basic CRUD operations (Create, Read, Update, Delete) for the first-class objects in your system. So, in some example world, we might have books, and each book has a set of chapters.

    I need to be able to create, read, update, and delete a book, and a way to do all of these things for chapters. The actual pages I need to create might be:

    / (site index)
    /books (see all books)
    /books/new (create a book)
    /books/1 (see book 1)
    /books/1/edit (edit book 1)
    /books/1/chapters (see all chapters in book 1)
    /books/1/chapters/new (create a new chapter in book 1)
    etc.

  7. #7
    Linux Guru jmadero's Avatar
    Join Date
    Jul 2007
    Location
    California
    Posts
    1,998
    Go figure programmers would give me more differences of opinion

    I am going to stick with MySQL for sure as I have some experience with it. Thanks for the clarification on AJAX, I will be using it. As for flash, I don't think you can call it dead with huge sites including Hulu are still so dependent on it and Apple is only one component of a very big picture (a component that I particularly detest so it's hard for me to abandon flash because Jobs said I should).

    I'll have to do some more reading on Ruby vs Php, I've used PHP a bit, so I'll have to do a comparison, in general a few programmers that I know have highly recommended Ruby on Rails and said that for my needs it's much better.

    What is CMS? Are you talking about Content Management System? If so is there one that is free or close to free? The whole point of me coding from scratch it to:

    a) Do it cheap, this is a commercial/start up idea that I'm implementing and I don't have 2-5k to pay someone else to make it.

    b) Get better at coding myself

    c) maintain a lot of control over the content and look at least at the beginning

    If there is a way to not do it from scratch but get the above three things still I'd really be interested in learning how. I put this project (in my head with no reason) at 6-9 months working full time for me, that would be learning what I need to of the code and actually writing the code. I was told by a company that it would take them 4-6 weeks and cost about $3,000 for them to implement the first stage of the website, so I think 6-9 months at $0 I can handle, I'm a patient pers
    Bodhi 1.3 & Bodhi 1.4 using E17
    Dell Studio 17, Intel Graphics card, 4 gigs of RAM, E17

    "The beauty in life can only be found by moving past the materialism which defines human nature and into the higher realm of thought and knowledge"

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •