-
debacle
Which is the best XMPP library for golang? No abandonware, please. (cross-question with xmpp:golang@conference.samwhited.com?join)
-
jonas’
I use mellium.im/xmpp
-
debacle
jonas’ anything good or bad to say about it? :-)
-
debacle
is it like aioxmpp, but in golang?
-
debacle
I 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
-
Zash
debacle: Got some project or looking for XMPP things to package?
-
debacle
Zash 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 :-)
-
debacle
jonas’ thnx!
-
jonas’
I don’t think you’ll achieve a low memory footprint with golang
-
debacle
jonas’ compared to Python?
-
jonas’
not sure
-
Zash
Go 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’
it does
-
jonas’
but also scoping magic to avoid the GC if possible
-
jonas’
main concern would be static linking here, footprint-wise
-
Ge0rG
just use node.js instead? :D
-
debacle
jonas’ 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?
-
debacle
static 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
-
Ge0rG
dynamic linking is the benefit of the established frameworks
-
debacle
jonas’ 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
-
Ge0rG
debacle: you'd be surprised about who lives in chemical waste dumps.
-
debacle
jonas’ sure, the standard libary itself might be huge
-
jonas’
debacle, I agree
-
jonas’
(although I do like myself some C++)
-
debacle
golang has been invented out of hate towards C++ :-)
-
debacle
Ge0rG 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"
-
debacle
jonas’ it's an outsider view of course. I did not even compile my helloworld yet :-)
-
Zash
Go 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
-
debacle
ah, 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
-
Kev
It'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)
-
Zash
Java and Go must be the cheapest then?
-
Kev
Java's probably about the pinacle of cheap to learn, yeah.
-
zinid
I don't find Java simple at all
-
zinid
Erlang is much more simpler, back then I tried to learn both and ended up with Erlang, at least for my task
-
Zash
Who said anything about simple?
-
zinid
cheap to learn, okay
-
pep.
What does that mean
-
zinid
pep.: less time spent learning?
-
zinid
at 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
-
Zash
Probably something something time from being hired to being productive
-
zinid
pep.: I agree, after 5 years of math in the university functional languages are closer to me
-
debacle
zinid 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.
-
zinid
debacle: I disagree, but whatever
-
Zash
As 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.kinderen
Is OOP even the go-to paradigm in schools these days?
-
guus.der.kinderen
(small pun intended)
-
Zash
Who knows?
-
guus.der.kinderen
People that are either still in school or are familiar with courses?
-
MattJ
Multi-paradigm languages are where it's at
-
Zash
Lua?!
-
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.kinderen
hah!
-
guus.der.kinderen
That, I recognize
-
guus.der.kinderen
we 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.
-
jonas’
fun times.
-
moparisthebest
a 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.
-
Zash
Should 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.
-
Zash
Opposite 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)
-
debacle
jonas’ 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.
-
rion
C++? =)
-
moparisthebest
as 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++
-
moparisthebest
that 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.)
-
zinid
jonas’, why toxic? they are funny, Rust Strike Force
-
zinid
there is only Rust exists, resistance is futile
-
moparisthebest
toxic? 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’
without reason
-
jonas’
this makes it seem as if the language coudln’t surive without the RIIR brigade...
-
moparisthebest
ah 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.
-
moparisthebest
I 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 :)
-
moparisthebest
I find it actually ends up being faster from "start coding" to "runs and works" than other langs
-
zinid
what languages did you try?
-
zinid
you can try any type-safe language with GC, this will be much more productive than fighting with borrowing or weak refs in cyclic structures
-
moparisthebest
it actually isn't though, my day-job language is Java
-
zinid
hell, yeah, java is safe as fuck, with NPE 😉
-
moparisthebest
that's another point for Rust :) all the other mentioned langs also have NPE right?
-
zinid
I don't remember what I mentioned 😉
-
zinid
but ocaml or haskell don't have NPEs 😉
-
zinid
Rust was initially written in OCaml by the way
-
jonas’
relevant: https://www.youtube.com/watch?v=ENqiuLWZNQg&t=1m11s
-
zinid
jonas’, LOL
-
pep.
:D
-
pep.
I'm glad NPE exists, otherwise I would have never listened to this
-
moparisthebest
> fuzzing UTF-8 strings pro-tip: Ⱥ (U+023A) and Ⱦ (U+023E) are the *only* code points to increase in length (2 to 3 bytes) when lowercased.
-
moparisthebest
totally not a dumpster fire
-
Zash
Eh, so?
-
Zash
a > A
-
Zash
deal with it
-
moparisthebest
like if some code naively allocated the same number of bytes to write a lowercase version of a string into, or even tried to do it in-place
-
moparisthebest
there is bound to be C or C++ out there that does this
-
Zash
bad code gonna be bad