Skip to content

dpaola2/RubyTalk

Repository files navigation

RubyTalk

Watch the first screencast

Here is the original slide deck

RubyTalk's goal is to provide an interactive, visual programming environment, much like Smalltalk or Self. Build your applications by interacting directly with objects in memory, rather than their textual representation on the filesystem.

The larger goal is to think in higher-level abstractions than we currently have.

While a better mechanism for interacting with both definitions and instances is desirable, when it comes to sharing and saving, we're concerned (in the short term) only with sharing and saving definitions. We still want an environment with both, but saving and sharing instances of objects is a much hairier problem, however awesome it could be to have them.

The visualizations we use will constrain how we think about our objects and programs. Therefore we must choose carefully!

Status

Please note this project is PRE ALPHA. Not ready for even personal use!

Roadmap

  1. Inspector
  2. Workspace improvements
  • print vs do
  • local bindings for lifetime of workspace
  1. Observer pattern in GUI
  2. Persistent Data
  • ability to store data in postgres and retrieve it
  1. Web Framework
  • run servers in background threads
  • views render using HAML
  • pull in activerecord for ORM support
  • how to map routes onto functionality
    • controllers?
    • RESTful?
  1. Object memory modifications
  • support for instances and modules
  • seralization overhaul
    • on open/close
    • store in postgres or somewhere sensible
    • open files, network connections
  • resolving dependencies and superclasses
  • multiple users
  • transactions
  1. Debugging modifications
  • resumable exceptions
  • exceptions in other threads
  1. Process Handling (threads)
  2. Better GUI toolkit

Ideas for applications / objects

  • jarvis
  • craigslist notifier (upon new search results)
  • hipchat
  • os x menubar applet (workspaces in smalltalk)
  • hubot
  • notifications when someone re-pushes to a pull request

How To Install

(only tested on OS X 10.9.1)

Download the community edition of ActiveTcl

$ rvm install 2.1.0 --with-pthread --with-tcl --with-tk

$ gem install bundler

$ brew install portaudio

$ brew install mpg123

$ bundle install

$ ./world.rb

After you close the GUI, exit will quit RubyTalk.

Links

Eigenclasses demystified

Ruby TK Guide

Ruby ObjectSpace heap dumper

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages