|
I've really been sleeping on getting work done on my survey of Wirthian languages, especially during my period of self-funemployment ATM.
|
![]() |
|
![]()
|
# ? Jun 26, 2024 06:55 |
|
As long as I'm talking about stuff I meant to do and haven't done yet, have my raw notes to self about emails I wanted to send to The Array Cast folks from like 2.5 years ago:quote:2021-12-21
|
![]() |
|
Phobeste posted:to be clear (and admittedly this was a bit ago because it was so loving bad I refused to use it anymore) this is only and entirely speaking about osx docker hosts that run full fledged vms for the children. no other host os has this problem as far as I can tell. it’s not a host OS “problem,” it’s inherent in what containers are: they’re defined as being a Linux environment, so if you’re not running Linux you have to run a VM to host containers I don’t use Docker or containers for much of anything because I work on end user software, but for the small amount that I do use them, I use podman on macOS and it works perfectly fine and plenty fast but it runs one VM under the hood, and runs the containers under that
|
![]() |
|
Share Bear posted:this link and entire page reinforces my outsider view and also adds that i don't think anyone should be writing new C/C++ code in 2024 hey now, don’t mix C in with that C++ nonsense
|
![]() |
|
minidracula posted:As long as I'm talking about stuff I meant to do and haven't done yet, have my raw notes to self about emails I wanted to send to The Array Cast folks from like 2.5 years ago: not to turn it into a long rant, i think it's very unfortunate that j-style forks and trains seem to be infecting most modern arraylangs and they've come to be seen as central features of the paradigm- at least among vocal enthusiasts in my mind the truly important features are implicit and abstract iteration, having algebras and generalizations over a small, closed collection of types, and the idea of programming directly in the language instead of constructing abstractions
|
![]() |
|
eschaton posted:hey now, don’t mix C in with that C++ nonsense C is my favorite C++ replacement language
|
![]() |
|
eschaton posted:it’s not a host OS “problem,” it’s inherent in what containers are: they’re defined as being a Linux environment, so if you’re not running Linux you have to run a VM to host containers we’re moving away from podman on macOS for local development at work because it’s flaky when you push it with a lot of container lifecycle operations and our dev support folks are sick of the headaches. I forget what we’re doing instead, alas
|
![]() |
|
Subjunctive posted:so here’s an interesting thing happening in languages not a fan of anything that makes cpp less unappealing tbh. let it die.
|
![]() |
|
Subjunctive posted:we’re moving away from podman on macOS for local development at work because it’s flaky when you push it with a lot of container lifecycle operations and our dev support folks are sick of the headaches. I forget what we’re doing instead, alas works great for me, but all I’m doing with it is running gcc, binutils, and gdb-multiarch to build and debug some 68K ROM code I never need to do “a lot of container lifecycle operations” whatever that really implies
|
![]() |
|
if I have to use containers for something (ugh), podman is the Docker-clone I should/ought to be using instead of actual Docker, right? this is what I've somewhat intuited via osmosis semi-lately. is it correct? minidracula fucked around with this message at 00:21 on Apr 19, 2024 |
![]() |
|
docker is a product made by a real company so i’d use it if you have the option. for corporate use you need a license
|
![]() |
|
podman/containerd is what most people use if they dont wanna use docker i'm sure there's some weird nix way to run containers too but thats way too obscure for right now
|
![]() |
|
need to run a handful of containers and would appreciate not having a root escalation daemon permanently running -> podman need to setup some purgatorial service-oriented architecture and want to use a dozen tools selected by throwing darts at the cncf homepage -> docker
|
![]() |
|
Share Bear posted:podman/containerd is what most people use if they dont wanna use docker the weird nix thing is building container images, not running them https://nix.dev/tutorials/nixos/building-and-running-docker-images.html
|
![]() |
|
Asleep Style posted:the weird nix thing is building container images, not running them ah i'm still new to the entire thing so i assumed there was some sort of container runtime with it too, thank you
|
![]() |
|
my team at work used to use python for developer tools. we’re switching to go for new things (I lost the argument for java and tbh java is a dubious fit anyway because of start up latency). one guy thinks we should have picked c++ but while I really hate go, I don’t think I hate it that much
|
![]() |
|
shoulda switched to rust
|
![]() |
|
nrook posted:my team at work used to use python for developer tools. we’re switching to go for new things (I lost the argument for java and tbh java is a dubious fit anyway because of start up latency). may i ask why they switched away? packaging/isolation/reproducability i'm guessing? maybe speed? i just switched to ruff from black as an example, and it's SO much better
|
![]() |
|
this is from a few pages back so apologies but lmao if you think strncpy has fewer sharp corners than strlcpy any function that potentially leaves a string non terminated is a bad function
|
![]() |
|
strncpy is a really useful utility function for working with fixed-width record databases, which by the grace of god have basically died out the only problem is that the name makes it look like a general string routine
|
![]() |
|
fixed-width records does sort of justify the null padding for short copies
|
![]() |
|
strncpy was for working with directory tables, or something? it’s a menace
|
![]() |
|
yep, you have to fully overwrite whatever used to be be in the field. and of course text fields in a fixed-width record are terminated by the end of the field; you only pad with nul bytes if the text doesn't fill the field. it's a completely sensible operation for something that used to be one of the predominant ways to store information and is now totally and unquestionably obsolete
|
![]() |
|
we use it in protocols which have fixed width string fields still, needs suiting
|
![]() |
|
Sweeper posted:we use it in protocols which have fixed width string fields still, needs suiting you’re why we can’t remove it
|
![]() |
|
Subjunctive posted:you’re why we can’t remove it no need to remove it, just only use it for fixed width strings as intended.
|
![]() |
|
nrook posted:my team at work used to use python for developer tools. we’re switching to go for new things (I lost the argument for java and tbh java is a dubious fit anyway because of start up latency). ![]() No, seriously, I am curious how this works out for you/your team at work in practice. It's something I've heard not infrequently, and I've thought along similar lines the last several years (not just WRT moving from Python, but inclusive of that as well) for various reasons (which I can get into somewhat if anyone cares), but I'm always interested in more trip reports.
|
![]() |
|
nrook posted:my team at work used to use python for developer tools. we’re switching to go for new things (I lost the argument for java and tbh java is a dubious fit anyway because of start up latency). should have done c#. lol if you get stuck w/ go
|
![]() |
|
minidracula posted:Please do let me know how this... goes. ironically the thing I hate most about go isn’t actually a real problem with the language. rather, the house style for unit tests is this insufferable table-based approach, which creates irritatingly long and verbose parameterized tests. I do think the language is well-suited to devtools just insofar as it’s very straightforward, fast, but has garbage collection. But even so I’d rather be writing something else
|
![]() |
|
c# is straightforward fast and garbage collected what’s the big deal
|
![]() |
|
feels like table stakes for a lang ityool2024
|
![]() |
|
i do wonder if c# aot compilation would address the startup time concerns
|
![]() |
|
redleader posted:there are six thousand c functions called things like strlncpy and strnl_cpy and lnstr_nlcpy_st and if you use one of the 5998 old, wrong ones then your program will result in the complete takeover of your machine can't believe i get to quote the most accurate post i've ever made, mere pages later
|
![]() |
|
go seems ok for CLI stuff if you are ok writing more LoC than you ever have before in your life to do basic tasks python -> go actually probably feels ok because python isn't exactly a succinct or expressive language either. plus you don't have to deal with packaging and runtime environment hell
|
![]() |
|
i worked with go a couple jobs ago and whoever said "what if rob pike learned nothing about programming languages for 30 years except gc and you should have explicit error handling" was right on the money. it's fine i guess. i wouldn't work with it if i didn't have to. the only part i thought was neat was the c ffi implementation (cgo) since it meant i could use crusty old (dependable, well-tested, well-supported) libraries. a lot of the go packages i saw were npm level trash with a single developer and no support. packages for xml were particularly bad so i just did it in libxml2 for example
|
![]() |
|
redleader posted:can't believe i get to quote the most accurate post i've ever made, mere pages later and if you have the misfortune to compile anything with msvc it will scream and bitch at you to use different functions with a bunch of underscores and extra letters and completely different signatures that are exactly as broken as the standard posix poo poo
|
![]() |
|
working with fixed-length records is kinda pleasant. it leads to some rather simple and efficient code and the gigantic glaring problem with it is someone else (the user)'s problem, not yours
|
![]() |
|
which one of you is calvin on lobste.rs? ![]()
|
![]() |
|
abraham linksys posted:go seems ok for CLI stuff if you are ok writing more LoC than you ever have before in your life to do basic tasks go and copilot were meant for each other this is meant to be something of a diss on go
|
![]() |
|
![]()
|
# ? Jun 26, 2024 06:55 |
|
CGo is nice until you try doing something WeIrD like passing around array over 2GB and it silently craps out. Or you try using it on Windows and lol, lmao, MSVC is not supported.
|
![]() |