An example of molding custom source code analyses

Glamorous Toolkit, the moldable development environment, ships with extensive software analysis support for various languages. These analyses can be combined and integrated with the rest of the environment to assist developers in assessing their own system.

In this tutorial we explore how we can take architectural constrains for our systems that often reside in wiki pages and other documents, and express them in a testable form through custom analyses.

The software modeling part is based on FAMIX, a family of meta-models for representing various facts about software systems. FAMIX is developed within the context of the Moose analysis platform. …


An example of molding custom source code analyses

Glamorous Toolkit, the moldable development environment, ships with extensive software analysis support for various languages. These analyses can be combined and integrated with the rest of the environment to assist developers in assessing their own system.

In this article we exemplify how this works through a classic example: evaluating @Deprecated classes in Java systems. We pick this problem because it is one of the simplest evolutionary problems that is often taught in introductory courses. Yet, in our case, we show how to address it without reading code, merely by constructing custom interactive analyses.

The software modeling part is based on…


Utilizing interactive notebooks to document code through examples and custom views.

In this article we explore how code comments can become a live wiki if we rely on interactive notebooks to document our systems directly inside the IDE.

Glamorous Toolkit is the moldable development environment made of multiple programmable and combinable components. One of the components is Documenter, the engine that makes creating and consuming code documentation and tutorials a beautiful experience directly in the IDE. It enables:

  • documentation of existing code
  • tutorials
  • interactive data notebooks

This article explores the use of Documenter for documenting code.

Outlook

Code comments are pervasive in software development. They are used for many reasons, including, but…


Adapting the IDE to fit the context of a software system

In this article we explore how explaining a software system can look like, if we actively adapt the IDE to fit the context of that system during development.

Software systems are highly contextual. For development tools to be effective, they have to take that context into account. It follows that tools must be moldable so that programmers can adapt them to their current needs, easily and frequently.

Overview

Software is shapeless. Programers craft software exclusively by interacting with development tools. Hence, tools provide the shape of software. …


Releasing and deploying new versions on every commit

In this article we explore GT Releaser, the engine used by Glamorous Toolkit to build reproducible releases on every commit that keeps examples green.

GT Releaser is an engine for releasing deeply nested Pharo projects. It sounds like a trivial thing, but it’s an essential piece that allows you to develop trunk-based and release confidently on a push of a button, or two. Or a script for that matter.

The need for a release tool

Glamorous Toolkit is developed using trunk-based development. In short, the development branch is the master branch and it always contains the latest version of the projects. This helps to reduce the…


Utilizing interactive notebooks inside the IDE.

In this article we explore why and how we can follow tutorials for exemplifying software applications, libraries and APIs directly inside the IDE.

GT Documenter is a moldable tool that makes creating and consuming code documentation and tutorials a beautiful experience directly in the IDE. It enables:

  • documentation of existing code
  • tutorials
  • interactive data notebooks

This article explores the use of GT Documenter for creating live tutorials.

Outlook

Tutorials are part of a developer’s daily life. We rely on them to present others the features of our libraries, learn how to use APIs, or document what our software systems are doing…


Documenting and testing software through examples

In this tutorial we compare unit tests and examples, and look at the economics of designing our unit tests to serve as examples for our systems.

GT Examples is a slim engine that lets you define examples throughout the code and use them for documentation or testing. Through examples, a developer can switch rapidly from the static code to a live environment and program in the presence of objects. Examples then serve as the basis for live documentation.

On tests and examples

Unit tests are commonplace during software development. We write them for various reasons, like understanding what we need to develop, exploring ways…


Modelling pictures and faces to explore Azure Face API

In this tutorial we build a tiny object-oriented model for highlighting faces within pictures. We also extend the IDE while developing the model.

Pharo is a live, object-oriented programming language and environment, offering a unique combination of concepts. Think pure and deeply reflective objects combined with a moldable IDE available at runtime and a kind of a persistent memory. This enables the creation of new development tools within minutes instead of days, opening new ways to approach software development.

Outlook

In this tutorial we build an object-oriented model for an application that uses Microsoft Azure Face API to detect and highlight…

Andrei Chis

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store