'(Devin Walters)
On Tuesday, March 27, 2012 at 8:54 PM, Cedric Greevey wrote: > On Tue, Mar 27, 2012 at 3:05 PM, Herwig Hochleitner > <hhochleit...@gmail.com (mailto:hhochleit...@gmail.com)> wrote: > > 2012/3/26 Cedric Greevey <cgree...@gmail.com (mailto:cgree...@gmail.com)>: > > > (comp <{:k1 5 :k2 6}), that is not used in production whereas (comp < > > > {:k1 5 :k2 6}) (note spacing) is used in production but isn't broken. > > > > > > > > > (comp <{:k1 5 :k2 6}) _is_ used in Production, > > Without a space right after the <? Where? What is your evidence? > > > > > Without even showing a page of code using said new syntax, let alone > > > > make an effort to enumerate cases where it would break. > > > > > > > > > > > > > I did in fact make such an effort, which should also have been clear > > > from an earlier post. > > > > > > > > > Not in your initial post and none of the latter ones, as far as I saw > > while skimming. > > > > > If you're not very good at skimming without missing important points, > just set aside some time at some point and read it thoroughly. > > > > > Furthermore you don't seem to recognize the gravity of those issues > > > > > > The only issue arguably possessing substantial gravity is the > > > oddly-spaced (comp <{:k1 5 :k2 6}) and similar. > > > > > > > > > That statement is arguably wrong. > > And I am arguably a butterfly dreaming I'm a man. But it's a > hypothesis of no real practical import. > > > - Hacking a second pass into the compiler (the single pass compiler is > > a feature) > > > > > Avoided by <{...}> (or <[...]>). > > > - Breaking existing conventions > > I disagree that adding a syntax (without removing #{}) is "breaking" a > convention. On the other hand, allowing sets to be specified with a > symmetric delimiter pair arguably is UNbreaking a convention. > > > - Dual end tokens (the reason i chose lisp is, that I don't want to > > bother with foo.bar(); note the _);_ ). Yes, this makes a difference > > when you edit your program. > > > > > But you don't mind dual start tokens, or you'd object to #{. Seems > you're being fairly arbitrary there. > > > Lisp is about prefix notation. > > I don't see what bearing this has. Moreover, Lisp is many things to > many people. Others would say Lisp is about lambdas; still others, > that Lisp is about macros; and of course many would say Lisp is about > list processing. > > > - Adding duplicate reader syntax (the only other place we've done that > > is #^, which is deprecated and where nobody liked the original syntax, > > esp. in combo with type hinting) (the other examples you gave, e.g. > > deref vs @ were the reader macro vs the form into which it gets > > translated) > > > > > Duplicate syntax is duplicate syntax. Your reader vs. other > distinction is an artificial one. > > > - Introducing a new reader table (i.e. a prefix character that > > switches the reader mode) for '{', '<', or whichever you choose. right > > now the '#' is the only reader table and it is an important visual > > indicator for "here, the reader inserts a datatype determined by the > > next character" [or few characters, since we have tagged literals]) > > > > > And this is just plain wrong. There must be a reader table for the > default case as well as a secondary one activated for the next token > by #. Also, there's nothing inherently icky about adding one more. > Furthermore, the notion that # indicates "here, the reader inserts a > datatype determined by what's next" is ... a simplification, at best. > #^, though deprecated, still exists and attaches metadata rather than > deciding a datatype. #_ comments out the following form rather than > deciding a datatype (and can't really be interpreted as making what > follows some sort of "do nothing" datatype; (two-arg-fn 1 #_2 3) won't > throw bad arity). #' suppresses lookup of a var's contents, so the > form is the var itself instead of whatever's inside it. In fact, #{, > #", and arguably #( are the ones that do specify a datatype, and do > not outnumber the others. > > > > I offer(ed) my ideas for free. > > > > Yes you can _offer_ them for free. Which doesn't mean we can > > _implement_ them for free. > > > > > Nobody claimed otherwise. You, on the other hand, erroneously implied > that I was charging or costing you money. > > > Also, getting your idea implemented is > > valued very highly in this community, even if you get no money. > > > > > How is that relevant to the question of price? In fact by your own > admission ("even if you get no money") it's orthogonal to the question > of price, and therefore *not* relevant. > > > > Are you implying that you think I don't have a coherent view? > > > > I only implied that you didn't _demonstrate_ it (please read) > > Now you're implying that I lack reading comprehension skills. Please > stop being gratuitously insulting and rude. And please stop implying > things about me that are untrue. > > > > Because such an implication would be both factually false and an insulting > > > public mischaracterization of me, perpetrated without provocation. > > > > > > > > > But the fact that you didn't even consider implementation complexity, > > And what, pray tell, is your evidence for this latest unflattering > claim about me? > > Oh, that's right, you don't have any, because it's simply not true. > Indeed, my posts to this thread contain sketches of implementations of > both proposals, and neither description is especially complex. > > > language elegance, > > You call #{...} elegant? > > > implications on existing code (in your initial example anyway), > > The {{...}} proposal wouldn't alter the meaning of any existing code > that didn't currently bomb with a compile error, which you'd know if > *you* were reading rather than skimming (poorly) what I wrote. In > light of which your earlier implication that *I* lack decent reading > skills acquires a distinct whiff of irony. > > The <{...}> proposal would alter a rare-to-purely-hypothetical subset > of existing code that does not adhere to normal spacing conventions > around operators and delimiters, and was only suggested when everyone > seemed so dead set against having a form that human readers might need > to read to the end of to classify. > > > ... while the biggest merits are some 0.7% of some users, > > 93% of statistics are made up on the spot, and unless you back it up > with some evidence I'll consider your "0.7%" figure above to be just > another instance of such. > > > and an unverify_able_ claim of code beauty ... > > Beauty is in the eye of the beholder but I'm guessing {{1 2 3}} and > <{1 2 3}> both look nicer to most people that #{1 2 3} does. > > You say "most people." If you're taking a survey, I find the spaceship-like <{1 2 3}> to be aesthetically gross, and that's me trying really hard to be polite. For me, {{}} would come in second to #{1 2 3}. {{}} would immediately make me think nested hash-maps. I remember the old metadata syntax, and I remember disliking it. I've never felt the same way about #{1 2 3}. > > > tells me your grasp on the topic is not as complete as you might think. > > That you feel the need to resort to emotional appeals, ad hominems, > invective, and made-up numbers to try to bolster your position tells > me *yours* is not as complete as *you* might think. Furthermore, > several of your misunderstandings indicate that your grasp of what I > actually wrote is not as complete as you might think, especially > combined with your own prior admission that you only skimmed it rather > than truly reading it for comprehension. > > > This is not an insult, but a challange to prove otherwise, > > I'd already done so earlier in the thread, which you'd know by now if > you'd bothered to read the whole thing carefully and understand it > before responding instead of skimming it, seeing something you had an > initial negative emotional reaction to, and immediately firing off a > knee-jerk flame, which when you were called on it you followed up with > a somewhat calmer and more detailed but still not very informed post. > > > your two valid responses are proving and denying the need to prove. > > I choose what's behind door #2. I don't need to prove something a > second time after I'd already done so once. > > > > Since there are none, that would seem to be moot. On soliciting > > > feedback in general, what do you think this thread was for? > > > > > > > > > Looking at the initial post, it seems like it was for putting a > > not-that-well thought out idea out there, and see if it sticks. > > > > > Almost correct this time. Leaving out your gratuitous shot > ("not-that-well thought out") would have gotten you the A on that one, > but since you included it, and it's wrong, I can't give you more than > a B+ on this question. :) > > You may not have *thought* it was well thought out, but since (as you > admitted earlier) you only skimmed it you could not be sure whether > that perception was because of something I omitted or something I > included that you didn't notice in your skimming. You guessed the > former. You guessed wrong. Them's the breaks. Look on the bright side: > if you do the same thing again, you might get it right next time. > 50/50 odds aren't particularly bad. I'd still recommend reading > something you skimmed and didn't like before launching into a critique > over guessing blindly, though. > > > > Unfortunately, the feedback I've gotten thus far seems to consist more > > > of knee-jerk hostility than of reasoned debate on the technical > > > matters. > > > > > > > > > You didn't credibly address the technical reasons that were given to > > you (IMO, anyway) > > > > > What "technical reasons" were those? I'm guessing most likely one of > three misunderstandings has happened here: > > 1. The "technical reason" actually wasn't technical -- likely some > emotional argument based on a subjective aesthetic rather than a truly > technical argument based on an objectively measurable thing such as > correctness, ease of implementation, or performance. > > 2. I did credibly address the technical reason, but you mis-classified > my response as not credible for emotional reasons of your own. > > 3. I did credibly address the technical reason, but in your skimming > you didn't even see it; you went on to assume incorrectly that since > you hadn't seen it it wasn't there. > > I do recall a few instances of technical and semi-technical reasons > that I did credibly address; did you misunderstand one of those? They > include: > > * The suggestion not to parse in two passes. Arguably a technical > reason, based on simplicity of implementation. I addressed that by > quickly figuring out a way to implement the {{...}} proposal without > adding a delimiter-matching pre-pass to the reader and posting a > detailed algorithmic description that not only kept our existing > one-pass reader but localized the changes to it in one very small > region, around a single throw statement. > > * The complaint that human readability would be impaired by having to > read to the end of a form. I pointed out that to the extent that that > objection was technical at all, a) it would be possible to adopt > spacing conventions that made the code easily grokked at a glance and > b) though that convention could then be ignored, it's always possible > to write poor-readability code in any Turing-complete language by > flouting that language's formatting conventions. When that wasn't > enough to satisfy the nay-sayers I also suggested <{...}>. > > * The claim that <{...}> would break existing code. This claim is > predicated on the assumption that there's poorly spaced code out there > now that has a <{ pairing, for which no-one has provided any evidence. > I indicated that that assumption is questionable, since such code must > necessarily violate decades of Lisp spacing convention and the > language is young enough that not very much unusually-formatted code > in it is likely to exist yet. It should also be noted that backward > compatibility is not to be taken as absolutely inviolable (1.3's > numerics were much more seriously breaking changes!) and that a > special compiler message could be emitted for an unpaired <{ to alert > people to any poorly-spaced code that needs a space inserting. (The > ^:dynamic requirement for rebindable globals came accompanied by a > similar warning when that breaking change was introduced.) > > > At which point we can repeat the questions (reason), > > Repeating questions that have already been answered simply because you > didn't like the answer is not a rational way of debating. You can > either accept the answer despite not liking it or address perceived > flaws in the answer. Simply repeating the question as if the answer > hadn't even been uttered is not proper debate, however. > > > just tell you why it's a bad idea anyway (emotion), > > Appeal to emotion is a logical fallacy and fails to prove your case. > > > or just ignore you (will do, promise) > > You may certainly do that, but doing so doesn't prove you right. > > > > It's remarkable how emotional some people get in response not only to > > > merely words, but even to merely dry, technical words devoid of any > > > personal attacks, threats, unflattering public disclosures, or > > > implications of same. > > > > > > > > > Let me take the opportunity to apologize to you for where you feel I > > overstepped my boundaries. > > > > > Apology accepted. However, there were several more such missteps in > this post. Along with "Didn't mean to suggest that". I think you may > actually have an undiagnosed communication difficulty, between your > skimmings-and-misunderstandings and your > didn't-mean-to-suggest-that's. Sloppy reading and writing, together, > could explain it; on the other hand, your unusual name suggests a less > unflattering hypothesis: that English is not your primary language and > your grasp of it is not yet complete. Is this the case? > > > > Too late. You already, by implication, called me "incoherent", > > > "half-blind", and other things. > > > > > > > > > Well, the name I was shooting for, doesn't actually fit, since you > > seem to be interested in ongoing discussion involving you. > > > > > ??? > > > > Meanwhile, I have refrained for the most part from like behavior, and > > > I have, contrary to one of your implications, made a good-faith effort > > > to address each objection that has been raised. > > > > > > > > > You seem to have done that, truth be told. > > Earlier in *this same post* you intimated that I had not! To wit, > > > You didn't credibly address the technical reasons that were given to > > you (IMO, anyway) > > > > > These seem contradictory. Please clarify. > > > > I get the distinct > > > impression that several here *first* concluded that my idea was > > > terrible, and only *then* tried to form an argument proving it so, > > > rather than examining the idea with an open mind first and then > > > drawing a logical conclusion based on reason and evidence. > > > > > > > > > A page of example code could remedy that, mostly. > > We all see enough clojure code that we ought to be able to visualize > it readily enough. > > > > However, an > > > inquiry in search of truth must needs start with the bare facts and > > > suggestions and ideas and follow, unbiasedly, wherever these may lead; > > > an inquiry that starts with coming to a conclusion and only afterwards > > > attempts to apply the tools of reason is not a search for truth but > > > rather a search for a rationalization for a decision already made, > > > and, in many such cases, made blindly. > > > > > > > > > There are no bare facts in "I think a {{ }} set literal would be > > better / attract more users / ..." > > > > > There's the fact that I think that. > > > You can project facts by imagining it were so. > > How ironic. > > > By imagining, you also get an emotional response. If at this point the > > emotional response + projected facts are a net negative, your idea isn't > > received well. It's called human psychology. > > > > > And *that*'s called patronizing language. > > > Please don't be discouraged by this. I like to say yes much more than > > I like to say nay. I'd love to comment positively on your well thought > > out proposal. > > > > kind regards > > Anyone else feel that there are mixed signals being given off here? > > -- > 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 > (mailto: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 > (mailto: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