[Biophp-dev] Bioinformatics.org's PHP

S Clark biophp-dev@bioinformatics.org
Wed, 9 Apr 2003 13:24:32 -0600

On Tuesday 08 April 2003 11:51 pm, Dong Gregorio wrote:
> Well, I have some rough programs ready.  Just give me access rights
> so I can upload them.  Thanks.

Okay, today, I promise, I will try to get CVS worked out.  I believe
you will need to sign on to get a Bioinformatics.org login in order to
get access, but it shouldn't be a problem from there.

If Greg doesn't mind, I can also upload the sample code he sent me
somewhere for perusal (or he can do it himself presuming I get
"adding developers to the project" worked out...)

> Yes, I definitely agree. I'm one of those who (used to) grumble. =)

I, on the other hand, am one of those people who insists on compiling up
from source myself for maximum optimization, and I tend to include every
"optional" feature that I think I MIGHT use someday...but then again, I
recognize that I am a strange person, and MOST people don't do that...

> Personally, I think (Bio)PHP is better suited for web apps.  It
> suffers from two limitations when it comes to developing (non-web)
> applications: 1) it falls short in its OO features, 2) it's a lot slower
> than compiled languages like Java (although there is the
> Zend PHP compiler, but its steep price is a definite turn off!).

Well, I would tend to counter with "better than WHAT for web apps?", though
that's just my natural streak of "devil's advocate" showing through. 
Certainly, keeping potential web-based uses in mind is natural, given
that PHP was originally designed with this in mind and therefore the
web-based features are the "most mature" - I just aim to keep people from
forgetting that PHP is extremely useful OUTSIDE of web pages as well...

I'm not sure how Perl's OO features compare (I confess my occasional fiddling
with Perl got as far as trying to figure out, exactly, what the "bless()"
funcion REALLY did...), but I know Python is supposed to be much more
strongly Object Oriented.  I don't know that this is a MANDATORY issue, 
though - after all, a lot of the "famous" tools (e.g. clustal) seem 
to be written in plain old C.  On the other hand, I also get the impression
that PHP5 will be addressing many of the OO shortcomings that people
complain about.

The slowness in being an interpreted language definitely affects the
types of tasks that BioPHP is/will be suitable for, though carefully-designed
(for ease of use) front-ends to pass off "intensive" processing to compiled
applications will be a BIG boost, I think.

It's that specific idea that makes me so intrigued about PHP's support
for access to Java classes, and the possibility of a "BioJavaPHP" (Doo dah,
doo dah) sub-project to supply java classes that can be used for backend
processes like, say, multiple alignment which realistically need a 
"compiled" environment (but which theoretically won't need to be compiled
separately for each platform the way e.g. clustalw and such do, and
therefore can be distributed in a single package.)

Either way, having simple "frontends" or exporting data to and processing 
results from more complex analyses will make it very easy to write reasonably
complex, fully-automated processes for data with only a bit of PHP knowledge,
which I predict has the potential to make BioPHP very popular both for
web-based interfaces AND for "batch processing" of data.

> Oh well, but that's just my opinion.

How dare you have an opinion!?!?  Shame on you!  You should only have the
same opinion as everyone else!  Oh, wait a minute, this isn't propietary
software.  Never mind. :-)

As in so many other things, Choice is Good when it comes to opinions (In my
opinion ).  The more reasonable viewpoints available for open discussion, the
more rational and realistic the end result should be.

> Well, yeah, I suppose it should be able to do BOTH. [web and non-web]

Yup - again for me, this is mainly another "choice is good" issue, though
keeping in mind the ability to work outside of web pages makes it possible
to implement longer processes than would be feasible on a web page.

I wouldn't want to have people waiting for an hour while their browser waits
for a BioPHP-based script to do an identification, multiple alignment, and
phylogenetic tree of 50 18S rDNA sequences.