FAQ (Frequently Asked Questions)

What is PPL?

Why yet another programming language?

How does it work?

What's unique about PPL?

Which platform does PPL run on?

How much does PPL cost?

Which license is used?

How is PPL developed?

How is PPL funded?

How mature is PPL?

What can I do with PPL?

What do I need to develop applications with PPL?

Where can I find more information?

What is PPL?

PPL is an acronym for Practical Programming Language. PPL is a modern, high-level, portable, object-oriented programming language with functional elements and the following properties:

Why PPL?

There is a huge problem persisting for decades in the software development industry.

Right now, while you are reading this text, there are billions (yes billions) of bugs lurking in all kinds of software applications spread all over the world in all kinds of computers, mobile phones and other devices such as cars, airplanes, medical devices, etc.

Some bugs will never pop up. Others will frustrate users, developers and managers, or they will just be more or less annoying, such as this one:

Keyboard error

But a few bugs will be the cause of terrible outcomes. And some might even kill people (examples).

Every day, thousands of new bugs find their way into production mode, escaping all kinds of best intentioned tests before delivery.

We don't know were these bugs are located. We don't know exactly how many of them are there in the wild. And we don't know if and when they will strike. We have no idea about their outcomes.

We know that we don't know, but history and statistics reveal some frightening numbers:

You can easily find other sources stating similar data by searching the Internet.

Desiderius Erasmus once said:

Prevention is better than cure.

The same principle is valid in the field of software development. Software defect prevention is obviously one of the most worthy goals to be pursuit.

One way to prevent defects is to use a programming language designed to eliminate whole classes of bugs, and to detect remaining bugs as early as possible in the development process. Such a language would help to write reliable and safe code in less time. Ultimately, it would increase software quality and reduce time and costs for development and maintenance.

PPL is an effort to deliver such a language.

How does it work?

The fundamental idea is to consistently apply the Fail Fast! principle at every stage of the language's development:

There are many more Fail fast! features built into PPL. They are explained in the PPL documentation and illustrated with source code examples.

The aim is to fully adhere to the great and noble ...

Poka Yoke (ポカヨケ)

... principle at every stage.

According to Wikipedia:

Poka Yoke is a Japanese term that means "inadvertent error prevention". ... [It] helps an equipment operator avoid mistakes. Its purpose is to eliminate product defects by preventing, correcting, or drawing attention to human errors as they occur.

What's unique about PPL?

To achieve its goal (error prevention), PPL incorporates a unique combination of proven and innovative Fail fast! concepts not found or only partially found in other programming languages.

From the outset PPL was designed with these concepts in mind. They are part of the language and therefore lead to the following benefits:

Besides features for more reliability, PPL also provides modern and helpful programming techniques such as string interpolation, lambdas/closures, sequential and parallel streams (with filter, map and reduce functionality), and union (sum) types.

There are also special instructions and operators to make run-time error handling (e.g. file not found) as painless and non-obtrusive as possible.

Due to it's full integration with Java, all existing Java code can easily be used in a PPL application.

A language designed to find bugs quickly also increases productivity and makes programming more enjoyable, because less time is spent to find and repair bugs.

Which platform does PPL run on?

The PPL compiler generates Java binaries (.jar or .class files). Hence, applications written in PPL run on any platform that supports a Java Virtual Machine (JVM), such as Linux, Mac OS X, Unix, Windows, etc.

Other target code could be produced in the future, because the code generation part of the compiler has been designed with this flexibility in mind.

How much does PPL cost?

PPL is free of charge for everybody.

Which license is used?

PPL's standard library is licensed under the terms of the GNU Affero General Public License (AGPL) version 3.

The compiler implementation (included in the distribution) is currently not licensed under the AGPL. For more information please contact the author.

The license model might change in the future.

How is PPL developed?

PPL is developed by me: Christian Neumanns - a passionate programmer from Luxembourg, still dreaming of

number_of_bugs: 0

My intention is to create an open-source-community project.

Everybody is very welcome to participate.

How is PPL funded?

PPL is currently not funded and there are no revenues (neither in form of money nor other values).

I develop PPL in my free time.

How mature is PPL?

PPL (i.e. the compiler, the development environment and the libraries) is itself entirely written in PPL.

PPL is also used in the development of an ERP application.

Hence the language has been tested and debugged to a certain extent.

However, PPL is a work in progress and should not yet be used to develop mission-critical enterprise applications.

The syntax and semantics may slightly change in the future, and backward compatibility is currently not guaranteed.

The standard libraries available in PPL are incomplete and not yet tested thoroughly. However, you can always use existing Java packages if some functionality is missing or not mature enough in PPL.

The documentation is not finished yet.

Moreover, there is currently no support for an Integrated Development Environment (IDE). IDE support is planned to be added in the future. Some basic support for the IntelliJ IDEA is under construction.

Developers are encouraged to send feed-back to contact {at} practical-programming {dot} org. Bug reports and requests for improving or adding Fail fast! features are always handled with highest priority.

What can I do with PPL?

You can develop any kind of application that runs on a Java Virtual Machine.

You can develop on Unix (Linux), Mac OS X and Windows platforms and then deploy to anyone of these platforms (e.g. develop on Windows and deploy to Linux, or vice-versa).

You can also easily combine PPL and Java code in your application. For example, you can:

The advantage of using PPL is that you can benefit from PPL's specific support for more reliable code. At the same time, you can rely on the very popular, robust and successful Java technology, and you can easily embed existing Java libraries and frameworks in your PPL projects.

What do I need to develop applications with PPL?

You just need:

You can then download PPL (a single compressed file), read the documentation, and start developing.

You can deploy your application to any computer or device that supports a Java Virtual Machine (JVM).

Where can I find more information?

Documentation is available at www.practical-programming.org

If you need more information then please write a message to 'contact {at} practical-programming {dot} org'.