But aren't the "edge cases" fewer given the notion that functions should be entirely defined by their inputs as oppose to being dependant on mutable state external to he function, in the most part.
I am agreeing with you, and find these real world experiences incredibly useful. Sent from my iPad On 6 Nov 2011, at 13:03, Dennis Haupt <d.haup...@googlemail.com> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Am 06.11.2011 13:44, schrieb Colin Yates: >> I have a hunch (as oppose to IME as I don't have any yet :)) that >> Clojure doesn't require as much due to at least the following >> points: >> >> - there is much less incidental complexity and ceremony required >> to manage (and therefore refactor) - implementations in Clojure >> require more thought and are much more focused on one thing then in >> Java, therefore there is a much higher chance that you get it right >> the first time > > this is a double edged sword. you *do* get it right *if* you think it > through, but reality is often more complex than you assume. if you > suddenly see that you forgot to handle special case x, you are > punished harder than in <random statically typed oo language>. > > in oo, you can do a few "emergency hacks" before everything becomes > unmaintainable. in clojure, i could not do this without committing > maintenance suicide immediately. for each case that popped up > surprisingly, i had to do a bit of refactoring. > > that whole "dynamically typed" thing is creeping me out. > > >> >> To put it another way, how much refactoring we we do in Java is >> down to managing the complexity of the problems inherent in Java >> the language; complecting state and identity for example. >> >> A concrete example: I know I often refactor code out of one class >> into a utility once that becomes useful by other classes. The >> reason I need to do this is because in java the functionality is >> ring fenced by the data that it works on (I.e. encapsulation in the >> container called a class). In clojure that association can be made >> but right off the get-go data and functionality are separate. >> >> Just my two-pence worth and I still haven't written more than 2 >> lines of clojure so it probably isn't worth 2p :) >> >> Sent from my iPad >> >> On 5 Nov 2011, at 12:16, Dennis Haupt <d.haup...@googlemail.com> >> wrote: >> >> hi, >> >> i'm half done with my asteroids clone. i stumbled over a few >> problems and wanted to know how others already solved them :) >> >> i am used to "less concrete programming". i ask my tools to do the >> actual analysis and coding for me: * where is that used? * rename >> that * show me all errors * add a parameter here * autocomplete >> this for me, i am too lazy to even remember the exact method name * >> show me a list of all methods and fields starting with an "e" that >> fit in here. i know the one i want is in that list. >> >> as elegant as clojure may be as a language, it's dragging me down >> to almost native text editing which i did more than 10 years ago >> when i wrote a game in turbo pascal. >> >> how did you solve these problem and get some tool-support? or >> don't you miss it because of something i am not aware of? >> >> >> >>> >>> -- 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 >> > > > - -- > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.14 (MingW32) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iQIcBAEBAgAGBQJOtoWuAAoJENRtux+h35aG/3gQAJEyUDT4/qMyTdgHURekwgga > +x0x75y3hcgutZ8ij2m4B+UGfg6Yg7cjXIuwyqtbvXFVyN02/C28MSWGj2xPMP0j > UI36zTiNzVikfafP4sxP0CLNQOBjIvH+MJ/xbFWe7p49l4hb9IWdYTJ237v1ik9h > YL5qulyqC1CrrJfqOr7eskErcQkyS9gLjdn+frByaq5N4dEGoh36sZfhgF6rSGqg > ZlMLUCxBsasTooktHOSGURbhorHuSHlheyfNX/z9dp/qBEBhMgRmLDnfsxMmAcFb > W5bbYKmqeIEfm+IHTRz0UUk1SbHoZVaDYY81qGI0rQgTpFFV1yRtC5TdQ2/lanGU > 4Aklxb4CqEt8mek5GBrwp7526ebVxF48hWQ5elP6ycUcI4LyBtQhIqT2Zqq8G7MG > hOdZSNQ7IXYq+mjLx1yGQrKQkZTlmWb+j3KbC2anz73qAw7jz1hmhBLjyFlhSWcG > LAJIuPT+WY+xJKMfl15l1XCO4xc8osd1FUBcfWEvPZvxqiH1RA/5YxL1W/Qou/NL > AJSxixJCQcONZd9ynppzJKSVyrcjzE0FUPMutynitmVFgtuSKz4eb+8U3SaX8HEm > GJOV8/e9ETms75TbSfGSjRPLXGaMTwswpWzpnA+B3wOHF6qGPxDFGr7uIxZa/ky+ > I3QAs0vzTFfhyjZP4SDg > =opYc > -----END PGP SIGNATURE----- > > -- > 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