A big project

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mike Novecento

    A big project

    Hi everybody,
    I am going to start a new company in a little while. The company will
    be founded when the first project will be in the alpha version. Several
    other projects will be done in future. My problem is determing what
    platform I should use.

    I know how to program in several languages but ignore this for the
    moment.
    I am going to start a big project like blogger.com, flickr.com,
    cragilists or something like that. The fact that the project will be
    (hopefully) popular implies security issues and application
    stress/scaling issues as well.
    For these reasons, I need to be very careful on the choise of the web
    development platform. I have 3 candidates:

    - PHP
    - Ruby on Rails
    - ASP.NET

    My aim is SPEED OF DEVELOPMENT, LOW TIME TO LEARN THE TECHNOLOGY and
    APPLICATION STRENGHT (to security and to scalability issues).

    Could you tell me what do you think of these 3 technologies for my
    needs. I am tempted by Ruby, but lots of people says it is not mature
    enough. Php, they say is not so secure and robust. ASP.NET I need 2
    years of study and 4000 pages, for doing an hello world (ok I am
    overestimating :-)).

    Can you help me? Tell me your comments?

    Thanks in advance,
    Mike

    PS: THANK-YOU, it is very important for my future the choise of
    platform for my company.

  • Dikkie Dik

    #2
    Re: A big project

    Mike Novecento wrote:[color=blue]
    > Hi everybody,
    > I am going to start a new company in a little while. The company will
    > be founded when the first project will be in the alpha version. Several
    > other projects will be done in future. My problem is determing what
    > platform I should use.
    >
    > I know how to program in several languages but ignore this for the
    > moment.
    > I am going to start a big project like blogger.com, flickr.com,
    > cragilists or something like that. The fact that the project will be
    > (hopefully) popular implies security issues and application
    > stress/scaling issues as well.
    > For these reasons, I need to be very careful on the choise of the web
    > development platform. I have 3 candidates:
    >
    > - PHP
    > - Ruby on Rails
    > - ASP.NET
    >
    > My aim is SPEED OF DEVELOPMENT, LOW TIME TO LEARN THE TECHNOLOGY and
    > APPLICATION STRENGHT (to security and to scalability issues).
    >
    > Could you tell me what do you think of these 3 technologies for my
    > needs. I am tempted by Ruby, but lots of people says it is not mature
    > enough. Php, they say is not so secure and robust. ASP.NET I need 2
    > years of study and 4000 pages, for doing an hello world (ok I am
    > overestimating :-)).
    >
    > Can you help me? Tell me your comments?
    >
    > Thanks in advance,
    > Mike
    >
    > PS: THANK-YOU, it is very important for my future the choise of
    > platform for my company.
    >[/color]
    It is nice to see that your objectives each lead to another platform.
    - Speed of development will probably lead to Ruby on Rails, especially
    when your projects gets bigger. Be sure to take the unit tests seriously
    if you really want speed of development.
    - Low time to learn suggests ASP .NET. You can "drag" a webpage together
    fairly easily. However, if you *really* want things done, it is at least
    as difficult as any other platform.
    - As PHP gives you very much control over what exactly is sent to a
    browser, it may be a good option for strength. But the strength can only
    come from the programmer. It can be weakened by the platform, not made
    stronger.

    Best regards

    Comment

    • Mike Novecento

      #3
      Re: A big project

      It's a beautiful answer Dikkie.

      Thanks,
      Mike

      Comment

      • Bradley  Holt

        #4
        Re: A big project

        Dikkie had a very good response - let me add my 2 cents. You said that
        security is a big concern. In my experience (at least between the
        platforms you mentioned) the way that you approach your coding is more
        important then what platform you pick. You can make a very insecure
        application on ASP.NET and a very secure application on PHP or the
        reverse. The differences in security between the two platforms is
        negligible compared to the security issues you as a programmer can
        introduce.

        As far as scalability goes: most people will tell ASP.NET is more
        scalable then PHP. In my experience this is simply not true. If you
        write good code and install the Zend Optimizer (which is free) your PHP
        applications will be very scalable. I have a friend who runs a
        PHP/MySQL site that gets over a million hits a day. He has everything
        load balanced across multiple servers.

        I don't have a lot of experience with Ruby so I can't speak for it's
        security/scalability.

        On a side note - you mentioned that you plan on building a big site. I
        think this is the wrong approach and you will be very disappointed with
        the results. Most of the successful sites I know of were either created
        over a weekend and became popular because it was a new idea that people
        liked or they were created by some big company with tons of money to
        spend on advertising. My suggestion would be to take your site idea,
        distill it down to what you can build in a weekend, and throw it out
        there for people to try. Only after you see how people use it will you
        truly understand what it is people will like using. If you try to build
        it all at once you will build in lots of unnecessary features that will
        just waste your time and annoy your users.

        --Bradley


        Comment

        • Umberto Salsi

          #5
          Re: A big project

          "Mike Novecento" <mike.novecento @gmail.com> wrote:
          [color=blue]
          > I am going to start a big project like blogger.com, flickr.com,
          > cragilists or something like that. The fact that the project will be
          > (hopefully) popular implies security issues and application
          > stress/scaling issues as well.
          > [...]
          > My aim is SPEED OF DEVELOPMENT, LOW TIME TO LEARN THE TECHNOLOGY and
          > APPLICATION STRENGHT (to security and to scalability issues).[/color]

          Contrary to the popular believe, the PHP language is a perfect choice
          either for small and for large projects, provided that you follow some
          guidelines:

          - Prevent collisions between constants, global variables, functions and
          classes adopting the naming schema MODULE_NAME.

          - Security: build your set of validation routines. All the input from
          the user must be validated by these functions. Every function should
          return the error message or the empty string:

          function Validate_TYPE($ name_of_the_fie ld, $value_of_the_f ield)

          - Security: never send to the client informations about the internal
          status of the WEB application. Always store them in the user session.

          - Security/Rapid development: use a framework to build WEB applications
          that support call-forward functions, call-backward functions and that
          implement a stack of function calls. A "call-forward" is the function to
          be called when the user click an anchor or a button of the current
          page. The call-backward is the function that will be inserted into the
          stack if the corresponding call-forward is called. The stack implements
          the same concept of a processor stack of data and return address.
          Just an example:

          function Data_Confirm($d ata)
          {
          PageHeader();
          echo "You entered '". Text2Html($data ) ."'. Confirm?";
          Form();
          # Set a button associated to the call-forward bt_return():
          bt_button("No", "bt_return" );
          # Set a button associated to the call-forward Data_Save($data ):
          bt_button("Yes" , "Data_Save" , $data);
          Form_();
          PageFooter();
          }

          The HTML code generated by this function might be like this:

          <HTML><BODY>Y ou entered 'xxxx'. Confirm?
          <FORM method=post action=your_web _appl>
          <INPUT type=submit name=button_1 value="No">
          <INPUT type=submit name=button_2 value="Yes">
          </FORM>
          </BODY></HTML>

          function Data_Save($data )
          {
          /* ...save $data... */
          # back to the caller:
          bt_return();
          }

          Note that every function generate a WEB page. Note that all the
          informations about the internal status of the application are never sent
          to the client, indeed they are stored inside the user session. The only
          things we expect from the client are: a session cookie, the values of
          the form fields, the button pressed.

          - Regularly check your WEB application with a source validator. I
          developed my own source validator, PHPLint, just to this pourpuse and,
          although not finished yet, it promote a good programming style similar
          to the Java language.

          Regards,
          ___
          /_|_\ Umberto Salsi
          \/_\/ www.icosaedro.it

          Comment

          • Manuel Lemos

            #6
            Re: A big project

            Hello,

            on 09/15/2005 03:09 PM Mike Novecento said the following:[color=blue]
            > My aim is SPEED OF DEVELOPMENT, LOW TIME TO LEARN THE TECHNOLOGY and
            > APPLICATION STRENGHT (to security and to scalability issues).[/color]

            If your project is Web based, with PHP your are on the right track.

            If your project is big and you do not have much time, you need to use
            powerful tools that let you go from design to implementation is a short
            period.

            My recommendation is for you to take a look at mature code generation
            tools for repetitive tasks. The reason for this recommendation is that
            with mature code generation tools you can drastically minimize the time
            you take to write, test and debug your project.

            There are code generation tools for many purposes. For instance, after
            you model the classes of data objects for instance using UML tools, you
            can implement such classes manually using well known design patterns
            like factory and DAO. That will work but since it is a repetitive task,
            you will take a lot of time to write, test and debug your hand coded
            classes.

            Code generation based alternative for generating data object classes,
            can avoid most of those problems as you just need to specify your class
            design and have the code generator tool produce the code for you
            according to your tastes.

            Metastorage is one tool like this that I have been using for 3 years now
            with great benefits to address exactly what you mentioned: speed of
            development.

            There would be a lot to say about this, but for now you may find more
            about Metastorage here:



            There are some screenshots of Metastorage Web interface here:



            You may also find a tutorial here to get you started quickly:




            --

            Regards,
            Manuel Lemos

            PHP Classes - Free ready to use OOP components written in PHP
            Free PHP Classes and Objects 2025 Versions with PHP Example Scripts, PHP Tutorials, Download PHP Scripts, PHP articles, Remote PHP Jobs, Hire PHP Developers, PHP Book Reviews, PHP Language OOP Materials


            PHP Reviews - Reviews of PHP books and other products


            Metastorage - Data object relational mapping layer generator

            Comment

            Working...