in reply to
Comparison between Perl and Ksh
Just calling managers stupid does not solve any problem. They just have different priorities then us programmers and it is actually a legitimate question from his point of view. (why use tool x v/s tool y) especially when he is under the impression that tool x is supported by Sun but tool y is not.
Yes, I know that most of us know that Perl is obviously better than ksh scripts. But it needs to be presented in a rational, and convincing manner. Remember that he is probably not a manager for his technical prowess but for other qualities such as knowledge about the business, managing people, etc.
Below are some arguments that I would put forward:
- Perl ships with a debugger. This significantly reduces time spent in troubleshooting issues, tracking down bugs. Benefit is reduced development time and maintenance time
- since perl is compiled first and then interpreted, it provides much better error checking. Especially when you use strict and warnings, a lot of problems are detected and the exact line of offending code is provided. This significantly reduces development time.
- Since a lot of common utilities such as for sorting, searching, counting are build into perl, we do not need to keep starting a new process for each function. This tends to make perl scripts more efficient in term of system resources as compared to ksh scripts.
- CPAN. There is a wealth of already implemented and rigorously tested functionality available. This can cut down development time by a large factor and allows your development staff to concentrate on the business logic rather than having to implement networking logic or algorithms, etc.
- Persistent storage. Perl can connect to databases, Berkley db, text files, etc. AFAIK, ksh is limited to dealing with flat files. (This depends on what the project/application is.)
- Complex data structures. Perl makes it very easy to
create highly complicated data structures. These can model
the business situation and provide a much more intutive approach to the programming task. This makes the problem easier to solve hence reduced development time. Also it is easier for a new team member to understand the system hence a new employee can be productive much sooner.AFAIK, ksh is limited to simple environment variables.
- Concurrent processing is very simple in perl since we can fork, use IPC to synchronize, get status, etc. With ksh you can launch background process, but your scripts do not tend to have as much control on them (or atleast it is much more difficult AFAIK).
- Object Oriented. Perl has pretty good support for OO, this makes application extensible and easier to maintain. They are also easier to understand.
- Thanks to TK, gui developement (for admin tools) is a piece of cake. You can also do curses-like non X development. It just isn't that easy with ksh. Also, with perl you have the option of making the admin tools web-based since CGI and other modules make it very easy to put web interfaces together. And since its all in the same language it will interface well with other code/system/application.
- If speed is of great importance, you have the option of compiling perl scripts into a binary executable. This will make it faster than any ksh scripts. (Before you flame me on this, just note that it makes a good argument)
In my experience having some numbers to back up above can go a long way. So, for example if you can take a small representative task and record the time it took to do in perl and then in ksh. (Assuming perl will take less time) That could convince your manager like nothing else. BTW, quoting benchmark numbers from someone else is not as effective.
You would also probably want to explain to your manager that the ksh support that sun provides is for fixing bugs in ksh not your scripts. And if vendor support is a major issue then it can be obtained from ActiveState. ActiveState does support perl on solaris.
Just adding my 2 cents
<cite>Just a tongue-tied, twisted, earth-bound misfit. -- Pink Floyd</cite>