Re: Ah-hah! Clojure is a Lisp
You can use http://docs.google.com/viewer?url=http://url_to_pdf_or_doc_or_xls_or_something to see those documents converted to html. Works ok in most of the cases, even on my phone. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Dec 20, 7:09 am, Tim Daly d...@axiom-developer.org wrote: It is the algebra language in the Axiom project called Spad.http://axiom-developer.org It is open source There is also Qi (http://www.lambdassociates.org/qilisp.htm). It is now morphing into Shen (http://www.lambdassociates.org/Shen/ appeal.htm) with Clojure as a possible VM target - Javascript being the #1 target VM. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
Can you articulate it any better than ah hah!? Heureka! -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
Ken Wesson kwess...@gmail.com writes: * OO programs conflate value, state, and identity. Ah. So, like the confused situations you get with Java's mutable collections. I just thought of a non programming language example which might help explain what state and identity conflation means. The web (as traditionally implemented) conflates state and identity. For instance, suppose I give you this URL: http://www.infoq.com/about; When you resolve that, you instantly get back a value: a particular string of HTML. I can't give you a reference to a particular state of that page. By the time you look at it, it could be completely different to what I saw. This flaw in the model of the web is one of the driving forces behind projects like Memento [1] and WebCite [2]. Wikis on the other hand, typically separate state and identity. With a wiki there's a distinction between an identity: http://en.wikipedia.org/wiki/Clojure and a state: http://en.wikipedia.org/wiki/Clojure?oldid=396404196 I can give you a reference to each independently. Unfortunately while wikis solve the problem, they do it in ad-hoc way. There's no standard mechanism in the HTTP protocol to deref a wiki page and get back the URL of its current state. OO typically unifies identity and state, i.e. an object (identity) is a pointer to the memory that contains the value of its state. There is no way to obtain the state independent of the identity other than copying it. -- clojure.org/state -- [1] http://www.mementoweb.org/about/ [2] http://www.webcitation.org/ -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
You can't step into the same river twice. In this quote the river is the identity. At any snapshot in time the river is a specific value. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 12:26 AM, Tim Daly d...@axiom-developer.org wrote: On 12/19/2010 10:53 PM, Ken Wesson wrote: Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Something like that? Ummm. no. You're approaching the question in an OO mindset. Excuse me? How rude. In the future if you'd like to offer a criticism of my mindset you can do it off-list! Rich spent the better part of an hour trying to explain the insights that he got from what must certainly be months of reading and thinking. I don't have the better part of an hour, let alone months. If you'd like to effectively convey what you have been trying to convey to various people in this thread, please find some way to condense it. If a single bullet point doesn't suffice to convey it that is hardly my fault. You may have erred too far the other way, condensing it too much. Surely there is a middle ground? @mike, Yes, a video isn't documentation. But the MVCC paper certainly is. Open source software doesn't seem to do documentation (which annoys me also since I'm a literate programming fanatic). For the most part this project's documentation has been pretty good -- the api page, the other clojure.org and clojure.github.com pages, etc. But some of this underlying-philosophy stuff still seems to be locked up in videos and presentations in disparate places, invisible to Google's search and not even all linked from one place (the closest to one place being scattered posts to this list). And apparently these are generally quite long. Videos have several disadvantages over text: * Google can't see inside of them. * You cannot search inside of them. * Tools for bookmarking specific places inside of them are primitive. * You can't read at your own pace, nor skim at all. * Videos tend to mix the meaty information in with jokes, anecdotes, people moving around, and other filler that takes up not only space but time. Much of this wouldn't exist in text and what remained could easily be skimmed or scrolled past by people in a hurry. * Video is bandwidth-intensive. In particular, a talk on video is a staggeringly inefficient use of bandwidth: the textual content, besides being effectively hidden from google and control-F search, takes the form of an audio track of several tens of megabytes in which it is inevitably mixed with some amount of extraneous noise, rather than being a few tens of KB of HTML or a few KB of plain text; what could be a handful of few-KB-each jpegs (e.g. slides presented) embedded in the text via img tags bloats up into a multi-gigabyte video stream where each slide is partly obscured by a talking head. Or perhaps only a couple of hundred megabytes, accompanied by massive quality degradation. Line art slides become blurs at those compression levels. Compare a jerky, stuttery, expensive-if-you're-on-mobile, blurry image of mostly a talking head with somewhat-indistinct and somewhat-noisy audio to a clean page design with text and inline still images that conveys the same information. And can be searched for text, etc. * If animation is really necessary to convey some point, animated gifs and, if you really must resort to it, Flash can be employed. I'm not saying there isn't a place for videos, but they are not *substitutes* for text and if they convey anything we should be referring to commonly (and especially if we should sometimes be referring to a small subset of the information in one, rather than the whole thing at one time) there should be an HTML presentation (text with perhaps inline images, perhaps some of them animated) of the core content as well somewhere. Right now the Clojure documentation-cloud seems to contain several of these indigestible lumps masquerading as proper documentation. That seems like it should be addressed; and the sooner the better. The longer, the more of these non-text resources will accumulate and, worse, the more users will be expected to be familiar with some growing subset of their contents. In the worst case, it would require the equivalent of a week-long training seminar to brush up on it all. Right now Clojure has the great property that with a bit of familiarity with Java and at least one Java IDE you can get started hacking in it within minutes, and even do something useful within hours. I'd hate to see that change or get bogged down in hundreds of minutes and tens of gigabytes of video
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 2:49 AM, Alex Osborne a...@meshy.org wrote: Ken Wesson kwess...@gmail.com writes: Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. Sort of. Identity (in the Clojure model) is not the same concept as equality. Nor is it reference equality (identical?). The overloading of terminology is somewhat unfortunate. By identity I mean a stable logical entity associated with a series of different values over time. -- clojure.org/state As Laurent mentioned the usual identities in Clojure are reference objects: vars, atoms, refs and so on. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Symbols and keywords (and database IDs) aren't identities, they're identifiers (names). It seems you're using identity a little bit oddly here. In ordinary usage, identity would indeed be close to synonymous with identifier; the way you're using it here is actually closer to the usual comp-sci concept of a variable: a holder of mutable state, which can be pointed to a succession of different individual states. So part of this is a confusion arising from slightly odd or idiosyncratic terminology. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf Sincerely Meikel -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
No, identifiers are names. Identity transcends names. For example, in a distributed shared object system, multiple machines on the same network will have different identifiers for the same identity. Ordinary usage isn't good enough for metaphysical discussions. There is a metaphysical discussion of identity which applies to this situation, and Rich Hickey has taken a particular position. His position is rigorous, internally consistent, and applicable to how most people in our culture model the world, e.g. it can be used to accomplish work by most of us. Most philosophical discussions of identity really mean equality, at least in Hickey nomenclature. On Dec 20, 12:56 pm, Ken Wesson kwess...@gmail.com wrote: On Mon, Dec 20, 2010 at 2:49 AM, Alex Osborne a...@meshy.org wrote: Ken Wesson kwess...@gmail.com writes: Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. Sort of. Identity (in the Clojure model) is not the same concept as equality. Nor is it reference equality (identical?). The overloading of terminology is somewhat unfortunate. By identity I mean a stable logical entity associated with a series of different values over time. -- clojure.org/state As Laurent mentioned the usual identities in Clojure are reference objects: vars, atoms, refs and so on. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Symbols and keywords (and database IDs) aren't identities, they're identifiers (names). It seems you're using identity a little bit oddly here. In ordinary usage, identity would indeed be close to synonymous with identifier; the way you're using it here is actually closer to the usual comp-sci concept of a variable: a holder of mutable state, which can be pointed to a succession of different individual states. So part of this is a confusion arising from slightly odd or idiosyncratic terminology.- Hide quoted text - - Show quoted text - -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 1:26 PM, Meikel Brandmeyer m...@kotka.de wrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 1:30 PM, Alyssa Kwan alyssa.c.k...@gmail.com wrote: No, identifiers are names. Identity transcends names. For example, in a distributed shared object system, multiple machines on the same network will have different identifiers for the same identity. Ordinary usage isn't good enough for metaphysical discussions. There is a metaphysical discussion of identity which applies to this situation, and Rich Hickey has taken a particular position. His position is rigorous, internally consistent, and applicable to how most people in our culture model the world, e.g. it can be used to accomplish work by most of us. Most philosophical discussions of identity really mean equality, at least in Hickey nomenclature. Thanks for making my point for me: identity normally means something other than what it means in Hickey nomenclature. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/20/10 1:39 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:26 PM, Meikel Brandmeyerm...@kotka.de wrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* You have asked others not to reply to you in the same tone you are taking here. This was a sincere effort to help. Please show a little bit more respect. Aaron -- Clojure/core http://clojure.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
I think too many posters here are equating Clojure with Lisp. Clojure is a LISP, but it is not LISP itself. * Mutability is not a given in all LISP implementations, only some of them. * STM transactions (i.e. state and time management upon non-mutable objects) is a Clojure concept, that no other LISP's have. So I will suggest the OP is not having a LISP ah-ha moment, but rather a Clojure ah-ha moment. Lisp does have it's ah-ha moments in other regards as I am sure is the case with any other language when you move from being able use the language for general programming to being able to use the language abstractions ideology to change how you approach programs. It's not like programmers didn't have this when everyone moved to OO languages in the first place - they too had an ah-ha I get OO now. On Dec 19, 6:25 pm, Tim Daly d...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 1:42 PM, Aaron Bedra aaron.be...@gmail.com wrote: On 12/20/10 1:39 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:26 PM, Meikel Brandmeyerm...@kotka.de wrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* You have asked others not to reply to you in the same tone you are taking here. This was a sincere effort to help. Please show a little bit more respect. I'm sorry, but it's just hilarious the lengths some people apparently go to to avoid plain text/html that you don't need a special browser plugin and a multimegabyte download to view. All those video links and then, when someone finally points to a textual summary for one of them, it's a pdf! It's tragicomic. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
Hi, Am 20.12.2010 um 19:39 schrieb Ken Wesson: On Mon, Dec 20, 2010 at 1:26 PM, Meikel Brandmeyer m...@kotka.de wrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* How rude. Searching in the PDF (yes, that works), one finds with ease the definition of all discussed terms like value, identity and state. All on one sheet. How much shorter do you want it? And gone is all ambiguity in the discussion. Sincerely Meikel -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 1:48 PM, Meikel Brandmeyer m...@kotka.de wrote: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* How rude. Searching in the PDF (yes, that works), one finds with ease the definition of all discussed terms like value, identity and state. All on one sheet. How much shorter do you want it? I'd like it to fit in under 10KB if at all possible. :) I sometimes browse with mobile devices. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/20/10 1:47 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:42 PM, Aaron Bedraaaron.be...@gmail.com wrote: On 12/20/10 1:39 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:26 PM, Meikel Brandmeyerm...@kotka.dewrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* You have asked others not to reply to you in the same tone you are taking here. This was a sincere effort to help. Please show a little bit more respect. I'm sorry, but it's just hilarious the lengths some people apparently go to to avoid plain text/html that you don't need a special browser plugin and a multimegabyte download to view. All those video links and then, when someone finally points to a textual summary for one of them, it's a pdf! It's tragicomic. :) If you think it is funny that's absolutely your opinion to keep. It has no place or constructive worth on this mailing list. Please keep this kind of response off the list. Aaron -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
What things normally mean has no place in computer science. You have to embrace the jargon to be able to think rationally in the space. This in no way detracts from this discussion. When I say Hickey nomenclature, I mean vis a vis classical philosophy or Hegel. Lay nomenclature only muddies the water. On Dec 20, 1:41 pm, Ken Wesson kwess...@gmail.com wrote: On Mon, Dec 20, 2010 at 1:30 PM, Alyssa Kwan alyssa.c.k...@gmail.com wrote: No, identifiers are names. Identity transcends names. For example, in a distributed shared object system, multiple machines on the same network will have different identifiers for the same identity. Ordinary usage isn't good enough for metaphysical discussions. There is a metaphysical discussion of identity which applies to this situation, and Rich Hickey has taken a particular position. His position is rigorous, internally consistent, and applicable to how most people in our culture model the world, e.g. it can be used to accomplish work by most of us. Most philosophical discussions of identity really mean equality, at least in Hickey nomenclature. Thanks for making my point for me: identity normally means something other than what it means in Hickey nomenclature. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
Hi Ken, I'd like to nominate you on behalf of the Clojure community to convert all non-text resources into text only resources. You officially have my vote. I think your passion makes you the perfect candidate to do this work. In the mean time I'd like to extend a thanks to all the folks having taken the time producing these resources - they have helped immensely. On Dec 20, 11:50 am, Ken Wesson kwess...@gmail.com wrote: On Mon, Dec 20, 2010 at 1:48 PM, Meikel Brandmeyer m...@kotka.de wrote: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* How rude. Searching in the PDF (yes, that works), one finds with ease the definition of all discussed terms like value, identity and state. All on one sheet. How much shorter do you want it? I'd like it to fit in under 10KB if at all possible. :) I sometimes browse with mobile devices. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/20/2010 1:47 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:42 PM, Aaron Bedraaaron.be...@gmail.com wrote: On 12/20/10 1:39 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:26 PM, Meikel Brandmeyerm...@kotka.dewrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* You have asked others not to reply to you in the same tone you are taking here. This was a sincere effort to help. Please show a little bit more respect. I'm sorry, but it's just hilarious the lengths some people apparently go to to avoid plain text/html that you don't need a special browser plugin and a multimegabyte download to view. All those video links and then, when someone finally points to a textual summary for one of them, it's a pdf! It's tragicomic. :) I am amazed that you find a link to a scholarly article inappropriate. It is copyrighted material and cannot be converted to ascii for your use. Don't read the pdf, print it. It takes time to watch the videos and it takes time to read the papers. It takes time to read Whitehead's book and the Spikes book. It takes time to read the source code. There is no need to summarize these sources in order to understand them since I have invested considerable time already. The posted links to my primary source materials are for your convenience. This is an open source project and, as such, it suggests that Advocacy is volunteering. If you advocate better documentation and well-written summaries then volunteer to do it. Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, 20 Dec 2010 19:26:49 +0100 Meikel Brandmeyer m...@kotka.de wrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf Thanks for the link. To bad it made Tufte kill a kitten. I had forgotten there was a textual representation with a lower information density per bit than video. But it does get the ideas across. It seems a lot of this could have come from other applications I'm using these days, like mercurial (with an immutable history) or zfs (with an immutable file system). Thanks again, mike -- Mike Meyer m...@mired.org http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O ascii ribbon campaign - stop html mail - www.asciiribbon.org -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/20/2010 1:42 PM, Tim Robinson wrote: I think too many posters here are equating Clojure with Lisp. Clojure is a LISP, but it is not LISP itself. Since I've worked in a dozen Lisps (golden common, VMLisp, Lisp370, Zetalisp, MacLisp, Lisp 1.5, Orien Lisp, etc.) I don't think I would equate Clojure with Lisp. The question I was wrestling with was whether Clojure IS a Lisp, as opposed to a domain-specific language for using immutable Seq data structures over Java. * Mutability is not a given in all LISP implementations, only some of them. * STM transactions (i.e. state and time management upon non-mutable objects) is a Clojure concept, that no other LISP's have. So I will suggest the OP is not having a LISP ah-ha moment, but rather a Clojure ah-ha moment. Lisp does have it's ah-ha moments in other regards as I am sure is the case with any other language when you move from being able use the language for general programming to being able to use the language abstractions ideology to change how you approach programs. It's not like programmers didn't have this when everyone moved to OO languages in the first place - they too had an ah-ha I get OO now. You may be right that other people have the ah-hah! moment for their particular language or concepts. My comment was that this event is associated with Lisp and that it is different from getting the OO mindset or getting rule-based programming, etc. I was getting the STM and immutability concepts but those were not sufficient to establish (for me) Lisp. Your enlightenment may vary. Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
I generally find it easier to get the bigger picture of something when I'm stepping a little bit back. With programming languages, sometimes it can involve discovering language n+1 to give some new perspective on language n, and getting the ah ah moment with language n. For example, it's hard to find books about the philosophy of object-oriented programming in Java. Books generally go to the details. I had to go get some knowledge in Bertrand Meyer's books as well as see prototype-based object oriented programming in javascript (as opposed to class-based object oriented programming in java). Smalltak serves the purpose as well, putting the focus more on the object than the class. With lisp flavors, maybe it's because lisp is homoiconic you can get the language without going outside it ;-) 2010/12/20 Tim Daly d...@axiom-developer.org On 12/20/2010 1:42 PM, Tim Robinson wrote: I think too many posters here are equating Clojure with Lisp. Clojure is a LISP, but it is not LISP itself. Since I've worked in a dozen Lisps (golden common, VMLisp, Lisp370, Zetalisp, MacLisp, Lisp 1.5, Orien Lisp, etc.) I don't think I would equate Clojure with Lisp. The question I was wrestling with was whether Clojure IS a Lisp, as opposed to a domain-specific language for using immutable Seq data structures over Java. * Mutability is not a given in all LISP implementations, only some of them. * STM transactions (i.e. state and time management upon non-mutable objects) is a Clojure concept, that no other LISP's have. So I will suggest the OP is not having a LISP ah-ha moment, but rather a Clojure ah-ha moment. Lisp does have it's ah-ha moments in other regards as I am sure is the case with any other language when you move from being able use the language for general programming to being able to use the language abstractions ideology to change how you approach programs. It's not like programmers didn't have this when everyone moved to OO languages in the first place - they too had an ah-ha I get OO now. You may be right that other people have the ah-hah! moment for their particular language or concepts. My comment was that this event is associated with Lisp and that it is different from getting the OO mindset or getting rule-based programming, etc. I was getting the STM and immutability concepts but those were not sufficient to establish (for me) Lisp. Your enlightenment may vary. Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
2010/12/20 Ken Wesson kwess...@gmail.com On Mon, Dec 20, 2010 at 12:26 AM, Tim Daly d...@axiom-developer.org wrote: On 12/19/2010 10:53 PM, Ken Wesson wrote: Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Something like that? Ummm. no. You're approaching the question in an OO mindset. Excuse me? How rude. In the future if you'd like to offer a criticism of my mindset you can do it off-list! Rich spent the better part of an hour trying to explain the insights that he got from what must certainly be months of reading and thinking. I don't have the better part of an hour, let alone months. Ken, with all the respect which is due to you, if you're out of ideas to find some time reading the linked material, you could probably re-focus *some* of the time you spend sometimes debating (arguing) at lengths (lots of brower pages in my 1024x768 laptop) in this list to see/read/watch the material you're critical about. And if you don't like videos or pdfs, you can certainly find a way to say so without being rude to the people which (still) take the time to answer you. Cheers, -- Laurent If you'd like to effectively convey what you have been trying to convey to various people in this thread, please find some way to condense it. If a single bullet point doesn't suffice to convey it that is hardly my fault. You may have erred too far the other way, condensing it too much. Surely there is a middle ground? @mike, Yes, a video isn't documentation. But the MVCC paper certainly is. Open source software doesn't seem to do documentation (which annoys me also since I'm a literate programming fanatic). For the most part this project's documentation has been pretty good -- the api page, the other clojure.org and clojure.github.com pages, etc. But some of this underlying-philosophy stuff still seems to be locked up in videos and presentations in disparate places, invisible to Google's search and not even all linked from one place (the closest to one place being scattered posts to this list). And apparently these are generally quite long. Videos have several disadvantages over text: * Google can't see inside of them. * You cannot search inside of them. * Tools for bookmarking specific places inside of them are primitive. * You can't read at your own pace, nor skim at all. * Videos tend to mix the meaty information in with jokes, anecdotes, people moving around, and other filler that takes up not only space but time. Much of this wouldn't exist in text and what remained could easily be skimmed or scrolled past by people in a hurry. * Video is bandwidth-intensive. In particular, a talk on video is a staggeringly inefficient use of bandwidth: the textual content, besides being effectively hidden from google and control-F search, takes the form of an audio track of several tens of megabytes in which it is inevitably mixed with some amount of extraneous noise, rather than being a few tens of KB of HTML or a few KB of plain text; what could be a handful of few-KB-each jpegs (e.g. slides presented) embedded in the text via img tags bloats up into a multi-gigabyte video stream where each slide is partly obscured by a talking head. Or perhaps only a couple of hundred megabytes, accompanied by massive quality degradation. Line art slides become blurs at those compression levels. Compare a jerky, stuttery, expensive-if-you're-on-mobile, blurry image of mostly a talking head with somewhat-indistinct and somewhat-noisy audio to a clean page design with text and inline still images that conveys the same information. And can be searched for text, etc. * If animation is really necessary to convey some point, animated gifs and, if you really must resort to it, Flash can be employed. I'm not saying there isn't a place for videos, but they are not *substitutes* for text and if they convey anything we should be referring to commonly (and especially if we should sometimes be referring to a small subset of the information in one, rather than the whole thing at one time) there should be an HTML presentation (text with perhaps inline images, perhaps some of them animated) of the core content as well somewhere. Right now the Clojure documentation-cloud seems to contain several of these indigestible lumps masquerading as proper documentation. That seems like it should be addressed; and
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 1:57 PM, Alyssa Kwan alyssa.c.k...@gmail.com wrote: What things normally mean has no place in computer science. You have to embrace the jargon to be able to think rationally in the space. This in no way detracts from this discussion. I meant what things normally mean in computer science. :) Maybe it's good if Hickey is able to rewrite the books on computer science; but in the meantime we are left with some terminological impedance mismatches between Hickey nomenclature and more typical comp sci nomenclature. That's not a value judgment; it's just a statement of fact. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 2:10 PM, Tim Robinson tim.blacks...@gmail.com wrote: Hi Ken, I'd like to nominate you on behalf of the Clojure community to convert all non-text resources into text only resources. Sorry, but I must decline; I simply don't have the time to do so. As I already mentioned I don't even have the time to browse those non-text resources right now. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 2:55 PM, Tim Daly d...@axiom-developer.org wrote: I am amazed that you find a link to a scholarly article inappropriate. I didn't find the link inappropriate. No doubt the content is just peachy. I did find the format problematic. I much prefer stuff I can simply browse in my web browser as normal, without involving special plugins or external applications and without the files themselves being enormous, as videos and pdfs are wont to be. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 1:20 PM, Ken Wesson kwess...@gmail.com wrote: I did find the format problematic. I much prefer stuff I can simply browse in my web browser as normal, without involving special plugins or external applications and without the files themselves being enormous, as videos and pdfs are wont to be. $0.02 for the most part i'm quite +N with Mr. Wesson. in case he's feeling lonely. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 3:00 PM, Mike Meyer mwm-keyword-googlegroups.620...@mired.org wrote: On Mon, 20 Dec 2010 19:26:49 +0100 Meikel Brandmeyer m...@kotka.de wrote: http://clojure.googlegroups.com/web/AreWeThereYet.pdf Thanks for the link. To bad it made Tufte kill a kitten. I had forgotten there was a textual representation with a lower information density per bit than video. Did you mean a higher information density per bit? The key concepts can no doubt be conveyed in a few tens of KB of html and still images -- under a megabyte, certainly. Compare that to the larger size of a pdf, and the still larger size of video of any decent quality and resolution. The information density is higher for the more compact representation of the same key information; the rest is, in effect, anti-compressed. It may add some side channel information that was otherwise lack -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 4:10 PM, Laurent PETIT laurent.pe...@gmail.com wrote: 2010/12/20 Ken Wesson kwess...@gmail.com On Mon, Dec 20, 2010 at 12:26 AM, Tim Daly d...@axiom-developer.org wrote: On 12/19/2010 10:53 PM, Ken Wesson wrote: Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Something like that? Ummm. no. You're approaching the question in an OO mindset. Excuse me? How rude. In the future if you'd like to offer a criticism of my mindset you can do it off-list! Rich spent the better part of an hour trying to explain the insights that he got from what must certainly be months of reading and thinking. I don't have the better part of an hour, let alone months. Ken, with all the respect which is due to you, if you're out of ideas to find some time reading the linked material, you could probably re-focus *some* of the time you spend sometimes debating (arguing) at lengths (lots of brower pages in my 1024x768 laptop) in this list to see/read/watch the material you're critical about. Sorry, things are a little hectic around here right now. And if you don't like videos or pdfs, you can certainly find a way to say so without being rude to the people which (still) take the time to answer you. I'm not trying to be rude. I just thought it hilarious that after I specifically objected to videos partly on bandwidth grounds, partly on have-to-use-a-proprietary-browser-plugin grounds, and etc., someone suggested a pdf as a substitute. You have to admit that that IS kind of funny. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, 20 Dec 2010 16:27:11 -0500 Ken Wesson kwess...@gmail.com wrote: On Mon, Dec 20, 2010 at 3:00 PM, Mike Meyer mwm-keyword-googlegroups.620...@mired.org wrote: On Mon, 20 Dec 2010 19:26:49 +0100 Meikel Brandmeyer m...@kotka.de wrote: http://clojure.googlegroups.com/web/AreWeThereYet.pdf Thanks for the link. To bad it made Tufte kill a kitten. I had forgotten there was a textual representation with a lower information density per bit than video. Did you mean a higher information density per bit? No, I meant lower. mike -- Mike Meyer m...@mired.org http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O ascii ribbon campaign - stop html mail - www.asciiribbon.org -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Tuesday, December 21, 2010 4:47:56 AM UTC+11, Ken Wesson wrote: But some of this underlying-philosophy stuff still seems to be locked up in videos and presentations in disparate places, invisible to Google's search and not even all linked from one place (the closest to one place being scattered posts to this list). And apparently these The short version is here: http://clojure.org/state - Steve -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 4:49 PM, Mike Meyer mwm-keyword-googlegroups.620...@mired.org wrote: On Mon, 20 Dec 2010 16:27:11 -0500 Ken Wesson kwess...@gmail.com wrote: On Mon, Dec 20, 2010 at 3:00 PM, Mike Meyer mwm-keyword-googlegroups.620...@mired.org wrote: On Mon, 20 Dec 2010 19:26:49 +0100 Meikel Brandmeyer m...@kotka.de wrote: http://clojure.googlegroups.com/web/AreWeThereYet.pdf Thanks for the link. To bad it made Tufte kill a kitten. I had forgotten there was a textual representation with a lower information density per bit than video. Did you mean a higher information density per bit? No, I meant lower. But I just explained how a bloated presentation of the same information has a lower (useful) information density per bit than does a textual one. O ascii ribbon campaign - stop html mail - www.asciiribbon.org This is a bit ironic in context. You appear to champion big clunky video and pdf files in place of html+inline images documentation on the web, but for email, the lighter the better? That seems a little bit inconsistent to me. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 5:18 PM, Steve stephen.a.lind...@gmail.com wrote: On Tuesday, December 21, 2010 4:47:56 AM UTC+11, Ken Wesson wrote: But some of this underlying-philosophy stuff still seems to be locked up in videos and presentations in disparate places, invisible to Google's search and not even all linked from one place (the closest to one place being scattered posts to this list). And apparently these The short version is here: http://clojure.org/state Thanks; I'll check it out. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Dec 20, 10:53 am, Aaron Bedra aaron.be...@gmail.com wrote: On 12/20/10 1:47 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:42 PM, Aaron Bedraaaron.be...@gmail.com wrote: On 12/20/10 1:39 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:26 PM, Meikel Brandmeyerm...@kotka.de wrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* You have asked others not to reply to you in the same tone you are taking here. This was a sincere effort to help. Please show a little bit more respect. I'm sorry, but it's just hilarious the lengths some people apparently go to to avoid plain text/html that you don't need a special browser plugin and a multimegabyte download to view. All those video links and then, when someone finally points to a textual summary for one of them, it's a pdf! It's tragicomic. :) If you think it is funny that's absolutely your opinion to keep. It has no place or constructive worth on this mailing list. Please keep this kind of response off the list. Agreed. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 10:39 PM, javajosh javaj...@gmail.com wrote: On Dec 20, 10:53 am, Aaron Bedra aaron.be...@gmail.com wrote: On 12/20/10 1:47 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:42 PM, Aaron Bedraaaron.be...@gmail.com wrote: On 12/20/10 1:39 PM, Ken Wesson wrote: On Mon, Dec 20, 2010 at 1:26 PM, Meikel Brandmeyerm...@kotka.de wrote: Hi, if you prefer text over talk: http://clojure.googlegroups.com/web/AreWeThereYet.pdf *giggle* It figures. I ask for text instead of video so, naturally, I get a PDF link. *falls over laughing* You have asked others not to reply to you in the same tone you are taking here. This was a sincere effort to help. Please show a little bit more respect. I'm sorry, but it's just hilarious the lengths some people apparently go to to avoid plain text/html that you don't need a special browser plugin and a multimegabyte download to view. All those video links and then, when someone finally points to a textual summary for one of them, it's a pdf! It's tragicomic. :) If you think it is funny that's absolutely your opinion to keep. It has no place or constructive worth on this mailing list. Please keep this kind of response off the list. Agreed. But that would leave people with the misleading impression that a pdf file is an adequate choice, even when I'm on my mobile ... -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Mon, Dec 20, 2010 at 8:23 PM, Ken Wesson kwess...@gmail.com wrote: But that would leave people with the misleading impression that a pdf file is an adequate choice, even when I'm on my mobile ... It's a perfectly adequate choice on my mobile... I read PDFs all the time on my phone. (sorry, I've been trying really hard not to respond to Ken's posts but in the end I just couldn't help myself!) -- Sean A Corfield -- (904) 302-SEAN Railo Technologies, Inc. -- http://getrailo.com/ An Architect's View -- http://corfield.org/ If you're not annoying somebody, you're not really alive. -- Margaret Atwood -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Tue, Dec 21, 2010 at 12:16 AM, Sean Corfield seancorfi...@gmail.com wrote: On Mon, Dec 20, 2010 at 8:23 PM, Ken Wesson kwess...@gmail.com wrote: But that would leave people with the misleading impression that a pdf file is an adequate choice, even when I'm on my mobile ... It's a perfectly adequate choice on my mobile... I read PDFs all the time on my phone. Well, that's interesting. But not all of us either have mobiles that have pdf readers or have a mobile plan that won't have us in the poorhouse if we download a multi-megabyte file on it. Not to mention, some of us will be sitting there staring at a download progress that crawls slowly over hours with files that size on our mobiles. And some of us have just the kind of luck that would see the battery run out just before the download would have finished. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Sun, Dec 19, 2010 at 11:33 AM, Tim Daly d...@axiom-developer.org wrote: The most fundamental thing about Lisp is that there is this universal but personal event when you suddenly get it. This does not seem to happen with other languages. I think it's true to some extent with most languages - particularly those that aren't mainstream (I'm working through Seven Languages right now and I think Io and Prolog fit right into the category you describe, and of course Clojure and Haskell because of their functional nature). But I will say that Lisp languages seem to 'stick' more than other languages: once someone gets it, they seem to become a devoted Lisper for life... even if they use other languages for their day job. I recently felt that moment with Clojure. Did anyone else experience the ah-hah!? Not with Clojure, but probably with Lisp itself back in the early- / mid-80's which is when I first started using it seriously. I found the same with Prolog tho' (around the same time)... -- Sean A Corfield -- (904) 302-SEAN Railo Technologies, Inc. -- http://getrailo.com/ An Architect's View -- http://corfield.org/ If you're not annoying somebody, you're not really alive. -- Margaret Atwood -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
Can you articulate it any better than ah hah!? On Dec 19, 11:33 am, Tim Daly d...@axiom-developer.org wrote: There have been discussions, here and elsewhere, about whether Clojure is a Lisp. Lots of discussion centers around facts like homoiconicity, or the REPL, or the debate of Rich's redefinition of lisp primitives, etc. These are arguments about the paint on the palace. I have struggled with this question and I believe I found the answer that satisfies me that Clojure is a Lisp. The answer is that getting Clojure involves an ah-hah! moment. The most fundamental thing about Lisp is that there is this universal but personal event when you suddenly get it. This does not seem to happen with other languages. There is a distinct before vs after when you suddenly internalize the language and IT changes YOU. I recently felt that moment with Clojure. Did anyone else experience the ah-hah!? Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
sha-wing? :D On Sun, Dec 19, 2010 at 5:41 PM, javajosh javaj...@gmail.com wrote: Can you articulate it any better than ah hah!? On Dec 19, 11:33 am, Tim Daly d...@axiom-developer.org wrote: There have been discussions, here and elsewhere, about whether Clojure is a Lisp. Lots of discussion centers around facts like homoiconicity, or the REPL, or the debate of Rich's redefinition of lisp primitives, etc. These are arguments about the paint on the palace. I have struggled with this question and I believe I found the answer that satisfies me that Clojure is a Lisp. The answer is that getting Clojure involves an ah-hah! moment. The most fundamental thing about Lisp is that there is this universal but personal event when you suddenly get it. This does not seem to happen with other languages. There is a distinct before vs after when you suddenly internalize the language and IT changes YOU. I recently felt that moment with Clojure. Did anyone else experience the ah-hah!? Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
Haskell has aha moments too. And it is not lisp. The definition of lisp i accept is much simpler and much more obvious: source code of the program is a valid data structure in that language. On Dec 19, 11:33 am, Tim Daly d...@axiom-developer.org wrote: There have been discussions, here and elsewhere, about whether Clojure is a Lisp. Lots of discussion centers around facts like homoiconicity, or the REPL, or the debate of Rich's redefinition of lisp primitives, etc. These are arguments about the paint on the palace. I have struggled with this question and I believe I found the answer that satisfies me that Clojure is a Lisp. The answer is that getting Clojure involves an ah-hah! moment. The most fundamental thing about Lisp is that there is this universal but personal event when you suddenly get it. This does not seem to happen with other languages. There is a distinct before vs after when you suddenly internalize the language and IT changes YOU. I recently felt that moment with Clojure. Did anyone else experience the ah-hah!? Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Sun, Dec 19, 2010 at 7:31 PM, Vagif Verdi vagif.ve...@gmail.com wrote: Haskell has aha moments too. And it is not lisp. The definition of lisp i accept is much simpler and much more obvious: source code of the program is a valid data structure in that language. Access to the parse tree. C source code is a valid string data structure in C, but you can't really do that much with it without a lot of parsing first. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/19/2010 6:41 PM, javajosh wrote: Can you articulate it any better than ah hah!? The proper response is moo. But I think there is a point where you get concepts like the distinction between values and identity which are fundamental. Whatever the event, it feels like whatever I write is best done in Clojure, which is the after-the-event internal change. It no longer feels like a struggle to learn the language but a thirst to learn more, deeper, and better. A soulful addiction. Unlike the dozens of other languages I have worked in over my career, Lisp has been the one language that truly changed the way I understood programming. Many people have mentioned the ah hah! moment when speaking about Lisp. Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. I watched that with a Java programmer and he was not able to understand the points Rich was making. He just saw it in terms of value objects, function objects, identity objects, and state objects. Sort of, I've got an object hammer so everything is an object nail approach. Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Sun, Dec 19, 2010 at 8:18 PM, Tim Daly d...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
Tim Daly d...@axiom-developer.org writes: Haskell has neat ideas but I've seen them before in lisp-based systems. I work in a language which is strongly typed, allows currying, is functional, etc., implemented in Common Lisp. I have not found the ah-hah! in Haskell. Sounds interesting, could you share a pointer to this language, or is it not open? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/19/2010 8:33 PM, Eric Schulte wrote: Tim Dalyd...@axiom-developer.org writes: Haskell has neat ideas but I've seen them before in lisp-based systems. I work in a language which is strongly typed, allows currying, is functional, etc., implemented in Common Lisp. I have not found the ah-hah! in Haskell. Sounds interesting, could you share a pointer to this language, or is it not open? It is the algebra language in the Axiom project called Spad. http://axiom-developer.org It is open source -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Sun, Dec 19, 2010 at 8:25 PM, Tim Daly d...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey Please install Flash Player. Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Sun, Dec 19, 2010 at 6:24 PM, Ken Wesson kwess...@gmail.com wrote: Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. I don't think people normally create a precis of other people's talks - they just watch them. And this presentation is really good. Definitely worth your effort... -- Sean A Corfield -- (904) 302-SEAN Railo Technologies, Inc. -- http://getrailo.com/ An Architect's View -- http://corfield.org/ If you're not annoying somebody, you're not really alive. -- Margaret Atwood -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/19/2010 9:24 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:25 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey Please install Flash Player. Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. The points made by Rich in the video require context. Besides, the only way I could make a bullet list would be to listen to the video again. My memory is hopelessly lossy. Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Sun, Dec 19, 2010 at 9:42 PM, Tim Daly d...@axiom-developer.org wrote: On 12/19/2010 9:24 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:25 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey Please install Flash Player. Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. The points made by Rich in the video require context. Besides, the only way I could make a bullet list would be to listen to the video again. My memory is hopelessly lossy. Exactly why text is preferable to video for stuff that can be expressed in text. Your memory wouldn't matter -- you could link to the text. And Google could search inside it. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/19/2010 10:21 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 9:42 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 9:24 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:25 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey Please install Flash Player. Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. The points made by Rich in the video require context. Besides, the only way I could make a bullet list would be to listen to the video again. My memory is hopelessly lossy. Exactly why text is preferable to video for stuff that can be expressed in text. Your memory wouldn't matter -- you could link to the text. And Google could search inside it. This video is not just a list of broken things. It goes to the very philosophy behind the difference between values, identity, and state. The bullet point you seek is: * OO programs conflate value, state, and identity. That is the essence but I'm not sure you'll understand it without the video. Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Sun, Dec 19, 2010 at 10:33 PM, Tim Daly d...@axiom-developer.org wrote: On 12/19/2010 10:21 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 9:42 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 9:24 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:25 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey Please install Flash Player. Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. The points made by Rich in the video require context. Besides, the only way I could make a bullet list would be to listen to the video again. My memory is hopelessly lossy. Exactly why text is preferable to video for stuff that can be expressed in text. Your memory wouldn't matter -- you could link to the text. And Google could search inside it. This video is not just a list of broken things. It goes to the very philosophy behind the difference between values, identity, and state. The bullet point you seek is: * OO programs conflate value, state, and identity. That is the essence but I'm not sure you'll understand it without the video. Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Something like that? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On Sun, 19 Dec 2010 21:24:42 -0500 Ken Wesson kwess...@gmail.com wrote: On Sun, Dec 19, 2010 at 8:25 PM, Tim Daly d...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey Please install Flash Player. Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. Let me second that - especially since flash isn't available for my normal mail platform, so the kludges required to run it make it even flakier than what Jobs objects to, and tends to hose performance there no end. Yes, somethings may best be presented on video, but all to often people try pass videos off as documentation (*). Even when video is actually the best choice, the least you could do is post something in an actual video format, and not as an executable for a poorly documented, proprietary VM that has had more than one security issue in the past. mike * A video isn't documentation. I can leave documentation open to the relevant page, and search it for the relevant phrases. A video may be educational, but that doesn't make it documentation. -- Mike Meyer m...@mired.org http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O ascii ribbon campaign - stop html mail - www.asciiribbon.org -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
On 12/19/2010 10:53 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 10:33 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 10:21 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 9:42 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 9:24 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:25 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey Please install Flash Player. Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. The points made by Rich in the video require context. Besides, the only way I could make a bullet list would be to listen to the video again. My memory is hopelessly lossy. Exactly why text is preferable to video for stuff that can be expressed in text. Your memory wouldn't matter -- you could link to the text. And Google could search inside it. Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Something like that? Ummm. no. You're approaching the question in an OO mindset. There is no path from that starting point to Rich's insight. Rich spent the better part of an hour trying to explain the insights that he got from what must certainly be months of reading and thinking. I'm part way through the Whitehead book he mentioned (and the other book is on-order). That's some heavy reading he's been doing. I also downloaded the primary paper on Multiversion Concurrency Control. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.5778rep=rep1type=pdf And, no, I don't plan to summarize Whitehead or the MVCC paper :-) @mike, Yes, a video isn't documentation. But the MVCC paper certainly is. Open source software doesn't seem to do documentation (which annoys me also since I'm a literate programming fanatic). Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Ah-hah! Clojure is a Lisp
2010/12/20 Tim Daly d...@axiom-developer.org On 12/19/2010 10:53 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 10:33 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 10:21 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 9:42 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 9:24 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:25 PM, Tim Dalyd...@axiom-developer.org wrote: On 12/19/2010 8:20 PM, Ken Wesson wrote: On Sun, Dec 19, 2010 at 8:18 PM, Tim Dalyd...@axiom-developer.org wrote: I didn't mean to imply that other people don't have the ah-hah! experience with other languages. However, I have only had the (before lisp)|(after lisp) experience with lisp. Your enlightenment might vary. Rich gave his Whitehead talk and brought up the fact that OO languages get several things wrong. Out of curiosity, which several things were these? http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey Please install Flash Player. Has everyone on this list developed a sudden allergy to plain text and HTML? First I get pointed to a 34-minute video, and now this. A simple bulleted list with a brief precis about each item would have sufficed; a multi-megabyte install of an executable and who knows how much futzing around, overkill. The points made by Rich in the video require context. Besides, the only way I could make a bullet list would be to listen to the video again. My memory is hopelessly lossy. Exactly why text is preferable to video for stuff that can be expressed in text. Your memory wouldn't matter -- you could link to the text. And Google could search inside it. Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Something like that? Ummm. no. You're approaching the question in an OO mindset. There is no path from that starting point to Rich's insight. I disagree, it /is/ something like that : in clojure parlance : * a value is an immutable object (and beyond that, also a /persistent/ datastructure for performance reasons). Clojure datastructures are the classical building blocks for creating values. * an identity is represented by a ref in clojure : an ref, an atom, an agent. An identity is an object representing something which can have different values at different points in time. * a state is a pair identity/value at some point in time. Refs and atoms and agents can also be considered as values, and can be embedded in other refs. But then, the value you must consider is just their identity, not their changing over time flux of values. All of this is pretty much the same as for relational databases. Once you get the technical id of a table row, you've a stable pointer for the identity of a concept. The values of the concept may change over time, though. And yes, languages which allow uncontrolled mutation of class instances fields generally will conflate those notions of identity and state, making it more difficult, for example, to write correct concurrent programs because it's much harder to work on a consistent set of the values of an object. Anyway, Ken, this video really is worth watching when you have the time to. Rich spent the better part of an hour trying to explain the insights that he got from what must certainly be months of reading and thinking. I'm part way through the Whitehead book he mentioned (and the other book is on-order). That's some heavy reading he's been doing. I also downloaded the primary paper on Multiversion Concurrency Control. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.5778rep=rep1type=pdf And, no, I don't plan to summarize Whitehead or the MVCC paper :-) @mike, Yes, a video isn't documentation. But the MVCC paper certainly is. Open source software doesn't seem to do documentation (which annoys me also since I'm a literate programming fanatic). Tim Daly -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure
Re: Ah-hah! Clojure is a Lisp
Ken Wesson kwess...@gmail.com writes: Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. Sort of. Identity (in the Clojure model) is not the same concept as equality. Nor is it reference equality (identical?). The overloading of terminology is somewhat unfortunate. By identity I mean a stable logical entity associated with a series of different values over time. -- clojure.org/state As Laurent mentioned the usual identities in Clojure are reference objects: vars, atoms, refs and so on. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Symbols and keywords (and database IDs) aren't identities, they're identifiers (names). Note that by identities I don't mean names (I call my mother Mom, but you wouldn't). -- clojure.org/state An identifier can be resolved in some sort of context to obtain an identity, but it is not itself that identity. If you wrote a program with a data model like this: (def people {Alice (ref {:age 25}), Bob (ref {:age 17})}) Then the various objects would be: name: a string like Alice context: the people map identity: a ref value: the {:age XX} maps In the vars and global environment model we have: name: a symbol context: a namespace identity: a var value: a number, list, vector, fn, string etc -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en