Skip to main content
Version: Next

Motivation

What's behind the creation of this fancy data framework.

Python is developing fast these years with the popularity and affection of Deep Learning and AI. It gains a lot of useful and handy new features like type hint and dataclasses in recent versions. When we decided to move our technical stack to Python, we couldn't find a great data processing pipeline and a backend ORM solution. With many years' experience, I also wanted to build a simple to use, declarative, automated data processing and persisting experience that I wound enjoy to use. With Python's meta programming functionalities, this is just able to be implemented.

How JSONClasses Works#

JSONClasses uses several Python features like type hinting and dataclasses. With the great metaprogramming functionalities that Python offers, we can easily extend it into a great DSL for declaring data structures, transforming rules and validation rules.

Why Not Create Another DSL?#

GraphQL's Schema Definition Language cannot work well with programming languages' syntax checking and type completion. To support more and more functions, a DSL would become more and more like a programming language. This is similar React.js, Jetpack Compose and SwiftUI. The structures of the declaration is embedded in code, not in a special text file.

Why Python Is Chosen?#

Python is the programming language which is nearest to AI areas. The era we are living is an era and a generation empowered by AI. AI algorithms empower products with unimaginable stunning features. A great product should adapt to some level of AI to continue providing great functions for it's targeting audience.