Pike 7.3 developer version |
|
While still young, Pike matured over the last few years, and |
development is co-ordinated by a team at Roxen Internet Software AB. |
Pike is released under the GNU General Public License (GPL). It is, and |
will continue to be, freely distributed. Briefly, this means that you are |
free to use and modify the source code in any way you please, see the |
file COPYING for details. Roxen Internet Software maintains the right |
to the brand name and the copyright, guaranteeing that Pike will be |
continuously developed and enhanced, and remain free software. |
|
Pike is easily learned, and just as easily used to develop powerful |
applications. Pike is designed to be useful and powerful. As the |
syntax of Pike is similar to that of C, most programmers will find it |
easy to use. As Pike is a high-level, interpreted and modular |
object-oriented language, powerful applications can be rapidly |
developed. Pike has evolved rather than been designed. The changes to |
Pike that have been made have been guided by its users' needs. In |
general, the better you get to know Pike, the more you will appreciate |
it, from a users perspective. |
|
Pike is just as suitable for intricate and large applications as for |
creating use-once scripts. When needed, you can also write |
Pike modules in C, to gain better performance or access C |
libraries. This is transparent to the module's users; the modules |
written in C and those written in Pike are accessed in exactly the |
same way. |
|
A list of pros and cons with Pike follows: |
|
+ General Purpose Programming Language |
+ Freely distributed under GPL |
+ Interpreted - No compilation and linking needed to run code |
+ Object Oriented - Straightforward and powerful object |
orientation, including multiple inheritance |
+ Modular - Extendible with modules written in C or Pike |
+ Powerful - High-level language, concise code |
+ Incremental - Allows on-the-fly modifications and recompilations |
+ Source Code Available - To promote sharing of useful code |
+ Portable - Platform independent and available on most flavors of Unix |
At present the following platforms are supported: |
|
Solaris 2.5.1 & up (Sun SPARC & Intel x86) |
Tru64 |
AIX 4.3, 5L |
IRIX 6.5 |
FreeBSD 4.0 |
HP-UX 11.00 |
Linux Red Hat 4.2, 5.2, 6.1, 7.1 and others (Intel x86) |
|
+ Powerful, Flexible and Efficient Data Types |
+ Automatic Memory Management |
+ Scalable - as useful for small scripts as for powerful and |
complex applications. |
+ Text Processing - e.g. for filtering |
+ Exception Handling |
+ Multi-Threaded Application Development Possible |
|
How Pike relates to other programming languages: |
|
+ Optimized - Faster run-times than Perl, Python, tcl and Java |
+ Faster Development than using C or C++ |
+ C-like Syntax - Easy to learn |
|
Below you will find a list of some desired but missing features, or |
cons, of Pike. Pike is still under development and the goal is to |
incorporate those in future versions. |
|
- No Pike native compiler or debugger available |
- Not optimal for heavy numeric processing jobs |
- Limited range of special effect image filters for image |
processing |
|
|
Some successful applications using Pike include: |
|
+ Network Applications - as Client/Server applications |
e.g. the Roxen Challenger Server and a range of server extensions |
Mail Gateways |
Client/server Protocol Implementations |
Multi-User-Dungeons |
+ System Administration Tools & Utilities - Even as quick one-shots |
e.g. adduser or adddomain scripts that setup users/domains |
Real-time Client/Server Status Monitor |
+ Assorted Text Processing Utilities |
+ CGI Programs |
|
Pike is distributed accompanied by a set of modules, some of which are |
described below. |
|
|
Image - Image Processing Module |
|
The Image module lets you perform common image manipulation and |
processing operations from Pike programs. The supported operations |
include cutting and pasting, scaling, rotation, linear filtering of |
most kinds, rendering text, etc. Anti-aliasing can be used when |
performing any kind of drawing operation. Using the Image module, you |
can automate jobs that would otherwise have required tedious work in |
an interactive image processing program such as Adobe PhotoShop. |
|
|
Sql - Interface to SQL Databases |
|
The SQL interface makes it possible to use common SQL databases from |
within your applications. It includes support for mSQL, MySQL, Postgres, |
Oracle and ODBC. |
|
|
MIME - Multimedia Internet Mail Extension Module |
|
This module makes it easy to create and decode e-mail, including |
attachments. |
|
|
Gz - Data Compression Module |
|
With this module you can compress data. Its name is slightly |
misleading, as it uses ZLIB. ZLIB uses the same compression algorithm |
as gzip, but the format for the compressed data is not compatible with |
gzip. |
|
|
Crypto - Cryptographic Toolkit |
|
The crypto toolkit is a set of objects implementing various |
cryptographic algorithms, as well as objects used to glue the other |
objects together. The toolkit includes block ciphers AES, IDEA, DES |
(including tripple DES) and CAST, the RC4 stream cipher, the hash |
functions MD5 and SHA, and the public key cryptography algorithm |
RSA. It also includes a some randomness sources. |
|
The toolkit can be used for most kinds of cryptographic applications, |
including encrypted network connections, as well as encryption of |
files or other data. |
|