Uploaded on

E

E

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
694
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
25
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. EISA IN 10 MINUTESBelleve Invis
  • 2. ASYNCS  Means ubobstructive  Getting important – Ajax – Resource management – Node.js I/O  Hard to write in pure JavaScript
  • 3. THREE SEQUENTIAL TASKS IN JAVASCRIPT taskA(function(){ taskB(function(){ taskC(function(){ finish() }) }) })
  • 4. KEY PROBLEMS  Nested functions! – My screen is narrow  Hard with loops  Hard with abstraction  Code locality is broken
  • 5. EXAMPLE: TASKS DEFINED IN A LIST, ACT IN ORDER var tasks = […]; var actTasks = function(tasks, deploy){ var current = 0; var act = function(){ tasks[current](); current ++; if(tasks[current]) deploy(act) } deploy(act) } actTasks(tasks, function(f){ setTimeout(f, 1) });
  • 6. THAT IN EISA var flow = async { for var task in tasks: wait! 0; task() end } flow()
  • 7. EISA IS  A new language – So, no capacity requirements  JavaScript targeted  Designed for interactive developments – So, asyncs
  • 8. ORIGIN: GAME MAKING  Defining game data – Optimized syntax for DSL  Game flow – Asyncs  Large scale RPGs – Module system  Now is general-use
  • 9. DEMONSTRATION: 3D SCENE  http://typeof.net/lab/d2  Do not focus on the renderer
  • 10. DEMO IN ACTION var loadImage(src, callback): …… img.onload = function(){ callback img } img.src = src end var loadTextures = async {|callback| var texture = getTextureData loadImage! images/texture.png …… if callback: callback { texture: texture, heightMap: heightMap } end };
  • 11. MASTER FLOW var flow = async { …… setTextures loadTextures!() …… gameClock.perk() while true: renderFrame(); …… gameClock.wait!() end console.log Demo Finished }
  • 12. HOW ABOUT USING TRADITIONAL WAY? var flow = function(){ loadTextures(textureLoaded) } var textureLoaded = function(textures){ …… gameClock.perk() gameLoop() } var gameLoop = function(){ renderFrame(); gameClock.wait(gameLoop) }
  • 13. TREND  ECMAScript Harmony – Syntax extensions – Semantic fixes  JavaScript-targeted languages – From existing languages, e.g. GWT – New-created languages, e.g. CoffeeScript  JavaScript modulation – Necessaria – module system in Eisa
  • 14. FOCUS EISA  http://github.com/infinte/eisa  Fork Me!
  • 15. Q&A  Belleve Invis – Born in 1992 – Now in USTC – be5invis@typeof.net – http://typeof.net  Eisa – Since 2010 – http://github/infinte/eisa
  • 16. Thank youAGO VOBIS GRATIAS