• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

[FREE][Education] Algoid - Learning programming it's simple and Funny !

CyaNn

Newbie
Everyting is on the title.... lol.
Let me present you my app Algoid.

First, Algoid is a programming language designed to simplify the self apprentiship of programing. (but not at all, it is a multi-paradigm scripting language : imperative, functional (anonymous function, class first function and recursive), OOP (prototype based, multi-inheritance) and nativelly AOP)

Second, Algoid is an IDE to edit the AL Script code with auto-completion, code snippets, formating, DEBUGGER and STEP by STEP execution mode.

Third, Algoid is a set of online documentations directly available on the app, with automatic copy of example and exercises source code.

This is some screen shots of the app:
Ok, all apologies for the bug.
App is now officially on Google play Store for Beta testing.

Play Store











It is a beta version, but nearly become an 1.0 version

v0.3.0 BETA 15-12-2012
- cache help and tutorials to run off-line
- help loading management
- language scope optimization (3d cube is faster)
- correct ide blocking after execution
- prevent undo / redo crashes
- clear log correction
- correct startup crash before the 2.3.6 Android version

Available here:


I hope you will enjoy it ! :rolleyes:;)
 
Hi folks....

Currently I am writing an Idiom from Smalltalk : cascade.
Every entity in AL become like an object with methods (not real objects to obtimize).
I have coupled this concept with some Python functional approach and now it is possible to write :

PHP:
{1, 2, 3, 4}.each (function (item) {
    util.log ("- The item is : " .. item);
});

/*
Create an anonymous array and write sentence for each item :
- The item is : 1
- The item is : 2
- The item is : 3
- The item is : 4
*/

So a lots of improvement will be done for this 0.4.0 future version.
I am impatient to publish it and to have some feed-backs.......

Do not hesitate to give your ideas on this forum or on play store comments.
Thanks in advance.
 
Wohhhh,

There is no activity on this thread.... :(:(:(:(
Never mind, I continue my way !

So, greate today is a day, I have published the v0.4.0 of beta version
Find it here :


- "loop (limit) {}" imperative primitive
Example :
Code:
loop (4) { // pretty simpler than for with init and incrementation
	algo.go (100);
	algo.turnLeft (90);
}
- tutorials introduce "loop" on behalf "for" (because "for" is too complicated to learn first)
- if, else, else if tutorial
- some language optimizations (still not perfect)
- cascade idiom (smalltalk80, python) every value have its own methods
It is now possible to write some pretty functional beauties like :
Code:
// find all string in the list with length <= 4 and print them
{"Rod", "Carlos", "Chris"}.filter (function (it) {
	return (it.length() <= 4);
}).each (function (item, i) {
	util.log ("Item " .. i .. " is " .. item);
});
Every methodes can be chained togather and every type of the language has its own set of method.

- lots of functional capabilities
- associative array (dictionary)
Code:
set aa = {"monday" : "lundi", "tuesday" : "mardi", "wednesday" : "mercredi" ....};
text.output (aa ["tuesday"]); // print mardi
text.output (aa [1]); // print mardi too

- sort files in explorer
- suppress adMod for beta only. It will be back on v1.0
- code inserting from tutorial create a new file.
- simpler scope viewer
- sliding tools automatic retract

That's all at the moment, but it is no so bad !!!! ;-)
 
We may not be posting but I assure there's people following :)

Yes I see that.... This forum thread seem to be followed by a lots people, but no one seem to send his remarks....

However, I'm pretty nice, I do not bite ..... well, not all at once..... :rolleyes::rolleyes::D:rolleyes::D:D:D
 
Hello folks !

New version of Algoid this week


v0.4.1 BETA 01-02-2013
- correct function.clone cascade method
- add function.decorate method needed for smarter AOP implementation than functional concatenation
- add function.setParameter and function.setParameters to set parameters before execution to enable lexicale closure.
- space invader optimizing
- french translations for documentation
- partially french translations for tutorials
- correct step-by-step and starting bugs

I hope you will like it !:smokingsomb:
 
Hi all....
Another version.... one by week.... cool.
With several modifications.... it is my son's birthday and I want to offer him a tablet and my soft.... class 8-).
So great improvements with : MOP (meta object protocol), sprite become true object stamp and type checking philosopie.

v0.4.3 BETA 16-02-2013
- correct multi-thread and debug
- correct several IDE bugs
- start / stop menu
- string \n \t \\ special characters
- sprite is replaced by true object stamp
- auto-complete framework introspection
- MOP meta object protocol : meta-function parameters manipulation, meta-object attributes manipulation
- String.trim, String.concat magic methods
- replace type checking by *.getType() and *.is() methods. See al.types package on help

I hope you like it
Always here for man who don't know it. (lol)

:D:D:D:D
 
Hi everyone,
This is the last beta version before release.
I have to speed up, the birthday of by son is in j-8.... I have 2 or 3 little things to tune yet.

Well so new version with parser example.
Play with it, it demonstrate the power of AL isioms like cascade + functionnel.
The language is able to parse CSV (with delimiter or not) in only one line.... great class (when I think the number of time I have done this in my job).

The ; at the end of line become completly optionel. My backtracking parsing expression grammar is really powerfull, it has no problem this that.

v0.4.5 BETA 23-02-2013 Last beta version before release
- new AL features examples (AOP, ducktyping, parsing, lexical closure)
- the end line semicolon is now totally optional
- array keyword is mandatory for the first one in nested arrays
- menu organisation

Well, for next version, I am working on monetizing the app. But I don't know how to do that without changing user experience.
I anyone has an idea.

So, you can find it here....


Have a nice week-end
 
:confused::confused::confused::confused::confused::confused::confused:
Little question !
I'm thinking about the future of the app. What would you prefer as libraries:
- Gui
- Game
- Mindstorm
- Device capabilities (GPS, Gyro, Camera ect ....)

Please do not hesitate to reply.
 
Heh, sorry I was not answering your question. I was commenting on your app, but i think this one would make the most sense:
- Device capabilities (GPS, Gyro, Camera ect ....)
 
Super, thanks a lot.
At the moment :
gui : 2
game : 7
mindstorm : 0
device capabilities : 2

Heh, sorry I was not answering your question. I was commenting on your app, but i think this one would make the most sense:
- Device capabilities (GPS, Gyro, Camera ect ....)
 
Hello everybody,

With great excitement, I announce the official release of v1.0 Algoid.

Algoid become a donateware, free without ads, but donate if you decide that this project is worth and helpfull.
I think it is the better choise for this kind of project. :p:p:p:p



Well, I hope you will love it.
 
Hi there.
A little up to version 1.0.1 to correct a crash on certain little device (sorry for that)

Peace an code.
CyaNn
 
Some preliminar benchmarks of AL on MacOS (quad core duo)
- Python is 2.6.1, it is an interpreted language over c++
- JavaScript / Rhino is a java on the fly compiled language (I have put the optimization to maximum)
On Android platform, Javascript should have some worst performances because it cannot generate bycode yet (due to dalvik different nature than JVM)
- AL from Algoid is my pure java interpreted language

As demonstrated, AL has similar performances than python except for object creation. I don't have solution for that yet. Perhaps in a future version.
So I am excited to see what it will done on Algoid with 3d cube ;-)

Benchmarks.png


All these tests was realized by looping each instruction 1'000'000 times. For object creation only the instruction was executed only 10'000 times.
As until does not exists on Python an equivalent was scripted (while (True) : if (cond) break)&#65279;
 
This last month was really hard and tedious. But it was for a good cause. I have completely re-write the AL language implementation to improve drastically performances. :D

And what is going on beyond my expectations: 10x to 40x faster than previous version. Faster than Javascript / Rhino (about 2x).
Unfortunately slower than Python and Lua on android only. I think Dalvik VM is not as optimized as JVM is because on my MacOS AL have same performances than Python....

Nevermind ! Try to execute the 3d cube or space invader.... These programs seems to have drank too much coffy !!!! lol.

Further, you have been a lot to vote to game developpment framework !

The developpment of a game edition of this app has started.... To be continued....

 
hehe, I return to my weekly update frequency.....
This is the new v1.1.2 release with

- correct several scope bugs in language
- show AL exception in source code instead of unhandle exception
- algo.curve and algo.curvedPoly
- two another 3d example : 3dAlpha and 3dSpline

11.png


I hope you will like it
Find it here :
 
Yop yop, new release. Essentially bug corrections.

v1.1.3 Release 27-04-2013
- correct function parameter bug when nested call
- correct several minor ide bugs
- add al.combine.sum, al.combine.product and al.combine.concat functional tools to be used with array.join and array.merge
- add math.floor method
- open curves, paths and poly
- function tutorial
- filter map reduce new example
- suppress confusing and useless util.wait

always here
 
Yeah ! Algoid v1.1.5 is out ! With :
&#9733;&#9733; v1.1.5 Release 04-06-2013 &#9733;&#9733;
&#9733; forum bug about % special character
&#9733; correct several little bugs
&#9733; correct return bug (does not work with loops)
&#9733; new algo methods: square() and algo.box()
&#9733; reintroduce algo.setBgColor()
&#9733; new ascii methods: String.encodePoint(), Number.decodePoint(), Array.decodePoint()
&#9733; rename whileTrue and untilFalse by respectivelly whileDo and untilDo
&#9733; new math methods: exp(), log(), E, PI
&#9733; help reference index

Available here:


I hope you will enjoy it ! :rolleyes:;)
 
Back
Top Bottom