▲ 687 ▼ In case you forgot. (lemmy.world) submitted 2 years ago by Manifish_Destiny@lemmy.world to c/programmerhumor@lemmy.ml 56 comments fedilink hide all child comments
[–] Rooki@lemmy.world 92 points 2 years ago (3 children) Python has to be another clown with their error messages permalink fedilink source hideshow 6 child comments replies: [+] AeroLemming@lemm.ee 82 points 2 years ago* (last edited 2 years ago) (3 children) [deleted] permalink fedilink source parent hideshow 6 child comments replies: [–] ______@lemm.ee 31 points 2 years ago (1 child) I started as a python enjoyer. 6 years later I can confidently say fuck dynamic typing, fuck mutable defaults. Also fuck python and js (used both for work) TS is better but we all know it's not by much permalink fedilink source parent hideshow 2 child comments replies: [–] jvisick@programming.dev 15 points 2 years ago (2 children) TS is “better” but often I feel like just configuring typescript takes up a significant amount of the time you save by using it. permalink fedilink source parent hideshow 4 child comments replies: [–] ______@lemm.ee 5 points 2 years ago (1 child) It gets easier the more you do it but ts needed a default official config to start things up with. permalink fedilink source parent hideshow 2 child comments replies: [–] ADTJ@feddit.uk 2 points 2 years ago (1 child) Hahaha exactly! I feel like every time I start a new TS project, I start by copying the tsconfig from an existing one permalink fedilink source parent hideshow 2 child comments replies: [–] PeWu@lemmy.ml 2 points 2 years ago This. I actually have template which I'm using for all my small projects. permalink fedilink source parent [–] Rooki@lemmy.world 1 point 2 years ago Yeah, i feel the same but it is at least configurable and not terrible configurable like python permalink fedilink source parent [–] HKayn@dormi.zone 13 points 2 years ago (1 child) Right tool for the job. If I just quickly want to whip up a small script, I actually want to save a few seconds. When I'm doing something larger in scope, static typing all the way. permalink fedilink source parent hideshow 2 child comments replies: [+] AeroLemming@lemm.ee 9 points 2 years ago* (last edited 2 years ago) [deleted] permalink fedilink source parent [+] AnomalousBit@programming.dev -10 points 2 years ago (4 children) IDK buddy, I don’t really care to write the same method for five different types (or read the 30 methods with different type signatures) when I can do it with one. I see the exact opposite of your statement, in my experience. permalink fedilink source parent hideshow 8 child comments replies: [–] AeonFelis@lemmy.world 26 points 2 years ago (1 child) That's what generics are for. permalink fedilink source parent hideshow 2 child comments replies: [+] AnomalousBit@programming.dev -28 points 2 years ago* (1 child) So… dynamic typing with extra steps 😂 permalink fedilink source parent hideshow 2 child comments replies: [–] wols@lemm.ee 12 points 2 years ago Extra steps that guarantee you don't accidentally treat an integer as if it were a string or an array and get a runtime exception. With generics, the compiler can prove that the thing you're passing to that function is actually something the function can use. Really what you're doing if you're honest, is doing the compiler's work: hmm inside this function I access this field on this parameter. Can I pass an argument of such and such type here? Lemme check if it has that field. Forgot to check? Or were mistaken? Runtime error! If you're lucky, you caught it before production. Not to mention that types communicate intent. It's no fun trying to figure out how to use a library that has bad/missing documentation. But it's a hell of a lot easier if you don't need to guess what type of arguments its functions can handle. permalink fedilink source parent [+] AeroLemming@lemm.ee 9 points 2 years ago* (last edited 2 years ago) [deleted] permalink fedilink source parent [–] SorteKanin@feddit.dk 4 points 2 years ago* Type signatures help you to know what a function takes and returns. With dynamic typing, I have to read the entire code of the function just to know this (sometimes even this doesn't tell me what will actually be returned due to duck typing). More importantly, type signatures help the compiler verify the types. Both of these get more and more important as the code size increases. I'd suggest you widen your horizon about static typing. permalink fedilink source parent [–] darcy@sh.itjust.works 2 points 2 years ago bro has never heard of an lsp permalink fedilink source parent [–] jjjalljs@ttrpg.network 27 points 2 years ago (1 child) Most python error messages are pretty straightforward so I legitimately don't know what you're talking about permalink fedilink source parent hideshow 2 child comments replies: [–] UnfortunateShort@lemmy.world 26 points 2 years ago I was gonna say, next to C++ you better don't shame other languages for their errors. Otherwise I wish you some "fuck you: error in library used in library used in template of template:: some template object is not correct type of template obejct"-type bullshit. permalink fedilink source parent [–] Turun@feddit.de 19 points 2 years ago (1 child) Which part in particular? They were improved in 3.10 and 3.11 permalink fedilink source parent hideshow 2 child comments replies: [–] noughtnaut@lemmy.world 7 points 2 years ago (1 child) 3.11 is Python for Workgroups, right? Feels like it came out ages ago.... permalink fedilink source parent hideshow 2 child comments replies: [–] Mechanite@lemmy.world 3 points 2 years ago (1 child) Hoping Python NT will be coming out soon permalink fedilink source parent hideshow 2 child comments replies: [–] RickyRigatoni@lemmy.ml 1 point 2 years ago Not sure why Python 2000 is slated to release in 2030 but respect. permalink fedilink source parent
[+] AeroLemming@lemm.ee 82 points 2 years ago* (last edited 2 years ago) (3 children) [deleted] permalink fedilink source parent hideshow 6 child comments replies: [–] ______@lemm.ee 31 points 2 years ago (1 child) I started as a python enjoyer. 6 years later I can confidently say fuck dynamic typing, fuck mutable defaults. Also fuck python and js (used both for work) TS is better but we all know it's not by much permalink fedilink source parent hideshow 2 child comments replies: [–] jvisick@programming.dev 15 points 2 years ago (2 children) TS is “better” but often I feel like just configuring typescript takes up a significant amount of the time you save by using it. permalink fedilink source parent hideshow 4 child comments replies: [–] ______@lemm.ee 5 points 2 years ago (1 child) It gets easier the more you do it but ts needed a default official config to start things up with. permalink fedilink source parent hideshow 2 child comments replies: [–] ADTJ@feddit.uk 2 points 2 years ago (1 child) Hahaha exactly! I feel like every time I start a new TS project, I start by copying the tsconfig from an existing one permalink fedilink source parent hideshow 2 child comments replies: [–] PeWu@lemmy.ml 2 points 2 years ago This. I actually have template which I'm using for all my small projects. permalink fedilink source parent [–] Rooki@lemmy.world 1 point 2 years ago Yeah, i feel the same but it is at least configurable and not terrible configurable like python permalink fedilink source parent [–] HKayn@dormi.zone 13 points 2 years ago (1 child) Right tool for the job. If I just quickly want to whip up a small script, I actually want to save a few seconds. When I'm doing something larger in scope, static typing all the way. permalink fedilink source parent hideshow 2 child comments replies: [+] AeroLemming@lemm.ee 9 points 2 years ago* (last edited 2 years ago) [deleted] permalink fedilink source parent [+] AnomalousBit@programming.dev -10 points 2 years ago (4 children) IDK buddy, I don’t really care to write the same method for five different types (or read the 30 methods with different type signatures) when I can do it with one. I see the exact opposite of your statement, in my experience. permalink fedilink source parent hideshow 8 child comments replies: [–] AeonFelis@lemmy.world 26 points 2 years ago (1 child) That's what generics are for. permalink fedilink source parent hideshow 2 child comments replies: [+] AnomalousBit@programming.dev -28 points 2 years ago* (1 child) So… dynamic typing with extra steps 😂 permalink fedilink source parent hideshow 2 child comments replies: [–] wols@lemm.ee 12 points 2 years ago Extra steps that guarantee you don't accidentally treat an integer as if it were a string or an array and get a runtime exception. With generics, the compiler can prove that the thing you're passing to that function is actually something the function can use. Really what you're doing if you're honest, is doing the compiler's work: hmm inside this function I access this field on this parameter. Can I pass an argument of such and such type here? Lemme check if it has that field. Forgot to check? Or were mistaken? Runtime error! If you're lucky, you caught it before production. Not to mention that types communicate intent. It's no fun trying to figure out how to use a library that has bad/missing documentation. But it's a hell of a lot easier if you don't need to guess what type of arguments its functions can handle. permalink fedilink source parent [+] AeroLemming@lemm.ee 9 points 2 years ago* (last edited 2 years ago) [deleted] permalink fedilink source parent [–] SorteKanin@feddit.dk 4 points 2 years ago* Type signatures help you to know what a function takes and returns. With dynamic typing, I have to read the entire code of the function just to know this (sometimes even this doesn't tell me what will actually be returned due to duck typing). More importantly, type signatures help the compiler verify the types. Both of these get more and more important as the code size increases. I'd suggest you widen your horizon about static typing. permalink fedilink source parent [–] darcy@sh.itjust.works 2 points 2 years ago bro has never heard of an lsp permalink fedilink source parent
[–] ______@lemm.ee 31 points 2 years ago (1 child) I started as a python enjoyer. 6 years later I can confidently say fuck dynamic typing, fuck mutable defaults. Also fuck python and js (used both for work) TS is better but we all know it's not by much permalink fedilink source parent hideshow 2 child comments replies: [–] jvisick@programming.dev 15 points 2 years ago (2 children) TS is “better” but often I feel like just configuring typescript takes up a significant amount of the time you save by using it. permalink fedilink source parent hideshow 4 child comments replies: [–] ______@lemm.ee 5 points 2 years ago (1 child) It gets easier the more you do it but ts needed a default official config to start things up with. permalink fedilink source parent hideshow 2 child comments replies: [–] ADTJ@feddit.uk 2 points 2 years ago (1 child) Hahaha exactly! I feel like every time I start a new TS project, I start by copying the tsconfig from an existing one permalink fedilink source parent hideshow 2 child comments replies: [–] PeWu@lemmy.ml 2 points 2 years ago This. I actually have template which I'm using for all my small projects. permalink fedilink source parent [–] Rooki@lemmy.world 1 point 2 years ago Yeah, i feel the same but it is at least configurable and not terrible configurable like python permalink fedilink source parent
[–] jvisick@programming.dev 15 points 2 years ago (2 children) TS is “better” but often I feel like just configuring typescript takes up a significant amount of the time you save by using it. permalink fedilink source parent hideshow 4 child comments replies: [–] ______@lemm.ee 5 points 2 years ago (1 child) It gets easier the more you do it but ts needed a default official config to start things up with. permalink fedilink source parent hideshow 2 child comments replies: [–] ADTJ@feddit.uk 2 points 2 years ago (1 child) Hahaha exactly! I feel like every time I start a new TS project, I start by copying the tsconfig from an existing one permalink fedilink source parent hideshow 2 child comments replies: [–] PeWu@lemmy.ml 2 points 2 years ago This. I actually have template which I'm using for all my small projects. permalink fedilink source parent [–] Rooki@lemmy.world 1 point 2 years ago Yeah, i feel the same but it is at least configurable and not terrible configurable like python permalink fedilink source parent
[–] ______@lemm.ee 5 points 2 years ago (1 child) It gets easier the more you do it but ts needed a default official config to start things up with. permalink fedilink source parent hideshow 2 child comments replies: [–] ADTJ@feddit.uk 2 points 2 years ago (1 child) Hahaha exactly! I feel like every time I start a new TS project, I start by copying the tsconfig from an existing one permalink fedilink source parent hideshow 2 child comments replies: [–] PeWu@lemmy.ml 2 points 2 years ago This. I actually have template which I'm using for all my small projects. permalink fedilink source parent
[–] ADTJ@feddit.uk 2 points 2 years ago (1 child) Hahaha exactly! I feel like every time I start a new TS project, I start by copying the tsconfig from an existing one permalink fedilink source parent hideshow 2 child comments replies: [–] PeWu@lemmy.ml 2 points 2 years ago This. I actually have template which I'm using for all my small projects. permalink fedilink source parent
[–] PeWu@lemmy.ml 2 points 2 years ago This. I actually have template which I'm using for all my small projects. permalink fedilink source parent
[–] Rooki@lemmy.world 1 point 2 years ago Yeah, i feel the same but it is at least configurable and not terrible configurable like python permalink fedilink source parent
[–] HKayn@dormi.zone 13 points 2 years ago (1 child) Right tool for the job. If I just quickly want to whip up a small script, I actually want to save a few seconds. When I'm doing something larger in scope, static typing all the way. permalink fedilink source parent hideshow 2 child comments replies: [+] AeroLemming@lemm.ee 9 points 2 years ago* (last edited 2 years ago) [deleted] permalink fedilink source parent
[+] AeroLemming@lemm.ee 9 points 2 years ago* (last edited 2 years ago) [deleted] permalink fedilink source parent
[+] AnomalousBit@programming.dev -10 points 2 years ago (4 children) IDK buddy, I don’t really care to write the same method for five different types (or read the 30 methods with different type signatures) when I can do it with one. I see the exact opposite of your statement, in my experience. permalink fedilink source parent hideshow 8 child comments replies: [–] AeonFelis@lemmy.world 26 points 2 years ago (1 child) That's what generics are for. permalink fedilink source parent hideshow 2 child comments replies: [+] AnomalousBit@programming.dev -28 points 2 years ago* (1 child) So… dynamic typing with extra steps 😂 permalink fedilink source parent hideshow 2 child comments replies: [–] wols@lemm.ee 12 points 2 years ago Extra steps that guarantee you don't accidentally treat an integer as if it were a string or an array and get a runtime exception. With generics, the compiler can prove that the thing you're passing to that function is actually something the function can use. Really what you're doing if you're honest, is doing the compiler's work: hmm inside this function I access this field on this parameter. Can I pass an argument of such and such type here? Lemme check if it has that field. Forgot to check? Or were mistaken? Runtime error! If you're lucky, you caught it before production. Not to mention that types communicate intent. It's no fun trying to figure out how to use a library that has bad/missing documentation. But it's a hell of a lot easier if you don't need to guess what type of arguments its functions can handle. permalink fedilink source parent [+] AeroLemming@lemm.ee 9 points 2 years ago* (last edited 2 years ago) [deleted] permalink fedilink source parent [–] SorteKanin@feddit.dk 4 points 2 years ago* Type signatures help you to know what a function takes and returns. With dynamic typing, I have to read the entire code of the function just to know this (sometimes even this doesn't tell me what will actually be returned due to duck typing). More importantly, type signatures help the compiler verify the types. Both of these get more and more important as the code size increases. I'd suggest you widen your horizon about static typing. permalink fedilink source parent [–] darcy@sh.itjust.works 2 points 2 years ago bro has never heard of an lsp permalink fedilink source parent
[–] AeonFelis@lemmy.world 26 points 2 years ago (1 child) That's what generics are for. permalink fedilink source parent hideshow 2 child comments replies: [+] AnomalousBit@programming.dev -28 points 2 years ago* (1 child) So… dynamic typing with extra steps 😂 permalink fedilink source parent hideshow 2 child comments replies: [–] wols@lemm.ee 12 points 2 years ago Extra steps that guarantee you don't accidentally treat an integer as if it were a string or an array and get a runtime exception. With generics, the compiler can prove that the thing you're passing to that function is actually something the function can use. Really what you're doing if you're honest, is doing the compiler's work: hmm inside this function I access this field on this parameter. Can I pass an argument of such and such type here? Lemme check if it has that field. Forgot to check? Or were mistaken? Runtime error! If you're lucky, you caught it before production. Not to mention that types communicate intent. It's no fun trying to figure out how to use a library that has bad/missing documentation. But it's a hell of a lot easier if you don't need to guess what type of arguments its functions can handle. permalink fedilink source parent
[+] AnomalousBit@programming.dev -28 points 2 years ago* (1 child) So… dynamic typing with extra steps 😂 permalink fedilink source parent hideshow 2 child comments replies: [–] wols@lemm.ee 12 points 2 years ago Extra steps that guarantee you don't accidentally treat an integer as if it were a string or an array and get a runtime exception. With generics, the compiler can prove that the thing you're passing to that function is actually something the function can use. Really what you're doing if you're honest, is doing the compiler's work: hmm inside this function I access this field on this parameter. Can I pass an argument of such and such type here? Lemme check if it has that field. Forgot to check? Or were mistaken? Runtime error! If you're lucky, you caught it before production. Not to mention that types communicate intent. It's no fun trying to figure out how to use a library that has bad/missing documentation. But it's a hell of a lot easier if you don't need to guess what type of arguments its functions can handle. permalink fedilink source parent
[–] wols@lemm.ee 12 points 2 years ago Extra steps that guarantee you don't accidentally treat an integer as if it were a string or an array and get a runtime exception. With generics, the compiler can prove that the thing you're passing to that function is actually something the function can use. Really what you're doing if you're honest, is doing the compiler's work: hmm inside this function I access this field on this parameter. Can I pass an argument of such and such type here? Lemme check if it has that field. Forgot to check? Or were mistaken? Runtime error! If you're lucky, you caught it before production. Not to mention that types communicate intent. It's no fun trying to figure out how to use a library that has bad/missing documentation. But it's a hell of a lot easier if you don't need to guess what type of arguments its functions can handle. permalink fedilink source parent
[+] AeroLemming@lemm.ee 9 points 2 years ago* (last edited 2 years ago) [deleted] permalink fedilink source parent
[–] SorteKanin@feddit.dk 4 points 2 years ago* Type signatures help you to know what a function takes and returns. With dynamic typing, I have to read the entire code of the function just to know this (sometimes even this doesn't tell me what will actually be returned due to duck typing). More importantly, type signatures help the compiler verify the types. Both of these get more and more important as the code size increases. I'd suggest you widen your horizon about static typing. permalink fedilink source parent
[–] darcy@sh.itjust.works 2 points 2 years ago bro has never heard of an lsp permalink fedilink source parent
[–] jjjalljs@ttrpg.network 27 points 2 years ago (1 child) Most python error messages are pretty straightforward so I legitimately don't know what you're talking about permalink fedilink source parent hideshow 2 child comments replies: [–] UnfortunateShort@lemmy.world 26 points 2 years ago I was gonna say, next to C++ you better don't shame other languages for their errors. Otherwise I wish you some "fuck you: error in library used in library used in template of template:: some template object is not correct type of template obejct"-type bullshit. permalink fedilink source parent
[–] UnfortunateShort@lemmy.world 26 points 2 years ago I was gonna say, next to C++ you better don't shame other languages for their errors. Otherwise I wish you some "fuck you: error in library used in library used in template of template:: some template object is not correct type of template obejct"-type bullshit. permalink fedilink source parent
[–] Turun@feddit.de 19 points 2 years ago (1 child) Which part in particular? They were improved in 3.10 and 3.11 permalink fedilink source parent hideshow 2 child comments replies: [–] noughtnaut@lemmy.world 7 points 2 years ago (1 child) 3.11 is Python for Workgroups, right? Feels like it came out ages ago.... permalink fedilink source parent hideshow 2 child comments replies: [–] Mechanite@lemmy.world 3 points 2 years ago (1 child) Hoping Python NT will be coming out soon permalink fedilink source parent hideshow 2 child comments replies: [–] RickyRigatoni@lemmy.ml 1 point 2 years ago Not sure why Python 2000 is slated to release in 2030 but respect. permalink fedilink source parent
[–] noughtnaut@lemmy.world 7 points 2 years ago (1 child) 3.11 is Python for Workgroups, right? Feels like it came out ages ago.... permalink fedilink source parent hideshow 2 child comments replies: [–] Mechanite@lemmy.world 3 points 2 years ago (1 child) Hoping Python NT will be coming out soon permalink fedilink source parent hideshow 2 child comments replies: [–] RickyRigatoni@lemmy.ml 1 point 2 years ago Not sure why Python 2000 is slated to release in 2030 but respect. permalink fedilink source parent
[–] Mechanite@lemmy.world 3 points 2 years ago (1 child) Hoping Python NT will be coming out soon permalink fedilink source parent hideshow 2 child comments replies: [–] RickyRigatoni@lemmy.ml 1 point 2 years ago Not sure why Python 2000 is slated to release in 2030 but respect. permalink fedilink source parent
[–] RickyRigatoni@lemmy.ml 1 point 2 years ago Not sure why Python 2000 is slated to release in 2030 but respect. permalink fedilink source parent