Pike 0.5b |
|
Pike 0.5 is now available for public beta testing, though |
unfortunately a bit crippled. Unfortunately, we are not able to supply the |
cryptographic toolkit and the full library of algorithms, due to Swedish |
export restrictions. However an application is being processed by the |
the authorities and as soon as we get an export license we will |
make an updated distribution available. However, this document is a |
brief presentation of the major characteristics of Pike 0.5. |
|
In spite of its youth, Pike has matured over the last few years and |
the coordination of the development is now managed by a team at Idonex |
AB. Still, Pike is released under the GNU General Public License |
(GPL), and is freely distributed and will continue being so. In short, |
this means that you are free to use and modify the source code in any |
way you please, see the file COPYING for details. Though, Idonex |
maintains the right to the brand name and the copyright, which is a |
guarantee that Pike future will be continuously developed and enhanced |
and to remain free software. |
|
Pike is an easy programming language to learn. Just as easily Pike |
lets you develop powerful applications. Pike is designed to be useful |
and powerful. As the syntax of Pike is similar to C, most programmers |
will find it easy to use. Being a a high-level, interpreted and |
modular object-oriented language, powerful applications can be |
developed rapidly. 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 better 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 comes with 0.5 comes a comprehensive manual, including both a |
tutorial and a reference. This will help you to quickly get the most |
out of Pike. A concise list of characteristics, or pros, of Pike: |
|
+ General Purpose Programming Language |
+ Freely distributed under the 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 in 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 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 with a set of modules that, some of whicha 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 cut and paste, scaling, rotation, linear filtering of most |
kinds, rendering text, etc. All drawing uses anti-alias. Using the |
Image module, you can automate jobs that you 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-mails, including |
attachments. |
|
|
Gz - Data Compression Module |
|
With this module you can compress data. It's name is a little |
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 |
(includng tripple DES) and CAST, the RC4 stream cipher, the hash |
functions MD5 and SHA, and the public key cryptography algoritm |
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. |
|
|
|