A big project

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
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
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:

- Ruby on Rails

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,

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

Re: A big project

Mike Novecento wrote:
Quoted text here. Click to load it
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  

Best regards

Re: A big project

It's a beautiful answer Dikkie.


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

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

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.


Re: A big project

Quoted text here. Click to load it

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

- 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_field, $value_of_the_field)

- 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($data)
    echo "You entered '". Text2Html($data) ."'. Confirm?";
    # 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);

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

<HTML><BODY>You 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">

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

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.

/_|_\  Umberto Salsi
\/_\/  www.icosaedro.it

Re: A big project


on 09/15/2005 03:09 PM Mike Novecento said the following:
Quoted text here. Click to load it

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  

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  

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  

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:



Manuel Lemos

PHP Classes - Free ready to use OOP components written in PHP

PHP Reviews - Reviews of PHP books and other products

Metastorage - Data object relational mapping layer generator

Site Timeline