Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: The disadvantages of mini-languages

by Corion (Pope)
on Feb 04, 2005 at 13:56 UTC ( #428055=note: print w/replies, xml ) Need Help??


in reply to the disadvantages of mini-languages

While your exposition is good and raises good points, the conclusion is wrong. Mini-Languages have their place, as domain-specific tools for expressing domain specific rules. Two examples:

  • make - like its greater sibling, Prolog, make employs its own minilanguage for specifying rules and actions which will be verified respectively executed in a fashion to reach a goal. The make syntax has no nice counterpart in Perl.
  • SQL - SQL is a very restricted language with one goal - to unify queries against database servers. While DBI does not have its own proprietary minilanguage, it employs SQL as a widerspread minilanguage.

Your ad-hominem attacks on the authors of CGI::Application and CGI::Prototype don't help either.

Update: Struck out the part of the reply that criticized the (now removed) attack.

  • Comment on Re: The disadvantages of mini-languages

Replies are listed 'Best First'.
Re^2: The disadvantages of mini-languages
by metaperl (Curate) on Feb 05, 2005 at 13:47 UTC
    1. make as a language has shown itself to be inadequate. why do you think people invent things like cook, MakeMaker, Module::Build and makepp (a pure perl implementation of GNU make which extends it with Perl functionality?
    2. ditto for SQL. Why was it extended with stored procedures? Why is it necessary or far more convenient to handle complex processing client side with Perl instead of server-side with SQL.

    summary: neither language provided does anything other than show that mini-languages are limited and inflexible. They make easy things easy and hard things difficult or impossible.

      Each of those has replacements. Those replacements are in the form of other domain-specific languages. In either case, the domain-specific part was not fundamentally flawed; rather, the designers had insufficient understanding of the problem domain.

      "There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.

      make as a language has shown itself to be inadequate. why do you think people invent things like cook, MakeMaker, Module::Build and makepp (a pure perl implementation of GNU make which extends it with Perl functionality?

      I don't know cook or makepp, so I won't comment on that. MakeMaker was created to create Makefiles for a specific purpose. MakeMaker is poorly equiped to generate a Makefile for, oh, say, a Linux distribution. Module::Build was created because some people don't like MakeMaker.

      ditto for SQL. Why was it extended with stored procedures? Why is it necessary or far more convenient to handle complex processing client side with Perl instead of server-side with SQL.
      Actually, it's not. It's never necessary to do data processing in Perl. As for it being "more convenient", it being more convenient usually stems from programmer blinds - creating tunnel vision. Most programmers can only program in one type of language category very well, and Perl (iterative programming - a language category that also contains C, Java, Python and PHP) and SQL (set algebra) are vastly different categories. It usually goes "Oh, I need to do something for every piece of data. Thus I need a loop. But loops are hard in SQL. Hence I need to do it in Perl."
      Sometimes it's easier to do it outside the database. Sometimes, it's even more efficient to do it outside the database. But that happens less often than many people think.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2019-10-19 04:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?