LISP FAMILY: OLYMPUS OF programming OR UNDERGROUND

LISP FAMILY: OLYMPUS OF PROGRAMMING OR UNDERGROUND

DEVELOPMENT
ARTEM BARMIN
Co-founder at Freshcode
ALEXANDRA LOZOVYUK
Content writer at Freshcode
Do you still think LISP has lost its fame? No way!

You are indeed partly right if you'd say that the LISP programming language is being rarely used directly today. But at the same time, developers actively use Lisp standalone implementations such as Clojure, Сommon Lisp, Scheme, and others.

You may not even suspect where you can find a Lisp code. It lurks inside big codebases and is still used by business giants.

So...


Is Lisp worth learning in 2022 and beyond?
Why are Lisp concepts gaining popularity?
What Lisp dialect is the most widely used nowadays?


Let's figure out it together in this post.

1. KEEP CALM AND read my lips lisp: ORIGINS AND ANCESTORS

  • The first language outside the von Neumann model
  • Pioneer of functional programming
  • "The Secret Weapon"
  • "An Arcane Magic"
  • The main character of Greenspun's tenth rule of programming

All these breathtaking facts and epithets are about LISP programming language, the subject of discussions with a thin layer of amusing mystery over it (often inappropriate but...)

Sure, there is no closed knowledge and the esoteric secrecy in LISP. It's just a garden of divine programmer's delight with a lot of eureka moments and profound enlightenment experience.

For God wrote in Lisp code when he filled the leaves with green.
The fractal flowers and recursive roots: the most lovely hack I've seen.
And when I ponder snowflakes, never finding two the same,
I know God likes a language with its own four-letter name.


(parody by Bob Kanefsky)
So, how it all began? What is a LISP?
Lisp (List Processing Language) was invented in 1958 by John McCarthy and was a pioneered functional programming with

  • No need for variables or assignment
  • Control via recursion and conditional expression

LISP origins are curious. John McCarthy's wanted something like "Mathematical Physics" — he called it a "Mathematical Theory of Computation". He needed a very general kind of programming language to make a user interface AI that he had thought up in the late 50s. So he needed a language that:

• Process data in lists (rather than arrays)
• Symbolic computation (rather than numeric)
• Syntax based on the lambda calculus
• S-expression
• No need for variables or assignment
• Control via recursion and conditional expressions

Ideas first introduced in Lisp included the if/then/else construct, first-class functions, recursive function calls, dynamic typing, lexical closures, interactive programming, dynamic memory allocation, garbage collection and incremental compilation.
Over time, it has spawned several dialects, including Common Lisp, Scheme, Clojure, Emacs Lisp, Racket, Hy, Arc, and others (more on this later).

2. TRY LISP BEFORE YOU DIE, or why it's worth trying

LISP has been blessed as the most powerful programming language worldwide.
Today it is the second-oldest programming language (after Fortran that is older by one year).
    Lisp is the greatest single programming language ever designed.

    Alan Kay, a computer scientist, "father of personal computers", pioneer of OOP
    You won't find Lisp on the top of the charts kind of "the most popular language worldwide". But as you know 'ad populum' arguments are mostly irrelevant.

    LISP pioneered a lot of key concepts that we find across a lot of languages today. It took its place and found a lot of apologists among developers. Even booming Python has many of the features of Lisp.

    Learning LISP is a good way to master functional programming, so it's often used as an introductory language for undergraduate students.
      LISP rocks Programming language FP
      But if everything is so great why LISP language clan isn't used universally? Why are so many still so skeptical about it? Why are many developers shying away from learning Lisp?

      Let's see what Lisp programming pros and cons are commonly mentioned by its fans and opponents.
      Functional programming paradigm
      Homoiconicity, macros and reflection
      Fast development
      Flexibility and scalability
      Consistent and elegance syntax
      'Cryptic' syntax
      Academic reputation
      Poor learnability
      It's interesting that syntax is the point of both pros and cons lists. LISP syntax turns off many people — polish (prefix) notation and reams of parentheses take some time getting used to. But, be sure, once your eyes adjust to the parens, it feels like home!

      3. LISP IN REAL LIFE: success storIES

      LISP-like languages continue to be used for software development and attract new users and businesses.

      Let's remember some of the most famous Lisp-based business cases.
      LISP programming functional
      Viaweb
      E-commerce, US
      Viaweb was one of the first big end-user apps to be written in Lisp, which had been mostly used in research labs and universities at the time. Viaweb was started in 1995 and hailed as the first application service provider.

      It was one of the first web-based e-commerce app allowing even non-tech-savvy users to build and host their own online stores using a web browser.

      In 1998, Yahoo! Inc. bought Viaweb and renamed it Yahoo! Store. This experience has been influential in Silicon Valley's entrepreneurial culture.
      ITA Software
      Travel, US
      ITA Software is a travel industry software and one of the highest-profile Common Lisp-based software companies.

      Its founder J. Wertheimer started from scratch using LISP instead of the assembly code that was commonly used before. Instead of mainframes, the team used PCs. "Lisp was the natural language to start with. We needed to write lots of code very quickly; we needed the higher-level power". The system was cost-efficient and offered much more speed and flexibility.

      In 2010 ITA was acquired by Google. It has been and is used by travel companies and airlines such as CheapTickets, Orbitz, Kayak.com, United Airlines, Alitalia, Delta Air Lines, Virgin Atlantic, and others.
      With Lisp, you would hardly be forced into some nonsense framework hell, or playing catch-up with the constant changes of your environment, or following crazy "best practices". Lisp is low-tech just like the Unix command-line or vanilla Python or JS. Contrary to the high-tech Rust, Haskell, or Java.

      Vsevolod Dyomkin, on "Lisp, the Universe and Everything"

      Grammarly
      Online service, Ukraine, US
      Grammarly is an online text editor, browser extension, and mobile app that provides:
      • grammar checking
      • spell checking
      • plagiarism detection

      Grammarly's core grammar engine is written in Common Lisp and processes more than 1000 sentences per second. This Lisp software is deployed in modern cloud infrastructure and is perfectly scalable.

      It ranks The World's Most Innovative Companies list (AI Honorees) in 2019 and 2020-21 Career-Launching Companies Lists. Well done!
      iRobot
      Robotics, US
      Roomba is the most famous autonomous robotic vacuum cleaners sold by iRobot and its native code is written in L, a downwardly compatible subset of Common Lisp.

      Roomba's sensors detect the obstacles and dirty spots and sense steep drops to keep them from falling. High-end models use a camera to map user's home, move swiftly and detect recharging bases. Roomba units can be used to perform some creative tasks via Roomba Open Interface and an embedded computer.
      ARRIVAL
      Automotive, UK
      Arrival is a British electric vehicle manufacturer of primarily lightweight commercial vehicles (a bus, a van, a large van, and a small vehicle platform). The company has built an electric vehicle platform that can be scaled to make many modifications in multiple vehicle types.

      in October 2020 Arrival had raised $118 million from BlackRock.Inc, adding to huge investment from Hyundai Motor Co and Kia Motors Corp.

      The company works with Clojure/ClojureScript language to develop a service platform for fixing technical issues and forecasted breaks, using predictive analytics algorithms.
      Why Clojure is one of the most promising and
      smart programming languages?
      In Clojure we trust

      4. LISP DYNASTY: most popular lisp dialects

      Is LISP a single language? What is the most important LISP dialect? What are the differences between them?

      Well, language is a dialect with an army and navy. And of course, Common Lisp isn't the only Lisp in town. Let's briefly highlight the Lisp family and its bastard sons.
      lisp programming

      Common LISP. Common Lisp (CLisp) is actually a product of the GNU foundation and was developed as a standardized and improved successor of Maclisp. It is the multi-paradigm, compiled, and ANSI standardized descendant of the Lisp family. It has great support for OOP, fast prototyping capabilities, a powerful macro system, and a flexible run-time environment.

      Emacs LISP. Emacs Lisp is a Lisp dialect used as a scripting language by Emacs for implementing most of the editing functionality (the remainder being written in C, as is the Lisp interpreter).

      Scheme. Scheme is a minimalist Lisp dialect consisting of a small standard core with several tools for language extension, 'an elegant and compact version of Common Lisp'. It was created during the 1970s at the MIT AI Lab. It was designed to implement exceptionally clear semantics and to vary the ways to form expressions.
        Keyboard crusaders that would otherwise pounce on anyone daring to suggest that some language is better than any other will concede that Lisp is on another level.

        Sinclair Target, software engineer, "Two-Bit History"

        Clojure. Clojure is LISP 1 with some minor modifications. It shares with Lisp the code-as-data philosophy and a powerful macro system. It copes well with processing large volumes of data, data mining/commercial-AI, and large-scale predictions.

        We at Freshcode are quite crazy about it and suggest you read our articles and Clojure researches:

        Developers' Happiness or Why Our Team Chooses Clojure

        Mythbusters: Why Are You Shouldn't Be Afraid About Clojure

        Multitude of Clojure Tools: Huge Advantage or Big Problem?


        Racket. Racket is based on the Scheme and was designed to support higher-order software contracts and safe gradual typing. It is commonly used for scripting, computer science education, and research. Racket provides an extensive macro system that enables creating embedded and DSLs.

          5. How CLOJURE IS DifferenT FROM other Lisps

          No doubt, Clojure hit the scene as a modern LISP that embraced the JVM. It was called the most joyful programming language and there are good reasons why you should start learning Clojure.

          Daniel Higginbotham, the author of "Clojure for the Brave and True", called learning Clojure a journey through the Four Labyrinths: The Forest of Tooling, The Cave of Artifacts, The Mountain of Language, and The Cloud Castle of Mindset.

          So, this journey is worth trying! Let's see what is new under this Lisp hood.
          clojure development company

          • Standing on the shoulders of giants. Clojure runs on Java Virtual Machine and JavaScript platforms as opposed to CL and Scheme with the machine-code output of a compiler
          • ClojureScript lets you compile Clojure code to JS and has all the libraries of node / npm / JS
          • Clojure borrowed OOP ideas from Common Lisp (multimethods)
          • Case sensitive
          • Most data structures are immutable
          • Dynamically rebounding. With Clojure (global) functions can be dynamically rebound (if declared dynamic) without interfering with lexical local bindings
          • There is more to collections than lists
          • Clojure sequences are not specific collections. Sequences are not necessarily concrete lists. This enables them to be lazy


          For more detailed information welcome here.
          Looking for Clojure Development Company?

          6. wrapping up

          Lisp-family languages enable programmers to write programs fast and create powerful and flexible software that is required for complex and rapidly evolving domains.

          "Lisp is dead" is one of the most commonly repeated myths. It continues to be used for development and that continues to attract new users and businesses. More telling is the growth of open-source projects and the number of communities related to Lisp-family languages.
          Look, read Gabriel or Graham or early Norvig (his Lisp programming style and anti-design-patterns essay). There is something behind their insights.

          dschiptsov on Hacker News

          We don't claim that LISP-like language is the silver bullet that everybody should be using. But it's worth trying! "This experience will make you a better programmer, even if you never actually use LISP itself a lot". (c) PG

          Freshcode team is happy to expand horizons with Clojure and its best LISP heritage. We are ready to consult you on how to benefit from Clojure software development and what solutions are suitable for your business — just fill our contact form.
          What happens after you fill this form?
          • Our representative will contact you within one business day

          • We sign an NDA to keep your ideas confidential

          • You share essential requirements with us

          • Our analysts and developers estimate the budget and timeline
          Shall we discuss your idea?
          THE MOST popular POSTS