mcscript VS thislang

Compare mcscript vs thislang and see what are their differences.

thislang

A subset of javascript implemented in that subset of javascript. Yes, it can run itself. (by BlueBlazin)
Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
mcscript thislang
3 4
165 29
- -
1.9 7.2
about 1 month ago 26 days ago
JavaScript JavaScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

mcscript

Posts with mentions or reviews of mcscript. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-02-25.
  • Command block programming language idea?
    1 project | reddit.com/r/MinecraftCommands | 1 Feb 2022
    But other than that, you might be interested in the fact that there are multiple such command compilers out there already. Some more advanced than others, but you might be interested in them: Smelt, CPM, commandstudio, etc. Also, I see you're still thinking with commandblocks. May I interest you in datapacks? They are a lot more advanced, performant and streamlined than commandblocks, and there are compilers for that, too! Like mcpy, mcscript, emcl and many more!
  • What's something you do a lot in datapacks that you wish was easier?
    1 project | reddit.com/r/MinecraftCommands | 23 Nov 2021
    There's already things like MCScript and ObjD (both made by the same person), but I'm not really a big fan of their syntax, especially not ObjD. I want to go for something more C-like.
  • Minecraft Datapack Programming Language
    2 projects | reddit.com/r/MinecraftCommands | 25 Feb 2021
    I recently discovered https://github.com/Stevertus/mcscript, which is an awesome programming language that compiles down your work into mcfunction files. Unfortunately, it's unmaintained, and it has a few things that I would recommend be done better, so I came up with an idea for a programming language that I feel is a little bit easier to maintain and implement (and that I might make in the future). Here's some ideas for it, let me know if something is out of place:

thislang

Posts with mentions or reviews of thislang. We have used some of these posts to build our list of alternatives and similar projects.
  • Understanding `this` in Javascript
    1 project | dev.to | 2 Aug 2021
    Method calls are nothing special, just calls which have the form .(). For example: const foo = { bar: function () { console.log(this); } }; foo.bar(); Enter fullscreen mode Exit fullscreen mode For method calls, this gets set to the object from which the method was called. Again, functions don't matter* for this, just the calls. function foo() { console.log(this); } let x = { bar: foo }; foo(); // Window x.bar(); // x let baz = x.bar; baz(); // Window Enter fullscreen mode Exit fullscreen mode Even baz will print Window. It's not a method call, it doesn't follow the method call format! 3. Constructor calls Or new calls (are calls too I suppose). In that case this gets set to the empty object {}. function Foo() { console.log(this); } new Foo(); // {} Foo(); // Window let x = { foo: Foo }; x.foo(); // x Enter fullscreen mode Exit fullscreen mode That's pretty much all there is to it......... ........or is it?! I apologize for this Remember how I told you this is all about function calls, not the functions themselves? Well, I lied. Ok look, let me remind you once again: They made javascript in 10 days! The this rules we've discussed above, they are a bit limiting. So there's three* ways you can override these rules. * don't you dare even mention apply 1. call The special call method on functions allows you to pass your own custom value of this to a function call (or the call's scope I should say). function foo() { console.log(this); } foo.call({ a: 42 }); // { a: 42 } Enter fullscreen mode Exit fullscreen mode 2. bind bind is another builtin method on functions. Much like call it too allows you to pass a custom value for this to the function call. Except unlike call, bind doesn't immediately call the function. It instead returns a special 'bound' functions. function foo() { console.log(this); } let bar = foo.bind({ a: 42 }); foo(); // Window bar(); // { a: 42 } Enter fullscreen mode Exit fullscreen mode 3. Arrow functions Arrow functions are the third way to override the call rules for this described previously. Arrow functions capture the this from the function scope in which they are created. function foo() { const bar = () => { console.log(this); }; return bar; } let bar = foo.call({ a: 42 }); bar(); // { a: 42 } Enter fullscreen mode Exit fullscreen mode So they're essentially the same as defining a normal function but then also binding it. // achieves the same effect function foo() { const bar = (function () { console.log(this); }).bind(this); return bar; } let bar = foo.call({ a: 42 }); bar(); // { a: 42 } Enter fullscreen mode Exit fullscreen mode In summary Yes, no pun in the heading this time (oops). The key takeaways are this: In JS this is associated with the current function scope, and since function scopes are associated with functions calls -- this is associated with calls. Those are the rules but they can be overridden. That is the reason why people are often confused when passing functions referencing this to callbacks. It's also why you were told to use arrow functions if you need to pass them to callbacks. I too was confused about this for a long time. Instead of taking the more sensible approach of reading an article such as this one, I instead decided to implement my own javascript. I wrote a subset of javascript. In that subset of javascript. If you want to go down that rabbit hole, then check out the repo: https://github.com/BlueBlazin/thislang If you want more posts on other javascript or computing related topics let me know on twitter: https://twitter.com/suicuneblue
  • An implementation of a subset of javascript in that subset
    1 project | reddit.com/r/programming | 28 Jul 2021
    1 project | reddit.com/r/javascript | 28 Jul 2021
  • An implementation of a subset of JavaScript in that subset of JavaScript
    1 project | news.ycombinator.com | 28 Jul 2021

What are some alternatives?

When comparing mcscript and thislang you can also consider the following projects:

minity - Minity is a scripting language for Vanilla Minecraft

Minecraft-Programming-Language

bytenode - A minimalist bytecode compiler for Node.js

GDLauncher - GDLauncher is a simple, yet powerful Minecraft custom launcher with a strong focus on the user experience

sablejs - 🏖️ The safer and faster ECMA5.1 interpreter written by JavaScript

pylon - Pylon IDE, a Cloud9 v2 descendant with some added extras and support for modern node >= 12.22.1 (including v13.x, v14.x, v15.x, v16.x, v17.x). OSS licensed.

create-html-boilerplate - Generate a vanilla HTML/CSS boilerplate in a flash! ⚡

SagaScript - An in-progress programming language inspired by JavaScript.

webassemblyjs - Toolchain for WebAssembly