[Haskell-cafe] Announcing Blocks for CodeWorld

Stefan stefanjacholke at gmail.com
Thu Jun 30 20:10:35 UTC 2016


Hi everyone, (this is somewhat cross-posted from reddit)

I'm announcing Blocks for CodeWorld, which is a functional based
drag-and-drop programming environment.

The project is part of Haskell Summer of Code. The aim of the project is to
create a web application with which users can drag-and-drop blocks in order
to create CodeWorld <https://code.world/> applications,

The project is primarily educational based, and more advanced applications
may be created with the regular CodeWorld text UI.

The application uses Blockly to allow users to drag-and-drop blocks, which
can then be snapped together in order to build programs, in a Scratch-esque
manner.

The generated code is Haskell, which is then sent to the regular CodeWorld
server and compiled with GHCJS, the resulting JavaScript is then run on the
site.
Code is generated as students are introduced to programming concepts with
the Blocks and will later be exposed to a more text based environment.

The majority of the code, aside from Blockly, is in Haskell, which is
compiled to JavaScript using GHCJS.

Currently, in this initial release, the user is able to:

   - Build and run simple CodeWorld programs, mostly pictures and
   transformations thereof
   - Save and Load projects, load a program by its URL.
   - Use polymorphic blocks, such as an if-then-else block and some others
   - Use Let definition blocks to create top level bindings

Later, more advanced functional features such as pattern matching and some
support for first-class functions might be covered.

For anyone interested, an initial version can be found at code.world/blocks.
If you want to follow on the progress you can check out my blog
<http://stefanj.me/funblocks/>.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160630/bb5090ac/attachment.html>


More information about the Haskell-Cafe mailing list