Here’s the Deal
Slant is powered by a community that helps you make informed decisions. Tell us what you’re passionate about to get your personalized feed and help others.
Clojure mixes all sorts of data structures into common syntax, including (but not limited to) vectors, hash tables, and sets. This breaks up the uniformity of Lisp and suddenly introduces a lot of complexity to deal with these other data structures. Now, Clojure has kind of addressed this problem and has made functions that deal with data structures in an agnostic way, but the lack of uniformity is still clear as day and it makes the language more complex at a fundamental level than other Lisps. See More
Simplicity is one of the pillars on which Clojure is built. Clojure tries to solve many problems in software development as simply as possible. Instead of building complex interfaces, objects or factories, it uses immutability and simple data structures. See More
Clojure neatly sidesteps the Lisp-1 vs Lisp-2 argument. Functions in Clojure don't need a separate namespace like Common Lisp, so you can avoid funcalls when using higher-order functions. This makes it feel like a Lisp-1. Clojure's syntax quote automatically includes the current namespace to help avoid collisions in macros, giving you the benefits of a Lisp-2. See More
Clojure's syntax/API are designed to interact well with the environment of a host language, meaning it's pretty easy to write code which runs without modification on all three platforms. Plus, you can directly interact with code on the host language, and switch out your code based on which host language you use. See More
Clojure programmers are highly encouraged to use immutable data in their code. Therefore, most data will be immutable by default. State change is handled by functions (for transformations) and atoms (an abstraction that encapsulates the idea of some entity having an identity). See More
There are a lot of Common Lisp implementations out there (CLisp, SBCL, CCL, just to name a few). Some implementations are free and open source, others are proprietary and cost quite a bit. Though none of them follow 100% the Common Lisp standard for example, SBCL fails about 50 official ANSI Common Lisp conformance tests. Having so many implementations may make it hard to develop new libraries because you would have to test it for several different implementations. See More
CL programming paradigm is to "teach" your program what to do by defining functions, variables and classes (this way it is similar to Smalltalk). As a benefit, the great debugger comes for free: the behavior of a function can be tested, debugged and altered on the fly, no need to start the program or recompile the whole program. Debugger also comes with the inspector that lets one to see and alter the components of objects and variables. Overall, debugging options include: tracing, debugging on error, restarts, inspecting variables or results of expressions, including altering their contents, macro-expansion debugging. See More
Common Lisp is arguably the most useful Lisp to "get things done". One of the main reasons of this is the large community behind it and the large number of libraries and frameworks already built to solve virtually any problem you may have when writing programs to be used by actual users. See More
Simple integration with C code, mature OO library (GOOPS), support for custom languages. See More
After some time its technical elegance starts to really shine. See More
Arne Babenhauserheide's Experience
Scheme syntax is extremely regular and easy to pick up. A formal specification of the syntax fits onto just a few pages; it can be introduced informally in a paragraph or two. Students are not distracted by remembering how to write if statements or loops or even operator precedence because every syntactic follows the same pattern. Ultimately, everything looks something like this: (func a b c) This includes not only user-defined functions but even control flow: (if cond then-clause else-clause) or even primitive operations like define and set: (define foo 10) (set! foo 11) This means that nothing really has special syntactic treatment in the language. There are essentially no weird edge-cases to memorize, and different concepts are given a more equal weight in the language. (Unlike Algol-like languages which tend to given undue weight to loops and assignment statements, for example.) See More
There is a set of very strong textbooks introducing CS and programming using Scheme. These books are available for free online. The most famous example--and one of the most famous CS books full stop--is Structure and Interpretation of Computer Programs usually known as SICP. This book introduces fundamental ideas in computer science and covers an incredible amount of material quickly and clearly without requiring any prior knowledge. See More
Scheme has far less built into the language itself, helping students see that things like OOP are not magical: they are just patterns for organizing code. Everything in Scheme is built up from a very small set of primitives which compose in a natural and intuitive fashion. Having a language that does not accord many things special status helps keep students open minded. This will help students later go between different languages and paradigms from procedural to object-oriented to functional. See More
While trying to be familiar, Julia's non-adherence to Lisp syntax makes certain constructs a bit ambiguous, most notably, the assignment ("="). Documentation has to include the section to clarify when and under what circumstances a new variable will be declared (and if it is going to have a local extent or a global extent) or if a global variable will be mutated. Compare with LET and SETF (or SET! in Scheme) forms in Common Lisp. See More
Currently, it is 0.5 version, with upcoming 0.6 being a release candidate for 1.0. Language features change quite considerably between the releases, which may break some of the libraries. This is likely to change once 1.0 version is out. See More
Help millions of people make better decisions.
Each month, over 2.8 million people use Slant to find the best products and share their knowledge. Pick the tags you’re passionate about to get a personalized feed and begin contributing your knowledge.