Opinion

Christoph believes the Open Source Movement has ushered in an era of software development and computing innovation. He insists we have only begun to scratch the surface of what is possible and the pace of innovation will not speed up until we revamp our toolchains.

Background

Christoph is on a mission to make a difference in how we develop web-based applications. His main pet peeve is how much time developers waste on finding, evaluating, learning about, installing, configuring, integrating, testing and debugging the same open source software. Furthermore most developers are not specifically trained in these disciplines leading to uninformed decisions and orphaned efforts.

Before we can gain real progress in the typical software development lifecycle we need to have a toolchain we can manipulate programatically and an IT sector soly focused on providing products and services to abstract the software we write and the processes we use.

Christoph is not talking about increasing bloat and complexity, but establishing an approach that focuses on achieving optimal lifecycles by supplanting component coupling, dependency, configuration and provisioning concerns from the manual to the meta level.

Christoph believes all the technological building blocks required to make this happen already exist but progress is hampered by a disjointed body of code. This is especially true for open source software where there is no all-encompassing platform like we are used to from commercial vendors. Christoph's approach to move in the right direction revolves around developing a suite of tools on top of a carefully crafted and liberally licensed stack that adheres to open standards and uses open infrastructure to compartmentalize, describe and make queryable every aspect, task and process involved in producing software.

Christoph searched far and wide for exceptional components to base his tools on and in selecting an initial stack of technologies that have the features and potential to prove themselves as an amazingly efficient platform for client/server browser based application development and deployment. The projects below are Christoph's initial set of building blocks for a new breed of toolchain.

CommonJS

CommonJS aims to standardize an API for building a broad range of JavaScript applications in the browser, on the server and other host environments. Ultimately it will provide a standard library as rich as those of Python, Ruby and Java. CommonJS also specifies a way to bundle code into packages and a flexible mechanism to declare dependencies.

Christoph chose JavaScript and the emerging CommonJS standard to implement his ideas because it is an incredibly powerful language that most developers are familiar with. By picking a popular language, users are empowered to make their own customizations without a steep learning curve.

More Info: commonjs.org | developer.mozilla.org/en/JavaScript | javascript.crockford.com | promotejs.com

PINF

PINF is a toolchain automation platform designed to manipulate your project artifacts via defined, predictable and repeatable processes in a globally unique namespace. PINF is implemented completely in JavaScript, incorporates lessons from Christoph's research work and is the gateway between Christoph's Tools and software projects at large.

More Info: About | Theory | How it Works | Roadmap

Status: PINF is under development and not ready for general use yet. It is being developed to support Christoph's toolchain and will be launched as a first-class project once it stabilizes more.

Insight

Insight is an intelligence system used to gather and aggregate internal information from a running application. The data is encoded in a language agnostic JSON-based object graph that can be transmitted and rendered by developer tools such as integrated development environments, monitoring services and debugging inspectors.

The insight system is being incubated as part of the FirePHP Companion tool and there is a PHP implementation bundled with the FirePHP 1.0 release which is usable via FirePHP Companion. JavaScript, Java, Perl, Ruby and other language implementations are planned.

Wildfire

Wildfire is a communications system used to send data along existing application communication channels without interfering with the functioning of the application. The idea is to devise a communication systems able to channel, out of band, internal data through the physical and software infrastructure of applications by providing libraries/hooks for strategic points in a system.

The wildfire system was originally developed to shuttle data from PHP server applications to Firebug as part of the FirePHP Tool. With a PHP and JavaScript implementation it has since evolved to provide the communication layer for all Companion Tools and Java, Perl, Ruby, C and other language implementations are planned.

The Companion Tools

The Companion Tools are the culmination of Christoph's work and are intended for immediate use in production environments. The tool suite is fully supported, documented and only includes the components ready for wider use.

The Companion Tools are designed to support developers in gradually migrating to a sustainable development methodology and are the visual and interactive gateway to meta-driven systems.

To follow Christoph's production ready work simply install FirePHP Companion and start using it.