Need advice about which tool to choose?Ask the StackShare community!
Common Lisp vs JRuby vs Markdown: What are the differences?
Introduction
When comparing Common Lisp and JRuby, it’s important to highlight their key differences to understand their unique characteristics in terms of programming languages.
Language Type: Common Lisp is a dialect of the Lisp programming language, known for its strong support for object-oriented and functional programming paradigms, while JRuby is an implementation of the Ruby programming language on the Java Virtual Machine (JVM). Common Lisp is known for its powerful macro system, dynamic typing, and extensive standard library, whereas JRuby leverages the Java ecosystem, providing access to Java libraries and tools.
Concurrency and Parallelism: Common Lisp has limited support for concurrency and parallelism out of the box, but it can be augmented with libraries like Bordeaux-Threads or CFFI for interacting with C libraries. On the other hand, JRuby benefits from the rich concurrency features of the JVM, such as the java.util.concurrent package, making it easier to implement multithreaded and parallel applications.
Syntax and Semantics: Common Lisp has a distinctive prefix notation syntax, using S-expressions, which can be off-putting to newcomers but is highly expressive and flexible once mastered. In contrast, JRuby follows the more conventional object-oriented syntax of Ruby, which is known for its readability and ease of use.
Community and Ecosystem: Common Lisp has a smaller but dedicated community, with a focus on language design and research, leading to a rich ecosystem of libraries and tools like Quicklisp for package management. JRuby, being part of the broader Ruby community, benefits from a large number of gems and active open-source projects.
Performance: Common Lisp implementations like SBCL and CCL are known for their high performance and efficient memory management, making them suitable for demanding computational tasks. JRuby, being a dynamic language running on top of the JVM, may have slightly lower performance compared to statically-typed languages, but it offers the advantage of seamless integration with existing Java codebases.
In Summary, the key differences between Common Lisp and JRuby lie in their language types, support for concurrency, syntax and semantics, community ecosystems, and performance characteristics.
Pros of Common Lisp
- Flexibility24
- High-performance22
- Comfortable: garbage collection, closures, macros, REPL17
- Stable13
- Lisp12
- Code is data8
- Can integrate with C (via CFFI)6
- Multi paradigm6
- Lisp is fun5
- Macros4
- Easy Setup4
- Parentheses3
- Open source3
- Purelly functional3
- Elegant3
- DSLs1
- Multiple values1
- CLOS/MOP1
- Clean semantics1
- Will still be relevant 100 years from now1
- Still decades ahead of almost all programming languages1
- Best programming language1
- Simple syntax1
- Powerful1
- Generic functions1
- Can implement almost any feature as a library1
- Formal specification, multiple implementations1
Pros of JRuby
- Java8
- Faster than Ruby7
- Threads3
- JVM3
- Open source2
- Supports native Ruby gems out the box2
- Garbage collection built-in2
- Built-in Testing2
- Deploy as executable jay2
- Great community1
Pros of Markdown
- Easy formatting345
- Widely adopted246
- Intuitive194
- Github integration132
- Great for note taking41
- Defacto GitHub lingo2
Sign up to add or upvote prosMake informed product decisions
Cons of Common Lisp
- Too many Parentheses4
- Standard did not evolve since 19943
- Small library ecosystem2
- No hygienic macros2
- Inadequate community infrastructure1
- Ultra-conservative community1
Cons of JRuby
Cons of Markdown
- Cannot centralise (HTML code needed)2
- Inconsistend flavours eg github, reddit, mmd etc1
- Limited syntax1
- Not suitable for longer documents1
- Non-extensible1
- No right indentation1
- No underline1
- Unable to indent tables1