11 ms·
Can you explain please why is that ? btw I'm coming from a JS/Node background, but I worked with C and C++ before (mainly school projects, nothing serious).
by hamza99 8y ago
Can you explain please why is that ? btw I'm coming from a JS/Node background, but I worked with C and C++ before (mainly school projects, nothing serious).
- kristoff_it 8y agoMaybe I can try to chime in: Go is not an OOP language, you get the dot notation on structs and that's pretty much it. Rust is all about advanced OOP and very fussy static type checking. That said, IMHO, Go to me feels more like a replacement for Node more than a replacement for C.
- tomjakubowski 8y agoRust and OOP are no more related than Go and OOP. What "advanced" OOP features of Rust are you talking about?
- kristoff_it 8y agoThen I must have gotten the wrong idea. I saw a few examples of Rust code with a good amount of generics sprinkled in and given what (seemed to me) the parent comment was suggesting, I assumed that was the case. That said, I remember reading in the docs about many usually OOP related concepts like RAII, boxing/unboxing, operator overloading, the aforementioned generics. You mostly don't care about these things in Go. Can we agree that Rust is a bit more OOP oriented than Go at least?
- anaphylactic 8y agoNo! - Parametric polymorpism isn't OOP, pretty much every halfway-decent language has it (including Haskell, which is as functional as they come). - Boxing in Rust isn't what you think it is - it's just heap allocation (more like malloc than the monstrosity that is boxing in Java). - Again, operator overloading isn't OOP either. Seriously, is it that hard to believe that "you get to use + and - with your own types" is an expectation independent of any paradigm? > I must have gotten the wrong idea. Yes. Go and Rust are both very far from what most people would consider "OOP".
- kristoff_it 8y agoYou make it sound like OOP is an inherently bad thing, and OOP is not mutually esclusive with FP as you seem to imply with your Haskell reference. Funcional can be considered an alternative vs imperative and declarative, and usually languages are a mix of the three. And any of these 3 style can support OOP. BTW, plenty of half-decent languages don't have generics.
- rs86 8y agoObjects are parametrizations of functions that possibly close over variables. Having types with functions defined in types with dot notation is a different thing.
- frfl 8y agoRust isn't about advanced OOP at all. It is heavily inspired by functional programming.
- rs86 8y agoNo offense but your commentary is on the verge of being just misleading. Rust is not OOP and go is definitely not a replacement for node.
- oneweekwonder 8y ago> That said, IMHO, Go to me feels more like a replacement for Node more than a replacement for C. Except the first release of node was May 2009 and the first announcement of golang November 2009. Node was also first showcased in November 2009. So for me golang cannot be seen as a replacement for node just from chronological order. Also their design goals at the time seems very different.
- kristoff_it 8y agoI don't mean to imply that it was designed with that goal in mind (for all I know, the date you are quoting still leave ample opportunities for "cross-impollination"), but for day-to-day usage, every service that I would have written in Node in the past, I'm now writing in Go. That, at least for me, feels not as much the "obvious" choice for C programs.
- dvainsencher 8y agoHave you ever used Rust? it is not object oriented at all. It uses Traits (kinda like interfaces) for generic programming. If you don't know, please don't muddy the waters.