Sunday, January 4, 2015

Day 4 - 30 Day Learning Challenge

AngularJS vs Etoys 
(as a tool for younger people to work very deeply by programming and building stuff)

First this is not a fair comparison, as Etoys was designed for this purpose and Angularjs was not.  Yet I understand the desire to have a tool to that can be used for exploring ideas, communicating and expressing themselves.  I also understand the request to have tool that can be used in a browser.

First I will start with AngularJS’s advantages:
  1. It has the support of Google
  2. There is a large community of people who use AngularJS and an even larger community who know JavaScript
  3. There are many resources on the Web for learning about AngularJS and very good support groups willing to help beginners
  4. There are lots of code examples one can learn from and play with on Plunker and JSfiddle.

The challenges of AngularJS:
  1. You have to spend a lot of time learning about AngularJS and how to do things in AngularJS which takes away from the time spent  on learning/expressing/exploring.
  2. It is built around the Web in particular the DOM.  Ie: you are restricted to what the DOM can do.  Okay not completely true you can blow a hole in the DOM and using SVG or Canvas but the libraries available to do things here (think D3 et al) are very specific and require high learning curves.
  3. While the learning curve when compared to other Web Frameworks is not quite as steep, there is a steep learning curve for students especially if they do not have a lot of programming experience.
  4. It is a text based language (as opposed to a tile based one) which means syntactical errors are easy to make and take time and cognitive load to understand and correct.

The advantages of Etoys:
  1. It was designed for construction and learning by students
  2. It supports tile based scripting and lets you switch to text based.
  3. It lets you directly manipulate objects and extend their functionality.
  4. The community to support learners is responsive and helpful.
  5. There are some good educational resources for students and teachers to explore.

The challenges of Etoys:
  1. There is no large organization or funding supporting Etoys.
  2. The community while supportive and helpful is not large.
  3. Etoys currently does not run in browsers or on tablet or phones (Yes, I know it can and there are projects which show its possible, but there is no “supported” fully functional and fast enough version that does so for all “modern” browsers).
  4. Etoys is not as popular as AngularJS
  5. JavaScript is more popular than Squeak (and thus has a larger base of people who could potentially support teachers and students).

So all this aside perhaps the best tests are how easy is it to:
  1. For a teacher to build an educational tool for students
  2. For a student to create a form of expression
  3. For a student to explore certain ideas

Now to quote Seymour Papert “It’s hard to think about thinking without thinking about something.”  So I will try to think about some things and how they could be done in AngularJS and Etoys (and perhaps some other ways of doing things).  So at some point I will try and think about "something" more concrete.

Ideas and suggestions welcome for “what to build”.

P.S. Also made some progress at Code School but poor internet connectivity has limited my time on the computer and increased the time spent with family :)


Gerald Ardito said...

I appreciate your addressing this topic (since I posed it).
It seems that there is a trade off between web accessibility and resources. It will be interesting to see if anyone used Angular JS or any of the related platforms to bring the functionality and power of Etoys to a more web friendly environment.
I know that Walter Bender has been working on a Turtle.JS (or something like it) which I think is an important step.
I look forward to hearing about your continued progress.

Steve Thomas said...


Thanks for your comments they make me think and are much appreciated.

See my next post of Blockly which not only does Turtle but a lot more. It has a lot of what I think you are looking for and their challenges are a great way to weave in programming into learning, plus it seems to provide a nice bridge to Javascript.