We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

WibuScript

From Esolang
Jump to navigation Jump to search

WibuScript is an esoteric programming language and multi-dialect JavaScript transpiler created in 2026 by Aplikat (Rafli161102). Designed to bridge Japanese anime tropes, otaku culture, and Indonesian internet meme culture into modern software development, WibuScript translates stylized pseudo-Japanese and Indonesian internet slang into standard, high-performance ECMAScript.

WibuScript
Designed by Aplikat
Appeared in 2026
Computational class Unknown
Reference implementation GitHub repository
File extension(s) .wibu

Overview

Unlike many joke languages that are intentionally unusable or limited to stack machines, WibuScript is Turing-complete, feature-rich, and compiles directly to modern JavaScript. It includes a complete Lexer, Parser (AST generator), Transpiler, and interactive REPL, with runtime support for standard data structures, asynchronous operations, file I/O, error handling, and object-oriented programming.

WibuScript features four canonical dialects with 100% syntactic and semantic parity. A program written in any dialect executes with identical behavior, and code written across different dialects can even be mixed within the same source file.

Dialects

The four official dialects of WibuScript are:

  1. Jepang Murni (Pure Japanese): Romanized Japanese keywords providing a formal anime/manga atmosphere.
  2. Jepang Singkat (Short Japanese): Compact, abbreviated keywords optimized for concise typing and competitive coding.
  3. Wibu Absurd (Absurd Weeb): Highly expressive dialect based on contemporary Indonesian anime community slang and otaku expressions.
  4. Meme Rongawi (Rongawi Meme): Humorous and satirical dialect drawing from Indonesian surreal internet humor and Rongawi subculture.

Keyword Comparison Table

Meaning / Construct Pure Japanese Short Japanese Absurd Weeb Meme Rongawi
Variable declaration (var/let) kore ko iniDesu pokmipokmi
Constant declaration (const) zettai ze zettaiDa bundarahma
Function definition jutsu ju mybini fufufafa
Return statement kaesu kae haiBeri kandabahlil
Conditional: If moshi mo moShiKalo izintampil
Conditional: Else If soretomo sore soredemoNe wowok
Conditional: Else hoka ho shoganaiNe woijawa
While loop zutto zu zuttoLoop nyawit
Loop break yame ya yameteKure bijisatu
Loop continue tsugi tsu tsugiNe ambatukam
Await (Async) matte mat matteNe admindatang
Try block kokoromi koko yatteMiyo ragnamok
Catch block yurusu yuru gomennasai amanBos
Finally block subete sube zenbuNe thugshaker
Class declaration sekte sek nakama sektejomok
Constructor tanjou tan umareta ambatunat
Instantiation (new) atarashii ata atarashiiNe ambatumbas
Inheritance (extends) keishou kei kouhaiDesu jalurhukum
Self-reference (this) jibun ji oreSama lanangmas
Print / Output mite mi iuYo salamkenal
Print Line kuchiMite km omaeWaIu cawapresin
Boolean: True hontou hon hontouNi unjukkebolehan
Boolean: False uso uso chigauYo keracunanmbg
Null / Nil munashi mu naniKore blukutuk

Examples

Hello, world!

All four dialects support printing output to standard output:

Pure Japanese
mite("Konnichiwa Sekai!")
Short Japanese
mi("Konnichiwa Sekai!")
Absurd Weeb
iuYo("Halo Dunia Wibu!")
Meme Rongawi
salamkenal("Sugeng Rawuh ing Donya Rongawi!")

Truth-machine

A standard esolang benchmark Truth-machine implementation:

Pure Japanese
kore inputVal = 1

moshi (inputVal == 0) {
  mite(0)
} soretomo (inputVal == 1) {
  zutto (hontou) {
    mite(1)
  }
}
Absurd Weeb
iniDesu inputVal = 1

moShiKalo (inputVal == 0) {
  iuYo(0)
} soredemoNe (inputVal == 1) {
  zuttoLoop (hontouNi) {
    iuYo(1)
  }
}

FizzBuzz

FizzBuzz implemented in Pure Japanese:

kore i = 1
zutto (i <= 100) {
  moshi (i % 15 == 0) {
    mite("FizzBuzz")
  } soretomo (i % 3 == 0) {
    mite("Fizz")
  } soretomo (i % 5 == 0) {
    mite("Buzz")
  } hoka {
    mite(i)
  }
  i = i + 1
}

Object-Oriented Programming

Demonstrating classes, constructors, methods, and inheritance:

sekte Pendekar {
  tanjou(nama, klan) {
    jibun.nama = nama
    jibun.klan = klan
    jibun.chakra = 100
  }

  status() {
    kaesu "[Pendekar: " + jibun.nama + " | Klan: " + jibun.klan + "]"
  }

  latihan(jam) {
    jibun.chakra = jibun.chakra + (jam * 10)
    mite(jibun.nama + " berlatih. Chakra: " + jibun.chakra)
  }
}

sekte Kage keishou Pendekar {
  tanjou(nama, klan, gelar) {
    jibun.nama = nama
    jibun.klan = klan
    jibun.chakra = 500
    jibun.gelar = gelar
  }

  jurusPemberantas() {
    jibun.chakra = jibun.chakra - 50
    mite(jibun.gelar + " " + jibun.nama + " Rasengan! Chakra: " + jibun.chakra)
  }
}

kore naruto = atarashii Kage("Naruto", "Uzumaki", "Hokage")
mite(naruto.status())
naruto.jurusPemberantas()
naruto.latihan(2)

Computational Class

WibuScript is Turing complete. It provides arbitrary mutable variables, arithmetic operations, conditional branching, recursion, unbounded while-loops, dynamic arrays, and first-class functions. Any program expressible in JavaScript can be directly modeled and executed in WibuScript.

External Resources