Pepper will aim to allow and encourage being explicit in all areas. It is intended particularly to enforce explicit ownership of objects, so that memory management is automatic, but entirely within the control of the programmer.

ExpressivePowerAndMetaprogramming

Pepper will provide high-level concepts from languages like Lisp such as first-class functions and generic programming. Where such concepts may be resolved at compile-time to machine language instructions they will be, and only where resolution must occur at runtime will overhead be incurred.

SyntacticSimplicity

Pepper will follow Python’s lead in reducing the amount of unnecessary syntax and providing mechanisms to make the programmer’s intentions clear.

Its syntax will feel relatively natural to programmers from the C++/Java/C# and Python language families.

EverythingBuiltIn

Pepper will provide ways to build user interfaces and use other technologies such as the web, XML, email. It will provide a single "right" way and encourage programmers to use and improve it.

For example, Pepper will provide generic methods for creating windows, menus, buttons etc. which will be implemented using different underlying technologies on different platforms (e.g. win32, Gtk+, Cocoa).

MiniLanguages

Pepper will allow and encourage the creation of mini-languages (including Domain-Specific Languages) which are native to the language but fit the domain of the problem they are solving.

Notes

Last updated 2012-11-28 08:27:23 GMT
Last updated 2012-11-28 08:27:23 GMTCopyright (C) 2010-2013 Andy Balaam and The Pepper Developers. Pepper and all its associated documentation are released under the MIT License. See the file COPYING.txt for details.