One Language

Community Forums/Monkey Talk/One Language

Chroma(Posted 2011) [#1]
I know the goal of Monkey is that it's your one-stop-shop when it comes to developing for all popular platforms. But my question is; Do you think it's matured to that point yet? If not then why?


Winni(Posted 2011) [#2]
I don't know, I'm not a monkey user. But... Hasn't Java been trying to achieve this goal for one and a half decades now? "Java: One language for all platforms, and one platform for all hardware architectures." And isn't the Mono community trying to do the same thing with C# and their implementation of the .NET framework? And then there is Python.

But in the end, for some strange reason, all the great successes are still using... C and C++.

Anyway. monkey's feature set looks VERY small when compared to BlitzMax and its third party ecosystem, and monkey, at this point, really is just a solution for pure game development. If that's all what you want to do with a programming language, then it's probably a good choice. But if you want to do more with it without writing all the wrappers yourself, then monkey is still in its infancy and not the way to go.

Personally, I would have preferred more platform support for good old BlitzMax instead of yet another "new" language. But that's just me, looking at it from a remote perspective.


*(Posted 2011) [#3]
TBH if you look at platform clout I would say C is the way to go on most things, if you get it with a decent set of libraries (home grown or third party) then you can develop just as fast as with BlitzMax.

The main thing here is for internet development (HTML5 etc) Monkey is a good system however I dont think it has matured enough atm to be considered complete. Java has loads of things that Monkey has and it has cross platform capabilities with most platforms as well.

Questions like these are really chicken/egg things where no matter what is added to something there will always be something missing that a programmer wants, for me monkey would benefit from networking, decent sound systems and then it will be complete enough for prime time.


MikeHart(Posted 2011) [#4]
The core language has matured enough. It is out now for almost a year. I do not miss anything there.

The mojo module, which defines the feature set that will be compared to other tools, is very simple. Imho Mark won't enhance it big time anymore. So I take it like it is.

As you know, you can extend Monkey with your own or 3rd party modules that interface with the native platforms. But then you are on C/C++/ObjC/C#/Java(script) level anyway.

It all depends what you need and for which platforms you want to develop. Monkey is VERY open. You need to know what you want and how you want to do it.


slenkar(Posted 2011) [#5]
Monkey is very extendable and the language doesnt seem to have any faults,
Reflection is supposed to be on its way too.


Yasha(Posted 2011) [#6]
Hasn't Java been trying to achieve this goal for one and a half decades now?


Actually I would argue that Java/C#/Python are aiming at the exact opposite goal: one language for one target. They then recreate the target on all of the supported platforms. Subtle but important difference. The languages that target a single runtime on top of many platforms will always be more consistent, stable, reliable and extendable, but also less efficient. It's a matter of priorities.

all the great successes are still using... C and C++


All the great successes don't attempt to use a single language for projects.

This is probably the most important principle to learn in the field of applying languages to software problems: use the right tool for the right task. A large project isn't one monolithic task, it's several tasks that can be addressed separately. Every large-scale game project has an integrated high-level scripting language, so that the parts that don't have to be fast can instead be written clearly and without bugs. Business projects may have more layers with multiple tiers of abstraction.

Actually this is in my own opinion one of the long-term obstacles to BlitzMax and Monkey's maturity: they actively discourage this sort of planning in an attempt to solve the whole problem with one tool, which inevitably isn't really as good at either aspect of development. You more or less have an artificial upper cap on project size and complexity as a result.


AdamRedwoods(Posted 2011) [#7]
IMHO, monkey is still a little clunky for builds, but otherwise is a stable enough language that if there are problems, there are work-arounds.


SLotman(Posted 2011) [#8]
Monkey has no debugger - which forces you to debug in the target language.

Until it has a debugger, I'm staying away from it. Better to code directly in Java for Android, then to write stuff in one language and debug in another :P

BTW: replicating max graphical commands in java, using canvas was a piece of cake, and now I can almost write a game in java like if I was in blitzmax ;)


Matty(Posted 2011) [#9]
Maybe I'm just odd but I've never found the 'no debugger' or the standard ide that big of an issue...for the simple games I've created and released debugging is usually pretty simple and as long as you write clean code it's not too hard to work out why something is not working...but then my games are fairly basic I guess....


therevills(Posted 2011) [#10]
I havent found the lack of a debugger a big issue either. You don't have to debug in the target language, use the good ol' Print statements and it should be good (and still in Monkey too).

Most times when I'm had a issue its actually been a bug with Monkey itself for one reason or another.