[squeak-dev] Survey: what do you do with Squeak, what do you *want* to do?

Beckmann, Tom Tom.Beckmann at student.hpi.uni-potsdam.de
Thu Mar 1 21:38:16 UTC 2018

Hello everyone,

I'm writing for a couple people at once, namely some students at Hasso-Plattner-Institut in Potsdam, so I hope you won’t mind the length of what follows.

> What do you use Squeak for?

Last year, during our Bachelor's project, we worked with Lasse Fister [1] to create a font review tool, GlyphHub [2].
We have a video of an early prototype for kerning adjustments of a UFO font file[3] and a couple images of the result can be found on our website draft [2].

Before that, we created games as part of a lecture. The two games created by the groups involved in our Bachelor's project can be seen here:
- "CookieQuest", written entirely in Morphic https://www.youtube.com/watch?v=J0dIqptelvk
- "Totally Obsolete Mission", written using a fullscreen CroquetGL overlay and FMOD or OpenAL via FFI for sound and a port of SDL's controller interface for two stick movement and local multiplayer https://www.youtube.com/watch?v=OwzycVgFa_g

Other than that, we have some small side projects that involve Squeak:
- creating a visualization for Pascal's Triangle that will be used in a science museum in Frankfurt
- investigating how/if the UI toolkit we created on top of Morphic for GlyphHub can be re-used
- small prototypes for aspects of games
- small additions to EPIC as part of a lecture (https://github.com/hpi-swa-teaching/EPIC-Digitalsimulator/releases)

> What things are too hard or annoying to do?
- The quality of font rendering, in particular on HiDPI screens lacks in comparison to the native rendering, which I would love to see improved (and have myself started investigating at some point).
- While working on the UI widgets framework for GlyphHub we ran into a couple of issues with rendering and layouting. Balloon had some small issues (but annoying ones, for us “visual perfectionists”) and the lack of height-for-width layouting made fluid text layouts a pain. For the latter, we ended up writing a new layoutpolicy that we hope to share soon with the rest of the toolkit (can already be inspected in our repo, minus some refactors [4]). The rendering we ended up “fixing” by using a pango backend instead of Balloon, which in turn gave us a huge headache while making things portable again.
- The fact that the version control situation seems still undecided has been source for some confusion in the past, with e.g. Metacello not being included by default. Working in a team with Metacello and git, like we did for an extended period of time, only worked out because we were always in the same room and could hand around sheets with required fixes after oddities that happened during the last merge and hand-merge our own changes on every other people’s workstations in the worst case.
- I felt very uncertain whenever looking out for third-party code, concerning its maintenance and compatibility status. I believe having a well-defined stability status on every project, including links to a bug tracker and easy ways to propose fixes (akin to merge requests) for those projects that are deemed important building blocks would be very beneficial for my confidence in picking dependencies.
- The landscape of FFI options left me very confused and even after lengthy searches through various Squeak repositories, I did not find good examples for either option, except those built into Pharo. I got the impression that Alien was deprecated, however in the other package that was just called FFI I believe, I did not find a way to define callbacks and the pragma annotation appeared to be generally more limited compared to Alien.
These last two points might boil down to lack of documentation for everything that is not code, or code external to the beautiful alt+n/m world of my image.

> What would you like to be able to use Squeak for?
I personally am very curious how Squeak can stack up for Game Development. This could either be fully within Squeak (likely involving a Morphic that would have somehow have to be refitted on top of OpenGL for performance) or as just a language backend for an existing engine, such as Godot [5].
Using it as a node.js replacement would also be a dream for me, which might even be possible, I did not have the time yet to investigate the state of database adapters and CPU consumption under load.

In any case, working with and exploring Squeak was a blast for me, and I hope to continue doing so in the future!

Thanks to everyone for building this great platform,
Justus, Alex, Corinna, Eva, Tom

[1]: http://graphicore.de/en
[2]: http://glyphhub.org/
[3]: https://www.youtube.com/watch?v=o0J9YXD1qPo
[4]: https://github.com/hpi-swa-lab/GlyphHub/tree/master/packages/Bootstrap.package/BTBoxLayout.class
[5]: https://godotengine.org

From: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> on behalf of henry <henry at callistohouse.club>
Sent: Thursday, March 1, 2018 5:13 PM
To: The general-purpose Squeak developers list
Subject: Re: [squeak-dev] Survey: what do you do with Squeak, what do you *want* to do?

Super happy to see the new board take the initiative, with this Survey. I’ll try to add my answers thoughtfully.

What do you use Squeak for?

- Cryptography-ASN.1, Green
- eLinda, Yellow
- forward error correction, incomplete Green
- ParrotTalk- encrypted ASN.1 specified comms between Squeak/Pharo/Java -, RELEASED GREEN
- and Raven which is distributed objects with a PromiseFuture interface which is eventually sending async, promise returns, messages between objects. From http://erights.org, supports sending messages to futures of promise returns for send-chaining that is forwarded to the send Continuation, evaluated in a single-threaded event-loop. Raven passes all tests in Squeak/Pharo. Green.
- STON for Java is not squeak code, it is Java code, to bring STON encoding so Raven can operate in Java, for distributed capabilities, cross-language promise system. C#, Swift, C support pending...

If you don't use Squeak, why not? I do use all the time, I love what everyone built over the decades. I am appreciating you.

If you used Squeak in the past and don't now, what pulled you away?
I get pulled into Pharo and Java, but Squeak is my home environment.

What does Squeak lack that you think might make you use it for 'regular' development?

Spec back-ported from Pharo to Squeak and then Native windows support, each Morphic frame is an OS window. Spec-driven even better.

What things are too hard or annoying to do?

The seeming confusion, on my part in the least, all the different source control efforts. I like my Monticello. It seems there are too many needed steps to have package source control and package dependency control, then initialize and/or startUp:. Metacello, Installer, Gofer, Tonal, Iceberg.  I don’t like having a ConfigurationOfXXXXXX, that makes two-level commit required. I think there is a way to add required or dependent packages, in Monticello but I have never used. Dependencies is hard, building trees from graphs. I wish Monticello packages incorporated all the dependency management learned in these other attempts such that the Monticello Browser is still the right point of entry and, for lack of a better term, application aware: MonticelloApplication.

What would you like to be able to use Squeak for?

I wish Raven to become the reference implementation for distributed capabilities Actor system, with eventual promise execution environment. With both a distributed naming service and job manager and application publishing, form the basis of Neal Stephenson’s Metaverse, with interconnected Houses 🏡 of presence in social activity.

I also wish to see lots of inter connectivity to RDB, NoSQL, BigData, and Cloud managers so Squeak/Pharo can be always-on servers. I believe the answer is data connection, naming and management, to form a MetaManager.

Thank you for the opportunity to share.

On Wed, Feb 21, 2018 at 20:36, tim Rowledge <tim at rowledge.org<mailto:tim at rowledge.org>> wrote:
At the latest board meeting we got to discussing the relative quietness of the squeak list(s) recently. We were wondering what you folks out there are doing with Squeak, what you'd like to be able to use it for, the things that you think would be important to improve it for wider use and so on. Please, whether you're a frequent user or an occasional look-at-the-list type, take a moment to let us know your opinions. What do you use Squeak for? If you don't use Squeak, why not? If you used Squeak in the past and don't now, what pulled you away? What does Squeak lack that you think might make you use it for 'regular' development? What things are too hard or annoying to do? What would you like to be able to use Squeak for? tim -- tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim C for sinking, java for drinking, Smalltalk for thinking
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180301/6269092d/attachment.html>

More information about the Squeak-dev mailing list