debacleWhich is the best XMPP library for golang? No abandonware, please. (cross-question with xmpp:firstname.lastname@example.org?join)
jonas’I use mellium.im/xmpp
debaclejonas’ anything good or bad to say about it? :-)
debacleis it like aioxmpp, but in golang?
debacleI also found Jackal, the XMPP server written in Go, which does not seem to use an external XMPP library. Interesting.
jonas’debacle, it was the least bad I could find
jonas’but they’re all incomplete and rather low-level
Zashdebacle: Got some project or looking for XMPP things to package?
debacleZash I start to get interested in golang. It looks like a pretty boring and not so well-designed language, but I need something to kill Python on a low-RAM system. Development must be easy and cheap, like Python, not difficult and expensive like Rust or Erlang. Maybe I should consider Lua :-)
jonas’I don’t think you’ll achieve a low memory footprint with golang
debaclejonas’ compared to Python?
ZashGo uses GC right?
jonas’but depending on what you’re doing you won’t be happy with the golang libraries I’ve found so far because of lack of features
jonas’but also scoping magic to avoid the GC if possible
jonas’main concern would be static linking here, footprint-wise
Ge0rGjust use node.js instead? :D
debaclejonas’ we would probably use gccgo with dynamic linking. Anyway, as long as libraries are used only once in the system, it doesn't matter, right?
debaclestatic linking is such a bad idea, that's probably the worst aspect of Go
jonas’debacle, yeah, but remember that vanilla go brings the go equivalent of libc and stuff
jonas’that’s stuff you’d normally save
Ge0rGdynamic linking is the benefit of the established frameworks
debaclejonas’ the Python ecosystem is very advanced and I feel like a spoiled child when I look at other ecosystems
Ge0rG only that node.js is a chemical waste dump, not an ecosystem
Ge0rGdebacle: you'd be surprised about who lives in chemical waste dumps.
debaclejonas’ sure, the standard libary itself might be huge
jonas’debacle, I agree
jonas’(although I do like myself some C++)
debaclegolang has been invented out of hate towards C++ :-)
debacleGe0rG JS developers maybe? (jc isn't around, is he?)
jonas’and I recently ported a golang thing I wrote to C++ out of annoyance with golang, because as you said: "pretty boring and not so well-designed language"
debaclejonas’ it's an outsider view of course. I did not even compile my helloworld yet :-)
ZashGo seems like Java levels of Meh to me.
jonas’debacle, I did write some golang code: https://github.com/horazont/dragonstash-golang https://github.com/horazont/prometheus-xmpp-blackbox-exporter
debacleah, yes, prometheus, one of the golang poster children
zinid> not difficult and expensive like Rust or Erlang
This is called education - you learn new and sometimes difficult things in order to be more productive later
KevIt's not wrong, though. Both of those are more expensive to learn than most languages.
Kev(Because they try to do something that most languages don't, of course)
ZashJava and Go must be the cheapest then?
KevJava's probably about the pinacle of cheap to learn, yeah.
zinidI don't find Java simple at all
zinidErlang is much more simpler, back then I tried to learn both and ended up with Erlang, at least for my task
ZashWho said anything about simple?
zinidcheap to learn, okay
pep.What does that mean
zinidpep.: less time spent learning?
zinidat least as I understand it
pep.Also, that all depends with what you started anyway. I started with OCaml, it took me quite some time to get into python
ZashProbably something something time from being hired to being productive
zinidpep.: I agree, after 5 years of math in the university functional languages are closer to me
debaclezinid What I meant: I assume, that Erlang and Rust are better™ than Go, but companies care about $/h and time to market. Go has cheaper, faster devs and is still good enough for many projects.
ziniddebacle: I disagree, but whatever
ZashAs in, you can grab kids from school and have them typing Go or Java in no time
pep.Zash, because they've already gone through the process of learning Java, and that took them all their school years?
guus.der.kinderenIs OOP even the go-to paradigm in schools these days?
guus.der.kinderen(small pun intended)
guus.der.kinderenPeople that are either still in school or are familiar with courses?
MattJMulti-paradigm languages are where it's at
pep.OCaml :-° (even though object is meh in it, and even if imperative is possible it's definitely not for that)
jonas’I got punched in the face with waterfall-model-OOP development as late as 2013 in university, soooo...
guus.der.kinderen(that's almost 7 years ago)
jonas’guus.der.kinderen, thanks for reminding me
jonas’also, I’m pretty sure that they still do the same thing t here
jonas’they are very resistant to change
jonas’and allegedly have some ties to the proprietary UML stack we were forced to use for every step of the implementation.
guus.der.kinderenThat, I recognize
guus.der.kinderenwe had to follow design paradigm that was developed by one of the professors.
jonas’... when they wanted our group (there were groups to implement various software projects) to give a presentation about the thing we did the following year, we politely declined via email with a picture of Tux attached.
moparisthebesta Norwegian I know that's still in University is learning primarily Java
jonas’oh, yeah, of course that was all java
jonas’the language of waterfall-oop
jonas’the professor was also very proud of being at companies for $reasons aaaaall the time. so good.
ZashShould I be glad I don't know what waterfall is?
pep.You probably know what waterfall is
jonas’what pep. says, and if you don’t, yes
jonas’waterfall is when you strictly separate phases like "design", "implementation", "testing" in your ... product ... development ... lifecycle.
jonas’don’t pin me on the terms
jonas’I tried to flush this out of my brain like a waterfall.
ZashOpposite of agile? Or scrum? Whatever those are?
jonas’yeah, pretty much that
pep.Zash, yeah that
jonas’I only survived that course with mpv --loop=inf The\ Big\ Lebowski.medium
pep.Basically something without a feedback loop
pep.(or too late)
debaclejonas’ you are probably right: golang is not a solution to safe RAM. libgo.so has 37 MiB on our systems. libc.so is 1.3 for comparison. OTOH, a statically linked hello.go executable has "only" 5 MiB. Write in C, write in C, golang's not the answer, write in C.
moparisthebestas far as I'm concerned C++ is like Cobol now, only reason to write it is maintenence of ancient bad systems, no reason to prefer it over Rust if there is an option
jonas’moparisthebest, library support is a good reason to use C++
moparisthebestthat implies using C++ libraries is good :P
jonas’if there are no rust implementations, sure
jonas’there’s still no proper fuse thing for rust for example
jonas’(and then there’s of course still the extremely toxic rust community.)
zinidjonas’, why toxic? they are funny, Rust Strike Force
zinidthere is only Rust exists, resistance is futile
moparisthebesttoxic? I had the opposite impression, that they are too hand-holdy
jonas’moparisthebest, they’re just like the matrix folks, whenever there’s even a slight mention of a non-rust thing you have the rust brigade up and running and yelling "RIIR RIIR!!!"
jonas’this makes it seem as if the language coudln’t surive without the RIIR brigade...
moparisthebestah ok you mean the rust advocates, yea that's fair, I meant more the "mission statement" or whatever https://www.rust-lang.org/ "A language empowering everyone
to build reliable and efficient software." SO EMPOWERING
jonas’I don’t care about extra fluff or plush
jonas’seems like they need it.
moparisthebestI just mean, personally, I've been through my "hope this runs correctly" (python/js) phase, been through the "hope this doesn't segfault" (C++) phase, and Rust is far far better, again personally :)
moparisthebestI find it actually ends up being faster from "start coding" to "runs and works" than other langs
zinidwhat languages did you try?
zinidyou can try any type-safe language with GC, this will be much more productive than fighting with borrowing or weak refs in cyclic structures
moparisthebestit actually isn't though, my day-job language is Java
zinidhell, yeah, java is safe as fuck, with NPE 😉
moparisthebestthat's another point for Rust :) all the other mentioned langs also have NPE right?
zinidI don't remember what I mentioned 😉
zinidbut ocaml or haskell don't have NPEs 😉
zinidRust was initially written in OCaml by the way