Page 1 of 1

Lisp in erlang or erlang in lisp?

Posted: Sat Mar 22, 2014 4:53 am
by justinas
Hi,

I have asked a question on stackoverflow, but it seems that they put my question on hold because it might be opionion based rather than facts based.

Putting my question in here so you wouldn't need to open that link.

googling around I found that Lisp SBCL is faster than Erlang HiPE (source), though I read that Erlang is way more memory efficient with lots of multiple processes. So, would lisp (for example joxa, though it's DSL, so maybe it's a stupid question..) on Erlang VM would be faster than erlang itself, or it's smarter in performance point of view to have Erlang features in/on Lisp?

I am asking because I'd like to try/learn to make a web application and or website with a purpose for high usage (for example facebook & whatsapp used Erlang to deal with high usages) on relatively as low hardware as possible (OT: I simply dislike bloat - in example when hardware gets faster and faster but software developers often don't optimize things because hardware is getting faster and then you don't notice the technological progress because as it was lagging 10 years ago it is still lagging now on 100 or 1000 times faster hardware. This of course doesn't apply to everything), but without scarifying the features or modern/popular thins of today (like the guys from suckless sometimes do).

I found that on Erlang side things are a bit more progressive and more evolved than on Lisp side, for example things like Chicago Boss looks promising and attractive. And as they state that you could run things or relatively low hardware, but how it would be with some server-side code execution time, when you need to compute something for the user and you want to do that as fast as possible, so he [user] would feel comfortable with your website or application. So looking at first link - some benchmarks it seems that it would be better to use Lisp, because its faster compared to Erlang HiPE, but on the other hand you want that features of Erlang VM which allows of easy resource sharing and scales to a lot when running, for example 10 000 instances of the same web application..

Any thoughts on this?

Sincerely,
Justinas.

Re: Lisp in erlang or erlang in lisp?

Posted: Sat Mar 22, 2014 4:03 pm
by nuntius
All languages can be made slow, and many languages can be made fast. Algorithm selection, overall structure, attention to general efficiency and special-case optimization (both CPU and memory) make a much bigger difference. Both fast and slow programs can be made in either C or CL.

It sounds like you want to write part of a web server. My recommendation is to start by finding existing software that is close to meeting your needs. Then investigate how it is written. Only then should you start planning how to improve or extend it.

It is fun to start projects from scratch, and this can be a good way to try out new ideas. However, it is almost always more valuable to contribute to an existing software community. Most software has matured enough that "lone wolf" projects can barely compete in terms of features, documentation, stability, and the other things that are important to users.

A happy user base is the end, software development is the means, and language selection is just one piece in that puzzle.

I would encourage you to gain more experience with CL or another Lisp. Lisp has many powerful features that are rare in other languages, and these features will teach you new techniques if nothing else. Erlang also has some unique strengths. That said, no language is a silver bullet. There are many other factors to consider.