why not perl?

why no one uses perl for pure product development like to build a adobe acrobat reader etc...? cant we make an executable in perl? what are the limitations of perl? I still find it used only for scripting type of use.

Comments

  • : why no one uses perl for pure product development
    They do.
    http://perl.oreilly.com/news/success_stories.html

    : like to build a adobe acrobat reader etc...?
    Perl probably isn't the best tool for building that particular type of application; PDF = graphical rendering = need speed. Perl does what it does pretty fast, but isn't going to hit the raw speed that some other languages can for graphical stuff. Also, GUI APIs have been around and used more in many other languages than in Perl.

    : cant we make an executable in perl?
    This isn't commonly done, and the facilities for doing it are a bit medioca. That's to improve; Parrot (the runtime engine for Perl 6, which will also be able to run Perl 5) can use its JIT subsystem and some other magic to build executable files. I don't find not being able to build exe files to be a big deal - they're not protable between platforms anyway, which is one of the good things about Perl.

    : what are the limitations of perl?
    You couldn't write an OS in it, for example, because it needs an interpreter. The ability to write C extentions, using XS, means you can interface Perl to pretty much anything you want though, and there are a HUGE range of modules out there already. Sometimes it's a question of suitability rather than possibility.

    : I still find it used only for scripting type of use.
    :
    Depends what you mean by "scripting type of use". I've done plenty of things in Perl, using object orientation and all sorts of things that you wouldn't find in a scripting language.

    Jonathan

    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

  • perhaps why people dislike perl for development of robust systems is no direct support from language to do multi-threading, platform independent GUI (like java swings), not sure how effective is its memory management system compared to that of Java, and it being a open source language the power to make language more richer is little bit slow compared to high motivation and fund support from sun micro systems in case of Java.
    people say perl is portable but when you are using system APIs then u cannot be sure. for example, if i have written a multi-process program with fork() and try to run on windows, it wont be cool bcaz fork is not effective on windows. This is why complex product development(non-web based) is ineffective in perl
  • : perhaps why people dislike perl for development of robust systems is no
    : direct support from language to do multi-threading,
    Wrong. "The ithreads code has been available since Perl 5.6.0, and is considered stable."
    http://search.cpan.org/~nwclark/perl-5.8.6/pod/perlthrtut.pod

    : platform independent GUI (like java swings),
    Wrong.
    http://www.perltk.org/

    : not sure how effective is its memory management system compared to
    : that of Java,
    Define effective. Perl 5's interpreter uses refcounting, JAVA uses reachability-based GC (it does generational GC, but I'm not sure if that's the default). JAVA's GC can probably outperform Perl's at the moment, but Parrot will have reachability-based GC so that may not be the case for the long term. One big thing Perl does have over JAVA is the promise of timely destruction/freeing of memory and the promise of destructors being executed. JAVA makes no promises about this. So in that sense Perl is more effective.

    : and it being a open source language the power to make language more
    : richer is little bit slow compared to high motivation and fund support
    : from sun micro systems in case of Java.
    You've not come accross CPAN yet, huh? :-) Language changes aren't always that desirable anyway. What is desirable is a bigger set of libraries so you have to roll less of your own code. New and updated Perl modules are being released every day - bit faster than JAVA! Agree it would be nice if Perl development was a bit better funded, mind...

    : people say perl is portable but when you are using system APIs then u
    : cannot be sure.
    If you're using system APIs in *any* langauge you cannot be sure. I can say JAVA isn't portable because that system API that I called in my JNI module didn't work out too well on one platform, but it doesn't hold that much weight. Admittedly, some of the built-ins to Perl are UNIX specific, but that's mostly for backwards compatibility (Perl came from a UNIX scripting background).

    : for example, if i have written a multi-process program with fork() and
    : try to run on windows, it wont be cool bcaz fork is not effective on
    : windows.
    Windows has a different process model, yeah. But fork() is simulated by the Perl interpreter and does work. It works much better in Perl 5.8 than in 5.6 on Windows.

    : This is why complex product development(non-web based) is ineffective
    : in perl
    :
    I might believe you, if you weren't wrong about quite so many things...

    Jonathan

    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

  • In regards to the threading. I designed a stable client that connects to a game server and interacts with people in perl. I use threading it in to time things, I have not ever had a problem with them.

    The sockets support and threading support are quite easy to work with, and I consider them quite powerful features. Forks, in my opinion, are harder to work with.

    I can't wait to see the power of Perl 6.
  • : I can't wait to see the power of Perl 6.
    :
    You can start playing with Perl 6 today, though this is incomplete and isn't ready for any serious usage.
    http://www.pugscode.org/

    Have fun,

    Jonathan

    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

  • Java is not platform independent when system dependant features are used.
    In Java we do it using JNI(Java Native Interface) and we can plug the Microsoft / Linux or any OS's library to Java through JNI. But Sun is NOT recommending JNI to keep platform independence of Java

    :-) Varghese Chacko :-)

    A man can fail many times,
    but he isn't a failure
    until he begins to blame somebody else.

    ~John Burroughs~


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories