I have created an experimental Smalltalk development environment which lets you program much like you would in Scratch, i.e. by snapping blocks together. You can even browse through (and change) the Scratch Source Code just by using these block-like syntax elements:
http://www.chirp.scratchr.org/blog/?p=24.
Enjoy!
Offline
Jens wrote:
I have created an experimental Smalltalk development environment which lets you program much like you would in Scratch, i.e. by snapping blocks together. You can even browse through (and change) the Scratch Source Code just by using these block-like syntax elements:
http://www.chirp.scratchr.org/blog/?p=24.
Enjoy!
ultra awesomeness:D and buy the way is there a chirp version for 1.3?
Offline
Jens, you continue to amaze! This is fantastic. Does this mean I don't have to learn any more Python?
Offline
Thanks, Paddle2See! It actually means that once this becomes more polished and usable you might get an easier way into image-based, object-oriented programming. One idea behind Elements is to offer a way for Scratch-graduates to step up to the "next level" of programming while being able to maintain the draggable blocks paradigm. Also, I wanted to find a way in which the Scratch Source Code could be "visualized" in something Scratch-like...
Offline
this really does look great! I wonder if the scratch team might want to take this and use it in scratch V2!
Offline
I opened both elementsforscratch090224 and elements090224 and they look almost identical. Which is the main difference?
Offline
I explored the Object menu of elementsforscratch090224. I guess that the presence of "Scratch" there does the trick :-)
Offline
Jens, I tried to replicate the short examples that you give in your "Syntax-Elements for Smalltalk". But (maybe as I don't know SmallTalk) I wasn't able to find several (messages?) such as "inform" or "do". Would you mind adding a few explanations? Thanks a lot in advance.
Offline
Hi Stefano,
it turns out that finding a way to show just those few messages one wants in a certain situation among the thousands which are present in the image seems to be one of the hardest design challenges, and probably one of Elements's major current drawbacks. Best would probably be some kind of data-type sensitive filtering/selection method.
Maybe just adding a "search all methods" entry box might also work...
Having conceded this much
you'll find "inform" in class Object and "do" in class Collection....
Thanks for your feedback!
Offline
I really don't understand Elements.
I need a guide.
Offline
Hi coolstuff. I'm definitely planning to develop Elements further! Currently I'm fidgeting with improving the UI whenever I have some spare time (which isn't often). One of the biggest problems seems to be the sheer number of available message-blocks, and how to access the "right" ones quickly without needing to type in a search text. So, I'm experimenting with some fairly complex type/class interferecing algorithms, which I hope to gradually make simple enough to use in the next version.
Hi Magnie, I'm sorry you're having problems understanding Elements. But you need not feel bad about this, as Elements is still *very* experimental and not nearly as intuitive to use as Scratch. So, hang on, until - some day - it'll become easier all by itself
Offline
Okay!
Offline
Hi Jens,
I'm now playing with Elements (that I understand really better now that I have studied Squeak a little
). I would like to "run" the Scratch UI from inside Elements, but I couldn't find a way similar to the one allowed by the Scratch image (when open in Squeak, i.e. by selecting "Scratch" in the "open" command of the World menu).
Thanks in advance for your help
Offline
Hi Stefano,
In Elements for Scratch you can switch to development mode by right clicking on the Elements window background and selecting "switch to development mode". Then you can start Scratch using the World-open menu (left click on the white window background to bring up the World menu, select 'open' and then 'Scratch' at the bottom).
Offline
Thanks! Will you make your Elements for Scratch also available for version 1.4? Or maybe for your excellent BYOB?
Offline
Stefano,
Wow, I didn't expect there to be such a vivid and widespread interest in Elements or BYOB! Thanks for your feedback.
Elements is included in the current BYOB 2.0 rc. You can inspect the code behind any Scratch block from BYOB's context menu. If it's a custom block you'll get the Block Editor, else the Elements Editor.
Now, the Elements Editor which is included in BYOB really is the same (with some additional features) as in the stand-alone version of Elements. It's a (more or less) complete Smalltalk Class Browser which lets you inspect (and change) all of the BYOB Source Code. You can also open as many Elements Editors as you like, and drag elements from one window into another one.
The only thing disabled in the BYOB-Elements implementation is switching to development mode and saving the image. Any changes made in the Elements editor will instantly take effect, but will be lost when the application is terminated, so you cannnot accidentally break BYOB. Of course, since Elements lets you change anything, this isn't really locked up....
Offline
Jens wrote:
since Elements lets you change anything, this isn't really locked up....
Wonderful! Would you mind sending me a few indications on how to unlock it at my email federici.stefano at domain gmail.com? Thanks in advance!
Offline
Jens, sorry if I keep asking you, but I'm struggling at the idea that in BYOB 2.0 there is an activated "mesh feature" that I don't know what it is!!! Where can I find info on this?
Thanks and sorry again for bothering you with request that I guess could be answered by someone else (maybe the Scratch team, that maybe is on vacation...)
Offline
Hi Stefano,
here's a short intro:
1. Install BYOB on several different computers with internet access each.
2. open a BYOB session on each computer.
3. pick one and select "Share-Host Mesh" in the menu bar.
4. a dialog box with the host's IP will open - leave it open.
5. on the other computers select 'Share-Join Mesh" and enter the host's IP
6. Now all connected Scratch projects receive every broadcast ...
7. ... and can sense every global variable (using the sensor value block)...
8. ... and can send sprites to all others (including nested ones).
Hint: You really don't need internet for this, because you can also start several BYOB instances on the same computer which will just result in the local home IP. However, when launching subsequent BYOB instances from the same folder you will see a warning that Squeak cannot write to the BYOB.changes file. You can safely ignore this warning (or use another folder in which you can delete the changes file altogether - all it is needed for is variable names in the Elements Editor).
Does this help?
Offline