Common Lisp vs Haskell

Need advice about which tool to choose?Ask the StackShare community!

Common Lisp

151
194
+ 1
116
Haskell

969
995
+ 1
491
Add tool

Common Lisp vs Haskell: What are the differences?

Common Lisp: The modern, multi-paradigm, high-performance, compiled, ANSI-standardized descendant of the long-running family of Lisp programming languages. Lisp was originally created as a practical mathematical notation for computer programs, influenced by the notation of Alonzo Church's lambda calculus. It quickly became the favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, and the self-hosting compiler. [source: wikipedia]; Haskell: An advanced purely-functional programming language. .

Common Lisp and Haskell can be categorized as "Languages" tools.

"Flexibility" is the primary reason why developers consider Common Lisp over the competitors, whereas "Purely-functional programming " was stated as the key factor in picking Haskell.

thoughtbot, DoxIQ, and Wagon are some of the popular companies that use Haskell, whereas Common Lisp is used by Real Softservice, NG Informática, and Platform Project. Haskell has a broader approval, being mentioned in 33 company stacks & 47 developers stacks; compared to Common Lisp, which is listed in 5 company stacks and 3 developer stacks.

Advice on Common Lisp and Haskell
Needs advice
on
Java
and
Common Lisp

Hello everyone! I’m interested in learning AI development, and after doing a little bit of research, I’ve learned that Common Lisp and Java are the top languages for AI. Which one should I learn? What are the differences? Are they hard to learn? If anyone can help with this, it’d be very appreciated. Thank you!

See more
Replies (4)
Václav Hodek
CEO, lead developer at Localazy · | 5 upvotes · 49.7K views
Recommends
Java

Java is far more popular and you can use other JVM-based languages such as Kotlin (I would recommend Kotlin over Java). Also, for Java, there are many more libraries, tools, etc. Also, if you learn Java, you can do almost anything - mobile (Android), web, and desktop apps - without "hacks". There is native support for all of these.

As with any programming language, it's not hard to learn the syntax but it's hard to understand the ecosystem, know libraries, best practices, etc. From that point of view, I would also prefer java - more tools, more libraries, more resources, guides, how-tos, etc.

See more
Recommends
Python

I'd recommend Python due to the fact that many AI libraries and frameworks are specifically developed for the Python ecosystem.

Java is good for general purpose programming: Web, Mobile and Desktop, however doesn't really have many native libraries supporting AI Development.

As for LISP, again it has some support,, however Python seems to be the leading edge in AI development

See more
پیمان سبزی زاده
Recommends
Python

Hi Excuse me if I wrote the text badly because I do not know much English My suggestion is to choose Python for artificial intelligence because it has both comfortable and powerful syntax. Python is currently the best language for artificial intelligence It is better to go and learn Python and then learn one of the artificial intelligence frameworks and enter it.

See more
Recommends
Java

I have not much idea about Lisp, but have been a Java professional since last 20 odd years. And I would say Java along with Python is one of the best languages for AI.

AI works on the concept of algorithms, and Java is algorithm based. Also Java has it's own AI libraries that can be reused. You have Java AI libraries for Expert Systems, Neural Networks, Natural Language Processing.

Also Java being a widely used language, brings with it certain advantages, ease of usage, debugging, has a large user base and support groups. And above all JVM helps you to create on single app, that can run on any platform. And it's features of garbage collection, simplifying work with large scale projects makes it better.

Hope this helps.

See more
Decisions about Common Lisp and Haskell
Timm Stelzer
Software Engineer at Flexperto GmbH · | 18 upvotes · 234.8K views

We have a lot of experience in JavaScript, writing our services in NodeJS allows developers to transition to the back end without any friction, without having to learn a new language. There is also the option to write services in TypeScript, which adds an expressive type layer. The semi-shared ecosystem between front and back end is nice as well, though specifically NodeJS libraries sometimes suffer in quality, compared to other major languages.

As for why we didn't pick the other languages, most of it comes down to "personal preference" and historically grown code bases, but let's do some post-hoc deduction:

Go is a practical choice, reasonably easy to learn, but until we find performance issues with our NodeJS stack, there is simply no reason to switch. The benefits of using NodeJS so far outweigh those of picking Go. This might change in the future.

PHP is a language we're still using in big parts of our system, and are still sometimes writing new code in. Modern PHP has fixed some of its issues, and probably has the fastest development cycle time, but it suffers around modelling complex asynchronous tasks, and (on a personal note) lack of support for writing in a functional style.

We don't use Python, Elixir or Ruby, mostly because of personal preference and for historic reasons.

Rust, though I personally love and use it in my projects, would require us to specifically hire for that, as the learning curve is quite steep. Its web ecosystem is OK by now (see https://www.arewewebyet.org/), but in my opinion, it is still no where near that of the other web languages. In other words, we are not willing to pay the price for playing this innovation card.

Haskell, as with Rust, I personally adore, but is simply too esoteric for us. There are problem domains where it shines, ours is not one of them.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Common Lisp
Pros of Haskell
  • 23
    Flexibility
  • 18
    High-performance
  • 16
    Comfortable: garbage collection, closures, macros, REPL
  • 12
    Stable
  • 12
    Lisp
  • 6
    Can integrate with C (via CFFI)
  • 6
    Code is data
  • 5
    Multi paradigm
  • 4
    Easy Setup
  • 4
    Lisp is fun
  • 3
    Macros
  • 2
    Elegant
  • 2
    Open source
  • 2
    Purelly functional
  • 1
    Parentheses
  • 85
    Purely-functional programming
  • 64
    Statically typed
  • 57
    Type-safe
  • 38
    Great community
  • 38
    Open source
  • 29
    Built-in concurrency
  • 29
    Composable
  • 28
    Built-in parallelism
  • 22
    Referentially transparent
  • 19
    Generics
  • 13
    Type inference
  • 13
    Intellectual satisfaction
  • 11
    If it compiles, it's correct
  • 7
    Monads
  • 7
    Flexible
  • 4
    Great type system
  • 4
    Proposition testing with QuickCheck
  • 3
    One of the most powerful languages *(see blub paradox)*
  • 2
    Kind system
  • 2
    Reliable
  • 2
    Highly expressive, type-safe, fast development time
  • 2
    Type classes
  • 2
    Better type-safe than sorry
  • 2
    Pattern matching and completeness checking
  • 2
    Purely-functional Programming
  • 2
    Best in class thinking tool
  • 2
    Great maintainability of the code
  • 2
    Fun
  • 0
    Orthogonality
  • 0
    Predictable

Sign up to add or upvote prosMake informed product decisions

Cons of Common Lisp
Cons of Haskell
  • 4
    Too many Parentheses
  • 1
    No hygienic macros
  • 1
    Standard did not evolve since 1994
  • 1
    Small library ecosystem
  • 7
    Too much distraction in language extensions
  • 6
    Error messages can be very confusing
  • 4
    Libraries have poor documentation
  • 3
    No best practices
  • 3
    No good ABI
  • 2
    Sometimes performance is unpredictable
  • 2
    Poor packaging for apps written in it for Linux distros
  • 1
    Slow compilation

Sign up to add or upvote consMake informed product decisions

What is Common Lisp?

Lisp was originally created as a practical mathematical notation for computer programs, influenced by the notation of Alonzo Church's lambda calculus. It quickly became the favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, and the self-hosting compiler. [source: wikipedia]

What is Haskell?

It is a general purpose language that can be used in any domain and use case, it is ideally suited for proprietary business logic and data analysis, fast prototyping and enhancing existing software environments with correct code, performance and scalability.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Common Lisp?
What companies use Haskell?
See which teams inside your own company are using Common Lisp or Haskell.
Sign up for Private StackShareLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Common Lisp?
What tools integrate with Haskell?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to Common Lisp and Haskell?
Clojure
Clojure is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
Racket
It is a general-purpose, multi-paradigm programming language based on the Scheme dialect of Lisp. It is designed to be a platform for programming language design and implementation. It is also used for scripting, computer science education, and research.
Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
C
See all alternatives