Getting a handle on names

There are only two hard things in Computer Science: cache invalidation and naming things. Phil Karlton Two hard things, but they are not the same kind of hard. Naming things we do it every day. And we read and re-read the things we name all day long. This is a post about names. And ambiguity.Continue reading “Getting a handle on names”

Complishon: efficient heuristics for code completion

A couple of weeks ago I started prototyping a new code completion backend. The one available in Pharo 8.0 is good-enough to complete variables and messages to literal objects. However, the accuracy of the completion was pretty low because auto completion candidates were sorted alphabetically, and this was even producing completion pauses for large images.Continue reading “Complishon: efficient heuristics for code completion”

How a modal window could break the event cycle: A debugging story

A couple of weeks ago I started an aggressive cleaning on Morphic, the graphics framework we currently use in Pharo, searching for a cheap and simple path to move the Pharo IDE to HiDPI screens. The cleanups involved mostly the removal of global state. For example, I transformed code like the following: into something like:Continue reading “How a modal window could break the event cycle: A debugging story”

Why can’t Pharo have constructors?

The other day we were talking about Pablo about pre-tenuring objects when discussing about a couple of papers like this one and this other one. These papers describe the idea of pre-tenuring objects for Java. The main idea being to identify allocation sites in the code (e.g., new MyClass(17, true,someObject)), take statistics about the averageContinue reading “Why can’t Pharo have constructors?”