Earlier quoted context omitted.
You've probably played a Naughty Dog game. They use Scheme as the scripting language, but their PS1 games were written entirely in a Lisp. …except it didn't have garbage collection. Lisp weenies are all GC weenies too, right? Is that acceptable?
Nah, GC weenies would probably be the Java guys ;). GC is an important and helpful part of a working Lisp system, but it's not the core of the magic.
Ooh Ooh My Turn Why Lisp? (2008)
111–120 of 160 posts
Re: Ooh Ooh My Turn Why Lisp? (2008)
#112I'm of the opinion that there is only one lisp right now with some serious potential to dominate in the future, and that is Racket. Why? For one very simple reason: unlike all other lisps, there is serious, ongoing, and lengthy research into correctly bringing a static type-checking process to the language. Clojure's core.typed doesn't count here, as it is full of significant holes that invalidate its entire point --…
It might be good to point out to you that the general industry cares very little about things like this. Racket could have literally the most advanced and robust type system out of all programming languages in existence, and still be used by the same amount of people as today and have a hard time convincing anyone else to use it. What makes a language popular from what I have seen are libraries, frameworks, and commu…
Re: Ooh Ooh My Turn Why Lisp? (2008)
#113Earlier quoted context omitted.
It might be good to point out to you that the general industry cares very little about things like this. Racket could have literally the most advanced and robust type system out of all programming languages in existence, and still be used by the same amount of people as today and have a hard time convincing anyone else to use it. What makes a language popular from what I have seen are libraries, frameworks, and commu…
The tide is turning. Naughty Dog video game company (Uncharted, Crash Bandicoot, Jak and Daxter) uses Racket as its scripting language now.
i have seen that one powerpoint from a while back where they used their own scheme dialect to script things. but i thought i had read that when they moved to the ps4 they left that behind and used c++ tooling for the same needs.
Re: Ooh Ooh My Turn Why Lisp? (2008)
#114Earlier quoted context omitted.
There are some Lisp-related things which provide developers with new tools and new ways to think, maybe making them better: a) code as data b) interactive software development c) user-defined language extensions where the developer is part-time language designer, syntactic abstraction d) dynamic object-oriented programming e) meta-object programming
Could you expand on d)? What specifically is different between what you get with Lisp here and OO in the C++/Java sense?
This enables you to have large OO applications running and change them while they are running. This enables interactive incremental development.
Interaction with LispWorks:
Define a class with a slot.
CL-USER 61 > (defclass person () ((name :initarg :name)))
#
Create an instance of that class. CL-USER 62 > (defparameter *p1* (make-instance 'person :name "Drumpf"))
*P1*
What is it? CL-USER 63 > (describe *p1*)
# is a PERSON
NAME "Drumpf"
Hmm, let's make a politician class, with person as superclass and a slot TYPE. CL-USER 64 > (defclass politician (person) ((type :initarg :type)))
#
We change our object to the new class and add information about the new slot content: CL-USER 65 > (change-class *p1* 'politician :type 'populist)
#
What is it now? CL-USER 66 > (describe *p1*)
# is a POLITICIAN
TYPE POPULIST
NAME "Drumpf"
Class of the instance has changed, the new slot has been added, and the old slot is still there.Re: Ooh Ooh My Turn Why Lisp? (2008)
#115Earlier quoted context omitted.
As the other comment says, that doesn't really make sense. However, I have had to debug a codebase where lisps unhygienic macros led to extremely weird errors. The second time that happened in a big project I decided that schemes hygienic macros are superior. The extra cruft writing them is worth it. I have literally spent weeks debugging weird macro errors introduced years after the macro was first written.
You're not wrong: simple macros can be written poorly. Macros which don't properly use GENSYM should be rejected in review. Also, it's entirely possible to write a hygienic macro implementation with DEFMACRO: nothing stops a team from doing that (or using one off-the-shelf). But sometimes you do need the full power of DEFMACRO, and it's not possible to write DEFMACRO with DEFINE-SYNTAX. So one tool enables you to do…
If you want to see where you can go by (ab)using racket macros, watch this: https://www.youtube.com/watch?v=WQGh_NemRy4
Re: Ooh Ooh My Turn Why Lisp? (2008)
#116Earlier quoted context omitted.
Well, no, I'm not confusing powerful and popular. I'm asking why, for all lisp's power, there's almost no examples of that power actually doing anyone any good. Is it because most projects don't need something powerful? The benefits of that power aren't actually that great compared to the rest of the lisp baggage? We have this trope of the smug lisp weenie and there's definitely a whiff of high wizardry around lisp,…
> doing anyone any good There's a difference between doing and talking about. Compare an amount of noise from Rust crowd to anything useful being done in Rust. Let's look at only one product implemented in Lisp, by only one vendor, and it's users in only one industry - http://allegrograph.com/healthcare/ . Pfizer, Mayo Clinic, GSK, Novartis - should we stop with that 'doing anyone any good' mantra?
So far all people can do is say "no, SOMEONE is using Lisp!"
Well, great, but that's not the claim from the Lisp community.
The claim is that Lisp is powerful, so powerful that it's a secret weapon. Why is there so little evidence of that power being meaningful in actual competition?
Re: Ooh Ooh My Turn Why Lisp? (2008)
#117I want to see people's list of reasons for why not lisp. Edit: Ok, this is not trolling. I quite liked Lisp and actually had implemented a version of common lisp from scratch based the Guy Steele's CL reference back in the undergrad time. I just found that beyond academic and a few Emacs packages, I didn't use Lisp at all, for one reason or the other. I just want to hear people's reason for not picking Lisp for their…
I've tried on a few occasions to really like Lisp. I love it's simplicity and recursiveness. The "code as data, data as code" thing is really cool. But I love static typing. Not only for "safety-net" reasons, where the compiler lets you know that you've broken stuff, but also for documentation reasons (I don't have to guess at the shape of each "c" in "cs" in "(mapcar some-fun cs)", I can just look at its type and kn…
Re: Ooh Ooh My Turn Why Lisp? (2008)
#118Earlier quoted context omitted.
You confuse powerful with popular. Many startups don't need powerful tools, other than a CRUD framework and JQuery. Also, existence and abundance of libraries is a factor, and Lisp didn't get much love from the OSS web folks til recently.
Well, no, I'm not confusing powerful and popular. I'm asking why, for all lisp's power, there's almost no examples of that power actually doing anyone any good. Is it because most projects don't need something powerful? The benefits of that power aren't actually that great compared to the rest of the lisp baggage? We have this trope of the smug lisp weenie and there's definitely a whiff of high wizardry around lisp,…
Re: Ooh Ooh My Turn Why Lisp? (2008)
#119Earlier quoted context omitted.
The tide is turning. Naughty Dog video game company (Uncharted, Crash Bandicoot, Jak and Daxter) uses Racket as its scripting language now.
do you have a source for that? it's not that i don't believe you. it's that i am interested. :) i have seen that one powerpoint from a while back where they used their own scheme dialect to script things. but i thought i had read that when they moved to the ps4 they left that behind and used c++ tooling for the same needs.
Re: Ooh Ooh My Turn Why Lisp? (2008)
#120Earlier quoted context omitted.
Could you expand on d)? What specifically is different between what you get with Lisp here and OO in the C++/Java sense?
Common Lisp allows us to develop object oriented software while it is running. Interactively. It changes classes and other objects, based on programmer changes. We can also add behavior to OOP mechanisms, like instance creation, slot allocation, slot access, class redefinition. One can add/change/delete methods at runtime. You can even change the class of an instance. This enables you to have large OO applications ru…
(mkunbound '*p1*)