2D Programming Language Research
Indexed description
- Client
- Duration
- Categories
- Technologies
Combination of a spreadsheet visual interface with a language operating on actual cells and tables.
Like functions in Excel without code duplication, like programming language without abstract logic.
Research project on a concept of a new programming language.
I was actively participating in product development, built an Integrated Development Environment for the language and an experimental platform for end-users to create web apps and publish them.
Planarly is a language
Drawing inspiration from programming concepts in tools like Matlab and Numpy, it is built around the table-as-data-structure and designed to be a superior alternative to Excel.
Client had this idea for a long time and made it in as a backend core in C++.
Documentation
Youtube channel with tutorials.
Planarly is a spreadsheet
Familiar table UI capable of intuitive functional programming
Performance was crucial because of several factors causing higher load
- 2d table space is unlimited – user freedom
- html is chosen instead of a canvas – for rapid prototyping
- backend is compiled from C++ to WASM module executed in the browser
- offline capability
- multi-user collaboration is happening in the host browser – for serverless setup
- React and Material UI
- Redux and toolkit for state management
- redux-saga for side-effects management
- protobuf for backend communication
- websockets for realtime server communication
- webRTC for p2p connectivity
- webpack and later vite build system
- dexie for local cache database
- web workers for WASM module execution
- service worker for offline app capabilities
- linaria for fast css-in-js solution
- playwright and jest for testing
- Github Actions for CI / CD
- DigitalOcean for deployment
- Electron to package for a desktop application
- Go lang for services
- Kafka as a message broker
- Foundation DB for backend core state persistence
- MySQL for user and cloud storage
- every service in docker container for future scalability
The first use case for the language was selected to be a web app builder. One sheet holds data acting as a database, another sheet executes the business logic and a third one enables styling, similar to Webflow‘s styling panel. Click publish – and you have a fully functional web app.
Multiple iterations were tried to build a prototype.
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search