# Perl for MacOS X?



## Darwiniano (May 30, 2005)

Hi, I want to make my first steps into programming and I want to know your opinion about Perl.
I'm a molecular biologist, so my interests are mainly to organize several kinds of data, to perform some DNA and protein analysis, to manage data bases, and some personal stuff...

Thanks!! 

I've forgot to mention, that I work in both Mac and PC


----------



## coogsteve (May 30, 2005)

IMHO, Perl is great for scripting OS activities, but I much prefer Python for scientific applications.  Like Perl, Python os open source and runs on just about any platform and the MacPython community is very helpful.

Steve


----------



## Darwiniano (Jun 1, 2005)

Thank you, I will read some about python (I don' t know it...)

Then.. I will see


----------



## Viro (Jun 1, 2005)

Go for Python instead of Perl. Python additions, like Scientific Python make Python very similar to Matlab in terms of computational capability. There are also packages that provide most of the Matlab style plots, which is very cool.

I wouldn't touch Perl with a 10 ft pole.


----------



## kainjow (Jun 2, 2005)

Perl is excellent when it comes to text manipulation, that is where it is best at. But it does have a steep learning curve it seems..


----------



## Viro (Jun 2, 2005)

Darwiniano sounds like he/she is interested in some heavy number crunching. Python with the numerics package is well suited to such a task. Perl would be much slower, unless there is a similar package that I'm unaware of.


----------



## Darwiniano (Jun 5, 2005)

Well, definitly, I see that it's better for me to learn Python, even when at the first instance, I don't believe that I would use so much "heavy number crunching". But probably in the early future, I will... it's better to prevent..

Thank you!


----------



## chornbe (Jun 5, 2005)

Darwiniano said:
			
		

> Hi, I want to make my first steps into programming and I want to know your opinion about Perl.
> I'm a molecular biologist, so my interests are mainly to organize several kinds of data, to perform some DNA and protein analysis, to manage data bases, and some personal stuff...
> 
> Thanks!!
> ...



perl encourages sloppy, unstructured programming and it's object creation speed and performance (when using OO style programming) is abysmal compared to almost *anything* else you'll use. Perl is a great text-munging language with fantastic file IO support. Python is a good evolutionary step forward, but again, it's easy to become a lazy sloppy programmer.

If you're serious about continuing to program and you want to be a "real" programmer for the long term, jump into a good structured language - C, C++, Objective-C, Java, etc. 

(note: I define a "real" programmer as one who will work on large, complicated systems in a team envrionment with actual paying customers and a revenue base, or a staff developer who doesn't want to end up a stale victim of too narrow focus and scope - a one trick pony) 

I work at a company that uses Perl for big, complicated, heavy-hitting systems and it's a joke. It's a slow running system with *only* a web interface, too many proprietary pieces and no broad expansion capability.


----------



## Viro (Jun 5, 2005)

chornbe said:
			
		

> I work at a company that uses Perl for big, complicated, heavy-hitting systems and it's a joke. It's a slow running system with *only* a web interface, too many proprietary pieces and no broad expansion capability.



Hope you don't mind a question I have about Perl. My brief experiences with Perl is that it is very easy to knock up a small program in Perl, but once you get into something complex, in the order of a thousand lines of code, things become nearly unmanageable (which is a complete joke, if you're talking about huge programs that usually span thousands of lines of code). 

I wanted to know if this was the general case or if I was just an exceptionally sloppy coder? In my book, Perl has way too many disadvantages and while it makes coding small applications easy, maintenance of Perl programs becomes a real chore. I wondered if there was any reason people chose Perl other than the fact that it looked easy to start with.


----------



## chornbe (Jun 5, 2005)

You are dead on, from my experience. As I mentioned, my company embraced Perl as *the* language of choice, retiring their java and c++ code bases over time. They still use C++ for the numeric/financial calculations, but that's about it. We have a very sloppy (personal opinion) mix of Perl scripts, modules and Embperl for web pages. Combined with all the complexities of a completely home-grown environment, I personally find it amazing we can keep anything up and running for any reasonable period of time. There's more maintenance programming and bug-fixing going on than you can imagine and new development is stifled by all the maintenance work. 

yes, Perl is great for small, well defined solutions to problems, but (again, in *MY* opinion) it's the absolute wrong tool for big systems. Millions of lines of script code should not an enterprise system, make.

$.02


----------



## cfleck (Jun 5, 2005)

I have to back up all the opinions about perl here letting the progammer get sloppy and big programs unmanagable.  BUT, since our poster here is in mobi, it is entirely likely he/she is concerned with sequences.  Perl is awesome for this sort of thing.  As well, there is an O'Reilly book dedicated to Perl and computational biology.  Big help.

On yet another plus, many a piece of bio software has been written in perl, including oh-so-handy code snippets and libraries to handle tedious yet essential things such as reading fasta (and other formated) files.

In short, don't cut Perl off yet.  It is still used by a heck of a lot of people in this particular field.


----------



## Darwiniano (Jun 13, 2005)

Well, thank you for all of you... I've read a little bit of Perl, and I've started to learn Python... I think that on the way I will decide wich one adapts better for my needs. And maybe, in the future and if I'm doing good, I'll learn C or C++ or something like that.
Thank you again..


----------

