The C++ Portable Types Library (PTypes) is a simple alternative to the STL that includes multithreading and networking. It defines dynamic strings, character sets, variants, lists and other basic data types along with threads, synchronization primitives and IP sockets. It is portable across modern Unix and Windows systems and includes a sample HTTP daemon showing the full power of the library.
Shannon is a general purpose stream-oriented programming language; it is concise and yet feature rich. Streams, FIFOs, and Unix shell-style pipes are first-class concepts in the language. You can connect functions and FIFOs within your program similar to the way you connect processes with pipes in the Unix shell. These constructs in Shannon, however, are highly efficient as no true multitasking is involved, and at the same time they allow you to write more concise and readable code for chained data processing. State is a special type of function that returns a reference to its own local data and any nested functions it may have. In effect, states implement classes in terms of OOP, and yet classes per se aren't part of the language. A special type of modules marked as "persistent" is an effective replacement for databases and SQL. This allows you to access persistent shared data using native Shannon constructs, eliminating the need for an extra query language. Intuitive and minimalist syntax and semantics are used. Particularly, "minimalist semantics" means less things to remember and more possibilities. Shannon is statically-typed, although it provides dynamic typing facilities as well.
Re: PTypes / STL comparative
> Has somebody done a comparative between
> PTypes and STL? It should be nice to
> see a comparative about performance and
> memory ocupation for several
> hungry-resource problems.
I did some tests on my FreeBSD and also on a Windows 2003 machine with MSVC. In summary, the basic operations on dynamic arrays (std::vector and pt::tpodlist) are nearly equal, but PTypes produces less binary code.
The picture with dynamic strings is different. PTypes performs better than Microsoft's string class, but it is worse than GNU.
As for memory usage, PTypes uses less memory space for strings compared to GNU, by exactly one 'int' per string (the capacity is not stored, a quantization algorithm is used instead in PTypes).
(BTW, a better place to discuss this is the project management page at SourceForge.net: