Live data from Hacker News

Ooh Ooh My Turn Why Lisp? (2008)

smuglispweeny.blogspot.com

141–150 of 160 posts

Re: Ooh Ooh My Turn Why Lisp? (2008)

#141
post #116
post #60

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…

The website of the company that became amazon was written in lisp.

Re: Ooh Ooh My Turn Why Lisp? (2008)

#142

Earlier 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.

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)

#143
post #140

Earlier 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…

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?

Re: Ooh Ooh My Turn Why Lisp? (2008)

#144
post #122

Earlier 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…

Thanks, I'll have a look. But I'm slightly intimidated by new complex languages such as Haskell...

Re: Ooh Ooh My Turn Why Lisp? (2008)

#145
post #140

Earlier 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?

It's only limited in such that you must be able to express the rule using the Shen lisp language. The datatypes are sequents, essentially propositions, that the type checker attempts to prove true.

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)

#146
post #142

Earlier 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..…

That confirms that at least in 2009 they were using Racket.

Re: Ooh Ooh My Turn Why Lisp? (2008)

#147
post #123

Earlier 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…

The type of FOO in SBCL is:

    (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)

#148

Earlier 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.

Dan Liebgold: Racket on the Playstation 3? It's Not What you Think!

Video: http://www.youtube.com/watch?v=oSmqbnhHp1c

Slides: https://con.racket-lang.org/2013/danl-slides.pdf

Re: Ooh Ooh My Turn Why Lisp? (2008)

#149
post #116
post #60

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…

The competition you're referring to is an economical one that's based on the product. For any product which is a software application (whatever UI should it sport, native, web based, remotely hosted, etc.), it's commercial success is tied to its features and UX. For something like Amazon or Google, it's not all that important if it's written in Lisp or BCPL or Prolog or whatnot, that's irrelevant in the competition among products.

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)

#150
post #142

Earlier 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..…

i have seen that presentation, but i am fairly certain i recall from an uncharted 4 chat with a naughty dog developer that they no longer use that system once they moved to the ps4. this is in large part, i believe, due to their being a technology developer for multiple sony studios.
Post reply on HN