embedded-scripting-languages icon indicating copy to clipboard operation
embedded-scripting-languages copied to clipboard

Please add ZetScript in your list

Open jespa007 opened this issue 7 years ago • 7 comments
trafficstars

Hi dbohdan,

Please add Zetscript programming language (is a quite new).

URL: http://zetscript.org License: MIT GC: Ref. Counting Notes: ZetScript is a programming language and comes with and API that allows bind your C++ code into script side.

Thanks!

jespa007 avatar Apr 24 '18 09:04 jespa007

Hi! I need to ask you a few questions before I can add ZetScript.

  • Do you have a public source code repository?
  • What is the history of this programming language? I see that its first public release had version 1.0.0. Was ZetScript used anywhere before this release?

dbohdan avatar Apr 24 '18 10:04 dbohdan

Hi dbohdan,

Sure! I response your answers bellow,

  1. I have ZetScript in github but as private repository by the moment. The source with latest source can be downloaded from the webpage.
  2. First version was 1.1.3 and the latest is 1.3.0. These are the changes in each release through the time,
  • 2018-04-20 ZetScript 1.3.0: Has been implemented an interactive console (zs.exe), it has improve virtual machine speed and a minor bug fixes. (see HISTORY for more information). Added performance test comparison with Lua script language in this article.
  • 2018-02-21 ZetScript 1.2.0: It has some features and a major bug fix so, as far I could test, is stable version. Despite I prefer version 1.1.3 I don't recommend use it because it doesn't work on virtual classes (it has segmentation fault as a hell) and also it doesn't work passing float for functions with 2 or more arguments on x64 builds.
  • 2017-12-01 ZetScript 1.1.3: First release

jespa007 avatar Apr 24 '18 10:04 jespa007

Do you plan on making the repository public? The commit history would help anyone who is interested in the language assess its maturity. You mention segmentation faults. How common are they at this point? Would you use ZetScript in a production application?

Edit: Fixed a typo.

dbohdan avatar Apr 24 '18 10:04 dbohdan

Hi dbohdan, I think I will put in public. The reason I didn't it was to avoid many fixes, updates,etc suggestions from git. I put a forum instead but currently is almost dead... so I think yes. I will change to public.

About the point of segmentation fault... The first version was the first and I found some big problems with tests I did later. I can say that the 1.1.3 version was perfect for me but due functionallity problems I had to change a little bit the way of binding C funcions/variable class members. I can say that the 1.3.0 fixes all problems I discovered until now.

I did a little game engine usign ZetScript and SDL2. I share the link bellow,

https://www.codeproject.com/Articles/1215529/Game-engine-using-SDL-and-ZetScript

About the question "Would you use ZetScript a production application?" I could say yes but I don't say yes in 100%. I adapted ZetScript in a big project and it fits well. Performance is ok not so quick as Lua but acceptable. Lua is 2.2 times faster than ZetScript usign a Fibonacci calculation as test. In other hand, it can bind C functions/varibles in a single line of code.

jespa007 avatar Apr 24 '18 10:04 jespa007

All right, thanks for clarifying that. It seems that ZetScript is already practically useful, but not yet mature enough for me to recommend it to the list's readers. With that in mind, I'll do what I normally do in such cases. I'll keep the issue open and check on ZetScript again in about six months.

dbohdan avatar Apr 24 '18 11:04 dbohdan

I agree with you dbohdan, and thanks so much for your feedback!! I forgot to mention as a additional information that ZetScript is like Chaiscript more or less but it has a Virtual Machine. In other hand Chaiscript has a high embedding on C++ type whereas ZetScript is limited on some types.

Let's wait for 6 months and let's see how it fits for the developers.

Thanks again.

jespa007 avatar Apr 24 '18 11:04 jespa007

You're welcome! I wish you the best with your project.

dbohdan avatar Apr 24 '18 11:04 dbohdan

Closing, since I see no commits to ZetScript since 2018. Feel free to resubmit if you resume work on it.

dbohdan avatar Aug 09 '23 09:08 dbohdan

Hi @dbohdan , Currently I doing the commits in the develop branch. I did a restructure of the code and a detailed of documentation and examples. I expect do a merge to master branch on the end of 2023. Thanks to be care about and sorry to haven't give you any news

jespa007 avatar Aug 14 '23 15:08 jespa007

All right! There is absolutely no need for you to apologize. You are under no pressure from me.

dbohdan avatar Aug 14 '23 18:08 dbohdan

Hi and happy new year @dbohdan , Just to update you that I've released a ZetScript 2.0 this week. Those are the main changes

  • Massive update that rewrites a internal architecture, organize and clean code
  • VM speed up ~x2.5
  • VM save memory stack ~x2
  • Optimize size/compile times ~x2
  • Implements multiple Return/Assignments
  • Implements arguments with options: default, variable arguments and by reference
  • Implements setter/getter for member variables
  • Implements keywords 'const'
  • Implements operators 'in','typeof'
  • Implements builtin iterators for String, Vector and Objects
  • Implements builtin modules: 'System', 'Math', 'Json' and 'DateTime'
  • The use of "function" keyword on class function members are not mandatory
  • switch-case eval expressions
  • Implements builtin concatenation with vector and object types through operator '+'
  • Full documentation and working examples

You can see all changes made in the CHANGELOG.md

jespa007 avatar Jan 09 '24 10:01 jespa007

Happy New Year, and congratulations on a new release! I have added ZetScript.

dbohdan avatar Jan 09 '24 15:01 dbohdan