Lisp is a beautiful language (or, to be more precise, set of languages). It is absolutely essential to a computer science education. It also gets unwieldy when programs get complex.
Lispers
31–40 of 110 posts
Re: Lispers
#32Earlier quoted context omitted.
> Many of the quotes makes me question the authors experience Do you have enough experience that you dare to judge him? > Compared to modern languages (say, Haskell), not so much. I disagree. I was in a lot of languages, in all different programming styles. Lisp still is the language with a maximum of freedom of programming, probably also regarding productivity. Only Nim comes close. Haskell may look elegant at the s…
> in most cases Haskell takes a lot more time for development than other languages - and takes negligible maintenance/refactoring time compared to Lisp/Python/C++. Maintenance timesink might easily outweigh the gain in development time. That's the promise of strong type systems: preventing bugs from happening before you have to debug them in production and it does not come absolutely free.
Re: Lispers
#33Earlier quoted context omitted.
> in most cases Haskell takes a lot more time for development than other languages - and takes negligible maintenance/refactoring time compared to Lisp/Python/C++. Maintenance timesink might easily outweigh the gain in development time. That's the promise of strong type systems: preventing bugs from happening before you have to debug them in production and it does not come absolutely free.
In Lisp you can change the programs while they are running, in ways not possible in Haskell. The time Haskell needs to recompile the code to machine code, I have fixed the Lisp bug already.
Re: Lispers
#34The home page looks like a tombstone of Common Lisp with a bunch of epitaphs on it. On the other hand, the spirit of Lisp has successfully taken over the world. The modern Lisp is called JavaScript. I am perfectly aware of all the differences between Lisp and JavaScript and of the other languages that have influenced JavaScript (Self, Perl, Lua), but think of this: what made Lisp so great in the past? - automatic mem…
Generally I agree that Javascript is similar, in many ways. But worse. Worse can be better, but we know that already. ;-)
Re: Lispers
#35What are some examples of open source Lisp projects and codebases whose features and elegance could have only been executed as well as they are in the language, or are just great codebases in general to study?
Axiom is a FOSS computer algebra system implemented in about 1.2 million lines of Common Lisp.
Axiom relies heavily on the ability to dynamically define and re-define functions. It relies heavily on the macro facility. It presents a domain specific language (called SPAD) which implements mathematically friendly syntax and semantics. (https://github.com/daly/axiom)
Re: Lispers
#36The home page looks like a tombstone of Common Lisp with a bunch of epitaphs on it. On the other hand, the spirit of Lisp has successfully taken over the world. The modern Lisp is called JavaScript. I am perfectly aware of all the differences between Lisp and JavaScript and of the other languages that have influenced JavaScript (Self, Perl, Lua), but think of this: what made Lisp so great in the past? - automatic mem…
Those who consider javascript a good language usually lack the experience to compare languages effectively. Javascript is mostly appealing to front-end developers because they usually don't know anything else. Also, there are a LOT of front-enders so, you can explain the "popularity" with that. JS has many warts but js-zealots will just ignore it due to the hype.
> simplistic Go takes the world over by storm;
Proof on that? Because so far, the only ones using it are the ones who just don't know how to use other languages. The y prefer garbage code over learning generics...
> the web is mostly written in PHP, whose inventors are as far from PL research as one can get.
Proof on that "mostly" again? Also, most of those sites are unstable and known to be really hard to maintain. PHP was just an easy entry for unskilled labour which is a bad thing since they'll create worse products which will cost more in the long run. But beginners don't care about the long run - they just want the money from ads.
> I am perfectly aware of all the differences between Lisp and JavaScript and of the other languages that have influenced JavaScript (Self, Perl, Lua), but think of this: what made Lisp so great in the past?
Your points are too subjective:
> automatic memory management (compared to Fortran/C)
Did lisps took part in researching modern GCs? I don't think so. I thought it only had a simplisitc ARC only...
> very dynamic language and environment,
And it's a very useless feature - or prove it otherwise. Strongly and statically typed languages can `eval` too.
> multi-paradigm, flexible programming language: functional, OO and imperative programming when needed;
1. First lisps wasn't OO and modern lisps are either NOT OO or support it poorly; 2. imperative programming is not that comfortable in lisp; 3. lisp is not a good FP language: just compare it to ML.
> research roots and great minds behind the language;
Or more like failed experiments and like-minded enterpreneurs.
Re: Lispers
#37Earlier quoted context omitted.
In Lisp you can change the programs while they are running, in ways not possible in Haskell. The time Haskell needs to recompile the code to machine code, I have fixed the Lisp bug already.
...and introduced two new bugs.
Re: Lispers
#38The home page looks like a tombstone of Common Lisp with a bunch of epitaphs on it. On the other hand, the spirit of Lisp has successfully taken over the world. The modern Lisp is called JavaScript. I am perfectly aware of all the differences between Lisp and JavaScript and of the other languages that have influenced JavaScript (Self, Perl, Lua), but think of this: what made Lisp so great in the past? - automatic mem…
C wasn't even a thing when Lisp systems happened and they were running on computers that were quite humble when compared with PDP-11.
When will JavaScript AOT compile to native code, or provide primitives for systems programming like Lisp?
Re: Lispers
#39The home page looks like a tombstone of Common Lisp with a bunch of epitaphs on it. On the other hand, the spirit of Lisp has successfully taken over the world. The modern Lisp is called JavaScript. I am perfectly aware of all the differences between Lisp and JavaScript and of the other languages that have influenced JavaScript (Self, Perl, Lua), but think of this: what made Lisp so great in the past? - automatic mem…
> JavaScript has also successfully escaped perception of "a language for brains". Research background is actually harmful for a modern programming language. Those who consider javascript a good language usually lack the experience to compare languages effectively. Javascript is mostly appealing to front-end developers because they usually don't know anything else. Also, there are a LOT of front-enders so, you can exp…
Javascript IS a powerful language with features that were not in other mainstream language for decades and some still don't have: first class functions, dynamic typing, lambda functions, closures etc. You only have to look at the diverse uses of Javascript to appreciate how far that power goes.
As for the warts of JS any experienced Javascript programmer has learned to work around those and it takes a small effort to learn how to do so.
> Proof on that "mostly" again?
You really need proof that the majority of the web is written in PHP?
As for an entry point for unskilled labour, my first PHP code was written after I'd been a C++ programmer for 20 years. I found it similar to Javascript; some warts to be aware of but otherwise a powerful language it's possible to be very productive in in a short amount of time. I refer you to the look at the many Facebook tech blog posts on the topic.
Whilst PHP has some limitations around it's runtime model, if you can stick within it the modern PHP is a very good tool for backend development.
> modern lisps are either NOT OO or support it poorly
Have you read up on CLOS? It goes way beyond the features of, say, C++ object model. By limiting yourself to a subset you can have the basic OOP features; inheritance, polymorphism and encapsulation. It provides more and arguably non-oop features such as multiple dispatch, methods that can run before, after and around your own methods (aspect oriented in modern parlance).
There is an excellent book by Sonya Keene on CLOS and OOP in Common Lisp.
Re: Lispers
#40The home page looks like a tombstone of Common Lisp with a bunch of epitaphs on it. On the other hand, the spirit of Lisp has successfully taken over the world. The modern Lisp is called JavaScript. I am perfectly aware of all the differences between Lisp and JavaScript and of the other languages that have influenced JavaScript (Self, Perl, Lua), but think of this: what made Lisp so great in the past? - automatic mem…
http://www.randomhacks.net/2005/12/03/why-ruby-is-an-accepta...
Ruby blocks cover a lot of what Lisp macros do. I don't know much Python and JS, but I'm guessing those don't have something similar to blocks/macros.