dc04b82000-04-11Fredrik Hübinette (Hubbe) Pike 7.1 developer version
1975c91997-11-18Peter Nordgren  While still young, Pike matured over the last few years, and
7d0edb2000-10-07Henrik Grubbström (Grubba) 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
1975c91997-11-18Peter Nordgren free to use and modify the source code in any way you please, see the
7d0edb2000-10-07Henrik Grubbström (Grubba) 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.
1975c91997-11-18Peter Nordgren  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
7d0edb2000-10-07Henrik Grubbström (Grubba) it, from a users perspective.
192f621997-11-18Niels Möller  Pike is just as suitable for intricate and large applications as for creating use-once scripts. When needed, you can also write
1975c91997-11-18Peter Nordgren Pike modules in C, to gain better performance or access C
192f621997-11-18Niels Möller 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.
68b3461998-07-27Fredrik Hübinette (Hubbe) A list of pros and cons with Pike follows:
192f621997-11-18Niels Möller  + General Purpose Programming Language
1975c91997-11-18Peter Nordgren  + Freely distributed under GPL
192f621997-11-18Niels Möller  + 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:
7d0edb2000-10-07Henrik Grubbström (Grubba)  Solaris 2.5.1 & up (Sun SPARC & Intel x86)
dc04b82000-04-11Fredrik Hübinette (Hubbe)  Tru64 AIX 4.3
7d0edb2000-10-07Henrik Grubbström (Grubba)  IRIX 6.5
dc04b82000-04-11Fredrik Hübinette (Hubbe)  FreeBSD 4.0
192f621997-11-18Niels Möller  HP-UX 10.20
dc04b82000-04-11Fredrik Hübinette (Hubbe)  Linux Red Hat 4.2, 5.2, 6.1 and others (Intel x86)
192f621997-11-18Niels Möller  + 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
1975c91997-11-18Peter Nordgren  + Faster Development than using C or C++
192f621997-11-18Niels Möller  + C-like Syntax - Easy to learn Below you will find a list of some desired but missing features, or
7d0edb2000-10-07Henrik Grubbström (Grubba) cons, of Pike. Pike is still under development and the goal is to incorporate those in future versions.
192f621997-11-18Niels Möller  - No Pike native compiler or debugger available - Not optimal for heavy numeric processing jobs
1975c91997-11-18Peter Nordgren  - Limited range of special effect image filters for image processing
192f621997-11-18Niels Möller  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
1975c91997-11-18Peter Nordgren Pike is distributed accompanied by a set of modules, some of which are
192f621997-11-18Niels Möller described below. Image - Image Processing Module The Image module lets you perform common image manipulation and processing operations from Pike programs. The supported operations
1975c91997-11-18Peter Nordgren include cutting and pasting, scaling, rotation, linear filtering of
2d17af1997-11-20Niels Möller 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.
192f621997-11-18Niels Möller  Sql - Interface to SQL Databases The SQL interface makes it possible to use common SQL databases from
7d0edb2000-10-07Henrik Grubbström (Grubba) within your applications. It includes support for mSQL, MySQL, Postgres, Oracle and ODBC.
192f621997-11-18Niels Möller  MIME - Multimedia Internet Mail Extension Module
52bebb1997-11-18Henrik Grubbström (Grubba) This module makes it easy to create and decode e-mail, including
192f621997-11-18Niels Möller attachments. Gz - Data Compression Module
1975c91997-11-18Peter Nordgren With this module you can compress data. Its name is slightly
192f621997-11-18Niels Möller 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
7d0edb2000-10-07Henrik Grubbström (Grubba) objects together. The toolkit includes block ciphers AES, IDEA, DES
52bebb1997-11-18Henrik Grubbström (Grubba) (including tripple DES) and CAST, the RC4 stream cipher, the hash functions MD5 and SHA, and the public key cryptography algorithm
192f621997-11-18Niels Möller 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.