this post was submitted on 16 Jul 2025
77 points (95.3% liked)

Programming

21621 readers
347 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

Hi! I've created this page to showcase the features of Mint (since there are so many) and their corresponding versions in other similar languages.

top 32 comments
sorted by: hot top controversial new old
[–] selayar@ani.social 2 points 22 hours ago

Technically, Purescript has support for exceptions since it compiles to javascript, but the more standard way to encode exception is through monadic interface

That's why I do everything in PowerBI, but my data sources are entirely manually-maintained excel files

[–] Kissaki@programming.dev 11 points 1 day ago

Why is single line comments listed when it's green for all of them? Do they not have multi-line comments?

[–] olafurp@lemmy.world 14 points 1 day ago* (last edited 1 day ago) (1 children)

TS as a statically typed language is not what I would call it. It's a language with enforced type annotations but can be circumvented pretty easily. For example when receiving a JSON from an http request a string field can be just whatever.

[–] FizzyOrange@programming.dev 6 points 1 day ago (1 children)

That's nitpicking. It is statically typed. Is Dart not statically typed because it has dynamic.

You could call it "gradually typed" if you want to be pedantic.

can be circumvented pretty easily

That means it isn't sound.

[–] olafurp@lemmy.world 5 points 1 day ago (1 children)

Gradually typed is a great description because it's neither fully static or dynamic. TS does allow you to circumvent the types too easily to be called statically typed.

const strings: string[] = ([1] as any[])

Is ok in TS land so the type of strings is not really static so to speak because you can assign whatever to it. Writing this in Dart would give

error - The argument type 'List<dynamic>' can't be assigned to the parameter type 'List<string>'. - argument_type_not_assignable

if I'm not mistaken.

[–] hikaru755@lemmy.world 3 points 1 day ago (1 children)

I get your point, but that's not a great example. Kotlin is a statically typed language, and this compiles (and runs!) just fine:

val test: List<String> = listOf(1) as List<String>
println(test) // prints "[1]"

Even val test: String = 1 as String will compile, but at least gives you an exception at runtime, which the equivalent typescript wouldn't.

[–] olafurp@lemmy.world 2 points 21 hours ago (1 children)

That's crazy, I thought that would be an invalid cast or something.

[–] hikaru755@lemmy.world 2 points 20 hours ago

Unfortunately not. You do get a warning that it's an unchecked cast at least.

Granted, the issue here is generic type erasure, which was a tradeoff that was decided on for backwards compatibility when generics were first introduced to Java, so it's not like an actually desirable feature of the language. But the point is that this wouldn't be reason for anyone to not call Java and Kotlin not statically typed, their type system is just a bit weaker than others in certain aspects

[–] Colloidal@programming.dev 2 points 1 day ago

Not seeing any links to a page, what's up?

[–] KindaABigDyl@programming.dev 3 points 1 day ago (1 children)

This is how I learned about ReScript

[–] 0xDREADBEEF@programming.dev 2 points 12 hours ago

I love that little language. I learned ReasonML for fun and built a few toy apps a long time ago, but ReScript has been cool to watch

[–] FizzyOrange@programming.dev 3 points 1 day ago* (last edited 1 day ago) (2 children)

Interesting, but the colours for exceptions are inverted. One of the features that Elm touts on its front page is that it doesn't have exceptions.

Structural equality is also debatable.

[–] xav@programming.dev 4 points 1 day ago

I would have also chosen green for "no exceptions". This is the way.

[–] TehPers@beehaw.org 2 points 1 day ago (1 children)

As far as I can tell, the table is purely informational and not advocating for any features as being positive or negative.

Otherwise, yeah the colors make no sense.

[–] FizzyOrange@programming.dev 3 points 1 day ago (1 children)

Green is good and red is bad. If that wasn't the intent they should have used different colours.

[–] TehPers@beehaw.org 3 points 23 hours ago

My point is that the colors make so little sense that the only thing that makes sense is to decouple the colors from any meaning.

This table is so lacking and flawed that I don't even know why there's so much discussion around it.

[–] wise_pancake@lemmy.ca 29 points 2 days ago (2 children)

Suggestion: please update the colors so colorblind people like me have an easier time reading this chart

[–] nickwitha_k@lemmy.sdf.org 3 points 1 day ago (2 children)

Question: Can you suggest resources or tips for picking colors that are friendly for color-blind people? Is it easier to differentiate based upon saturation?

[–] hikaru755@lemmy.world 3 points 1 day ago

There are tools that can change the colors of your screen to simulate different kinds of color blindness, that makes it pretty easy to test for the basics. I've been using this one in the past: https://colororacle.org/

But in general, it's also just a good guideline to never rely only on color to communicate important information, and always also have a graphical or textual cue to go with the color.

[–] wise_pancake@lemmy.ca 4 points 1 day ago (1 children)

I try to differentiable based on lightness/brightness

I don't have any go to tool :( bit of over color is father than the other is easier to see

[–] nickwitha_k@lemmy.sdf.org 3 points 1 day ago
[–] Aatube@kbin.melroy.org 19 points 2 days ago

or add symbols. probably add symbols.

[–] ExLisper@lemmy.curiana.net 4 points 1 day ago

I do my frontend in Rust thankyouverymuch.

[–] Kissaki@programming.dev 2 points 1 day ago (1 children)

What are "frontend language"s?

Just wondering if this is very incomplete or due to scoping.

[–] FizzyOrange@programming.dev 4 points 1 day ago (1 children)

Languages well suited for client side web code. Most of these (maybe all?) compile to JavaScript and are designed for the web.

[–] Kissaki@programming.dev 1 points 1 day ago (1 children)

Web is just one kind of frontend though. And there's more ways to target web with JavaScript interfacing than transpiling to JavaScript.

[–] FizzyOrange@programming.dev 3 points 1 day ago

Sure, but without further context, "frontend" means the web. And "frontend language" means languages that were designed for the frontend. You can write a website fromtend in Python, but you absolutely shouldn't!

You can use languages like Java and Rust too which are more reasonable options, but they aren't "frontend languages".

[–] ZILtoid1991@lemmy.world 2 points 1 day ago* (last edited 1 day ago)

I'm pretty sure that Mint is capable of exceptions.

[–] somegeek@programming.dev 6 points 2 days ago

This is very incomplete. Like to see it become more complete.

Clojurescript and purescript are my favourites.

[–] Mubelotix@jlai.lu 1 points 1 day ago

Exceptions are not good. Alternatives are better

[–] occultist8128@infosec.pub 2 points 2 days ago

just hoping crystal gets more attention from the community ^_^