Mark any thoughts on writing a small installer?

Monkey Forums/Monkey Programming/Mark any thoughts on writing a small installer?

Paul - Taiphoz(Posted 2013) [#1]
just a quick question aimed at you mark, I was wondering if you have had any thoughts to writing a small monkey installer.

I am thinking of something that would install monkey, would parse monkies old config build data and merge that into the new monkey config files.

It's not a massive headache having to write a few lines into a config with every new version, and nor is just unzipping and moving the app into a new folder, I just thinking having an automated installer might be nice.


Skn3(Posted 2013) [#2]
An update feature would be good too. Saves having to do anything manually.


rIKmAN(Posted 2013) [#3]
I don't think there is any need for an automated installer, especially with the frequency of new updates.

I prefer the simple unzip and go approach, it makes having multiple Monkey versions easy to maintain within their own folders, moving/deleting/renaming the folders is also easy without having things installed with registry keys and preset installation paths etc, and as you have already said in your OP it's not a problem at all.

The current method also allows people to have Monkey on a USB stick and take it with them wherever they go without the need for an installation.

I suppose he could offer 2 versions, but for me it's fixing a problem that doesn't really exist.


MikeHart(Posted 2013) [#4]
The day were I can't put Monkey on a USB Stick anymore to code whereever I have access to a computer, that day will be my last Monkey day. I do 95% of my coding from a USB stick based version of Monkey.


Why0Why(Posted 2013) [#5]
I program on 3-4 computers and I use Skydrive(functionally the same as a USB drive), so I prefer using the same copy as well.


computercoder(Posted 2013) [#6]
I agree that the current method is best. A quick unzip and put it wherever you need it. Installation programs tend to get in the way and can often hurt the previous installation's setup if not enough attention to detail is given it. Plus thats something else that would slow the progression of Mark's current TO-DO list with Monkey.

There's nothing saying you couldn't whip out a simple batch file that does the same as what you are asking, or even make an app that does it.


Paul - Taiphoz(Posted 2013) [#7]
I also use a number of versions and likewise like the ability to use it from the cloud in my case Dropbox.

So let me amend the word installer to updater , if the IDE can download and update everything taking care not to undo any config changes I think that would be cool...

I still think an installer for major versions would be nice but an update option in the IDE would do just as well.


ElectricBoogaloo(Posted 2013) [#8]
NO!!!!!!!!!


programmer(Posted 2013) [#9]
NO!!!!!!!!!




Redbeer(Posted 2013) [#10]
Can someone explain to me why this is an either/or choice, other than it is a hair more work to provide two options rather than one?

Although I'd put myself in the built in updater camp, and mostly neutral on the installer vs. zip file methods.


computercoder(Posted 2013) [#11]
Here's my two cents... (even though I chimed up earlier)

If an installation program was created, I think it should be left simple, and basically just unzip the files into a location set by the user. Keep in mind that this would need to be modified for each OS. Mac gets one, Windows gets one (hence why I believe its just a straight zip format to begin with to keep things simple).

As far as an in-app update feature, sure that would be nice too. I don't disagree with it, but it will take time away from Mark in having to maintain generating what it needs to update. That will take time away from Mark in getting future updates out as quickly as he has.

Honestly, I don't see Mark really wanting to spend time with this process when everyone is fairly familiar with unzipping the files into a location of their choice. Yes, I agree that it is very tedious to have to manually maintain the "extras" we each put into the monky file structure.

I have my own batch process that maintains this stuff for me. It keeps it fairly simple and all I need to tweek are a couple things at most.


Paul - Taiphoz(Posted 2013) [#12]
I dont get it..

I really don't some one is going to have to explain to me what is so wrong with wanting the monkey package to be a bit more modern, and having an installer is a very small step in that direction, as is an update option in Ted, honestly what is so wrong with having more functionality at our finger tips.


Paul - Taiphoz(Posted 2013) [#13]
I might also point out that Mark does not Write the IDE, and no one said he would need to write an installer either, as neither really functionally need to be written by mark.

Unless I am mistaken, Simon wrote the IDE, Not Mark, so why did you all instantly assume Mark would be the one to do this, I only asked him the on the OP because he's the lead on the BRL front and if he liked the idea I am sure he would then ask or task simon with adding it.

OR am I wrong, did Simon not write it, did mark in fact write it ?


computercoder(Posted 2013) [#14]
I don't have ANY issues with the editor becoming more modern AT ALL. You pointed the question at Mark, so I referred to him in the same manner you did. All I meant is that HIS team may not have the time to deal with that undertaking.

It really doesn't matter whom on the team wrote the editor. The point is what Mark has his members doing might not align with getting the features you requested. If an installer comes about, I am fine with that just as long as all it does is extract the files to a location I requested without making any changes to a registry or the like so I may continue to use it on any computer I like.

As far as the in-app updater, well that would be nice too. If they wanted to take the time to do it, I'd be for it.


rIKmAN(Posted 2013) [#15]
I just don't see the problem you are trying to fix Taiphoz?

Right now it takes 2 clicks: Right click the archive -> Extract
With an installer you are at 2 clicks just double clicking the installer.

Having it need "installing" will also rule out people using it on a USB stick at college / university / work where networks do not allow installations without having the program vetted and distributed by the Systems Admin - a lot of effort if you just want to code for an hour on your lunch.

As for the auto-updater, I don't really understand how that would work either really, all it could do it automate the 2 clicks to extract the zip file?

It can't update in-place as this would overwrite the existing Monkey install, it wouldn't keep track of User Modules and some break with updates until they are updated so for me it just makes sense to keep everything nice and simple in seperate version folders.

I can then just copy any modules into the relevant version, and if it doesnt work I know what the problem is without wondering what has gone wrong.

I appreciate your desire to make Monkey more modern and user friendly, but IMO you can't get much more modern and user friendly than extracting a zip and being able to run it anywhere from a USB stick, an installer just complicates this massively.

In fact the only advantage I can see of having an installer is that it looks a little more professional to new users, but if you are looking at Monkey as a viable language then it's safe to say you are familiar with how to extract a zip file - if not then maybe they should be looking at Construct2 or something a little more basic and beginner friendly.

You asked a question and people are giving their opinions, just because people don't agree with you it doesn't mean you are wrong - different people like different things, that's just the way of the world. :)


Paul - Taiphoz(Posted 2013) [#16]
I do not always put into words well enough what I am actually talking about as there seems to be a lot of assumptions and confusion over how an installer would function in regards to monkey.

First off all I have no problem with people that do not agree, I do however want to understand why , you or they may very well change my opinion.

Ok, to me an installer for monkey would do the following.

1. Ask where to install monkey

2.1 If a new location, unpack files, copy them over
2.2 Ask the user to point to each of the install locations for each taregst SDK's this would then populate the config file and save.

3.1 If an old location overwrite all old files with the exception of config files.
3.2 open and parse config files, make any updates but leave the users own additions in place, ala remote modules folder, diff install paths for the sdks.

I can totally understand people wanting to keep the app mobile, I am with you 100% on that, my intention was never at any time to lock down , write to registry and limit its flexibility, which a lot of assumed is what I was on about, that's partly my fault for not being clearer in the OP, its one of my faults.

In terms of an Update option in TED, it would carry out the same sort of functions the installer would, it would grab the new version from the online source, it would unpack it, and it would then update/replace the required files.

Neither option would stop you using a USB pen, Neither option would be hard to do on either platform , all an installer is, all an updater is , is a method to automate something we all do, and something we do frequently with monkey, when I see something, a task being done a lot I cant help but think of ways to automate it, its the programmer in me I guess.

SO!..

If you guys, talking to those above at the moment, have problems with the more specific functionality that I have laid out above I would honestly love to hear it, as I said before I'm open to changing my opinion if a good enough reason is presented.


therevills(Posted 2013) [#17]
For more advanced coders IMHO a zip file is fine... but for the mass public trying to get into Monkey an installer/updater would make sense.


SLotman(Posted 2013) [#18]
My honest opinion? Whoever wants to be a coder, *have* to know how to extract a simple ZIP file, otherwise better not even start.

Someone wants a installer? Make a self-extracting EXE - any compressor should be able to do it. I know it won't create a nice icon on desktop, won't "update" old configs to newer ones... but I really fail to see the point in all this.

People using Monkey are supposed to be coders, not your "average joe starting out" - to those, things like GameMaker or Construct make much more sense as a starting point than Monkey.


Paul - Taiphoz(Posted 2013) [#19]
so programmers don't use installers????

or are the hundreds of thousands of programmers that using game maker and unit unzipping an archive ?

People using monkey are supposed to be programmers, ? so any average joe looking to learn programming should just leave monkey alone ? I wonder why mark's not got that all over the front page.......


AdamRedwoods(Posted 2013) [#20]
why not just use a separate file in the zip that says "EZinstall" which then copy/compares files? then anyone can choose what to do.


rIKmAN(Posted 2013) [#21]
@Taiphoz
3.1 If an old location overwrite all old files with the exception of config files.

OK lets say Billy Beginner knows no better and chooses this option, and then 3 of his User Modules (let's say Diddy, Spine and Ignition for arguments sake) need to be updated for the newly installed version of Monkey.

What then?

If Billy Beginner doesn't know how to extract a zip file how is he going to know that he will have to update/wait for an update for the modules?
Will he even know how to get the modules in the first place from repos?

He ends up having to completely uninstall the updated version, re-download an older version to get things working again, and then what...be prompted again to update, which he won't do as this is what broke everything last time - making the whole thing pointless.

If there was a more intricate system which would cater to completely inexperiences users which you seem to be talking about then yes do it, but that's a lot of work to solve a non-problem of "Right Click -> Extract" with each new update.

my intention was never at any time to lock down , write to registry and limit its flexibility, which a lot of assumed is what I was on about

Installing by it's nature requires priveledges, sometimes Admin depending on the network, and at college/uni/libraries etc this is guaranteed.

So by installing, you mean something that just extracts the files, like we can already do in 2 clicks?


or are the hundreds of thousands of programmers that using game maker and unit unzipping an archive ?

I think you are comparing apples with oranges.
While I've never used GameMaker, I can assure you that Unity is copying files all over the place, and its a good few gigabytes in size.
Monkey is ~100mb, and runs from a self contained folder.


People using monkey are supposed to be programmers, ? so any average joe looking to learn programming should just leave monkey alone ? I wonder why mark's not got that all over the front page.......


I think if a new user cannot fathom how to extract a zip file and run the exe file, then they are going to struggle with the concepts of OOP, Monkey and actual programming in general. Even my Mum knows how to extract zip file and run an exe.

Your last point really answers your own question, if Mark wanted an installer then he would make one, but he hasn't as I assume he expects a certain level of computer savvy from anyone interested in Monkey, or programming in the first place, and using one just creates more headaches than are necessary.

What is the goal here, to make Monkey more attractive to new users?

@therevills
For more advanced coders IMHO a zip file is fine...

I completely disagree that you have to be an "advanced coder" to be able to use a zip file.
If you had to copy libs and dlls all over the place then yeah, but you don't - Monkey is literally extract and go.


therevills(Posted 2013) [#22]
Monkey is literally extract and go.

I disagree, you have to set up the config file and install the targets SDKs, not quite extract and go.

An installer could be configured to download the SDKs and update the config file before you even begin, making Monkey more install and go.


MikeHart(Posted 2013) [#23]
On OsX, if you install the sdks in their default locations, it is an extract and go method. The only thing i need to add to the config file is the path to my external module folder.


AndroidAndy(Posted 2013) [#24]
I had to laugh at the similarities to the guided missle post a few steps back:
I have some question about physics of a missile or i would say behavior of a guided missile.

If i target an object that are in movement the missile must launch and rotate until it is aligned to that object all the time while thrusting forward.

My problems are...

1- How i detect that an object is aligned to another object or pointing in the direction of that object ?

2- Also.. how to detect which side the missiles must turn or rotate when i launch it ?

I think the zips are brilliant keep launching and thrusting them forward :)


Paul - Taiphoz(Posted 2013) [#25]
Rik if he installed spine, diddy or what ever else then he DOES INDEED KNOW!! how to install a module, you cant imply a level of knowledge and then shun it in favour of making your point in the very next sentence.

Sorry mate but it sounds a lot to me like your just arguing for the sake of it.

As therevills mentions and something I never even thought about, but on the steps where it asks for the path to sdk the installer could be coded to if needed actually download and install the required SDK's as well.


With a good installer.....

new use ? , download monkey, "TWO CLICKS ON INSTALL" , installer unpacks monkey, aks the user what sdk's he needs, installs them, updates the configs, and THEN!!! go.

At the moment......

new user ? , download monkey, unpack, ??? wont compile to anything, visit forums , ask "How do I build for Xbox" , reply "Get the SDKS or RTFM" , looks around the help, clicks loads of links, downloads stuff installs even more stuff, potentially hours later (android sdk??) finally gets monkey up and running fully.

YES!. very unzip and go.

So yeah I probably stretched a truth or two there but I think I made my point, can you just throw monkey on a pen and go, yes you can, are you also putting on all the sdks on this pen or do you have the sdks on the other PC's you use ? or do you just limit to html5 when your on some other computer.


rIKmAN(Posted 2013) [#26]
I disagree, you have to set up the config file and install the targets SDKs, not quite extract and go

Fair point therevills, but if you are "on-the-go" coding, I think HTML5 would be fine until you get back to your main dev machine with all the SDKs you need installed.

At college/uni etc this would *have* to do anyway as you wouldn't be able to install SDKs anyway without permission/access from the SysAdmin.


Rik if he installed spine, diddy or what ever else then he DOES INDEED KNOW!! how to install a module, you cant imply a level of knowledge and then shun it in favour of making your point in the very next sentence.


OK so if he knows then why does he need a convoluted install system?
If he can install modules, he can install an SDK, or extract a zip, no?

Sorry mate but it sounds a lot to me like your just arguing for the sake of it.

...and I think you are trying to fix a problem that doesn't exist, and if anything creates more problems, that's the nature of opinions :)

No need to apologise mate, I'm not arguing, I'm debating my thoughts.
You asked a a question on a forum and seem to be getting really defensive that I'm not agreeing with you.

With a good installer.....

new use ? , download monkey, "TWO CLICKS ON INSTALL" , installer unpacks monkey, aks the user what sdk's he needs, installs them, updates the configs, and THEN!!! go.

Billy Beginner copies your "installer" to his shiny new USB stick, and takes it to college to learn as he has a 4hr gap between lessons.

He goes to the IT room, plugs it in and double clicks.
Guess what, it won't install as you are not allowed to do this without the Systems Admin allowing it (see previous posts).

Even if you clarify your meaning of "installer" to mean "extractor" then he isn't going to be able to install the SDKs (see my reply to therevills above) so it may as well just be a zip and extract and run the HTML5 only version - which I think is fine for "on-the-go" coding until you get back to your main dev machine.

At the moment......

new user ? , download monkey, unpack, ??? wont compile to anything, visit forums , ask "How do I build for Xbox" , reply "Get the SDKS or RTFM" , looks around the help, clicks loads of links, downloads stuff installs even more stuff, potentially hours later (android sdk??) finally gets monkey up and running fully.

OK well the first line is wrong, it will compile to HTML5 out the box.

I think we must be using different forums, because I highly doubt anyone asking "How do I..." anything would get such a shitty response from the members on here, most are extremely helpful in my experience.

So yeah I probably stretched a truth or two there but I think I made my point, can you just throw monkey on a pen and go, yes you can, are you also putting on all the sdks on this pen or do you have the sdks on the other PC's you use ? or do you just limit to html5 when your on some other computer.

That depends what the "other machine" is, is it your own laptop? (then install the SDKs) is it college/uni? (then HTML5 only).

There are a lot of variables, and a lot of different ways in which people want to use Monkey, just because that doesn't tie in with your ideal vision of how it should be doesn't make them, or you wrong.

You have to consider all cases, and a simple zip file is the easiest to manage over various uses, on various targets.

I agree a completely idiot friendly installer might be a good idea, but it goes back to what I said earlier where if they cannot set a few paths in a config file and install the SDK they need, then is there any point in them trying to use Monkey in the first place?


mteo77(Posted 2013) [#27]
Hello.
I personally can see that both of you are making valid points, but i also can see that you are taking it a bit personal.
Frankly speaking i was a new monkey user 6 months ago, it took me exactly 5 hours to get everything up and running from not even knowing what monkey was to have an example running on my nexus 7, and i consider that quite good.
I was also using another game making tool that had a "run and go" installer, and it still took me 4 hours to have an example running on android (for one reason or another).

I knew from the start that it was going to be a "code" environment, with the pros and cons.
As an example, if Construct 2 wouldn't have an installer that would be a disaster for them, as they cater to a click and go client base.

Monkey isn't a "click and go" kind of environment, i don't think it's ever been intended like that, from my knowledge of mark's work over the years (i started with the original amiga blitz) blitz languages are for a niche kind of market (hope it make sense) not for the masses (for various reasons).
I can clearly see that you are passionate about monkey, trying to suggest improvements and ways to make monkey known to more users.
An installer won't definitely make much of a difference in term of sales (again my opinion); i wonder how many people have been turned down by the monkey demo because it didn't have an installer.
From a new user point of view i think priorities lies somewhere else, some of them have been raised by you in the past.
That's why i think some people are against it, since brl time and manpower is more limited that other companies, it's better spent somewhere else (like website, more advertising, forum open to the demo users and so on).
I might be wrong but i think, unless there will be a massive change in how things are getting done, monkey will never be for the masses.
It's a good product, indeed, and i would like more users myself (more users mean more code, utilities, help etc).
Just my 2 cents.


Paul - Taiphoz(Posted 2013) [#28]
rIKmAN just because some one knows how to edit some paths, and unzip some files does not mean they should not want to use a simpler more streamlined installer, I know how to do it but if there was an installer made or an update option in the IDE I would for sure use that rather than doing it manually.

That aside, your point of user level privileges on non home system, like a UNI or work or school is actually a good one, however your still assuming that any installer would be the sole method, these options are just that, options for the user to pick from, they are not mutually exclusive.

User takes pen to UNI,Work,etc unzips the package, looks and the installer and says. "not today buddy im not at home", opens the files makes the manual changes and gets started.

User at home, "Ah there you are auto updater, go do your stuff".

it does not need to be an either or situation I have no clue why you think it does.

I think the big issue here is perspective, I have years of coding and computer experience as have many people here, so this setup process is a lot easier for us, but we are not the only people being turned on to monkey, I have introduced it to a class of 5th years at my sons school, some one else recently mentioned he wanted the demo updated because he's showing it to his class(I think) of 30 students.

I simply think that having little time saving features like this will help out these new to programming, new to ide's and just starting out types, sure some might say screw them , throw them in at the deep end and see if they swim, but im not one of those, I personally think we should try and make things as easy as possible for them to get in the door, not make it harder.

I think the only thing that really matters, or really needs answered is..

Would having an auto update in the IDE and an optional installer in the zip HURT monkey in anyway or limit it's functionality, or would it add to the overall experience.


Markus(Posted 2013) [#29]
i believe a full install with all third party sdk's are impossible (because dependences,auto update, other made installations,...).
a quick start window with links for all download would be nice but
then mark need to copy all this sdks to his own homepage because
of non static urls. the next problem are the (copy) rights.

i like the simple config front end from game maker.

if someone have time he can try nullsoft installer
make a install skript and share it (with mark) .


AdamRedwoods(Posted 2013) [#30]
a quick start window with links for all download would be nice but

you mean like Ted->help->Getting Started/Target SDKs.

or

click on:
Monkey/docs/html/Tutorials_Getting started.html

yeah, it's a little buried, so maybe putting into the Monkey root directory may help.


mteo77(Posted 2013) [#31]
I also remember that while installing the SDK's on my system, they seemed very temperamental...
I remember having to play with dependencies, updates, environment variables, android usb drivers and so on..
I might be wrong but can an installer take care of all those things?


nori(Posted 2013) [#32]
please don't start using an installer. i bought monkey two days ago and it was very nice to see it works portable, don't waste time for anything else

i mean, i've just copied autofit into the modules folder. if monkey was installed "correctly" in program files i would have gone throgh these stupid access priviledges dialog. and with installer i never know if i have to install again to use a different version and what not..