192f621997-11-18Niels Möller 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.