Has anyone here tried Monkey?
Community Forums/Monkey Talk/Has anyone here tried Monkey?
| ||
I have been messing around with Monkey for a little while. It makes sense to move over to the new BRL product. Monkey has tons of versatility as far as the available targets and the syntax is pretty easy to step into. My problem is that it just isn't fun. I initially thought that this was due to the clumsiness of the IDE, but I tried Jungle and, while it was an improvement, I was still not thrilled. Am I approaching Monkey wrong? I can't seem to piddle around with it all night like I can with the other BRL products. |
| ||
Personally I find the Blitzmax syntax more intuitive, and find it easier to play around with. |
| ||
It's funny, I actually prefer Monkey's syntax than BlitzMax's... but they are nearly the same. |
| ||
The syntax of Monkey is case sensitive ... enough said. bye Ron |
| ||
The only gripe I have is there is no security on media, all your media is shipped as is with the game in a x.data folder. Even max/blitz3d has the ability to allow media to be loaded from data, monkeys translator goes into crash mode when you have loads of data in a file. |
| ||
The syntax of Monkey is case sensitive ... enough said. So you like Monkey then ;) Some people prefer case sensitive languages, some don't... there are thousands of threads on the net arguing for and against it... The only gripe I have is there is no security on media I've released commercial games and I've never "protected" my media... |
| ||
The only gripe I have is there is no security on media ...yeah, there's no such thing as "security on media". When producing a program with Blitz3D or BlitzMax, neither your media nor your source is protected from the end user in any way. If they want to see it, they will. I've never really understood why this is an issue. If anyone makes money off stolen assets they're a big red target for a C&D; if they don't, seriously who cares you have bigger things to worry about like shipping. |
| ||
Yep. While I like monkey's broad platform selection better, I still prefer BlitzMax hands down in terms of desktop capability. Monkey-X has come a long way, but it seems Mark has given up on expanding it other than giving simple compatibility patches here and there which add nothing new. Someone correct me if I'm wrong. With BlitzPlus and Monkey Html5&Desktop exports now open source, it won't be long before BlitzMax and MonkeyPro face the same fate. :( |
| ||
With BlitzPlus and Monkey Html5&Desktop exports now open source, it won't be long before BlitzMax and MonkeyPro face the same fate. :( How does that work? |
| ||
Seeing as blitz3d isn't open source your argument doesn't hold up |
| ||
Some people prefer case sensitive languages, some don't... there are thousands of threads on the net arguing for and against it... I've never understood why it matters. I've had people on this very forum tell me "if you don't know why case sensitivity is important I'm not going to waste time telling you" which I just took to mean "I don't know either". I mean, I don't particularly care if a language is or isn't case sensitive but I genuinely can't understand why other people do care so much. So if anyone wants to have a stab at enlightening me, I'd appreciate it. |
| ||
Tbh it only makes it easier to make monumental mistakes that take even longer to decipher, for example: In c: Int myVar; Float MyVar; Char *myvar; Are all valid and will compile BUT doing something like myvar=33.434; isn't always a good idea and never has The only benefit is methods and function names if people want to use camel case or such like |
| ||
Case sensitivity just slows down coding processes: you need to caps things like "print". So some editors might do it for you (Ted) but if coding in a simple editor connected to a "execute command"-makro you will surely have to change things because you forgot to caps the first character. The disadvantage of case-insensitivity is things like Method MyValue:int() ... Field myValue:int wont be possible (some kind of Getter/Setters). But for me that is not the best thing for 3rd party libs because people wont know it "automatically" (while a "SetMyValue" and "myValue" can be distinguishable). For me another problem with Monkey X is: while the logical components (if then else and or ...) are case-insensitive, the whole rest is sensitive (function names, variables ...). While you as an advanced coder know that a "print" is not a inbuilt function and therefore is case-sensitive, newbies wont. Why should they? there are no brackets around (another discussable point for some of us :D), so it looks like something provided by Monkey X, not a custom thing the new monkey user just coded. Same for things like "setcolor" or other "basic" functionality. therevills: So you like Monkey then ;) Yes, of course I do :D bye Ron |
| ||
So if anyone wants to have a stab at enlightening me, I'd appreciate it. Case sensitivity is important in Haskell and Ocaml because it provides another form (or two) of identifier for constructors, functors, and signatures (names with a leading capital or with all caps are placed into a different parser category from names with leading lowercase). Correctly identifying functors and constructors and telling them apart from variables is necessary to be able to parse the code (or at least to do it easily). Otherwise you'd need something ugly like Perl's $sigils @on %names. I have no idea why you'd need it in a language without those features, since there's only one class of identifier for the most part. However folding case can be viewed as rather Euro-centric and a relic of the ASCII era, since it confers special status on code written in characters from an "elite" subgroup of languages. The more user-neutral thing to do is to not elevate this one feature of European scripts (especially if you're not even going to research what similar things exist in other writing systems), and just treat every Unicode character the same way. (What's that? Your compiler doesn't accept Unicode identifiers? Tsk tsk, that's really not good enough in the 21st century.) |
| ||
Years ago I used a system that was not just case sensitive but font sensitive. That's not as crazy as it sounds. The program was MathCad and it was just following long established traditions for published mathematics. For example it is a convention that vectors are denoted by boldface. |
| ||
Haha floyd I thought for a minute you were going to say it would fall over if you entered code in arial instead of helvetica or something. |
| ||
I have used Monkey, and mean to get back to it. I was pleased with what I achieved in the small amount of time I spent with Monkey. However, only so many hours in the day and I've trouble doing my hobby coding in anything but Blitz 3d. |
| ||
I hear that Blitplotter I have very very limited time this is why I'm coding a editor to use on my tablet :) |
| ||
I really didn't want to go down this road about case sensitive vs case insensitive... IMHO case sensitive doesn't slow down code development, it actually increases it, especially if you are working in teams. Imagine you write a variable called "playerX" and another developer calls its "Playerx", the compiler has to guess you both mean "playerX", its about standards and readability. Also I believe case insensitive code leads to sloppy coding, and I want the compiler to tell me off when I make a typo. ANYWAY.... MonkeyX is a great language, love the syntax and the ability to target multiple targets such as Android, HTML5 and iOS (although I HATE the workflow of releasing an iOS application). |
| ||
Imagine you write a variable called "playerX" and another developer calls its "Playerx" Imagine that other developer creates a function which accesses a global scoped variable instead of its local one because of a missspelling. If all variable with the same (case insensitive) name are recognized as the same, such "must pay attention to"-cases do not exist. Your IDE could take care of tidying up code and normalizing your code to the notation style you like (strHungarian or yourSuperLowerCamelCase). Is there a real benefit of allowing multiple variants of a name? Wont imagine how coffee talks sound then... "ahh you used player health with all lower case chars? THIS CANT WORK dude!". Maybe you have serious ideas of what advantages are... would be glad to hear some (I am sure there are advantages, like the variable/setter-thing I mentioned above). bye Ron |
| ||
Maybe you have serious ideas of what advantages are... would be glad to hear some (I am sure there are advantages, like the variable/setter-thing I mentioned above). The general case of that would be namespacing, which also covers my example (type vs functor vs variable namespaces) and Floyd's example (vectors vs scalars vs sets etc.). This is actually less obscure than you think - consider, most mainstream (i.e. not Lisp) programming languages use a similar typography-based namespace system to determine whether a function is prefix or infix. Functions named with letters are prefix ("abc()"), while functions named with "punctuation" symbols are infix (+, -, etc.), and thus the compiler knows that "a + b" means an application of the '+' function to 'a' and 'b', and not an application of the 'a' function to '+' and 'b'. (The compiler can't decide based on which one "makes sense", because that doesn't tell it whether you made a mistake or not.) So, when designing your language: how much information does your compiler need to resolve what an expression means? Use the minimum number of rules to keep things simple for the user. (Of course this shifts the argument over to whether "add case sensitivity" or "add case insensitivity" is a rule being "added" to the system...) --- Also, most examples people give to support either side lead me to conclude that this is only really an issue for bad programmers with broken IDEs. |
| ||
I did not really get what you wanted to explain to me. a() + b() -> calc a(), calc b() and cumulate them. If there is a chance to have a() +() b() The compiler should be able to recognize that "+()" awaits something before and something after. I do not get what this has to do with "case-sensitivity". The only thing I understand having benefits (somehow) is getters/setters. Together with the "need" of adding brackets () after functions, it should be clear if you access a function or a variable. Did I miss something in my thoughts? bye Ron |
| ||
@Edzup, an editor for a tablet sounds intriguing. |
| ||
At the moment the editor I'm creating is for my Star Rogue game BUT I will look into creating an editor for coding once I get SR out there :) |
| ||
WHAT did I tell you guys, Blitz3D is now open source! :P |
| ||
I like case sensitivity with java in eclipse but don't like case sensitivity with Monkey because of the default ide which auto corrects some expressions but not others. I still remember spending time wondering why a drawimage wasn't working before I found out the the monkey ide auto corrects things like end/if etc but doesn't do so for other functions which I had thought were native. |
| ||
DrawImage is a mojo command, so the IDE doesn't change it for you - keywords aren't case sensitive (eg If, End, While etc) and Ted will Pascal case it for you for some reason. |
| ||
@Matty:Jungle Ide solves this for you as you code. |
| ||
@Matty:Jungle Ide solves this for you as you code. And does it brilliantly :) |
| ||
. |
| ||
Last time I used monkey it was using an ide called Monk, not Ted...I'd heard of Jungle ide and I'm sure it does well but I've crossed over to coding natively instead these days. |
| ||
The problem with loads of the other ides are they are windows only |
| ||
The problem with loads of the other ides are they are windows only Mollusk IDE: This software package includes two versions: The Windows version (exe) requires XP or newer. The Mac version (app) requires OS X 10.7 or newer. http://www.grudlux.com/mollusk/ Jentos IDE: Links to download: Windows: v.1.1, qt 5.3 mirror OS X: v.1.1, qt 5.3 mirror Linux: v.1.1, qt 5.3 mirror http://www.monkey-x.com/Community/posts.php?topic=8288&page=first Which IDEs are you talking about, Ed? |
| ||
JungleIDE :) Haven't seen mollusk IDE but will have a look :) |