We are running a large XP for a research around Magic Literals.
A magic literal is a literal (number, booleans,…) that is used to denote something but that it not immediately obvious to the code reader: it can be for example a number but could be also a string, a character or boolean (this is what we want to discover).
When you read the code you should be puzzled by the usage of this magic encoding and this is what we want to understand and that you report to use using a special tool.
Now identifying magic literal is not easy and we want to measure them.
We already did a publication at ESUG last year (but we only did an XP with 100 methods) and now we want to go the world. If you want to read it
Our idea is to have result first in Smalltalk and then, only then check with Java :).
But for that we should show to the world that we did a large XP. So we build one and now we need you to help.
First we need to evaluate the situation and understand the different cases, as not all literals are “magic”. You can help us in this. It can take you 30 min for one experience.
We want to compare the analysis of an expert and an external person on a domain this is why we will cross comparison
between roassal expert and roassal newbie (same for Seaside, Polymath, VMMaker)
These images contain the code and the tool for the experiment and they should be open with Pharo80 you can get from http://www.pharo.org
To participate in the experiment:
– Step 1.
go to the document
– Step 2.
select one experiment to do (for example put your name in the column ‘Doing’) add your expertise to the sheet
– Step 3.
please select the experiments in numerical order, e.g. do the
Pharo-1 experiment before the Pharo-2 one.
Note that a Lot will contain also some other methods because we are mixing methods to collect more information
so do not be surprised to see other methods that Polymath’s ones in the polymath XP.
– Step 4.
Get the tool on the experiment. From the list grab an inspector and execute MLSExperimentPresenter openOnSample: self ‘ with the batch you chose as argument
You should get the following tool (with different colors 🙂 – yes that theme is funky)
– Step 5.
decide whether each literal presented is Magic or not (unabling ‘Hide completed’ can help)
Remember: ‘A magic literal is a literal (number, booleans,…) that is used to denote something but that it not immediately obvious
to the code reader’
– Step 6.
completing one experiment should take less than 30 minutes
– Step 7.
when done, save the result (button at the bottom of MLSExperimentPresenter)
– this will give a STON file named after your batch.
– Step 8.
Your identity will be discarded from the data (anonymous answers). But we will owe you a beer at ESUG or Pharodays 🙂
We will use it only to assess your expertise in Pharo and/or the project evaluated.
Many thanks for your help in improving pharo and our understanding of the literals (magic or not)
Nicolas, Stephane, Julien, Christopher and Oleksandr