STOP WRITING C
But I like C, it’s like a smaller Golang
But I like C, it’s like a smaller Golang
I tried Homebrew once in a VM and didn’t like it, I felt it was too invasive. https://github.com/Homebrew/install/blob/85c5f4b57452dbd1c7ebc01a021548d2ceaf2b64/install.sh#L173 Why does it create another user and put files under /home/linuxbrew/? Answer: The script installs Homebrew to its default, supported, best prefix (/opt/homebrew for Apple Silicon, /usr/local for macOS Intel and /home/linuxbrew/.linuxbrew for Linux) so that you don’t need sudo after Homebrew’s initial installation when you brew install. Where’s the logic in that? Why not just install to the user’s home directory so that you don’t even need root access in the first place? https://github.com/Homebrew/install/blob/85c5f4b57452dbd1c7ebc01a021548d2ceaf2b64/install.sh#L222 Why is sudo hard-coded? Answer: it’s to prevent people from using doas and other sudo alternatives. https://docs.brew.sh/Installation#untar-anywhere-unsupported Why is installing from the tarball unsupported and so frowned upon? FFS isn’t this just supposed to be a package manager? Why is everything so complicated and opinionated when compared to pip, cargo, Flatpak, etc? Compare this mess to Golang’s install and uninstall process where you literally just need to tar -xzf a file or rm -rf a directory.
My least favorite part of Go, by far, is the capitalization as struct member visibility thing. That and the not super great json encoding annotations. Here’s a sample: type Change struct { Path string `json:"path"` Category string `json:"category"` // change, append, create, delete Position int64 `json:"position"` Size int64 `json:"size"` OriginalChecksum string `json:"original_checksum"` UpdatedChecksum string `json:"updated_checksum"` UnixTimestamp int64 `json:"unix_timestamp"` Data []byte `json:"data"` MatchedRules []Rule `json:"matched_rules"` } I would take explicit public declarators any day
EDITL Lemmy-UI deleted my !@#$#% links because I used the standard Markdown of less than and greater than symbols for a link. 1.) https://overengineer.dev/blog/2019/01/13/activitypub-final-thoughts-one-year-later.html https://gist.github.com/jdarcy/60107fe4e653819138396257df302eef 2.) https://beehaw.org/comment/1178543 https://beehaw.org/post/7278522 https://beehaw.org/post/980868 https://beehaw.org/post/7776438 ::: spoiler My comment on a deleted post These are my opinions, probably not shared with others and surely not the end all be all to ‘why not Rust?’ Rust is hard. Rust is slow to iterate with and compile. Here’s a highlevel overview of the things you’d need to learn to effectively understand Rust code; not even speaking to learning enough of that to write it. Rust gets touted as secure, and it is more secure than other low level languages like C/C++. That does not make it invulnerable to exploits. It gives a false sense of security to developers who think My app can’t be hacked, it’s written in Rust!!. While Rust is better at memory management and protecting against run time errors related to memory issues, that doesn’t make it 100% safe. That removes almost one class of potential exploits, not all of them, and can’t protect the developer against other developer created issues. Rust code is still written by people. People still write insecure code even in Rust. Computers are dumb as hell; but fast. People are smart as hell, but SLOW. Combine the two and you get stupid things faster; not smarter things better. Rust development is hard, hard to learn, very hard to do right Rust is not suited for a web application. Would you tell someone to go write the web application and web page in C/C++? Nope. There’s a reason for that. Not suited to it. Square peg, round hole There’s always exploits being discovered. Rust handles some things better, but uhhh… Go look at some Lemmy Rust code. Definitely still has vulnerabilities; Rust won’t save you from yourself. Something like Golang is much better choice for development of a web service that has sane API handling. By the time to add in more error handling, more type checking, more passing around of this function or that data, and more checking it on the sender and receiver side…etc. By the time you’re writing Rust safely and correctly; it is much slower than what you may be lead to believe. Go is primarily designed for speed of development (including compilation times), rather than speed of execution. Go programmers tend to value clear code over fast code. Why does a microsecond longer matter for a website? Maybe in some backend PLC land there’s a damn good use for that performance. For a networked web application; it’s a pointless metric. That is not going to be your bottleneck. Rust is hard to understand just reading it let alone determine why it’s doing something. Rust fn does_what(n: u64) -> bool { match n { 0...1 => false, _ => !(2..n).any(|d| n % d == 0), } } Golang func doesWhat(value int) bool { for i := 2; i <= int(math.Floor(float64(value)/2)); i++ { if value %i == 0 { return false } } return value > 1 } Not talking about the functionality merits of the two, but in comparing the _code itself. One of those is much easier to determine what’s going on and what it should be doing versus the other. I don’t feel like fighting my code. Programming is a tool to help. If it takes more work to use the tool to achieve your goal, it’s the wrong tool. Rust is the wrong tool for web development. :::
have you tried GoLang? It’s big for game dev as of late
And Pike wrote this passage in the very article you mentioned: (For those who object that dot files serve a purpose, I don’t dispute that but counter that it’s the files that serve the purpose, not the convention for their names. They could just as easily be in $HOME/cfg or $HOME/lib, which is what we did in Plan 9, which had no dot files. Lessons can be learned.) And guess what, there is actually such a directory on most Unix-derived OS nowadays - $XDG_DATA_HOME/$XDG_CACHE_HOME, which Go could just honour if the environment variable was set and fallback to cluttering $HOME. But no, they insist on their insular solution…
r/homeassistant r/houseplants r/ebikes r/surfing r/golang
on the other hand, and other side of the so-called “proxy” service, it’s a shame that the golang community has so far mostly acquiesced to the situation where the language’s tooling by default relies on making numerous connections to google’s servers.
Naja, die Implementierunsgsprache ist zwar auch wichtig, aber das Design von Protokollen, Datenstrukturen, Code/Concurrency und Infrastruktur ist gar nicht so sehr abhängig davon. Das ist mir schon oft in der OOP-Welt aufgefallen. Nur weil etwas in einer objektorientierten Sprache implementiert ist, hat es nicht automatisch ein gutes bzw. gut skalierbares Design. Ähnliches gilt auch für Rust oder Golang, obwohl beide natürlich spezielle Stärken haben wie memory safety und concurrency.
Lihat kiriman asli pada platform media sosial terkait.
🚨 After 2y in beta, I’ve just released v2 of “do”, the dependency injection toolkit for Golang. 💡 This major version introduces a new scope-based architecture, transient services, interface binding, improved dependency tracking, and circular dependency detection. ✨ Error handling and service naming are more consistent, and based on your feedback, a troubleshooting UI has been added. 🔍 A new LLM-ready documentation is available, featuring numerous demos you can run in 1 click Comments
Lihat kiriman asli pada platform media sosial terkait.
Lihat kiriman asli pada platform media sosial terkait.
Lihat kiriman asli pada platform media sosial terkait.
Lihat kiriman asli pada platform media sosial terkait.
Lihat kiriman asli pada platform media sosial terkait.
Lihat kiriman asli pada platform media sosial terkait.
Lihat kiriman asli pada platform media sosial terkait.
For me it has been the same except replace java with c#, I can argue that golang might soon be admitted into the “serious backend language club”. For how much crap people give java and c# they are languages you can get shit done in, fast , efficiently and stable.
Lihat kiriman asli pada platform media sosial terkait.