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

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
I once worked on a similar-sounding tool, to automate testing of a rather complex component in mobile phone systems. The initial goal was to create a commandline interface so that the testers could do their work. Each command would map back to a Perl function, which could then do whatever the heck it wanted.

However, the testers eventually wanted a way to batch up their commands, similar to how bash or sh does shell commands. So, we implemented a very simple, almost ASM-like scripting language for the application commands.

For most of the users, this was plenty. However, for the power users, we provide an "eval" command, which allowed them, if they wanted, to dig into the internals and do whatever they wanted from a Perl perspective. Of course, it was highly undocumented and required close cooperation from the developer(s).

We found that this was probably the best compromise. You give 100% of the users 90% of what they really end up needing and 90% of the users 100% of what they'll ever need. Then, you allow a safety valve for that 10% of what 10% of the users will want to do.

This is very similar to what Paul Graham describes in his essays on ViaWeb and the RTML language they created. The goal is to minimize the use of the safety valve by tracking what users do and, if they seem to use the safety valve for the same thing over and over, you make it so that they don't need the valve. It ends up being that the safety valve is a way for you to get enhancement requests. :-)

As for Perl itself being the interface ... Perl is a programming language. Unless your users are programmers, Perl is too complex and rich to be a good interface. That was the initial version of the tool I'm describing. A good set of commandline options will do 90% of what's needed. After that, it's just a matter of watching the power users and evolving over time.

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.


In reply to Re: Perl as an Interface by dragonchild
in thread Perl as an Interface by RollyGuy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (5)
As of 2024-04-20 09:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found