Plate

By npllang

Plate is an interesting project.

Some excerpts from the website:

Plate integrates all the common programming interfaces into a unified visual space. This projects begins with the assumption that a text-based language is an appropriate and powerful method of representing a program.

Unlike a traditional text-editor, in which any series of letters may be generated, Plate breaks up the programming language elements (which are generally few in number) into immutable plate objects. When rearranging these plate objects into meaningful structures, the user is constrained so that only syntactically correct statements may be composed. This effectively eliminates the plentiful syntax errors which are such a bane to both novice and experienced programmers.

In short, each plate is an expression and each immutable plate maps to a statement. Though Unified interfaces and text-based programming are good insights, the claim that syntax errors are a bane does not hold ground given the kind of IDE's and languages we have today. This approach to building programs may not scale when the language is dynamic.

But the best thing i like about this project is the interface which is quite good and the best i have seen to visualise the execution of a text. Unfortunately, this interface doesn't work well when there are lots of variables in scope because the UI assumes that value of variables will be in the viewers head during the evaluation of the expression. The below image is a cheesy gimp work, that will fix this problem by showing the values of variables on top while evaluating the expression.

Optional Interface
Sadly, the author did not publish any papers and hence the implementation details remain unknown. Also, the website does not mention if the environment re-executes the procedure everytime a value is changed, I think it does.

I plan to build a similar UI for NPL, when the user wants to see the execution of a single function.

Leave a Reply