It depends who you ask. I'm also a beginner in lisp. Wrote some hobby projects in it but it felt like swimming against the current.
lisp appeared a long time ago, when non lisp languages were really primitive. So a lot of the arguments you might read on the net might be outdated (comparing it to C or FORTRAN).
Ruby and Python give you a lot of power that a lisp language has. I guess the only thing that lisp has, which the other languages don't, is the "macro". Which (in my opinion) is like a lisp "program" running before your lisp get compiled and changes the code. So several lines can be expanded to lots of dynamically generated code.
C guys will say they have #define & such, but this is a "program" with most of lisp syntax not just some primitive ifdefs. So you can do a lot of advanced stuff.
On the other side, python & ruby have a lot more libraries. I see that common lisp has picked up steam again, with stuff like quicklisp which can be seen as "ruby gem".
So to sum it up, lisp is a powerful language, it has constructs which are still not available in other languages but you don't get the free stuff you would have in big communities as python or ruby.
Actually theres soo much in common lisp besides macros that i miss in addition to them when i have to work with python, like CLOS, the condition system, format, the lisp reader/printer(using JSON is only half a solution), good performance, and with paredit mode for emacs i can edit code a lot easier than with python.
Also your summary, python and ruby's libraries are not free, because you have to use python or ruby instead of common lisp. That is a cost of some kind, a trade off, is it not?
Lisp has a lot more than just macros (also you might want to learn more about macros; your definition is a little off).
You also get CLOS; which is huge. Multi-methods. Generic functions. MOP. OO programming without generic functions is a huge pain for me now. It's a completely different world-view that lacks very artificial design patterns. You don't need a lot of the GoF design patterns because they're completely abstracted out by the language of CLOS.
You get conditions and restarts. I hate exceptions! You lose the entire stack and state of your application. It is next to impossible to recover from that and restart the failed computation using exceptions. You could emulate this in other languages... but it's already a part of the Common Lisp language itself. No code to write or libraries to import to make it happen.
And only tangentially related to the CL language itself, SLIME is another reason why programming with Lisp is a lot of fun.
So to sum it up, lisp is a powerful language, it has constructs which are still not available in other languages but you don't get the free stuff you would have in big communities as python or ruby.
lisp appeared a long time ago, when non lisp languages were really primitive. So a lot of the arguments you might read on the net might be outdated (comparing it to C or FORTRAN).
Ruby and Python give you a lot of power that a lisp language has. I guess the only thing that lisp has, which the other languages don't, is the "macro". Which (in my opinion) is like a lisp "program" running before your lisp get compiled and changes the code. So several lines can be expanded to lots of dynamically generated code.
C guys will say they have #define & such, but this is a "program" with most of lisp syntax not just some primitive ifdefs. So you can do a lot of advanced stuff.
On the other side, python & ruby have a lot more libraries. I see that common lisp has picked up steam again, with stuff like quicklisp which can be seen as "ruby gem".
So to sum it up, lisp is a powerful language, it has constructs which are still not available in other languages but you don't get the free stuff you would have in big communities as python or ruby.