Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Perl IS a programming language, right?

by mirod (Canon)
on Dec 05, 2001 at 18:18 UTC ( [id://129600]=note: print w/replies, xml ) Need Help??


in reply to Perl IS a programming language, right?

Basically a programing language is whatever you define as a programing language. I don't think there is any standard definition of what it is.

So Perl is certainly a programing language. What you friend might be refering to is that some, amongst which some prominent (ex-)members of the Perl community, have problems with the fact that there is no formal definition of Perl: the language is defined as "what the perl interpreter can run". Which means that there is no single document describing exactly and completely the language, and (more annoyingly) that the language can (and does) change with each new version. This is seen as heresy by "formal computer scientist". It violates all the supposedly good rules of software design.

My take is that this is both accidental and deliberate, at least that Larry (and others, me for example) is perfectly happy with it: Perl behaves and evolves like a natural language (have you ever seen a formal definition of English? I haven't either). The fact that it is not designed a-priori allows for more room to evolve, with the community and the coders using p5p to solve problems when they arise and not beforehand. This process lets us find the best (for some value of best that takes into account DWIM and backwards compatibility) way to incorporate improvements to the language. Plus we can include new features without having necessarily sorted them out completely, and wait for user feedback to complete the implementation.

But I realize this can be unsettling for people used to reading the BNF of the language they use.

Replies are listed 'Best First'.
Re: Re: Perl IS a programming language, right?
by dragonchild (Archbishop) on Dec 05, 2001 at 18:55 UTC
    To go further with this idea ...

    Most computer languages (or, rather, every one except those derived from Perl) ... they have a formal specification. That specification (supposedly) goes through a number of iterations and is supposed to be proveable at the end. There is a set of algebraic things a computer language is supposed to be able to do/fit into. And, pretty much all the non-Perl-like languages can.

    Perl wasn't developed in a university, though. It was developed as a way for one man to do what he needed to do. Sed, awk, and sh were also developed this way, coincedentally. The only difference between awk and Perl is that Larry didn't realize he wasn't allowed to develop a programming language without a formal specification. So, he did. :-)

    You could do a formal spec on Perl. But, it might not be very consistent. I think there will be a formal spec for Perl6, though. (Reading some of the Apocalypses seems to indicate that to me.) Larry et al seem to be going towards cleaning up a number of the holes in the language, which is a good thing.

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://129600]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-03-28 20:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found