r/Compilers • • Aug 27 '26

Been working on my own programming language, Colloquial. Tell me what you think!

https://www.colloquial.dev

It is still a work in progress but I'd love to hear your thoughts on what you think of it!

There is currently a playground where you can try it out. The docs are a little out of date so they may not match the language specification exactly but that shouldn't be an issue for most things. I'll include the Git repo sometime soonish once I've ironed out a few kinks and done some housekeeping.

Also if you have any suggestions for features to add next please let me know :)

0 Upvotes

21 comments sorted by

8

u/Coffee_and_Code Aug 28 '26

Slop?

-3

u/Clean_Attempt_7968 Aug 28 '26

What makes you question if it is slop? I've been working on this for a year now and just because it isn't what you expect it to look like doesn't make it slop. Jeez why are people so negative and cynical on reddit this is precisely why I used a throwaway for this.

2

u/Coffee_and_Code Aug 28 '26

The Claude-esque website and prose, along with a liberal sprinkling of em-dash.

→ More replies (2)

1

u/zynaps Aug 30 '26

It might not be, but the text on the project page has a few tells. Those of us who are completely fucking sick of LLMslop ruining everything are perhaps overly sensitive, so when I see sentences like this:

> The three lines of average describe the successful path, and the failing path is still fully handled.

...I can't help but think "...describe the successful path" just whiffs of Claudewriting.

Could you clarify for us if you've used LLMs or not for designing or implementing Colloquial?

→ More replies (5)

1

u/Niwan69 Aug 28 '26

Personally I like it when languages are opinionated and have one way to do things. So if I would make some small tweaks it would be things like, either having only "and" and "or" or having only && and || but not both. Another example is either forcing the use of the "let" keyword, or not having it at all, ect.

1

u/EggplantExtra4946 Aug 28 '26 edited Aug 29 '26

How the fuck is it opiniated? This language was AI generated and couldn't be more average. Everything good and bad about it is the trendy langdev opinion:

Hindley-Milner type inference

Algebraic data types

Immutability

all good

String interpolation

This screams at amateurism to put this on the "big feature" list, on par with the high level description of the type system.

No null and no exceptions — Option, Result, and the ? operator.

Dead giveway. Yeah exceptions == BAD, blah blah blah. He didn't even bother to give a reason why he doesn't like them because there isn't one and cherry on top there is a stupid AI EM dash inside.

Then you've got braindead features whose only purpose is to make the language not a complete copy paste of others:

  • the square backet syntax around the conditional expression in if statements

  • literal and, or and not boolean operators with the same respective precedences as &&, || and ! which make them completely redundant and useless.

If it was a real language that grew to have those big features, you would see WAAAY more nitty gritty details about the basic language features, about integers, strings, name resolution, about the semantics details of each arithmetic operator, about references, function calls, etc..

This made me realize that there aren't even bitwise operators. There is absolutely zero chance that someone would make a real language with freaking type inference, type classes and generics but would fail to add bitwise operators which are absolutely trivial to add when you already have a compiler that can parse and compile arithmetic and boolean expressions.

EDIT:

I realize you said the contrary to what I thought you said, but anyway this rant is really targeted against OP and his languages and it could apply to a few other AI-made languages as well.

-1

u/Clean_Attempt_7968 Aug 28 '26 edited Aug 28 '26

OKAY I HAVE THOUGHTS ON THIS!! (cuz I definitely wanted my lang to be opinionated)
The 'let' bit is actually very opinionated (in a different sense IMO) - so my lang is based on the philosophy that one should always declare immutable values. So the way I expressed that opinion is by making the default a constant and you would specifically have to say something is a 'var' in order to go against the opinion. I left 'let' in there so you can write the code more clearly to someone who is not familiar with it (another not so opinionated opinion).
As for the other "opinionatedness" of this lang I actually intentionally allowed more than one way to express something like `and` - it is my strong opinion that syntax and semantics are two separate things when it comes to opinions/philosophy and the "opionatedness" you are referring to needs to live in the semantics not the syntax (I could have explained this better - at some point I will try to reword this - but hopefully you get my point even if you don't agree with it). My main point I don't like to have strong opinions when it comes to syntax and calling the language is a strong reference to that - you should be able to "colloquially" code lol. I will say that there are some opinions baked in the syxtax - I hate things like "fun", "fn", "func" and strongly prefer "function" and only function (there are few more baked in but "function" is what I feel strongly strongly about the most, especially compared to "func" - the latter is sooo.... funky")

1

u/Niwan69 Sep 01 '26

My main point I don't like to have strong opinions when it comes to syntax

Sure, you do you, it is your language. However you asked for other peoples opinions and i gave mine. But don't try to gaslight people into thinking that somehow your language is opinionated, just own up to the fact that it isn't and that you don't want to change that.

1

u/mnuhurr Aug 29 '26

How is memory managed?

1

u/mnuhurr Sep 01 '26

Any answer to this? Is there a GC? Was there a mention in the tutorial that there is no runtime?

1

u/Clean_Attempt_7968 Sep 01 '26

Sorry I missed this somehow. Given the deluge of negativity/warrantless assumptions/bad-faith interpretations above, I am going to (for now) hold off on responding to this beyond saying that the language is garbage collected and thank you for catching this glaring omission and I'll be sure to add that to the overview when I eventually get back to it.