Post AWdZxVxraUEj6itQP2 by p@freespeechextremist.com
 (DIR) More posts by p@freespeechextremist.com
 (DIR) Post #AWdZxVxraUEj6itQP2 by p@freespeechextremist.com
       2023-06-13T04:26:41.202408Z
       
       4 likes, 2 repeats
       
       :hmrichard: "You like Go modules."
       
 (DIR) Post #AWdhzEwmd0FaXcinWS by bonifartius@freespeechextremist.com
       2023-06-13T05:56:38.327425Z
       
       0 likes, 0 repeats
       
       @p not perfect, much better than every other system i used. the v2 hack sucks.
       
 (DIR) Post #AWeBp7vgrUwwVPIuhM by McMongoose@bae.st
       2023-06-13T11:30:57.505257Z
       
       4 likes, 2 repeats
       
       @p Now I can't help but think the Hotline Miami ost starts playing everytime you show up Though isn't that just what normally happens when you use US public transportation?Husky_1686655799517_1SBFPN3GXO.mp4
       
 (DIR) Post #AWeoA1czHbTZIhwqLw by p@freespeechextremist.com
       2023-06-13T18:40:31.765234Z
       
       1 likes, 1 repeats
       
       @bonifartius > much better than every other system i used"Hello, World!" doesn't require a metadata file in any other language I have used.
       
 (DIR) Post #AWeoTCHTtnkvqK1xPE by p@freespeechextremist.com
       2023-06-13T18:43:59.644592Z
       
       0 likes, 0 repeats
       
       @McMongoose I haven't taken the train in Miami but that is what the train is like in New York so probably.(It may be worth noting that there is no subway in Miami.  Maybe there are fewer hurricanes and floods in the alternate timeline version of Miami.)
       
 (DIR) Post #AWf78L167g5Nz58OnI by bonifartius@freespeechextremist.com
       2023-06-13T22:13:07.187352Z
       
       1 likes, 0 repeats
       
       @p this shouln't be a frequent issue :P at least vs. the times i had to fight pip or bundler or cargo or whatever the thing is called in other languages.i think the go module system is pretty great for the amount of problems it solves in a good way - it's not perfect of course :)
       
 (DIR) Post #AWfEotUn1LYKlCGJ5U by p@freespeechextremist.com
       2023-06-13T23:39:14.761227Z
       
       5 likes, 0 repeats
       
       @bonifartius > this shouln't be a frequent issueIt shouldn't be an issue ever.  Given that it is, it makes it a pain in the ass to try to use Go for small one-off programs.  No language has an excuse to be a bigger pain in the ass than C.> pip or bundler or cargoI don't know how easy it is to dodge pip or cargo but bundler is completely unnecessary for simple stuff.> i think the go module system is pretty great for the amount of problems it solves in a good way - it's not perfect of course :)I love the language and I hate the entire system surrounding the language.:mycomputer: *compiler diagnostic noises* See `go help something`:elliot: $ go help something:mycomputer: See go.dev/somethingsomething:elliotmanic: go.dev/somethingsomething:netscape: See the blog post at:elliotyelling: NO
       
 (DIR) Post #AWfN5mIXpjAQzg62JE by sysrq@freespeechextremist.com
       2023-06-14T01:11:56.252777Z
       
       3 likes, 1 repeats
       
       @p @bonifartius :gunleft::pike: "you will read the blog post and enjoy it"
       
 (DIR) Post #AWfiTGNIH0sryMME9g by p@freespeechextremist.com
       2023-06-14T05:11:29.241799Z
       
       5 likes, 0 repeats
       
       @sysrq @bonifartius There was one where, like, the docs said to read the blog post but the blog post just paraphrased one paragraph from the docs...and linked to the docs.  I swear, I'm just going back to C forever.
       
 (DIR) Post #AWfiVXlGbKq8TXerb6 by sysrq@freespeechextremist.com
       2023-06-14T05:11:53.968605Z
       
       1 likes, 0 repeats
       
       @p @bonifartius bruh
       
 (DIR) Post #AWfkv4p31BWw9zjI80 by explosionguy@freespeechextremist.com
       2023-06-14T05:38:55.440859Z
       
       1 likes, 0 repeats
       
       @p @McMongoose there is a monorail people mover thing
       
 (DIR) Post #AWfl76ptMDSvsdrV0y by bonifartius@freespeechextremist.com
       2023-06-14T05:41:05.919358Z
       
       1 likes, 0 repeats
       
       @p > It shouldn't be an issue ever.  Given that it is, it makes it a pain in the ass to try to use Go for small one-off programs.  No language has an excuse to be a bigger pain in the ass than C.yeah, it would be nice to have a way doing it without a module file. shouldn't be required if you only use stdlib, i agree.> I don't know how easy it is to dodge pip or cargo but bundler is completely unnecessary for simple stuff.i fought bundler in a semi-complex project at work from time to time and it wasn't enjoyable. was rails though, not only ruby. rails does increase the pain in the order of magnitudes for me, even if it should be unrelated.> love the language and I hate the entire system surrounding the language.most things certainly haven't been improving since the switch to go.dev!
       
 (DIR) Post #AWfnLFDlB98XqetUCO by bonifartius@freespeechextremist.com
       2023-06-14T06:06:03.796973Z
       
       1 likes, 0 repeats
       
       @sysrq @p do it like hipp, c and tcl :)
       
 (DIR) Post #AWfpIQj49BGuZOK4Yq by p@freespeechextremist.com
       2023-06-14T06:27:57.881599Z
       
       0 likes, 0 repeats
       
       @explosionguy @McMongoose Yeah, the level is called "Subway", though.I didn't know there was a monorail.  Is it cool or a terrible gubbamint boondoggle?
       
 (DIR) Post #AWfsorhDhvoDLUcKQK by p@freespeechextremist.com
       2023-06-14T07:07:26.493570Z
       
       0 likes, 0 repeats
       
       @bonifartius > i fought bundler in a semi-complex project at work from time to time and it wasn't enjoyable. was rails though, not only ruby. rails does increase the pain in the order of magnitudes for me, even if it should be unrelated.I fight it more often than I use it.  It's a duct-tape fix for a problem that shouldn't exist (private gem servers *or* stable APIs by gem authors *or* just not using libraries with unstable APIs *or* if Ruby hadn't broken with the package managers and libraries were actually like libraries in any other language).  The problem exists because of feature factory companies, and they love Rails, and Rails took over Ruby.Go should have just left library management to the OS and the users instead of doing it they way they're doing it.  It's actually worse; at least with something like Python or Ruby or whatever, you can still just give it a `-I`.  C, it's easier in C than in Go.  It's probably easier in Java than in Go, but I don't remember how it worked in Java last time I touched Java and that's been a long while.> most things certainly haven't been improving since the switch to go.dev!The docs are easier to find; there is at least that.
       
 (DIR) Post #AWfxfPnYYqsFzEtVLc by p@freespeechextremist.com
       2023-06-14T08:01:45.530334Z
       
       1 likes, 0 repeats
       
       @bonifartius @sysrq Tcl's a bit of a mess but it's nice for what it is.  (I really like Tk.)Lua hasn't been fluoridated yet.
       
 (DIR) Post #AWgzN8CReDNjG9uAHg by bonifartius@freespeechextremist.com
       2023-06-14T19:55:34.549767Z
       
       1 likes, 0 repeats
       
       @p > The problem exists because of feature factory companies, and they love Rails, and Rails took over Ruby.yes. the few times i used plain ruby were quite ok. not my favorite experience, a solid "ok". rails was not ok ;)> Go should have just left library management to the OS and the users instead of doing it they way they're doing it.  It's actually worse; at least with something like Python or Ruby or whatever, you can still just give it a `-I`.  C, it's easier in C than in Go.  It's probably easier in Java than in Go, but I don't remember how it worked in Java last time I touched Java and that's been a long while.Gos module system solves the problem of using different versions of libraries, which seems to be nearly impossible to get right on the OS level - at least i never saw a distribution where this wasn't ugly (or something like nix which is picrel). i would be fine if they relied on the OS doing it if I'd know it not be annoying. relying on the users ends up with the python situation of having multiple systems which all do slightly different things. never used java enough to speak about this.i never had problems with version mismatches with the old GOPATH style though. the few libraries i use are usually pretty backward compatible.fwiw, i usually just do "go mod init $foobar", write the code, "go get" to fetch things not in cache already and that's about it. works fine for me with the few dependencies i usually use. ymmv.> The docs are easier to find; there is at least that.i find the interface much more confusing than the old godocs one, but that might be my brain :)image.png
       
 (DIR) Post #AWh0hOkTvcwGKb3MOW by bonifartius@freespeechextremist.com
       2023-06-14T20:10:26.617479Z
       
       1 likes, 0 repeats
       
       @p @sysrqTcl people managed to keep the language sane for more than three decades now, not that much clutter added. Tk is under-appreciated. really good toolkit, and that in <1M.i know many people who like lua, i never really got into it. something just doesn't match up with my tastes i guess :)
       
 (DIR) Post #AWh5Ex6LcuTmFNXIye by p@freespeechextremist.com
       2023-06-14T21:01:19.669642Z
       
       1 likes, 1 repeats
       
       @bonifartius > yes. the few times i used plain ruby were quite ok. not my favorite experience, a solid "ok". rails was not ok ;)The thing about it is it's got a lot of stuff for string- and array-mangling and a good REPL, so you can poke data interactively and it's a pretty nice experience (especially with the unfortunately named Sequel gem and Redic), it's good for pipelines, quick scripts, things like that.  It's what I reach for if awk doesn't work out.> Gos module system solves the problem of using different versions of libraries, which seems to be nearly impossible to get right on the OS levelNo.  The problem is using libraries with poorly conceived, unstable APIs.  It duct-tapes that by locking it in and shoving it into some ridiculous directory structure with six layers of obtuse abstraction, instead of giving you a library search path.> at least i never saw a distribution where this wasn't uglyNobody can keep the same API for six consecutive weeks because nobody thinks about what they're doing.  Yeah, BDUF sucks for application programming, but if you are moving fast and breaking things when building a library or a service, you are fucking up:  anything built on top of a library is only going to be as stable as the library.  This is why most libraries are shit:  nobody thinks too hard about what it is they are abstracting.  (The corollary is it's better to do it yourself where you can).> nix:vomit:> i never had problems with version mismatches with the old GOPATH style though. the few libraries i use are usually pretty backward compatible.So I can say of Ruby that stuff I wrote during the 1.6 days still runs, and that's about 20 years.  (3.x appears to have lost its mind and I have to monkey-patch IRB to make it stop redrawing the cursor.)  But the catch is that this is true only when I don't use anything outside the standard library, the terrible gem ecosystem, the tooling.  Nobody's trying to put analytics into the interpreter there, either.  It's enough to make a guy say "Fuck all of this, I'm just going to write C."> i find the interface much more confusing than the old godocs one, but that might be my brain :)I mostly just type `go doc`.
       
 (DIR) Post #AWh5oW81OAzT16HHDU by teknomunk@apogee.polaris-1.work
       2023-06-14T21:07:44Z
       
       1 likes, 1 repeats
       
       @p @bonifartius And that's a good part of the reason that I'm rolling my own in C.:02_shrug: 
       
 (DIR) Post #AWh7Pl72jzDG9s8sRU by p@freespeechextremist.com
       2023-06-14T21:25:41.434443Z
       
       1 likes, 0 repeats
       
       @bonifartius @sysrq Yeah, I mean, Tcl is great for what it is.  It's a small scripting engine, it fits in the same space Lua does, but it has things like bare words and that is great in a scripting engine and bad everywhere else.  It makes Tk extremely nice, I love piping things into wish.  I can put a GUI on an awk script by opening a pipe, that's magical, that's the right boundary:  it's done well enough that even languages where having a GUI is completely inappropriate, you can still have a GUI.
       
 (DIR) Post #AWh7ds3PjHDfk0AplY by p@freespeechextremist.com
       2023-06-14T21:28:14.475184Z
       
       0 likes, 0 repeats
       
       @teknomunk @bonifartius Chuck Moore approves (except the part about C and the register machine conspiracy).
       
 (DIR) Post #AWkNSgimXBtm2yw8Rc by bonifartius@freespeechextremist.com
       2023-06-16T11:09:38.066234Z
       
       1 likes, 0 repeats
       
       @p > It's what I reach for if awk doesn't work out.i don't really like ruby much, but i use tcl in this fashion. they are somewhst related after all.> No.  The problem is using libraries with poorly conceived, unstable APIs.  It duct-tapes that by locking it in and shoving it into some ridiculous directory structure with six layers of obtuse abstraction, instead of giving you a library search path.well, yesandno. part of why Go the language is good is the version 1 guarantee. guess everything breaking should just use another name/indentifier. getting an api right on the first try is pretty hard, so there has to be _some_ way to break things. it should be the exception through. defaulting to semver is probably a good idea ™, storing things in a werid directory structure with weird permissions (_that_ annoys me!) not so much.> This is why most libraries are shit:  nobody thinks too hard about what it is they are abstracting.  (The corollary is it's better to do it yourself where you can).part of the problem is that many people are damaged by bad cargo cults in software design, like OO (or functional programming, doesn't matter) viewed as panacea. this leads to shit APIs as almost everyone is locked into thinking some way or another. database abstration libraries (like ORM) are a prime example imho. combined with all the other systemic problems in software engineering leads to 99% shit libraries. case in point for the corollary are things like SQlite, hipp seems to just write things if there is no good fit.> But the catch is that this is true only when I don't use anything outside the standard library [...]well, that's probably the case for most languages :P guess even c++ can be sane with only the standard library.> Nobody's trying to put analytics into the interpreter there, either.i don't know which devil got into russ there. total shit idea.> It's enough to make a guy say "Fuck all of this, I'm just going to write C."i can understand that, i'm too lazy though. Go just fits the bill too well and the tooling still isn't nearly as bad as other languages - it seems to be constantly degrading though.
       
 (DIR) Post #AWkpoEUGzBAhZIDCNc by m0xEE@breloma.m0xee.net
       2023-06-16T16:27:09.212368Z
       
       1 likes, 0 repeats
       
       @bonifartius @p Cargo at least offers you this nice "new" command, which creates all the directory layout for you, just cd into it, edit main.rs and use "cargo run" — there, you have your one-off program running. With go you have to make the directory yourself, come up with some stupid name, do "go mod init" — well, okay…Pip — you don't have to know much about pip for that at all, just do "pip install something" and it downloads and installs it for you somewhere, I'm not even sure where and I don't care, but I know that I can import it now.Go is undisputedly worst in this regard. I also like the language itself very much, but the fact that there is Google behind it and stuff like this is just awful :marseyshrug:
       
 (DIR) Post #AWkyS4ghdf2sONXE7k by bonifartius@freespeechextremist.com
       2023-06-16T18:04:06.555225Z
       
       1 likes, 0 repeats
       
       @m0xEE @p > Cargo at least offers you this nice "new" command, which creates all the directory layout for you"the horror, the horror"i hate automatic things. if i want functionality like this write a shell script. also i try to stay away from rust as far as possible :P> With go you have to make the directory yourself, come up with some stupid name, do "go mod init"i missed it because i almost never use it, but "go run" doesn't require a module. so.. "go get" something and "go run" should work fine. also "go mod init foobar" works fine if one doesn't want to come up with a name ;)> Pip — you don't have to know much about pip for that at all, just do "pip install something" and it downloads and installs it for you somewhere, I'm not even sure where and I don't care, but I know that I can import it now.i don't touch python anymore, it's not worth the hassle.
       
 (DIR) Post #AWlDKC4BoqqAGzDkYa by p@freespeechextremist.com
       2023-06-16T20:50:45.610608Z
       
       1 likes, 0 repeats
       
       @bonifartius > getting an api right on the first try is pretty hard, so there has to be _some_ way to break things.Well, yeah, but good APIs don't break.  In either the base language and the core API surface, you really shouldn't break.  You can still compile a lot of stuff from v7 under current gcc, that's 50 years, impressive.  JavaScript from the 90s runs (which is the only good thing about JavaScript).> defaulting to semver is probably a good idea ™, storing things in a werid directory structure with weird permissions (_that_ annoys me!) not so much.It is frustrating, yes.  I don't know what the permissions issue is, it matches my umask.  But /lib/go/$lib/$version/thing.go would be better.  Using git commit hashes is essentially unforgivable:  if the library breaks, don't use that library.> this leads to shit APIsI don't think that's the cause.  I think it's that people don't think about APIs.  They get excited, they cram shit in, it turns out to be terrible shit.  That kind of thing works fine for user-focused application programming (features good, people love features for some reason), but not systems programming (features are a liability) or libraries (features are maintenance cruft).  So APIs written by people that understand the domain really well and understand where the good boundaries for abstractions are, those come out well and they end up stable.  SDL's a good example:  it was made by an experienced game dev (so the API surface was clean and well thought-out), my old SDL stuff from when I was a yoof, that all still builds and runs fine.  I wouldn't build anything on Gnome if I could possibly avoid it, though:  everyone knows what a disaster gtk3 was, but I suspect most people don't know that this has always been the case with anything under Gnome's purview:  https://www.jwz.org/doc/cadt.html .  "Why not be honest and resign yourself to the fact that version 0.8 is followed by version 0.8, which is then followed by version 0.8?"> SQliteSQLite is very nice.> well, that's probably the case for most languages :P guess even c++ can be sane with only the standard library.They can't even keep #include compatible with older C++.  C++ is the second-worst about this.  (Worst is Haskell.)> i don't know which devil got into russ there. total shit idea.Remarkably small amount of pushback.> i can understand that, i'm too lazy though.It's laziness on my own part:  I get tired of chasing my tail on terrible decisions made about languages I use.  What language would you use if you wanted your code to out-live you?  If you wanted it to be readable (or even executable) twenty years after your death, is there a language that you could use?  I'd like to use that language.  It's rare to find a language where you can expect your code will run, unmodified, five years from *now*.  Nobody's doing that because nobody thinks past next year.  > Go just fits the bill too well and the tooling still isn't nearly as bad as other languages - it seems to be constantly degrading though.The "Google owns it" bit is what made me hesitate to get into it for a long time.  They managed to avoid fluoridating it long enough for people like me to conclude that it was worth using, then I start this ambitious project in Go and they start proxying modules and announce that they're going to jam analytics into the code.
       
 (DIR) Post #AWlEIiT4Ts7G8fibFQ by p@freespeechextremist.com
       2023-06-16T21:01:41.896444Z
       
       2 likes, 1 repeats
       
       @m0xEE @bonifartius > which creates all the directory layout for you, just cd into it, edit main.rs and use "cargo run" — there, you have your one-off program running.I don't think you need a directory layout for a one-off program.  Anything that is less convenient than C is an abject failure of tooling.> I'm not even sure where and I don't careThis ends up relevant if you are trying to deploy anything or if you have to follow a stack trace and read what the library is doing.  Or say you want the code to run as a different user instead of just loading from the dev's ~/.local (which directory should not even exist:  it's my goddamn home directory, everything is "local".)> but I know that I can import it now.That part is nice.> Go is undisputedly worst in this regard.I see you haven't tried to use Node or Haskell.  :nixonsmug:> I also like the language itself very much, but the fact that there is Google behind it and stuff like this is just awful :marseyshrug:Accurate.  It's bad enough that I keep having to opt out of weird shit in browsers, opting out of weird shit in a *compiler* is horrifying.
       
 (DIR) Post #AWlEwZ076AB4MQArfk by p@freespeechextremist.com
       2023-06-16T21:08:53.972418Z
       
       1 likes, 0 repeats
       
       @bonifartius @m0xEE > also i try to stay away from rust as far as possibleI wrote a program in Rust and didn't hate how it came out.  I expected to hate the entire experience (a language designed by people that like JavaScript and C++ unironically sounds like a horrible language), but I didn't.  I did hate the compiler and the tooling around the compiler and have never attempted anything serious in Rust; the language doesn't strike me as useful.  If I don't want a GC, I also don't want a language that second-guesses me.> i don't touch python anymore, it's not worth the hassle.I thought I'd dodged that bullet but I keep having to deal with Python because people keep writing shit in Python.
       
 (DIR) Post #AWnEf6gRW6BvvgZMES by m0xEE@breloma.m0xee.net
       2023-06-17T20:14:54.107434Z
       
       2 likes, 1 repeats
       
       @p @bonifartius I think you can use rustc directly, but one rarely has to. I mean I'm not against that having this boilerplate directory structure if there is a tool that manages that with zero effort from your side — with go however you have to jump through extra hoops to have the same.No, sure, I know where pip puts the files, I even had a python developer job, I mean you don't *have to* know that — that part is, like you said, pretty neat. And I'm not against using ".local" — I mean they could've made it a normal directory, not dot-prefixed because why hide it? But it's pretty standard and it doesn't pollute the root of home directory, what's not to like. And I've never liked that containerization idea, it was the grandfather of shit we got ourselves into now.GHC didn't look to bad to me, but I've never used it in practice, is it that bad? And you're right about me and Node, I prefer not to touch this shit even with a three meter pole :marseyemojismilemouthcoldsweat:  It looks like a perfect mess to me.I actually like all of them: Python, Go and Rust — I mean they all have issues, but they are still better than their predecessors. Python is probably something like Perl now and the problem with it is that it's used everywhere from general purpose scripting to web to data science — I mean it was originally a universal language, but no one could imagine all these usage scenarios and they don't have different dialects, it's still the same language, but it gets used very differently. Well, at least, unlike Perl even legacy Python code is readable.Same with Rust — I do think it's better than C++. Syntax is indeed funky and it does have that unwrap().unwrap().unwrap() shit, but it's still a far shot from object oriented design patterns we had in C++ — this stuff was alchemy and didn't make any sense if you didn't work with that code. Rust's tooling is pretty bad though, I agree. Cargo is okay for most things, but that config.toml stuff is VERY confusing, I wanted to enable link-time optimizations by default and even after reading the documentation I couldn't figure out the proper way to do it and ended up with C-style appending a string to the parameters passed to the linker :marseylaughwith: Also some very basic stuff is missing, like a way to specify the name of output binary, I think they've added a standard parameter for that, but not all projects are compatible, even big ones like Alacritty do not support it.
       
 (DIR) Post #AWnfgksyEHpffLRJJ2 by p@freespeechextremist.com
       2023-06-18T01:18:00.038550Z
       
       1 likes, 0 repeats
       
       @m0xEE @bonifartius > I mean I'm not against that having this boilerplate directory structure if there is a tool that manages that with zero effort from your side — with go however you have to jump through extra hoops to have the same.Boilerplate generation is a sign that you've done something wrong.  Either the machine can figure it out (and thus there was no point in having the boilerplate) or it can't (in which case, it could not have been generated).  Tools to manage it just mean that your intent is not communicated in the code, there are files that signify nothing.  "It hurts like hell but they give you painkillers."You look at a C program, Forth, Scheme, any of the really lean languages without boilerplate, nothing that is written down is unnecessary:  and you can read them, you can learn something if the author knew something that you don't.  The machine also doesn't have to churn through a bunch of nonsense that won't matter.  So the language is at the right spot:  it's at the point where the machine knows what it knows and all the human has to write down is the human's intent.  There's no noise in a good program.  It's hard enough to manage the complexity, but absurd tooling and hairy languages add to the problem.This is, despite its limitations, one of the reasons I love awk so much.  Nothing I write in awk is unnecessary, nothing to make the compiler happy, I have just written my intent, and usually it's two or three expressions.  So I say these things, like I ramble about having a serene environment for hacking, I think usually people don't know what I'm talking about, but that's maybe the best way to quantify it:  how many tasks did I have to perform to make the runtime happy before I got around to telling the machine what I actually wanted it to do?  FSE's log files, for example:  I ask awk and awk gives me an answer.  SQL feels like I've got to jump through more hoops (I will sometimes forget whether `order by` or `group by` should come first, and the syntax of the language feels like the order of those clauses shouldn't matter) but it mostly gives me answers without pageantry.> I know where pip puts the files, I even had a python developer job, I mean you don't *have to* know thatYou really do have to, though.  The more moving parts, the more that can go wrong.  When things go wrong, you have to know what's happening so that you can fix it:  this gets both more likely and more complex with more moving parts.  I try to just go through the package manager for as much Python stuff as I can so as to avoid using pip, so that `sudo -u user-dedicated-to-running-this-service service` is trivial.> GHC didn't look to bad to me, but I've never used it in practice, is it that bad?It's pretty massive; that's not bad on its own, but it changes a lot.  Write a Haskell program for one version, try having a different version compile it.  If you get too far from the example code, it falls down.  The example for me was that I had written a small hashcracker, right?  I liked the lazy evaluation for that kind of thing, and most hashcrackers do something like take a set of characters and then try to crack the shortest combination of them, then they add another character and run through the permutations, so they crack short to long given a set of characters.  I wanted to go by character frequency (calculated from old password lists), reasoning that a 20-character alphabetical password was more likely to be used than an 8-character password with lots of punctuation in it, so I could cap the length and take advantage of the lazy evaluation.  (This was innocent, but a long story.)  Anyway, it worked nice and was fine, it was pretty readable, but it required some maintenance the next year:  they'd added some fancy parallelism and I thought that'd be cool to take advantage of, but it didn't compile any more, none of my programs did.  And that seems to happen once a year, so I dropped Haskell.  You check in on the mailing list chatter, they're reworking basic types.  BWK said that the main application of ML seems to be writing ML compilers (a joke but not really, you know) and Haskell, being ML-descended, has a lot of that kind of wank in it.  (OCaml is nice, or at least was last time I played with it.)> Python, Go and Rust — I mean they all have issues, but they are still better than their predecessors.Depends on who you classify as their predecessors.  I like Go just fine, but I hate the tooling, I hate having stupid URL fragments (not even real URLs!) in the `import` lines, so code has to change because a project moved from Github to self-hosting, things like that.  Huge pain, feels like deployment concerns like "Where do we get this library?" stuck their fingers into the code, which should read like "Given this library exists somewhere in the system, here's this stuff we want to do that calls it sometimes."  So then they patch over that, "Okay, if it moves, you can override the location in this file here."  Very duct-taped feel.> Same with Rust — I do think it's better than C++.Very low bar.  C's better than C++, Objective C is better than C++.  I can't think of a case where I'd rather use Rust than C or Go.  Maybe it's better than C++, but I don't use C++ so that means nothing to me; it goes to lengths to stop you from doing anything stupid, and I don't need a machine to second-guess me and it's hopelessly doomed to begin with, because the compiler actually can't stop me from doing something stupid.  (You can do something stupid in CSS and CSS is purely declarative.)  So Rust sits uncomfortably in this zone where it doesn't do anything I need or want, it doesn't solve any problems I have, it doesn't seem very fun, and the tooling is slow and nightmarish and byzantine.> it does have that unwrap().unwrap().unwrap() shitAh, I didn't have to deal with that for Project Euler, which might be why I didn't hate the program I wrote.  Simple numeric computations in fixed space.  Maybe if I had tried to do an arbitrarily sized prime sieve in it I would have been upset, or if I had to have an I/O loop.> I wanted to enable link-time optimizations by defaultYou'd think those would be enabled.  Like, linker optimizations are one class of optimization that you can do without causing trouble or making the code look weird.> Also some very basic stuff is missing, like a way to specify the name of output binaryIf I look at the Makefile for the Rust thing I did for Project Euler, it seems simple enough:rust/bin/%: rust/%.rsrustc -o $@ $<If what you're talking about is the tooling, I don't know enough to say anything about that.
       
 (DIR) Post #AWtVbcH0zM6mulMAVM by bonifartius@freespeechextremist.com
       2023-06-20T20:53:17.395271Z
       
       1 likes, 0 repeats
       
       @p @m0xEE i too only played with rust a tiny bit. what put me off was the rust evangelism strike force and the tooling. supposedly the spec changes often enough to make it annoying to keep fixing things so they still compile?python is everywhere, it's the new cobol! there is a solution though: one can run tcl scripts in python using the bundled interpreter for tkinter :)
       
 (DIR) Post #AWuIm0VmccPkjnqgIi by p@freespeechextremist.com
       2023-06-21T06:04:12.840505Z
       
       0 likes, 1 repeats
       
       @bonifartius @m0xEE > one can run tcl scripts in python using the bundled interpreter for tkinter :) :bruceforsythe:"The determined programmer can write Fortran in any language."