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.

Vibes

From Esolang
Jump to navigation Jump to search


Vibes
Paradigm(s) imperative, procedural, object-oriented
Designed by User:Harshit-Gupta-2005
Appeared in 2026
Type system dynamic, duck
Memory system variable-based
Computational class Turing complete
Reference implementation Vibes (Python)
Influenced by Python, C
File extension(s) .vibes

Vibes (tagline: vibecode with vibes) is an esoteric programming language whose entire vocabulary is "vibes"-themed slang. Structurally it resembles C (explicit block delimiters, vibes on / vibes off, instead of significant whitespace), while its semantics closely follow Python (dynamic typing, no forced declarations, exception handling modeled on try/except). Every keyword one-to-one maps onto a familiar construct from a mainstream language, but spelled as slang -- it's giving instead of if, manifesting instead of print, big yikes instead of raise, and so on.

Design

The core idea is: if you already know how to program, you already know Vibes -- you're just relearning the vocabulary. Control flow, functions, classes with single inheritance, and a full exception-handling system (try/except/else/finally, with 14 built-in error types each carrying its own default message) are all present, mapped as directly as possible onto their mainstream equivalents rather than being reinvented. Utility functions that aren't about control flow or program "feel" (range, len, int, str, type) are deliberately left unrenamed.

A yet-unimplemented v2 idea in the language's own design notes is a global "vibe level" (0-100, starting at 50) that would eventually affect program execution -- e.g. errors being silently forgiven at high vibes, or the program "sighing" at low vibes -- deliberately deferred until the core language was working.

Hello, world

manifesting "hello, vibes world"

Example: a class, a loop, and error handling

channeling math

new aesthetic Person
vibes on
  new vibes __init__(self, name)
  vibes on
    self.name vibes with name
  vibes off

  new vibes greet(self)
  vibes on
    manifesting "hey, " + self.name
  vibes off
vibes off

new vibes count_up(limit)
vibes on
  x vibes with 0
  vibing through i in range(limit)
  vibes on
    it's giving i vibe match 5
    vibes on
      no more vibes
    vibes off
    x vibes with x + i
  vibes off
  sending vibes x
vibes off

main_character_vibes
vibes on
  word vibes name vibes with absorbing "what's your name?"

  catch the vibe
  vibes on
    p vibes with Person(name)
    p.greet()
    result vibes with count_up(10)
    manifesting result
  vibes off
  bad vibes wrong vibes as e
  vibes on
    manifesting "bad vibes detected: " + e
  vibes off
  bad vibes negative vibes as e
  vibes on
    manifesting "something went off: " + e
  vibes off
  good vibes only
  vibes on
    manifesting "that's a wrap"
  vibes off

  that's a wrap
vibes off

External resources