Our Platform

Accelarating product development with ConceptJS

Everything should be made as simple as possible, but not simpler.
— Albert Einstein

The applications we build are typically modeled as a web of “concepts” that executes on the ConceptJS platform. ConceptJS is built on a micro-services architecture using NodeJS and Java. It runs on the cloud and leverages horizontally-scalable open-source Big Data platforms including Apache Cassandra, Elastic Search and Hazelcast.

However, what makes ConceptJS interesting is not its technology stack, but its underlying theory called the concept model. The concept model offers a mathematically rigorous way to express human-understandable concepts as machine-executable code.

The inspiration for the concept model comes from λ-calculus developed by Alonzo Church and early works in symbolic and intuitionistic (aka constructive) logic such as Frege’s Begriffsschrift (German for concept-script). The concept model differs from traditional computing paradigms like the Turing machine and Boolean algebra that rely on set theory and the law of excluded middle. We believe that the concept model offers an easier and more intuitive approach to software development by letting the programmer construct the application one concept at a time.

The Concept Model

We built ConceptJS to address the key pain-point that every software project faces: the increasing difficulty of maintenance as the code grows in size. To illustrate this point, let's take a look at this JSFiddle. Most programmers with even a slight familiarity with HTML will be able to change the direction of the arrow in this page in a minute or two. Now, if you ask the same programmer if he/she can change the direction of the arrow in the back button of a Firefox browser in an hour or two, you are almost sure to get a resounding “NO”!

In both cases, the source code is available (Firefox is open source). So why is changing the arrow easy in the JSFiddle and hard in Firefox? The answer is two-fold: simplicity and transparency. The JSFiddle is simple and transparent, whereas Firefox isn’t.

We believe that the concept model is the simplest way to express an information-driven application. Every concept has the same simple structure and behavior. Furthermore, ConceptJS is radically transparent in three ways:

  1. Runtime transparency: The sequence of computations that generate any result can be fully understood through the browser. Most seasoned web-developers would appreciate the value of runtime transparency that they get with Chrome developer tools. ConceptJS offers a similar level of transparency for server-side computations!
  2. Operational transparency: With this JSFiddle, you simply had to make the change and click the “Run” button. As you can imagine, building and releasing a Firefox browser would be a whole lot more difficult even with the best DevOps practices. ConceptJS offers radical operational transparency and sophisticated DevOps capabilities, by allowing developers to directly edit the code running behind apps through the browser and push them into production with a couple of clicks. In fact, we build all our applications directly via the browser.
  3. Semantic transparency: A famous but anonymous quote about programming is that “a programmer does not primarily write code; rather, he primarily writes to another programmer about his problem solution.” The concept model takes this idea a step further by making the programmer describe his problem solution using concepts that are meaningful in the domain. This ensures semantic transparency whereby any programmer can understand the problem solution in terms that are well-understood in the problem domain.

Please contact us to learn more about the ConceptJS platform.