Over 2018, ZPE has improved more than ever. Here is just a sample of the new language features brought through the year 2018:
- Performance is better than ever.
- The syntax is cleaner than ever.
- Its name is now a recursive acronym and much easier to say.
- It's more object-oriented than ever before. Object inheritance was added. Objects performance has been improved.
- TYPO was finally brought to the language.
- Native methods for objects were brought to the language.
- Error objects were added.
- Pre-increment and pre-decrement syntaxes were changed to be in line with other languages such as PHP - this was one of the most requested features back in the early days of ZPE.
- A new FOR LOOP, the FOR EACH IN LOOP was added.
- The circumflex (^) for representing the power value, e.g. 5^2 is now part of the syntax
- More syntactic sugar was added to the compiler, such as the IF...THEN statements. The fat arrow syntax for lambda functions was added.
elseif
can now be written aselse if
as well. - Value caching with the cache_value and read_cache allow programs to save information for later.
- If statements can have values assigned within them. E.g.
if(($v = 10) == 10)
- Python-style fixed arrays have now been added
- The interactive interpreter has been improved by miles - it performs better and doesn't stop when it has an error.
- Further refinement to 'everything is a function' strategy where the whole program runs within a function has been furthered.
- The internal updater has now been added
What's still left for development in 2019 then? Well, the answer is that there is a ton of stuff still to be done. For a start, I'd like to improve the performance of the LAMP parser considerably. There is definitely scope for improvement there. It will be a drop in replacement for the current LAMP parser too since the LAMP parser implements the ZPELAMP interface.
ZPE will also get the automatic update feature brought to it, so it will inform users when there is an update. The GUI object is also going to be one of the main focuses for the next version of ZPE. As well as that, ZPE will move further to becoming an object-oriented language by furthering the number of object-based methods within the language. 2018 also added a Python transpiler, I will continue to work on that and hopefully finish that.
What happened to ZPE 2.0?
ZPE 2.0, the C++ compiler, interpreter and runtime that was designed to replace ZPE 1.x was going to take too long to develop and I'm quite happy to work on ZPE 1.x for now as my main project. In the future I will possibly continue to work on ZPE 2.0 again.