It's hard to really appreciate java and clojure until you actually write some C/C++ or ASM.. I have some minor experience with that stuff, and it still haunts me from time to time.
Sometimes we make tradeoffs without knowing we did. By choosing a language, or having the choice made for us, we accept a set of abstractions as our bottom level of thinking for a problem-space. Only old-timers and people that make a point to care about low-level stuff will notice the implications of what they're doing along the abstraction stack. People with ingrained habits just won't find it easy to think functionally, but I'm young and irreverent, so it doesn't bother me :-). C++ is fun because of all the bolted-on kludges that 'mitigate' these problems. You can use operator-overloading on pointer operations to perform automatic reference counting, deallocating objects when things that point to them go out of scope, but I think implementing a PersistentHashMap this way would be very difficult. Also, pretty sure it can't handle cycles. I guess the point is, I appreciate any effort to understand such issues, it's been a useful thing for me to know in the 0.05% of time that knowledge is needed. But, people who don't know just won't be able to get past those problems. And, you generally can't easily find a _really_ full-stack guy to glance at it for you when it would be useful to have one. On Sat, May 18, 2013 at 11:24 AM, atkaaz <atk...@gmail.com> wrote: > your comment caused me to be reading this > http://prog21.dadgum.com/134.html > (at least) > > > On Sat, May 18, 2013 at 6:17 PM, Gary Trakhman <gary.trakh...@gmail.com>wrote: > >> Immutability, persistence, closures without a serious garbage collector >> sounds hard. >> >> >> On Sat, May 18, 2013 at 1:09 AM, atkaaz <atk...@gmail.com> wrote: >> >>> Thanks very much everyone! I'm looking into all of those, but currently >>> planning to read Julian's pdf. I didn't want to say anything until I had >>> something definite, but just letting y'all know that I'm considering each >>> recommendation. >>> >>> >>> On Sat, May 18, 2013 at 7:12 AM, Julian <juliangam...@gmail.com> wrote: >>> >>>> If you had a hobbyist interest in representing S-expressions in >>>> assembler - then you could take a look at the tutorial written by Abdulaziz >>>> Ghuloum called "Compilers: Backend to Frontend and Back to Front Again". It >>>> used to be available here: >>>> http://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf >>>> >>>> I don't know if it available anywhere else on the internet - but I >>>> grabbed another copy and put it here: >>>> https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0&d=1 >>>> >>>> For a more serious representation of Clojure's persistent data >>>> structures, I don't recommend trying to implement them in ASM. >>>> >>>> Cheers >>>> Julian >>>> >>>> >>>> On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: >>>> >>>>> On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: >>>>> > Ok, weird question: is there some clojure port on assembler yet? >>>>> Even >>>>> > if(/especially if) it doesn't have jvm/java/javalibs support >>>>> > >>>>> > Or should I just check >>>>> > https://github.com/clojure/**clojure-clr<https://github.com/clojure/clojure-clr>? >>>>> > >>>>> > I'm mainly interested in low memory footprint and fast startup times >>>>> (does >>>>> > clojure-clr have that?) >>>>> >>>>> You may want to check out ClojureScript, too. ClojureScript programs >>>>> leveraging nodejs for host interop have fast startup times: >>>>> >>>>> >>>>> https://github.com/clojure/**clojurescript/wiki<https://github.com/clojure/clojurescript/wiki> >>>>> >>>>> -- >>>>> ------------------------------**------------------------------**----- >>>>> a l a n d. s a l e w s k i sale...@att.net >>>>> 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 >>>>> ------------------------------**------------------------------**----- >>>>> >>>> -- >>>> -- >>>> 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 unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+unsubscr...@googlegroups.com. >>>> For more options, visit https://groups.google.com/groups/opt_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 >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to clojure+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/groups/opt_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 >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_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 > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.