Hi, I'm Alessio Stalla

Hi,
I’m Alessio Stalla. I’ve been working in Strumenta for only a few weeks.

I’ve started getting passionate about programming in high school with Pascal, that they taught us as part of the curriculum. I learned all sorts of tricks such as how to change the color of the fonts on the console and move the cursor around. I even wrote a crude form that you could navigate with the keyboard! And also made the computer beep at different frequencies.
But soon Pascal wasn’t enough. Java was the big new thing at the time and I got an electronic copy of Thinking in Java by Bruce Eckel. That was, I’d say, the start of it all. I didn’t have an IDE at that time - I programmed with notepad++ and compiled using javac, with no external libraries. The “batteries included” nature of the JRE made it possible for a kid with basic tools to build interesting applications, even if they were really naive, including a 2D function plotter and a simple neural network that could be trained by the user to recognize a few simple shapes such as some digits.

Then, at the uni, I learned about Lisp, I think it was from some article by Eric S. Raymond or Paul Graham. So I discovered Emacs, Elisp and then Common Lisp. Roughly at the same time, I learned about ML and Prolog and programming language implementation techniques as part of my studies. This was the start of my passion for languages and DSLs, as Lisp is big on the concept of internal DSLs (for what I know, the concept might have actually originated there). It made me understand that most if not all programming with high-level languages is really designing a language to communicate with the user, be it textual or graphical. And that there are several layers of users, from colleagues to third-party users of your code and QA personnel, from administrators and power users who install and customize your application to actual end users, and they all matter and have needs to be addressed. So this has been more or less my philosophy when designing and coding business applications, which has been pretty much my whole job history. I’ve been mostly a consultant for big companies with a few in-house projects in between, most often in Java and related technologies.

I’m also the long-time maintainer of the open-source web “framework”/RAD/model-driven tool Portofino, which has proven to me time and time again how a solid design can really bring you anywhere you want. That’s why despite all their pitfalls and cruft I love working with Java and the JVM (and Lisp of course). You can appreciate all the design effort that has been spent from the beginning, even if today those tools are perhaps a little too complex for a kid to start with only a book and a computer. Who knows.

6 Likes

Thank you Alessio for your introduction.

At Strumenta we are lucky to have you with us.

We went through similar phases, in particular Pascal and Thinking in Java has been steps which were very important also for me. I had my Lispy phase (Clojure was the particular brand I prefered :D) but on that I never arrived at your level.

Wow, you managed to explain very clearly something I had vaguely in mind but I could not formalize. Yes, this is a great concept and a great way to put it.

And your experience with Portofino will be very valuable at Strumenta

2 Likes