NISHIKORI

風結ぶ言葉たち

Exploring the World of Esolang through Northeast Dialect Programming Language

Initial Exploration#

Today, while browsing social media, I stumbled upon a meme that brought a smile to my face:

Fibonacci Sequence

With a little familiarity with Northeast dialects, we can easily convert it into the following code representation:

def print_fibonacci_sequence(n):
    if n < 1:
        raise ValueError("Invalid input! Please enter a positive integer.")

    fibonacci_sequence = []
    current = 0
    next_num = 1
    fibonacci_sequence.append(current + next_num)

    for _ in range(2, n+1):
        current, next_num = next_num, current + next_num
        fibonacci_sequence.append(next_num)

    return ', '.join(map(str, fibonacci_sequence))

print("Checking result for 0:")
try:
    print(print_fibonacci_sequence(0))
except ValueError as e:
    print(e)

print("Checking result for 15:")
print(print_fibonacci_sequence(15))

# The code does not fully correspond to the original text

Seeking Roots#

However, noticing that the code structure in the meme is clearand accompanied by code highlighting, it felt like this was not just a simple joke, so I decided to explore further on the internet and unexpectedly found a related real project:

东北方言编程语言

dongbei What is it? It is a human-centered programming language based on Northeast dialect vocabulary as its basic keywords.

This thing fills a large gap on the world dialect programming map! Let's put it this way, if anyone can watch a dongbei program without laughing, I respect him as a true man!

So what are its characteristics? There are many:

It's simple! A primary school education level is enough. Can you understand the Spring Festival Gala? Yes? Then it’s no problem.
It's easy to read! You’ll find yourself reading it aloud involuntarily.
It's fun! Well, in life, the most important thing is to be happy.
It's open-source! Not only is it free, but it also welcomes experts in Northeast dialect to correct it anytime, anywhere.
In short, the dongbei language has a very high entertainment-technical ratio.

The development of the dongbei programming language adopts the industry-leading TDD (TreeNewBee-Driven Development) approach. Specifically, each feature starts with writing the documentation, boasting without any foundation, then writing test cases based on the boast, and finally implementing the feature to ensure the boast holds true. This approach has two major benefits: first, each feature is targeted, and features that are not worth the Tree New Bee are excluded. Second, it ensures that each feature has documentation responsible for boasting, and developers will definitely not be hidden away without recognition.

After searching, I found a sample file from this project:

https://github.com/zhanyong-wan/dongbei/blob/master/demo/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91.dongbei

This confirms that the code in the meme comes from this project called dongbei.

Getting to the Bottom#

According to the project's documentation, I successfully cloned the dongbei codebase to my local machine and executed src/dongbei.py, allowing me to personally experience this fun programming language.

The fastest way to learn dongbei is to chat with the big brother

However, the functionality of dongbei goes far beyond this. By reading dongbei Language Wordplay, we can find that this language is quite complete and capable of handling various complex programming challenges.

For example:

Tower of Hanoi in dongbei

https://github.com/zhanyong-wan/dongbei/blob/master/demo/%E6%B1%89%E8%AF%BA%E5%A1%94%E5%8A%A8%E5%94%A4.dongbei

The Game of Life in dongbei

https://github.com/zhanyong-wan/dongbei/blob/master/demo/%E6%B4%BB%E7%9D%80.dongbei

Integration#

In fact, besides the innovative dongbei, there are many other creative programming languages hidden on the internet, often categorized as EsolangEsoteric programming language, aimed at trying strange ideas, being difficult to program, or serving as jokes rather than for practical use.

Cantonese#

Following the model of dongbei, there is another innovative project — Cantonese, which allows developers to program using Cantonese, further integrating local dialects into the world of programming languages. The author is still maintaining it.

粤语編程語言.The Cantonese programming language.

Code to output "Hello World!" in this language:

畀我睇下「"Hello World!"」點樣先?
收工

Ook!#

Ook! is an extremely minimalist programming language whose core syntax consists of only three basic components. At first glance, it seems easy to learn, but in practice, Ook! presents unique challenges. The command system of this language consists of Ook., Ook!, and Ook?, and although the amount of code may increase as a result, it does not affect the creation of high-performance code. The design principle of Ook! is extremely simple, and its creators believe that even a gorilla could easily master it, thus they insist that no additional verbose comments are needed.

Code to output "Hello World!" in this language:

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook。Ook? Ook. Ook. Ook! Ook.

Brainfuck#

Similar to Ook!, Brainfuck is a simple, Turing-complete programming language that can be implemented with a minimal compiler. This language consists of eight operators.

Code to output "Hello World!" in this language:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.

Piet#

Piet is a unique programming language that uses combinations of colors to express the logical structure of programs. This language employs 20 levels of brightness, with each color carrying specific command functions. The compiler interprets the commands of the program by recognizing the brightness differences between color blocks. The layout and structure of the program depend entirely on the shapes and arrangements of the color blocks, while the black-and-white boundaries serve as dividers between different code blocks. Although it is possible to write programs in Piet, the varying interpretations of colors by different interpreters make it imprecise for actual computation. Therefore, Piet is more regarded as a creative tool for exploring new methods of programming and visual artistic expression rather than as a tool for solving practical problems. Its existence challenges the boundaries of traditional programming languages, making the programming process more colorful and expressive.

Several "codes" to output "Hello World!" in this language:

::: grid {cols=3,rows=2, gap=12,type=images}

IMG_6605.png

IMG_6606.png

IMG_6609.png

IMG_6610.png

IMG_6608.gif

IMG_6607.gif

:::

Velato#

Velato is an innovative programming language that allows developers to write code through music. This language reads source code by analyzing MIDI files, enabling you to write programs while composing melodies. It processes code based on the order, spacing, and pitch of notes (considered as programming letters). Although Velato supports basic programming structures such as expressions, numbers, and variable declarations, it currently does not support functions and arrays. Additionally, it is not suitable for converting real musical works into functional programs.

The "code" to output "Hello World!" in this language:

image

Other Languages#

You can refer to the esoteric programming languages wiki to learn about other Esolangs.

According to the Esolang Wiki, Esolangs are typically divided into the following categories:

  • Minimalism
    Many esoteric languages aim for as few instructions as possible. For example, Brainfuck, OISC, and Lazy K belong to this category. When these languages achieve Turing completeness, they are often referred to as "Turing tar pits."

  • New concepts
    Exploring alternative ways to design programming languages is popular in esoteric programming. Languages like Befunge, Thue, and Unlambda are good examples.

  • Weirdness
    Some languages are created primarily for the pursuit of peculiarity and difficulty in programming. INTERCAL was designed to be entirely different from conventional languages (although it still shares many similarities with traditional languages), while Malbolge was designed to be extremely difficult to use.

  • Themed
    Some languages are based on non-computer-related themes. For example, var'aq is based on the fictional Klingon language. Shakespeare mimics the style of Shakespearean plays, while Chef programs look like cooking recipes. dongbei also falls into this category.

  • Brevity
    Many esoteric languages are designed to be as short as possible. These are known as "Golfing languages," often used in "code golf" competitions to solve programming tasks with the fewest characters or bytes. Examples include CJam, Pyth, and GolfScript.

  • Jokes
    Many esoteric languages are created purely as jokes. Some of them can still be used for programming, such as l33t and Ook!, while others like HQ9+ and Bitxtreme cannot.

  • Obfuscation
    Some esoteric languages are deliberately designed to be difficult to read (rather than difficult to write or understand). Unreadable is a typical example in this regard.

Conclusion#

dongbei is a programming language developed based on python. Some may think, "Isn't this too informal?" But in reality, we need to clarify that dongbei is merely a programming language designed for entertainment or exploration purposes; it is not suitable for developing serious applications. When developing projects that require stability, fault tolerance, and functionality, almost everyone would choose mature and stable languages like python, C++, or JavaScript.

This article is synchronized and updated to xLog by Mix Space
The original link is https://nishikori.tech/posts/tech/dongbei


Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.