ZPE for the last few months has been in the back-burner a bit, something I absolutely hate to have to admit, but it's been like this because of the fact that it's really such a complete language. This makes it hard to add new innovations to the compiler design and features to the interpreter.
For a long time, Typo has been under development and unfortunately has yet to be released. During the days of BRS, Typo was an easy system to implement but because of the fact that ZPE focuses on speed of compilation Typo has been difficult to implement.
The future of ZPE is not going to be about updating each version with new interpreter functionalities but focusing on tightly integrating the design so that it supports 'plugins' - but not plugins to add features but to add more built in functions. The standard library (stdLib) did this in a way that expanded ZPE using only the ZenLang code and in turn only used features that already existed to build a set of very useful tools.
ZPE's plugin system is powerful and efficient, so development of smaller functionalties is a good idea - it will also keep the size of the main executable file down to a minimum thus making it more portable for users who do not need all of the functionalities. I recently added a new function for testing if a built-in function exists so that applications can be independent of versions.
I hope you have enjoyed using ZPE to date and I'm looking for feedback. Version 1.4.4.3 includes the feedback command, so all you do is type into your code to leave feedback:
feedback();
Tonight I am happy to announce the next version of ZPE, version 1.4.4. This is next stable release of ZPE that can be used for production and it brings a variety of new changes including:
- The revamped LAMP parser introduced in the update versions of 1.4.3 (i.e. 1.4.3.10 and 1.4.3.40)
- A better LAMP interpreter
- The new Try-Catch statements
- New increment and decrement operators (+= and -=)
- Added string concatenation through the concatenate operator
- Better error handling and better internal error messages
- The hashing algorithms (SHA and MD5)
- The associative array now uses the => instead of = to make an association
- Objects and structures have merged into one
- Added scopes (public, private and friendly) to variables
- Made the interpreter more efficient with memory and less likely to crash
ZPE 1.4.4 which is the stable release of the beta updates of version 1.4.3 is the best version of ZPE to date and it is by far the best version I have released! I have finally finished the core of ZPE and no longer need to add any more constructs to the main language (although you can suggest some if you'd like). I cannot tell you what this feels like to finally have the language work like any other language out there but to have achieved all of its aims.
The future of ZPE
The future of ZPE is going to focus on conversion between languages and the standard library. I will leave ZPE at version 1.4.4 for the foreseeable future since the version numbers tend to come from the fact that an internal feature has been added to the compiler or interpreter. Of course, if bugs are found they will be fixed and ZPE updated.
In the meantime, I will hopefully begin the construction of a formal language syntax for the language. This will take some time but it should be pretty good fun too. I will be focusing on improvements to the internal documentation of ZPE but I do intend to take a step back from the main development.
My final remark
I really cannot believe that I have ticked all of the original boxes in ZPE as of today. Concatenation being added just today was the very last step into making the language perfect and now it is (or at least in my eyes)! I hope you enjoy using the latest and greatest ZPE I have ever made!
Help me to make it to 2,000 downloads by next month by spreading it! (it has been downloaded just over 1,000 times and the ZPE pages is my most popular page on my website after my personal blog).
Whilst I officially released version 1.4.3 last week, I have been updating it with new features and updating the download file as I do this. Since finding a small flaw, I have been working on fixing it leisurely since finding and solving the problem was not too difficult. I've not been updating the version number of these versions since I've released version 1.4.3 as a beta version so far. Nonetheless, version 1.4.3 is not finished.
Anyway, the improvement I have added today is the long-awaited break()
command. This function is void, meaning no return value, but it will quickly break you out of a loop you've entered - much faster than the return
statement. So go on, give it a try; it's pretty good!
1.4.3 also removed the XOR statement from the logic parser. I want to remind you that there is now an xor
function to do the same thing.
1.4.3 is by far the cleanest version to date, and it tidies up a lot of the mess left from version 1.4.1 and 1.3.7, which were the hacked-together versions.
Also, you are probably wondering about the name of this post since it talks about Isla de Muerta. Isla de Muerta is the name of the fictional island in the Pirates of the Caribbean films where the Black Pearl (aka the Wicked Wench) is anchored and is the name of version ZPE 1.4.3. The name was chosen because I'm a massive fan of films and Johnny Depp, mainly because I've been watching them all recently. I plan to name the following versions after things related to these films rather than after lochs of Scotland for now (I did name versions of my Data Project application after Scottish lochs for some time, too, but since I dropped support for it, I decided to continue the naming over to ZPE when it began).
Here is some very simple BlackRabbit Script code that is used to perform multiple tasks. Can you figure out from the simple commands what it does at each point?
//Copyright JBALFOURDTP //13/10/2014 //BlackRabbit Script version: 2.2.2.467 function main() //Main method goes here //Case insensitive welcome hey -> Welcome to my application name -> Jamie Name -> Balfour echo ("Hello") get_yes_no("hey name "Name". Press Yes to continue the program.") %result -> bb.*return get_yes_no("Result is "'%result') if(%result == "Yes") output("That is the desired result") else output("That is incorrect") endif $i = 0 $y = $i output($y) while($i < 5) $i++ call (message) endwhile endfunction function message() output("i is" $i "and y is" $y) $y = add($y, 5) $z = multiply($y, $i) endfunction
Painter Pro, my graphics package, is a work that I started in August 2005 as part of my project known as Fusionscape. I originally wrote all of my applications using VB.NET. Then I noticed that C# might be a good idea when I got to the stage of learning Java at university as they are similar so it would benefit both languages (I had only written a few things in C# before).
Now after years of progress, joy, surprises, problems, fixes, bugs, compliments, feedback, support and much more, I am taking a good look back at previous versions that I released to friends, family and other beta testers who were prepared to try it out for me. I am so proud of this one piece of really good software and I am still working on it as my main project at the moment.
The purpose of this post is for you to see how Painter Pro's interface has improved with the years. Tell me what you think by commenting below. If you are interested in downloading a beta, click on this here
Today I would like to announce the performance improvements that Painter Pro now has. All the effects; I Want It There, grayscale, sepia, inversion, reflection and intensity have improved to perform considerably faster. On top of that, colour comparative methods based on these iterate much quicker through the selection.
Even though I should not really say it myself, Painter Pro is astonishing. Some people who have tested it now want me to bring it to Android (not something I am planning just now though). Others have just said it is brilliant as it is. I never intend for my software to compete, but I do intend for it to have a purpose; one of which is for work on my YouTube videos as well as my website and personal use.
Painter Pro is still currently password protected, but you can obtain the password by contacting me.
Meanwhile, Cobweb Internet Browser, 2.0.2.0 is now on my website. New features include faster browsing as well as better tabbing and some bug fixes to do with start up times.
Have you ever built a menu on a website, and changed it? What have you done if you cannot use iFrames? (I mean, who would use inline frames?) Have you gone through every single page and made the menu consistent manually? This is what I have done before now as I cannot use server-side programming with my current website.
Last night I was working on a small program to make my life much easier when updating my menu on my website. What I have is a small program with two inputs that are used as replacements for parts of the HTML text files. It goes through all the files in sequence, replacing the menu with a new one. It makes it much easier to update the menu and much easier to replace strings within text files.
Edit: This program is no longer available separately and is available as a Wonderword plugin.
Quick Quiz was at first a very difficult program to work on. It has now been redesigned from the bottom up and it now has a much more appealing design to it. Work has just recently begun with the first initial build, 2.0.0.1. You can still download version 1.0.0.12 from my website in the Downloads Center.
Feel free to try either as the 2011 edition of the software still receives updates. But it is now changing to the new version (2012). And pretty soon the software will be going under Ultra Edition.
The new section on the website; the Software Alpha-Beta Application Programme (SABAP) has been created.
Here you will find a list of alpha and beta software downloads. However, you will require a username and password to access the files. If you are willing to try out the software, please send an email to me.
I am proud to say that for the first time this week I will be releasing a beta of my own software, this time not BlackRabbit, but to the general public, not just to people I know. The new software contains multiple measures to ensure that it will not be copiable. It also contains my new registration application.
The application, which is known as Painter Pro, is what was formerly known by its codename "Aberdeen". This is the first time I have released the name. As of today, I am also considering other names.
If you are interested in testing the software, then please feel free to contact me using the usual methods.