4 ms·
Thanks for the additional details on these. I experimented only very little with Erlang when I was setting up an XMPP server but the syntax was so confusing. I
by mattkrea 13y ago
Thanks for the additional details on these.
I experimented only very little with Erlang when I was setting up an XMPP server but the syntax was so confusing. I could get over it eventually as I imagine everyone faces that.
- rjsamson 13y agoIf you're interested in erlang but intimidated by the syntax, check out Elixir - it runs on the erlang vm, you have access to all erlang libraries, and you'll get exposure to erlang patterns and semantics (and OTP) with a much friendlier syntax. http://elixir-lang.org/ http://elixir-lang.org/
- jerf 13y agoErlang's syntax is actively klunky. It's not a characteristic of functional languages, it's Erlang. Functional languages will introduce you to new concepts and that will also introduce new syntax (such as pattern matching), so I'm not promising smooth sailing, but that is not a universal problem. In fact, Haskell's syntax is quite beautiful and clear. If Haskell's syntax is mind-expanding, it is mostly in how much syntax other languages have, yet to seemingly so little effect at times, when a language with a great deal less syntax like Haskell turns out to have so much nicer ways of saying certain things. But let me echo in general that even if you don't choose Haskell, you need to get out of the Algol language arena. From where I sit, you basically said you are familiar with about 1.5 distinct languages. C would force you into manual memory management, which is a real change, and I'd bump that number a bit, but still not a full language. Ruby and Python are basically redundant between VB and Node and I think I'd add 0.0 total. Erlang is, arguably, 70-80% redundant to Go; Erlang is a bad functional language so I wouldn't say it checks that box, and while there's still some nice aspects of the Erlang language as compared to Go, you've still gotten quite a bit of the Erlang value out of Go. SICP is another excellent suggestion. You won't find it quite as mindblowing as someone coming solely from C, but there's still some great stuff in there for you, which will translate quite nicely into some of those languages you already know.
- bbng 13y agoDisclosure: I am a Go contributor and my day job consists in writing and maintaining Erlang systems. I am not biased towards any of them, on the contrary, I really love both languages. Do you have any arguments about Erlang’s syntax being “actively” clunky, whatever that “actively” means? Or is it just your personal opinion? (This comes immediately to mind: http://rvirding.blogspot.se/2014/01/erlang-syntax-again-and-again-and-again.html http://rvirding.blogspot.se/2014/01/erlang-syntax-again-and-...) Another claim that you make without baking is that Erlang is 70-80% redundant “to” Go. Care to elaborate? How have you measured that number? Let’s go to the next point where you claim that Erlang is a “bad” functional language. What does that mean? “Bad”? What is that? Maybe you mean that it isn’t a pure functional programming language? That’s not a bad thing, nor good, but it’s not bad. Erlang has never aimed to be a pure functional programming language, it aimed at solving a very specific set of problems. Erlang is a functional programming language, and its simplicity, the minimal syntax that you can pick up in a day, actually makes it a really good choice for introducing functional programming to someone who has never had contact with it. Let me tell you something about Erlang and Go. Contrary to what you have read in the news, Erlang and Go are totally different. As a user of both languages I have no idea what you mean when you say “there's still some nice aspects of the Erlang language as compared to Go, you've still gotten quite a bit of the Erlang value out of Go”. What? What aspects/value? The only thing that these two languages may have in common is the fact that they both offer concurrency primitives as first-class language citizens. Even with that, the concurrency models are very different. Only someone without experience in the languages would say that the concurrency in Erlang is like the one in Go. On the other hand, none of the aspects that make Erlang an amazing language for its niche aren't present in Go. In Go you can mutate state, Erlang is immutable. In Go you use channels to communicate between processes by sending data, in Erlang you send messages. Erlang processes are garbage collected individually which makes it a perfect fit for soft real time systems, Go goroutines are not. Erlang has primitives for building distributed systems, you can spawn processes on remote nodes just as you would spawn processes locally, Go does not have this either. In Erlang you can reload code while the system is still running, in Go you cannot do that. I can go on and on. So, yeah, don’t trust the news, see for yourself before you “advertise” stuff that you have only read about in the news.