Earlier quoted context omitted.
> 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?
The thing is, I'm trying to ask, if lisp is super-powerful and a secret weapon (the general sense of the claims) why isn't the real world littered with examples of companies who seriously out-competed using Lisp? 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 t…
Ooh Ooh My Turn Why Lisp? (2008)
141–150 of 160 posts
Re: Ooh Ooh My Turn Why Lisp? (2008)
#142Earlier quoted context omitted.
The scheme they have been using was PLT Scheme, which was renamed Racket.
ahh. i know racket was plt scheme originally. but from my understanding, naughty dog was using their own lisp/scheme and now no longer uses that system. https://en.m.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp your comment made it sound like they had returned to using a lisp but had chosen to use racket this time around.
When they were bought by Sony, they abandoned their tools and moved on to C++, hoping to share code with the rest of Sony game developers. Didn't work out as wished. They brought Scheme back into their game development, but differently. For example:
http://www.slideshare.net/naughty_dog/statebased-scripting-i...
Re: Ooh Ooh My Turn Why Lisp? (2008)
#143Earlier quoted context omitted.
The reason typing is not a solved problem is this: there are valid programs which can be expressed in an untyped language that cannot be (directly) expressed in a typed one at the moment. For example: (define (foo p?) (if p? 42 "forty-two")) What is the type of `foo`? It could be `bool -> int` or `bool -> string`, depending on the result of `p?`! In an untyped language, this is a perfectly valid program. In a typed l…
In Shen, we easily typecheck foo to the specific values 42 and "forty-two", not merely either String or Int. \\ enforce type checking (tc +) \\ create a forty-two type (datatype forty-two _______________ 42 : forty-two; ________________________ "forty-two" : forty-two;) \* example (7+) 42 42 : number (8+) 42 : number 42 : forty-two (9+) 43 43 : number (10+) 43 : forty-two type error *\ \\ define our foo that takes a…
Re: Ooh Ooh My Turn Why Lisp? (2008)
#144Earlier quoted context omitted.
Curious, what are you using it for? Would you say it is well suited for writing operating system helper tools (working with files, pipes, kernel api, calling other programs)? I like bash expressiveness a lot but sometimes I feel I could use a more powerful scripting language.
I just discovered Turtle yesterday, a library for Haskell. Obviously I haven't used it much in that time, but superficially it looks amazing. See http://hackage.haskell.org/package/turtle-1.0.0/docs/Turtle-... and http://www.haskellforall.com/2015/01/use-haskell-for-shell-s... Here's an example: #!/usr/bin/env runhaskell {-# LANGUAGE OverloadedStrings #-} import Turtle main = do cd "/tmp" mkdir "test" output "test/fo…
Re: Ooh Ooh My Turn Why Lisp? (2008)
#145Earlier quoted context omitted.
In Shen, we easily typecheck foo to the specific values 42 and "forty-two", not merely either String or Int. \\ enforce type checking (tc +) \\ create a forty-two type (datatype forty-two _______________ 42 : forty-two; ________________________ "forty-two" : forty-two;) \* example (7+) 42 42 : number (8+) 42 : number 42 : forty-two (9+) 43 43 : number (10+) 43 : forty-two type error *\ \\ define our foo that takes a…
Interesting! Such an extensional definition of a type could be really flexible, but seems like it would be limited to finite types. Is this the case? Or can you specify types with arbitrary judgments?
For example, I could define odd integers like this:
(datatype odd-integer
if (integer? X)
if (odd? X)
________________
X : odd-integer;)Re: Ooh Ooh My Turn Why Lisp? (2008)
#146Earlier quoted context omitted.
ahh. i know racket was plt scheme originally. but from my understanding, naughty dog was using their own lisp/scheme and now no longer uses that system. https://en.m.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp your comment made it sound like they had returned to using a lisp but had chosen to use racket this time around.
Naughty Dog used a custom Scheme system for their early games. That one was written in Allegro Common Lisp. When they were bought by Sony, they abandoned their tools and moved on to C++, hoping to share code with the rest of Sony game developers. Didn't work out as wished. They brought Scheme back into their game development, but differently. For example: http://www.slideshare.net/naughty_dog/statebased-scripting-i..…
Re: Ooh Ooh My Turn Why Lisp? (2008)
#147Earlier quoted context omitted.
"Typing is not a solved problem, because if it was, there wouldn't be a static vs dynamic type debate that lingers ad nauseum." Could you clarify? Surely even if typing was completely solved, we would still have debates of that kind, because there are benefits to both approaches and there will always be people preferring one or another.
The reason typing is not a solved problem is this: there are valid programs which can be expressed in an untyped language that cannot be (directly) expressed in a typed one at the moment. For example: (define (foo p?) (if p? 42 "forty-two")) What is the type of `foo`? It could be `bool -> int` or `bool -> string`, depending on the result of `p?`! In an untyped language, this is a perfectly valid program. In a typed l…
(FUNCTION (T)
(VALUES
(OR (INTEGER 42 42)
(SIMPLE-ARRAY CHARACTER (9)))
&OPTIONAL))
SBCL is based on Kaplan & Ullman flow-graph analysis (inherited from CMUCL), not Hindley-Milner. See also http://home.pipeline.com/~hbaker1/TInference.html (Nimble Type Inference, H. Baker). Apparently, Typed Racket's papers have other references about related work, albeit not explicitly those.In OCaml, a function which throws an exception has not a different type than one which doesn't. So you can get runtime errors even when you typecheck. In SBCL, the NIL type (bottom) effectively conveys the lack of return value and is used when you call (ERROR ...) or simply with an infinite loop (LOOP). Things are different because the need are different. Basically, types in ML must be disjoint, which is impractical in Lisp.
Re: Ooh Ooh My Turn Why Lisp? (2008)
#148Earlier quoted context omitted.
ahh. i know racket was plt scheme originally. but from my understanding, naughty dog was using their own lisp/scheme and now no longer uses that system. https://en.m.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp your comment made it sound like they had returned to using a lisp but had chosen to use racket this time around.
My understanding is that they are currently using Racket , but I don't work there. This is often mentioned in the Racket community, I think one of the ND engineers spoke at a lisp conference recently about it.
Re: Ooh Ooh My Turn Why Lisp? (2008)
#149Earlier quoted context omitted.
> 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?
The thing is, I'm trying to ask, if lisp is super-powerful and a secret weapon (the general sense of the claims) why isn't the real world littered with examples of companies who seriously out-competed using Lisp? 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 t…
Lisp's competition is on a technical level with other programming languages, and it's target audience is programmers. It can only help allowing easier development of technology, more fluid continuity from idea to product, robust and helpful debugging tools.
So writing a search engine in Lisp won't necessarily mean that you'll be one step ahead of Google in search business in terms of end product, you still need to come up with a better idea or better UX if you want to compete them, and other factors like advertising, conversion etc are in the play too. But with Lisp you may need less development resources to produce the product than you'd need with C++ or Java.
Re: Ooh Ooh My Turn Why Lisp? (2008)
#150Earlier quoted context omitted.
ahh. i know racket was plt scheme originally. but from my understanding, naughty dog was using their own lisp/scheme and now no longer uses that system. https://en.m.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp your comment made it sound like they had returned to using a lisp but had chosen to use racket this time around.
Naughty Dog used a custom Scheme system for their early games. That one was written in Allegro Common Lisp. When they were bought by Sony, they abandoned their tools and moved on to C++, hoping to share code with the rest of Sony game developers. Didn't work out as wished. They brought Scheme back into their game development, but differently. For example: http://www.slideshare.net/naughty_dog/statebased-scripting-i..…