58
you are viewing a single comment's thread
view the rest of the comments
[-] Windex007@lemmy.world 3 points 2 months ago

You should read the article, because it's pretty much a direct rebuttal with justifications to this exact argument. You've really just re-stated what the article disputes.

Which isn't to say you're wrong, I'd just be interested in your response to the arguments.

[-] snowe@programming.dev 4 points 2 months ago

My response to the article is that you're sacrificing gains in language because some people use outdated tools. Code has more context than what is just written. Many times you can't see things in the code unless you dig in, for example responses from a database or key value store, or literally any external api. Type inference in languages that have bad IDE support leads to a bad experience, hence the author's views on ocaml. But in a language like Kotlin it's absolutely wonderful. If needed you can provide context, but otherwise the types are always there, you can view them easily if you're using a decent IDE, and type inference makes the code much more readable in the long run. I would say that a majority of the time, you do not care about the types in any application. You care about the data flow, so having a type system that protects you from mismatched types is much more important that requiring types to be specified.

[-] Windex007@lemmy.world 1 points 2 months ago

Maybe I'm missing something:

Does type inference provide a practical benefit to you beyond saving you some keystrokes?

What tools do you use for code review? Do you do them in GitHub/gitlab/Bitbucket or are you pulling every code review directly into your IDE? How frequently do you do code reviews?

[-] mrkeen@mastodon.social 2 points 2 months ago

@Windex007 @snowe

Yes. Type-inference typically *knows better than me* what the types should be.

I frequently ask the compiler what code I need to write next by leaving a gap in my implementation and letting the compiler spit out the type of the missing section.

[-] Windex007@lemmy.world 1 points 2 months ago

Can you explain why you wouldn't know what a type should be?

[-] mrkeen@mastodon.social 0 points 2 months ago

@Windex007

lexer :: Parser LexState (Vector Int, Vector Token)
lexer = do
(positions, tokens) <- _ nextPositionedToken
...

What goes where the underscore is in the above snippet?

[-] Windex007@lemmy.world 1 points 2 months ago

I've never used Haskell, so I can barely read this as-is.

But sure: I have no idea, and I expect that's your point.

You as the writer, you don't know either? What if I could understand Haskell, is there an option to communicate that information to me? Or is the argument that nobody but the compiler and god need know? That having an awareness of the types has no value?

[-] mrkeen@mastodon.social 0 points 2 months ago

@Windex007
> You as the writer, you don’t know either?
Not until the compiler tells me.

> Or is the argument that nobody but the compiler and god need know? That having an awareness of the types has no value?
No, I want to know, because knowing the types has value. If the compiler has inference, it can tell me, if not, it can't.

[-] Windex007@lemmy.world 1 points 2 months ago

I recognize that truly functional languages are their own beasts, with tons of amazing features provided by a ton of academic backing.

I will absolutely concede that I can't speak to them with a shred of competence. I don't know about the trade-offs and relative value propositions for pretty much anything in that space, let alone specifically w/ explicit typing.

load more comments (6 replies)
load more comments (6 replies)
load more comments (9 replies)
this post was submitted on 06 Apr 2024
58 points (86.2% liked)

Programming Languages

997 readers
11 users here now

Hello!

This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.

The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:

This community is dedicated to the theory, design and implementation of programming languages.

Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.

This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.

This is the right place for posts like the following:

See /r/ProgrammingLanguages for specific examples

Related online communities

founded 1 year ago
MODERATORS