Skip to content
Ilya Sher P edited this page Oct 5, 2022 · 6 revisions

This is "OpenFriday communication" page, describing the project and motivating to pick it for the OpenHack 2022 hackathon.

About Me

Hi! I'm Ilya Sher, the author of Next Generation Shell.

I've, started my professional career in 2001. While officially being a programmer at the time, my interest in Linux brought additional role as a systems administrator (called DevOps today). Today I'm doing architecture, DevOps, management, and programming (in alphabetical order) at work.

OSS

  • I've started working on Next Generation Shell in 2013. That's my largest contribution to OSS.
  • I contribute to other projects occasionally, small stuff.
  • At the time, I was using Vim a lot, so I contributed relatively small language improvements - https://vimhelp.org/version7.txt.html (search: Ilya Sher)

The Project

Purpose and Overview

Ease the suffering of fellow DevOps world-wide.

  • Scripting language that is better than alternatives (bash / general purpose languages).
    • Better syntax and error handling than shells
    • Structured data, which mainstream shells lack
    • Domain specific syntax and standard library which general purpose languages lack
  • UI which does not ignore what happened in the last few decades (as opposed to other shells)
    • The "novel" idea is to interact with what's on the screen. Telegram - teletype - terminal emulator: all treat the output as paper but there is no reason to do that anymore.
    • The screen should display semantically meaningful objects, not plain text.

Background

I was using bash and Python when I noticed (through suffering) that DevOps actually don't have a good programming language for the tasks at hand. Typically, in use are bash and Python/Ruby/Go/etc. bash lacks support for structured data (JQ is a symptom), the error handling and syntax are quite bad. Python and friends are general purpose languages and therefore are not concise/ergonomic for the typical tasks. Want a programming language which is both modern and for DevOps? You are out of luck. Next Generation Shell tries to fix that by filling the niche. More at bash or Python? The Square Pegs and a Round Hole Situation

Part of the project is in C (parser and runtime) and part in NGS language itself (standard library). The idea is to have smallest possible amount of code in C to facilitate potential rewrite in another language and also for productivity reasons.

The work on UI is just starting. The basic idea is to break the current shell CLI paradigm, which can be traced back to use of telegram (and later teletype). Enough of that. We can do better now. More details are at UI Software Design.

GitHub Popularity

... started with a friend posting a link on HN followed by conscious efforts on my side. Unfortunately I'm unable to invest the needed time in PR, for example comparing to somewhat similar projects.

Beware of the popularity metric. Something to think about: at the moment of writing goto for Python (1.1K stars) is more popular than JIT compiler for Ruby (388 stars).

Problems

The main problem is attracting contributors. Contributions are made from time to time, and I'm thankful for that. What's missing is more regular contributors.

Future

The programming language is quite useful. There are some improvements that I would like to make, but largely it's "done". The focus will be on the UI now. The volume of work to be done is enormous but should increase the productivity of the users quite a lot, so worth it :)

I invite you to be part of this future. The potential of this project is to change forever how DevOps interact with computers... and it's about damn time to do that!

Contributing to Next Generation Shell

I'm tagging some issues that I feel are good candidates with OpenHack2022 but feel free to work on other issues or even suggest something else.

Contributing to Open Source

To prevent rejection of your contributions, which can be frustrating, understand first what's expected exactly. Talk to other project members when not sure about how to proceed with a contribution.