MonkeyX / CerberusX vs Monkey2

About Monkey 2 Forums General Programming Discussion MonkeyX / CerberusX vs Monkey2

This topic contains 3 replies, has 4 voices, and was last updated by  PhatPeter 1 year, 8 months ago.

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
  • #11352


    Should I learn CerberusX (the active fork of MonkeyX) before learning Monkey2, or should I use them for different projects, or should I concentrate on just Monkey2?



    For my own use a go back to Monkey-x wouldn’t be possible because I like the way monkey2 is a stricter language (impotrant for bigger projects).Also monkey2 can create console apps easily and can integrate external C/C++ code that can be used for all the platforms so you do the job only once.

    However if you want to go the easy way regarding html5 deployment, monkey-x is far faster for compilation and easier to install as it has its own html5 transpiler. It doesn’t use third party emsrciptem that is a bit complex to install as I can see on this forum (I’m not deploying to html5 anymore since i’m on mx2).
    On android, monkey-x can also inject your app directly in you device but it’s not a real advantage for larger projects as you’ll probably want to get full control over your app via android studio anyway.
    Monkey2 uses native C++ code so if you want to add android system stuffs not available out of the box in mx2 you’ll have to master JNI. So for that point monkey-x can be a bit easier as you can import java code lines directly in you monkey-x code if needed. But it’s a bit specific.
    I don’t have an IOS device so I don’t really know but it looks like it’s more or less the same than with monkey-x
    Mx2 desktop is clearly superior to mx1. It uses sdl2 instead of glfw and runs really smooth. you can create console apps easily. Mx2 is more versatile on desktop.

    The big advantages of mx2 over mx1 for me:
    -The design of the Garbage collector is way better and you don’t have those annoying ‘hiccups’ you sometimes have with mx-1. Witch is very important for ‘pro’ action games and other realtime apps.–>more professional result
    -The OOP features of mx2 are very advanced (inspired by D as I undestand). It makes the language super productive once you get them.
    -In mx2 you have pointers and first class function (more or less function pointers). witch is not mandatory but can be important for some optimization parts of the code, and to import C/C++ libs easily. –> once again more professional feeling.
    -The language is stricter so you have a better protection against you own stupidity. Very important for larger projects. –> more professional once again.

    So to me both are great but blitz product has often had the image of “good for prototyping but not for final development” witch is not the case for mx2 to me. With mx2 you can prototype *and* finalize large projects. That makes mx2 a more “serious” candidate.
    Mx2 is still a bit young, though functional, you won’t find much examples/showcases. especially for mobile platforms and 3D projects.But hey!, the community forum rarely leaves you with an unanswered question *and* Mark Sibly (the creator) is active on this forum so you’ll often get very accurate answers!

    If you use mx1 in strict mode it shouldn’t be too hard to switch to mx2 later (porting code can be a bit long). You’ll just have a bit more possibilities with the mx2 language but you’re not obliged to use them!

    In summary
    You want quickly compiled HTML5 target for fast prototyping/playing-around -> go mx1
    You want serious stuff with fast running code without hiccups and think about a larger project -> go mx2 (or any other serious dev environment). This hiccup thing was a real problem for me when I was on mx1.

    I’d personally suggest you concentrate on mx2 so you learn stuff only once and you’ll get more fluid executables.


    Simon Armstrong

    Great summary!



    I agree the previous one, but I find MX1+Mojo2 being as smooth as Monkey2 (also currently more efficient in the range of x2 – x9 in rough numbers). but Monkey2 feels powerful ennough to start using to do anything really I imagine It’s just that MX1 is extremely powerful in the graphics department. When it comes to raw CPU power I think Monkey2 has the edge but not as powerful as it could be.

    Personally I feel a simplification would be needed too very soon or you won’t be able to build further upon it, or even conveniently use it as it simply will be too complex. Monkey2’s language-features and API’s feels very hidden away right now without a good documentation and more (useful) examples.

    My guess though is that once you’ve learned the bits that you need then things probably gets super easy and super fun.
    I do love how Monkey2 is finding back to it’s roots Blitz BASIC II. It was such an increibly well thought of and stable product, it felt complete and you could do what you wanted.

    I will definitly support MX2 as much as I possibly can. It might take some time but everything good in life does. But no Monkey III please?! Let this become a major milestone.

Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.