Pebble
ktango (11)

Pebble

Pebble has been described (by one of us) as an arcane amalgamation of Python and JavaScript. We hope that's not true (but we'll buy ourselves commemorative mugs if it actually is).

Pebble is intended to be an intuitive, English-friendly, high-level language. Our goal was to balance simplicity with expressive power; to make a language that is easy to pick up the basics in, but which offers a surprisingly rich environment for the advanced user.

We actually created our own programming paradigm to run our language and have tailored our syntax to be consistent with it. Code-named the "call-binding paradigm", this paradigm is robust enough to mimic both object-oriented and functional programming paradigms, and the exact feel can be seasoned to taste by the programmer themselves. We find it cool because in it, classes are methods are objects are classes (check out the demo for details)… also types are first-class citizens.

We also re-imagine other features of what a language should be. We take a novel approach to designing a type system for which we're currently in the process of writing a compile-time checker; we rethink what a null construct should look like and we avoid that-scary-cool-doodad (you know, a monad) when we talk about it; and we reshape code into a more human, conversational flow.

But, enough of these high level, broad characterizations. If you're interested, take a look at the interactive demo. We encourage you to read everything because it nicely explains what's really happening.

Internals

Pretty much all code inside Pebble is built in-house. We wrote our own custom grammar-format, tokenizer, lexer, parser, interpreter, bytecode runtime, and demo-izer (not to be mistaken for the demonizer).

The code is all open source and can be found here

Demo

So there's an interactive demo that takes you through the quirks and peculiarities of Pebble. You can view it by running the embedded repl, though you may prefer to run it in a separate tab so you can resize the window and enjoy more real estate. Here is a link to the full repl.

Thanks

Pebble has been built by these lovely folks.

@whitemanthedj
@jillianzaff
@timothyjin
@zqianem

and me,

@ktango

We're new, don't know what we're doing, and having a blast.

You are viewing a single comment. View All
syc1 (24)

I love this! The fact that the exists as a one-word comment is brilliant, and I really like the it and that keywords. Truly excellent work y'all have done :D

ktango (11)

@syc1 thanks! This was actually inspired by my habit of naming variables with "the" baked into the name... stuff like "theList".

syc1 (24)

@ktango Cool! Also, I'm having issues installing the lang, it won't make properly .-.

syc1 (24)

@ktango I'm getting an error when attempting to make, it's likely a bug of MinGW, but it says there's duplicate definitions of 'vsnprintf', then exits with code 1.

ktango (11)

@syc1 I just did a fresh clone/make and it worked for me? What error are you seeing? Also are you on windows

syc1 (24)

@ktango I am on windows, and the error is above

ktango (11)

@syc1 it might be easiest to use WSL... I'm not sure what you're problem is. I ran mingw32-make.exe and it built properly. This may be a problem with your setup specifically. What version of g++ are you using

syc1 (24)

@ktango I'm not sure, but can't you just send me the already made exe file?? Or is that not how it works?

ktango (11)

@syc1 at some point in these next few days, I'll build a WIN copy and upload it to github as as a "release". I'll ping you a link when I do... currently quite busy lol

ktango (11)

@syc1 Here's a link to where you can download a prebuild binary. Please note that we're low budget (rip) and haven't digitally signed it yet so you'll probably gets some Windows defender messages. You can ignore these.

Again, I highly recommend building the project yourself... it'll avoid these warnings altogether :)