Pike 0.5b |
|
Pike 0.5 is now available for public beta testing, though |
unfortunately it is not quite complete. Due to Swedish export |
restrictions we are unable to supply the cryptographic toolkit and the |
full library of algorithms. An application is being processed by the |
authorities, and as we get an export license we will make an updated |
distribution available. This document is a brief presentation of the |
most important characteristics of Pike 0.5. |
|
While still young, Pike matured over the last few years, and |
development is now co-ordinated by a team at Idonex AB. Pike is still |
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. Idonex 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 user's 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. |
|
Pike version 0.5 comes with a comprehensive manual, including both a |
tutorial and a reference. This will help you to quickly get the most |
out of Pike. Below is concise list of characteristics, or pros, of |
Pike: |
|
+ 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 & 2.6 (Sun SPARC & Intel x86) |
Digital UNIX 4.0 |
AIX 4.2.1 |
IRIX 6.3 |
SCO UnixWare |
FreeBSD 2.2.2 |
HP-UX 10.20 |
Linux Red Hat 4.2 (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. As indicated by the version number 0.5, Pike is still |
under development and the goal is to incorporate those in future |
versions. |
|
- No Pike native compiler or debugger available |
- Limited image format import and export support |
- Not optimal for heavy numeric processing jobs |
- Not for GUI based applications |
- 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. All drawing uses anti-alias. 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. |
|
Currently, the only input format is ppm. Output formats are ppm and |
gif. |
|
|
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 and |
Postgres. |
|
|
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 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. |
|
Unfortunately, the cryptograpy toolkit in this release has been |
stripped of all real cryptography. It includes only the hash functions |
and the glue objects. The full cryptographic toolkit will be released |
as soon as the export issues have been resolved. |
|
|
|