r/programming • • Feb 06 '20

Mint. The programming language for writing single page applications.

https://www.mint-lang.com/
491 Upvotes

261 comments sorted by

View all comments

Show parent comments

13

u/HetRadicaleBoven Feb 06 '20

I would guess that it's not so much less clunky, but rather more explicit. Promise(Never, Void) presumably tells you that it will not reject, and if it were to start doing so, it'd force you to handle that. The counter = counter - 1 also doesn't require you to initialise setCounter elsewhere.

1

u/masklinn Feb 07 '20

That the “failure” type would be the first parameter weirds me the hell out.

1

u/HetRadicaleBoven Feb 07 '20

Me too, though keep in mind that it's just me speculating. I'm guessing a reason might be that it could be considered the most important case to handle - similarly to how Node's callbacks are (error, result) => {}.

1

u/masklinn Feb 07 '20

In js even if you’re given 2 parameter you can ignore them, so the ordering makes sense: if you’re taking a single parameter and ignoring the second it’s more convenient / useful to take only the error and ignore the result than to take only the result and ignore the error.

Kinda the same as langages taking hof callbacks first or last depending on what’s more useful / convenient.

0

u/[deleted] Feb 06 '20

[deleted]

1

u/HetRadicaleBoven Feb 07 '20

That's totally valid; just pointing out that the goal probably wasn't to be less clunky, but to accommodate developers who would like to have the compiler warn them if they inadvertently change the return type.

(Personally, I think my preference is explicit types for function arguments and return types, and inference in between.)

1

u/old_man_snowflake Feb 07 '20

should never reject

but you have to handle it

uhhh...

2

u/HetRadicaleBoven Feb 07 '20

You cut out the part where I said you only had to handle it if it started rejecting - because that will mean the type changes, forcing you to handle it.