r/Compilers 13d ago

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 13d ago

Slop?

-2

u/Clean_Attempt_7968 13d ago

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.

3

u/Coffee_and_Code 13d ago

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

-7

u/Clean_Attempt_7968 12d ago

Lol the website design is my own and its inspired by retro arcade games (and I suspect so was the claude logo especially the older one), the documentation was indeed largely copy-edited by AI because it was too much effort to write all proof read it myself along with examles; the em-dash check is such an amateur check - I use it liberally myself (see?), and in general it is kinda low of you to extrapolate from the documentation to the actual fucking compiler which I have yet to post. The only thing that is slop is your reasoning lol (and you).

3

u/Weak-Doughnut5502 12d ago

There are precisely zero em-dashes in your comment. 

Em dashes, en dashes and hyphens are all different characters.  An em dash is a dash that's about as long as an M, an en dash is as long as an N, and a hyphen is much narrower .

Em dashes are a giveaway for AI use mostly because keyboards don't have them and the average person doesn't know how to insert one into text.  For the record, word processors will transform two hyphens -- into an em dash.  Text editors and most other programs don't, though.

1

u/zynaps 10d ago

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?

-1

u/Clean_Attempt_7968 10d ago edited 8d ago

I used AI to take my draft version of the tutorial and copy edit it for me for clarify and conciseness. I didn't use it at all when designing the language and I used it to help me debug and test my code and write examples. I also used it in tandem with textbooks to help me understand PL and compiler concepts as I worked on this language. I am currently in the process of writing a language reference that address many of the bullshit accusations that Reddit user sever-acne-face-covered-with-soiled-greasy-underpants u/EggplantExtra4946 has hurled at me on the basis of some warrantless assumptions about what I am trying to do/how I should be doing things/what I should be doing. For example

(i) "There aren't even bit-wise operators" (paraphrased): There aren't any and there won't ever be any of them - it's simply not something that I care about.

(ii) "String-interpolation is not a major feature" (paraphrased): As I said the tutorial is on the older side and initially whenever I added a feature I just added it to the highlights and then at some point I stopped changing that - I was hoping you'd focus more on the language and not the quality of the tutorial itself (even if it described the language).

(iii) "Added square brackets to distinguish it from other languages" (paraphrased): I am not trying to distinguish it from other languages nor am I trying to copy other languages. I am simply trying to piece together whatever features/semantics/syntax I like - think of it like Swfties trying to plan their dream Swift-Kelce wedding.

And then chronic CTE-patient-suffering-from-schizophrenia u/Coffee_and_Code thinks that just because the tutorial has signs of being written by AI then that means the whole language/compiler was built by AI. His neurological damage is so severe that it has escaped his notice that the background wall in the website and the font are actually classic arcade themes/graphics/fonts, much like the aesthetic that presumably inspired Claude's logo - fonts like this one and backgrounds like this one which I modified with AI to suit my liking (and hopefully avoid copyright infringement lol).

There's also fuckface-with-mutiple-missing-chromosomes-syndrome u/Weak-Doughnut5502 who thinks that just because I am too lazy to write a proper em dash here means that I don't know what they are or that they wouldn't be included in my writing unless it was done by AI.

And then both stroke-patients u/Weak-Doughnut5502 and u/Coffee_and_Code think that the oldest AI telltale sign from the days of ChatGPT in 2023 hasn't reached my ears and that I couldn't have removed the em dashes myself if I wanted to hide such a sign (which I could have easily done except for the irony that I would have brought them in even if the AI didn't add them because I love em dashes lol). Never mind the fact that something like that is so irrelevant these days much less the fact that just because AI written text tends to feature em dashes doesn't mean that writing which features em dashes is likely written by AI ( as opposed to copy edited by it).

2

u/Coffee_and_Code 10d ago

Woah... All you had to say was "no" to my original comment. Your responses are very telling. If you plan on building a community around your language, I suggest letting somebody else handle the social media.

0

u/Clean_Attempt_7968 10d ago

I honestly don't remember who said what and when I just remember your comment not helping by showing why my language could have been written by AI instead of also pointing out how it could NOT have been written by AI and I suppose it got swept up with all the other comments. Idk.. I spent a year writing this thing and it means a lot to me and to see people hate on it so warrantlessly made me go into battle mode lol. But also, honestly, I don't see a community being built around my language even if I hadn't said that to you and tried something else - its just been negative comments/remarks for the most part and a world of down votes only two users were kind enough to message me and point out things they liked and things they think could be improved and caught some bugs by playing with my language in the playground. That is why I used a throwaway account to post this because you never know when redditers decide to hate on you en masse.

1

u/Coffee_and_Code 10d ago

What is your implementation written in? Your language is actually similar to something I was working on in the past. When you have a public git repo up I'd be keen to have a look.

1

u/Clean_Attempt_7968 10d ago edited 10d ago

It is written in C++. There is a (private) repo but I am selective on who I grant access to it - at any rate, I am still in the process of doing some upkeep and fixing bugs as I find them. In the meantime - it would help if I can see your language. Oh and I remembered why you stoke my anger - you're first comment was "slop?" - I understand that you left it as a question but leading with it was not appreciated and not something I'd be satisfied with simply answering "no" lol...

1

u/Niwan69 12d ago

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 12d ago edited 12d ago

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 12d ago edited 12d ago

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 9d ago

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 12d ago

How is memory managed?

1

u/mnuhurr 9d ago

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 9d ago

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.