Re: novel feedback is always welcome

2011-08-01 Thread James Keats


As an outcome of this thread, I have decided not to invest in clojure,
so I believe the following to be purely feedback, as I have no agenda
to push.

- it seems from some's point of view that I was trolling. Fine, from
my point of view though it was akin to drink the kool aid or gtfo.
Sorry, I'm too old and too well-read and too inquisitive to drink the
kool aid, so I'll just gtfo.
- I'm not sure what you mean by not up to speed. I had the book
about the google closure library for nearly a year now and I'd read it
a few times. I'd gotten copies of all the clojure books published and
downloaded all the videos put out and read/watched them several times.
I'd scoured the web - and this group - for every clojure related
reading material I could find, and watched the clojurescript video a
couple of times very carefully and read its rationale a few times.
- I'm not sure what you mean by recovering old ground. When I made
the post (24th of July) Clojurescript had only been out for a few
days, most notably it was 2 days after Video is now available of Rich
Hickey's talk at ClojureNYC yesterday announcing clojurescript (22nd
of July).
- I'd understand what you might've meant by the above two points if
you guys had no intentions for anyone outside a very small tightknit
group of you to use clojurescript, but if you'd intended others
besides you to use it too then no, I don't.
- I'm also not sure what you mean by He did not understand the
difference between language and platform, and from there was at a loss
to understand our decision-making. I believe my original post and
thereafter and throughout were clear enough that my concern was not
the clojure language itself, but the google closure library as a
dependency.
- the argument - paraphrasing - it's just clojure, you code in
clojure, the google library is under, and you don't need to look
under is akin to saying here's a foundation for you to build a
skyscraper on, now build your skyscraper, don't look under at what's
in the foundation you're building on. Sorry, can't do.
- the notion that the leader decides all unquestioned and that no
disappointment or unhappiness will be tolerated is too stalinist for
my taste.

Regards and best wishes.



On Jul 31, 3:27 pm, Stuart Halloway stuart.hallo...@gmail.com wrote:
 (I have take the liberty of changing the subject line, which may be less than 
 ideal for some people's reading style.)


-- 
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: novel feedback is always welcome

2011-08-01 Thread James Keats


As an outcome of this thread, I have decided not to invest in clojure,
so I believe the following to be purely feedback, as I have no agenda
to push.

- it seems from some's point of view that I was trolling. Fine, from
my point of view though it was akin to drink the kool aid or gtfo.
Sorry, I'm too old and too well-read and too inquisitive to drink the
kool aid, so I'll just gtfo.
- I'm not sure what you mean by not up to speed. I had the book
about the google closure library for nearly a year now and I'd read it
a few times. I'd gotten copies of all the clojure books published and
downloaded all the videos put out and read/watched them several times.
I'd scoured the web - and this group - for every clojure related
reading material I could find, and watched the clojurescript video a
couple of times very carefully and read its rationale a few times.
- I'm not sure what you mean by recovering old ground. When I made
the post (24th of July) Clojurescript had only been out for a few
days, most notably it was 2 days after Video is now available of Rich
Hickey's talk at ClojureNYC yesterday announcing clojurescript (22nd
of July).
- I'd understand what you might've meant by the above two points if
you guys had no intentions for anyone outside a very small tightknit
group of you to use clojurescript, but if you'd intended others
besides you to use it too then no, I don't.
- I'm also not sure what you mean by He did not understand the
difference between language and platform, and from there was at a loss
to understand our decision-making. I believe my original post and
thereafter and throughout were clear enough that my concern was not
the clojure language itself, but the google closure library as a
dependency.
- the argument - paraphrasing - it's just clojure, you code in
clojure, the google library is under, and you don't need to look
under is akin to saying here's a foundation for you to build a
skyscraper on, now build your skyscraper, don't look under at what's
in the foundation you're building on. Sorry, can't do.
- the notion that the leader decides all unquestioned and that no
diappointment or unhappiness will be tolerated is too stalinist for my
taste. It is my belief that the hallmark of good open source software
is its attitude towards intense and thorough scrutiny.

Regards and best wishes.



On Jul 31, 3:27 pm, Stuart Halloway stuart.hallo...@gmail.com wrote:
 (I have take the liberty of changing the subject line, which may be less than 
 ideal for some people's reading style.)


-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-26 Thread James Keats


On Jul 26, 1:53 am, Christian Marks 9fv...@gmail.com wrote:
 On Jul 25, 6:11 pm, James Keats james.w.ke...@gmail.com wrote: I ask, what 
 is it that I did other than seriously inquire about the
  rationale?!

 You started a thread with the non-serious title, Alright, fess up,
 whose unhappy with clojurescript?
 instead of the more serious Comments on the clojurescript rationale.
 Having done that, you could have addressed the rationale.

It was a serious title. I'm still surprised that I seem to be the only
one here unhappy with it. I suspected some might've shared my
unhappiness but weren't confessing it, perhaps, evidently, for fear of
inciting controversy or ruffling feathers. And the content of my
OP was clear and to the point.


  then there's a big wide merciless world out there that'll find it
  absolutely ridiculous for Rich Hickey to rail against classes and
  inheritance on and on and then favor a library and post a link titled
  inheritance that argues for hoisting a pseudoclassical version of it
  upon a language that tries to be functional as proof that it is
  advantageous. Perhaps clojure itself should have classes and
  inheritance and Rich should instead of apologizing for having once
  taught it to people apologize for teaching them clojure.

 Oh dear, this is jumbled prose for someone who always advocates
 taking
 a managerial attitude.  So much for the managerial attitude. What
 happened to love you, man? One gathers that managers offer
 conditional
 apologies and then quickly and resentfully withdraw them.

It isn't jumbled prose, it is clear and to the point; enough of
these inane replies. I was reacting to Rich' apparently and needlessly
hurt feelings, and he's not someone I'm managing. That love you, man
was specifically to address his feelings, and had nothing to do with
my managerial ways - if someone I'm managing had reacted to my
technical feedback with a temper tantrum I would've fired him, which
is effectively what I'll be doing by washing my hands of clojure.

You folks need to sort this out. Rich needs to put a price on clojure,
a monthly or yearly price - none of this appeal/gift nonsense - so he
doesn't revealingly reply to technical feedback with a revealingly
sarcastic I'll make sure you get a refund. Perhaps this might work
as a reply to idle leechers, but for people who value their own time
and have an ounce of self-respect it is highly offensive. Just by
merely paying attention to Rich and clojure, serious folks are
incurring a cost already. If I pay attention to someone preaching to
me on and on and then he does something that contradicts his preaching
then I will feel that my time had been wasted, even robbed.

Just because clojure is open source doesn't mean he can't get paid for
it, and just because he gets paid for it doesn't mean he has to answer
to anybody. I can priate jetbrain's intellij if i so wish, and were I
to pay for a copy and then demand that jetbrains put a flight
simulator in it or institute a 120hrs workweek they still wouldn't
need to answer to that. I believe clojurescript is a mistake that Rich
should've put more of his hammock time into, and he should
unashamedly put a price on his hammock time.

-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-26 Thread James Keats


On Jul 26, 2:01 pm, semperos daniel.l.grego...@gmail.com wrote:
 Based on the majority of posts in this thread, I think you can see you're in
 the minority, both with regards to your opinions of ClojureScript and with
 regards to how this community should behave. Here's one more person who
 doesn't appreciate the attitude your posts embody. Rich, and everyone else
 on this list and everyone on this list http://clojure.org/contributing have
 put serious and brilliant efforts into developing Clojure. There's a lot
 more to learn from Clojure and its community than there is to criticize, in
 my opinion.

 I have never been involved in a more helpful or welcoming open source
 community than Clojure, and I'm involved in many. Wash your hands and be
 gone, if you're not interested in learning from people who have spent their
 hammock time coming up with the cutting edge in language design and
 implementation.

 Or just start coding and make things better.

 -Daniel

Oh I will be washing my hands and be gone for sure, as coding and
making things better is precisely what I offered in my OP, which was
taken as a threat and I was told to start a separate mailing list
for it; perhaps this community welcomes folks who don't know any
better than to be invariably effusive for everything in it, but for
those who do it it quite evidently has not been.

-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-26 Thread James Keats


On Jul 26, 3:08 pm, Timothy Baldridge tbaldri...@gmail.com wrote:

Hi Timothy, and thanks for your much-better-than-others' reply.


  Oh I will be washing my hands and be gone for sure, as coding and
  making things better is precisely what I offered in my OP, which was
  taken as a threat and I was told to start a separate mailing list
  for it; perhaps this community welcomes folks who don't know any
  better than to be invariably effusive for everything in it, but for
  those who do it it quite evidently has not been.

 But I think you need to understand what exactly it is that you are
 asking of Rich and the other ClojureScript devs whith your original
 comment. Rich's comment is not abnormal for the type of request you
 are making. I have seen his type of reply before.


And what is it exactly I was asking of them?! I offered to
singlehandedly fork and redo it.


 For a second let's try to cool down and see the logic process used in
 Clojure to start with. Standard Clojure was developed on the JVM...for
 one reason...it provides a platform to stand on while developing a new
 language. We already have a type system, GC, etc. Could Rich have
 developed all this from scratch? Sure, but we'd probably still be at
 Clojure 0.1, and no one would be using the language in production.
 Believe me, I've actually attempted writing Clojure in a lower level
 language (both PyPy and C++), and it's not pretty, the level of tools
 that exist for the JVM and the level of the JVMs themselves shaved
 years of development time off the creation of Clojure.


No, sorry, this doesn't make sense. No reasonable person would've
expected Rich to develop from scratch a type system, GC, etc. for
javascript, and this has nothing to do with Google's Closure tools.

 What does this have to do with ClojureScript? Well I think it shows
 the thought process that Rich uses when developing a new language. He
 looks at his tools and finds platforms that make is life easier.

 So, let's for the sake of argument, enumerate the features of both
 sides of this question:

 jQuery:
 Understood by the JS community
 Helps manipulate the DOM
 Provides some UI routines
 Optimizes code size via minifiers

 Closure:
 Enforces a strict OOP model
 Provides Graphics routines (canvas)
 Provides DOM manipulation routines
 Provides many UI routines
 Provides encryption, networking, spellchecking, math libraries etc.
 Has a full optimizing compiler

 The cons of Closure is of course that it's not well understood by the
 JS community. But this really isn't a language for the JS community,
 so is that really a problem?

 I think Rich looked at both these options (and many more), and simply
 picked the right tool for the job at hand. No! I would never use
 Closure for a website I was writing in JS. It would be a major pain in
 the neck. But I plan on using Clojure and ClojureScript for my future
 web needs.


Right, so you wouldn't use it in JS but you'd use it with an
additional layer of indirection (translated from another language)
that'd make working with it and reasoning about what's actually
happening and debugging even more of a pain. Sorry, this doesn't make
sense either.

I have already addressed other points, such as favoring it for
enforcing a strict OOP model as being an serious affront to the
credibility of clojure's rationale and advocacy and that its
optimizing compiler made sense back when most of the browsers out
there were IE6 but is no longer a reasonable priority.

Regards, and thanks again for your better-than-others' reply, I won't
be coding anything though after all this and I'll still be gone. For
sanity's sake, you guys ought to realize - for your own sake - that as
things stand you surely won't be kicking butt with clojurescript.

 Just like you can write Clojure code and not care what Java is doing
 under the hood. Now you can write Clojure for the browser and not care
 about what JS is doing.

 __

 So after taking that all into consideration, I'm confident, that if
 you took the time to develop a POC that showed that a jQuery based
 ClojureScript would be faster, smaller, and better than one developed
 with Clojure, Rich would probably switch in a heartbeat. But until you
 have hard evidence, it's really hard to convince anyone.

 Timothy

-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-25 Thread James Keats



Right, Rich, please allow me to reply to the points you mentioned; I
declined from doing so last night as I sensed some unintentionally
irritated feelings, which I hope have eased a bit by now. I believe
all my posts in this discussion are purely technical concerns and I
believe them to be valid. I am most definitely not a troll as some
have suggested; I would've had to do a ridiculous amount of homework
over a long, long period of time and been a psychic to predict this
event (I've only found out clojurescript in the past couple of days),
and I do not believe in any way I'm making an attempt at humor in the
technical arguments I'm making.

On Jul 24, 10:28 pm, Rich Hickey richhic...@gmail.com wrote:
 On Jul 24, 11:19 am, James Keats james.w.ke...@gmail.com wrote:

  Alright, to be honest, I'm disappointed.

 I'll make sure you get a refund then.

 Seriously, this is like being disappointed an action movie was an
 action movie instead of a comedy. Your expectations are a complete
 mismatch for the intentions of ClojureScript.

clojure's rocks... javascript reaches


  First of all, congrats and good job to all involved in putting it out.
  On the plus side, it's a good way to use the Google Closure javascript
  platform.

  On the minus, imho, that's what's wrong with it.

  Google Closure is too Java.

 Actually, it's too JavaScript. Some JS proponents want to disavow its
 pseudo class model, but it certainly is part of the design of
 JavaScript. And it has some particular advantages over the other
 strategies, as outlined here:

 http://bolinfest.com/javascript/inheritance.php

Rich, the pseudo class model with the new keyword is a syntactic
obfuscation, semantically javascript is prototypical inheritance. It's
class free. In addition to the pseudo class inheritance advocated by
google closure and the prototypical inherent in javascript, others
like Doug Crockford advocated functional inheritance.

Now I have watched and read enough of your output and for example
Stuart Holloways talk about protocols to know that you've railed in
your adovacy of clojure against classes and inheritance, and find it
ironic that now you posit a link by an advocate of it citing it as
advantageous. In any case, as I've mentioned, I have been aware of
this article for nearly a year now, it failed to convince me back then
and it still does; most of the arguments in it concern the closure
compiler, an obeisance to which by the regular developer who doesn't
have the needs and resources of google, I feel in this day and age of
ample memory and bandwidth and fast javascript engines, is premature
optimization gone berserk (seriously, folks, people are streaming HD
video, 1.5 gbps fiber optic broadband is being rolled out in London
and soon other cities worldwide and 4G mobiles are upon and we're
fretting over mere tens of KB that gets cached after first time and
basing our development around minimizing it?!), and the remainder of
the arguments are in support of classes and inheritance.


  It's not idiomatic JavaScript.

 There's no such thing as idiomatic JavaScript. There are a lot of
 different conventions used by different libraries.


The Javascript community - the vast majority of which - after a decade
and a half now of experience with the language has come to regard some
aspect of it as good and others as problematic; things like functional
programming and object literals (akin to clojure's maps/structs/
records) vs classical inheritance, which are positions you yourself
have taken and advocated.

  I find it
  disappointing that rather than porting from a functional language like
  Clojure straight to another functional language like Javascript, the
  google closure with its ugly Java-isms is right there obnoxiously in
  the middle.

 In the middle of what? I look at ClojureScript code and it looks like
 Clojure to me. Google Closure is under, and it is no more annoying
 there than Java is under Clojure - an implementation detail, and a
 rich source of production-quality code.

I respectfully dispute that; for what they both do - dom, css, ajax,
events, cookies, ui, effects, animations etc - jquery does it far
better and is much more pleasant an api. What jquery itself doesn't do
the huge ecosphere of libs around it do, for example:
http://metajack.im/2009/03/13/jquery-and-strophe-made-for-each-other/
http://strophe.im/



  Then, there's the elephant in the room, and that elephant is Jquery. I
  believe any targetting-javascript tool that misses out on jquery-first-
  and-foremost is missing out on the realities of javascript in 2011.

 Should it be the purpose of a new language like ClojureScript to
 orient itself around the realities of currently popular JavaScript
 libraries? I think not.
 If you want jQuery as the center of your
 universe, JavasScript is your language - good luck with it. I see
 jQuery as a tool to be leveraged when appropriate (i.e. rarely in
 large programs), not an architectural centerpiece

Re: Alright, fess up, who's unhappy with clojurescript?

2011-07-25 Thread James Keats

Perhaps I should've just looked for a blog about knitting or cupcakes
and posted what I did here about clojure/clojurescript in it. That way
you fine folks won't get to read it, eventhough no one here is obliged
in any way to read my posts or any in this thread. Yeah, definitely,
that way I might've made sure that I didn't incite any controversy
or ruffle any feathers; god forbid that should ever be done here.
I ask, what is it that I did other than seriously inquire about the
rationale?! I don't see me making any jokes and I don't see me doing
anything other than seriously inquire about the rationale. I'm
sorry, but if you fine folks choose to blind and deafen yourself to my
seriuos inquiry about the rationale and call me a troll for it,
then there's a big wide merciless world out there that'll find it
absolutely ridiculous for Rich Hickey to rail against classes and
inheritance on and on and then favor a library and post a link titled
inheritance that argues for hoisting a pseudoclassical version of it
upon a language that tries to be functional as proof that it is
advantageous. Perhaps clojure itself should have classes and
inheritance and Rich should instead of apologizing for having once
taught it to people apologize for teaching them clojure.

Fine, I am done with this (- back to scala); I have better things to
do than being called a troll. ignore me all you want, if that's
how you want it then it the world out there will ignore you.

(ps. what's quotes below mischaracterizes what my psots)

On Jul 25, 1:28 pm, Mark Rathwell mark.rathw...@gmail.com wrote:
 Colin,

 I don't think anyone responding was doing so with the mindset of my way or
 the highway and we must defend the great leader's achievements.  Speaking
 for myself, I responded to an argument that did not make sense, that
 argument being basically: Crockford says javascript can be written a
 certain way, jQuery generally follows this pattern and it is popular, Google
 Closure does not follow this pattern in some ways and is not as popular,
 therefore it should not be used for ClojureScript.

 Nobody is shooting down I love it type posts because they do come off as
 intentionally inflammatory.  The titles of these posts seem aimed to incite
 controversy and ruffle feathers (as does the content), rather than seriously
 inquire about the rationale.  And the arguments are generally recaps of
 articles that agree with the author, rather than actual pain points hit when
 trying to create something with Clojure or ClojureScript.  The responses
 throwing troll around are the attempt of the community to point out that
 this list's main purpose is to help people, not for inflammatory content
 that belongs in blog posts.

 As for responding with OK, this guy clearly doesn't get it - how can we
 improve our communication, this goes back to the intent of the author.  I
 don't think the intent was to get anything, I think the intent was to
 incite.  The best response to this is to ignore it, and that is what I
 should have done, but it is easier to say than to do.

  - Mark







 On Mon, Jul 25, 2011 at 5:08 AM, Colin Yates colin.ya...@gmail.com wrote:
  Absolutely nothing to add to the argument as such except to say that I am
  quite surprised at the level of resistance to James' thread.  I can see the
  argument if this was the 'dev' mailing list.

  I have been reading this mailing list for a long while now (even if I
  haven't contributed much to it) but if this had been the first post I had
  read I would have a very negative opinion of the *clojure community*.  It
  comes off as sounding like if you don't like what we do, go away - it is
  our way or the highway, which would be a terrible shame as I don't *think*
  that is the case?  If I wanted that atmosphere there are plenty of other
  places to go.

  Sure, I get that James' email didn't really provide any points of
  discussion, it was more a moan (sorry James ;)), but so what - I don't see
  anybody shooting down ClojureScript - I love it type posts.  And maybe a
  better response would be asking OK, this guy clearly doesn't get it - how
  can we improve our communication?

  Rich - we are *all* grateful and I expect I am not alone in being amazed at
  the technical marvel you have pulled out of the hat.  But to be honest I
  think you need a thicker skin.  Getting your strokes from the mailing list
  is dangerous at best.  To be disheartened by one negative post in the midst
  of positive votes is a bit worrying.

  If this mailing list is for the community to discuss Clojure and ask
  Clojurians for help then these responses were inappropriate.  If this
  mailing list is to big up Clojure then fine - but make that explicit.

  Col (surprisingly disappointed and feels strongly enough to send this at
  the risk of being called a troll himself!)

  P.S.  Strongly opinionated communities that shoots down criticisms of the
  great leaders' achievements is unfortunately not breaking new ground 

Alright, fess up, who's unhappy with clojurescript?

2011-07-24 Thread James Keats

Alright, to be honest, I'm disappointed.

First of all, congrats and good job to all involved in putting it out.
On the plus side, it's a good way to use the Google Closure javascript
platform.

On the minus, imho, that's what's wrong with it.

Google Closure is too Java. It's not idiomatic JavaScript. I find it
disappointing that rather than porting from a functional language like
Clojure straight to another functional language like Javascript, the
google closure with its ugly Java-isms is right there obnoxiously in
the middle.

Then, there's the elephant in the room, and that elephant is Jquery. I
believe any targetting-javascript tool that misses out on jquery-first-
and-foremost is missing out on the realities of javascript in 2011.
Jquery is huge in its community and plugins, and it has tons of books
and tutorials. In much the same way that you can have lots of libs on
the JVM, there are lots of plugins for jquery. So much so that the
latest edition of Javascript: the Definitive Guide includes a chapter
on it; quoted:

Because the jQuery library has become so widely used, web developers
should be fa-
miliar with it: even if you don’t use it in your own code, you are
likely to encounter it
in code written by others.

Then, the Google Closure compiler is a moot point. Everyone by now
already has a copy of jquery from the Google CDN and linking to it in
your code will not download it any further after your first visit to a
website that does so. In any case, it's already small and fast.

Then there's rhino/jvm. I would much rather an in-browser focus.

I'm tempted to fork clojurescript and redo it in javascript perhaps
so that seamless interop with jquery would be the main priority.

Discuss?


-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-24 Thread James Keats


On Jul 24, 5:02 pm, Mark Rathwell mark.rathw...@gmail.com wrote:
 Wasn't it just a couple weeks ago that you were arguing that everything
 should be more like Java?  Now you're arguing that Google Closure is bad
 because it has some similarities to Java development (mainly verbosity and
 documentation).  I'm honestly not sure if you are just trying to be
 controversial, or to appear smart, but I'll bite (time for a break anyways).

 Closure is not idomatic javascript:
 ---

 Do you have an actual argument from experience here, or are you
 regurgitating what you've read in articles like [1].  Is CoffeeScript
 idiomatic javascript?  How about Dojo?  SproutCore?  jQuery?  What exactly
 is idiomatic javascript?

 vs. jQuery:
 ---

 jQuery is awesome for adding dynamicity and ajaxy stuff to page based web
 apps, I don't think anyone argues that.  And it is extrememly simple, not
 even requiring the user to know any javascript to use it.  This is why it is
 so (deservedly) popular.

 Large scale, single page applications are a different thing than page based
 sites, however.  Writing these types of apps with only jQuery quickly turns
 to spaghetti.  There are some nice libraries/frameworks out there, like
 Backbone and Underscore, that do a very nice job of making it cleaner and
 scalable.  These are all still fairly young though, to be fair.

 In the realm of proven environments for large scale, client side javascript
 development, you have Dojo and Google Closure, and to some degree SproutCore
 and Cappuccino.  If you can point me to larger scale apps than GMail, Google
 Docs, etc., written using jQuery, I will gladly have a look.

 Once you get to that scale, you really needing a way to organize code, to
 package and load modules, etc.  Dojo and Closure offer a pretty nice, and
 proven, system for this.

 So, yes, I would have preferred Dojo, because I am more familiar.  But to be
 fair, Closure is very similar, is a very complete library, and has very good
 documentation and examples for the most part.


On Jul 24, 5:02 pm, Mark Rathwell mark.rathw...@gmail.com wrote:
 Wasn't it just a couple weeks ago that you were arguing that everything
 should be more like Java?  Now you're arguing that Google Closure is bad
 because it has some similarities to Java development (mainly verbosity and
 documentation).  I'm honestly not sure if you are just trying to be
 controversial, or to appear smart, but I'll bite (time for a break anyways).

 Closure is not idomatic javascript:
 ---

I'm not arguing that everything should be more like Java, but
rather, if you're targetting the JVM then Java, if you're targetting
javascript then javascript.

I'm aware of the article you pointed out, but no, that article is
mostly about the implementation details within closure, which is a
lesser concern to me. I think a good book about idiomatic javascript
would probably be Douglass Crockford's Javascript: the Good Parts, and
just as good if not even better is JavaScript Patterns by Stoyan
Stefanov; emphasis on a functional programming small subset of
javascript, using closures and prototypes, et cetera. I had been aware
of the Google Closure library through its book, which I read when it
first came out; I invite you to read this book. It's too Java-esque;
java-inspired annotations, java-inspired OOP, too much complexity and
ceremony, and the author pointedly dismisses much of the javascript
community idioms: http://bolinfest.com/javascript/inheritance.php

I think it's a bit absurd, folks, to criticize Java's OOP as
incidental complexity, too much ceremony, and even suggest in the Joy
of Clojure that a Steve Yegge's Universal Design Pattern and prototype
pattern a la Javascript could be married to clojure's in the chapter
that discuss namespaces, multimethods, protocols and datatypes, and
then turn around and implicitly declare to the world with the release
of clojurescript oh noes! if we're gonna do anything substantial then
this doesn't scale! we need a Java like solution!


 [1]http://www.sitepoint.com/google-closure-how-not-to-write-javascript/

  - Mark

 On Sun, Jul 24, 2011 at 11:19 AM, James Keats james.w.ke...@gmail.comwrote:



-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-24 Thread James Keats


On Jul 24, 6:03 pm, David Nolen dnolen.li...@gmail.com wrote:
 As a professional JavaScripter for the past 6 years who has built his own
 frameworks and written considerable amounts of Prototype, MooTools, and
 jQuery.

 I don't think jQuery is special or particularly interesting and most of the
 libraries around it are terrible IMO. It certainly doesn't help in building
 sophisticated clientside applications (if it did, why Backbone.js, why
 Cappuccino, why SproutCore?, etc).

 For simple stuff it's fine. But then so is Google Closure.

 I think the Clojure community can do much, much better. In fact a clientside
 framework could be the first Clojure killer app ...

 David


I was hoping that clojure itself would help jquery build sophisticated
applications, by bringing proper functional programming to the
clientside, rather than bringing Java's OOP in the form of gClosure.

The Javascript notaries have advocated using a small functional subset
of javascript, rather than the full gamut of javscript's quirks, and I
was saddened while watching the Rich Hickey talk when he said that
clojurescript would abstract away the complex conventions and
discipline required when writing apps for gClosure by producing code
ready for its optimizing compiler, when it could've simply enforced
that small functional subset of javascript itself (sans gClosure)
that's now considered idiomatic best practice.

-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-24 Thread James Keats


On Jul 24, 7:05 pm, David Nolen dnolen.li...@gmail.com wrote:
 On Sun, Jul 24, 2011 at 1:46 PM, James Keats james.w.ke...@gmail.comwrote:

  The Javascript notaries have advocated using a small functional subset
  of javascript, rather than the full gamut of javscript's quirks, and I
  was saddened while watching the Rich Hickey talk when he said that
  clojurescript would abstract away the complex conventions and
  discipline required when writing apps for gClosure by producing code
  ready for its optimizing compiler, when it could've simply enforced
  that small functional subset of javascript itself (sans gClosure)
  that's now considered idiomatic best practice.

 Restricting yourself to a functional subset of JavaScript can't fix
 JavaScript. The functional subset stinks, Javascript notaries be damned.

 David

If so where does this leave clojure itself and its advocacy of
functional programming, then; see last paragraph of my reply to Mark.

-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-24 Thread James Keats


On Jul 24, 7:24 pm, Michael Gardner gardne...@gmail.com wrote:
 On Jul 24, 2011, at 1:11 PM, James Keats wrote:

  Restricting yourself to a functional subset of JavaScript can't fix
  JavaScript. The functional subset stinks, Javascript notaries be damned.

  If so where does this leave clojure itself and its advocacy of
  functional programming, then; see last paragraph of my reply to Mark.

 You can't draw any inference along those lines from David's observation.

I'm not drawing an inference, but an argument.


 The functional parts of Javascript are far different from those of Clojure 
 (and not in a good way).

How so? javasript, while not as functional as clojure, is far more
functional than java ( first class functions, closures, anonymous
functions etc. A small subset of clojure would mirror and could expand
on a small subset of javascript); it's been called a Lisp in C's
Clothing, and Brendan Eich famously and repeatedly said As I’ve
often said, and as others at Netscape can confirm, I was recruited to
Netscape with the promise of “doing Scheme” in the browser Back at
Netscape doing a scheme in the browser was botched a bit by a deal
with Sun and the diktat from upper engineering management was that
the language must “look like Java”.[1], and whereas clojure/
clojurescript now had an opportunity to correct that, instead it's
piling on the Java-ism with gClosure.

[1] http://brendaneich.com/tag/history/

-- 
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: Alright, fess up, who's unhappy with clojurescript?

2011-07-24 Thread James Keats

Well I'm very very sorry if the intent of my post was misunderstood or
I articulated it poorly, but I would like to emphasize, Rich, that I'm
a big fan of yours and in no way intended to exhaust you, I was merely
and honestly voicing my concerns, just like in a previous thread I
have quoted you time and again and voiced my agreement with and
admiration of your work and positions with regard to clojure itself. I
have watched all your talks on vimeo several times, and read most of
what I could find online of interviews with you, and with regard to
clojurescript I did read the rationale, I watched your talk twice and
carefully, and I had the google closure book for almost a year now,
which includes a reprint of the article you linked to and that I had
previously linked to this this thread.

forking was in no way a threat, but a suggested possibility to see
what everyone here thought, whether there were others like me, who
aren't fond of google closure, who perceive a demand for it, as a non-
gclosure alternative that'd be part of the clojure toolset.
Unfortunately my intent seems to have been misunderstood or I'd
miscommunicated it, whichever, I find regrettable.


On Jul 24, 10:28 pm, Rich Hickey richhic...@gmail.com wrote:
 On Jul 24, 11:19 am, James Keats james.w.ke...@gmail.com wrote:

  Alright, to be honest, I'm disappointed.

 I'll make sure you get a refund then.

 Seriously, this is like being disappointed an action movie was an
 action movie instead of a comedy. Your expectations are a complete
 mismatch for the intentions of ClojureScript.

  First of all, congrats and good job to all involved in putting it out.
  On the plus side, it's a good way to use the Google Closure javascript
  platform.

  On the minus, imho, that's what's wrong with it.

  Google Closure is too Java.

 Actually, it's too JavaScript. Some JS proponents want to disavow its
 pseudo class model, but it certainly is part of the design of
 JavaScript. And it has some particular advantages over the other
 strategies, as outlined here:

 http://bolinfest.com/javascript/inheritance.php

  It's not idiomatic JavaScript.

 There's no such thing as idiomatic JavaScript. There are a lot of
 different conventions used by different libraries.

  I find it
  disappointing that rather than porting from a functional language like
  Clojure straight to another functional language like Javascript, the
  google closure with its ugly Java-isms is right there obnoxiously in
  the middle.

 In the middle of what? I look at ClojureScript code and it looks like
 Clojure to me. Google Closure is under, and it is no more annoying
 there than Java is under Clojure - an implementation detail, and a
 rich source of production-quality code.

  Then, there's the elephant in the room, and that elephant is Jquery. I
  believe any targetting-javascript tool that misses out on jquery-first-
  and-foremost is missing out on the realities of javascript in 2011.

 Should it be the purpose of a new language like ClojureScript to
 orient itself around the realities of currently popular JavaScript
 libraries? I think not. If you want jQuery as the center of your
 universe, JavasScript is your language - good luck with it. I see
 jQuery as a tool to be leveraged when appropriate (i.e. rarely in
 large programs), not an architectural centerpiece.

  Jquery is huge in its community and plugins, and it has tons of books
  and tutorials.

 So what? Those people are satisfied by, and not leaving, JavaScript,
 and I'm fine with that.

  Then, the Google Closure compiler is a moot point.

 If you seriously cannot see the benefits of Google's compiler then you
 are not the target audience for ClojureScript. In any case, for those
 interested there is an argument for Google's approach in the
 rationale, as well as this page on the wiki:

 https://github.com/clojure/clojurescript/wiki/Google-Closure

  I'm tempted to fork clojurescript and redo it in javascript perhaps
  so that seamless interop with jquery would be the main priority.

 Is that a threat, or a promise? I suggest you start by writing up a
 rationale like this one:

 https://github.com/clojure/clojurescript/wiki/Rationale

 making your intentions and the superiority of your approach clear.
 Then prepare yourself for messages from people who don't bother to
 read or understand it.

 Messages like yours make creating things and releasing them for free a
 really exhausting endeavor.

 Good luck with your fork - please start a separate mailing list for
 discussions about it.

 Rich

 p.s. note to others - if you have read the docs and have honest
 questions about the approach, I and others would be happy to explain.
 But we could do without messages about disappointment, threats of
 forks etc. ClojureScript is an action movie, and we're interested in
 helping people kick butt.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure

Re: Alright, fess up, who's unhappy with clojurescript?

2011-07-24 Thread James Keats


On Jul 24, 10:23 pm, Base basselh...@gmail.com wrote:
 Why should we care what kind of Javascript ClojureScript generates,
 as long as it's correct and performant? The whole point of the project
 is to allow us to write Clojure rather than Javascript!

 James, you do get this point, right?  Just like GWT allows you to
 program in Java to write JavaScript, and get the 'benefits' of not
 having to actually write JS to develop web clients, ClojureScript
 allows you to program in Clojure to write JavaScript that CloSure
 likes.

 If you like programming in Clojure than you *should* appreciate this
 point.  If you don't, than it seems to me that you are just picking a
 fight to pick a fight.

I'm certainly not just picking a fight, I'm honestly voicing a
concern. I believe you still need to learn and know and understand and
be mindful of gclojure to use clojurescript. Furthermore, gClosure is
low level in what it offers, you'd have to roll your own for much of
what you could reuse elsewhere, and google acknowledges this in its
docs:

What is the relation between the Closure Library and other JavaScript
libraries?
Many JavaScript libraries emphasize the ability to easily add
JavaScript effects and features with minimal development time. Google
engineers use these third-party tools for precisely the reason that
the libraries are powerful for rapid development.
The Closure Library is designed for use in very large JavaScript
applications. It has a rich API and provides tools for working with
the browser at a lower level. It's not well suited for all tasks, but
we think it provides a useful option for web developers.

Outside of google the closure library hasn't had much uptake and it's
not part of the burgeoning javascript scene.

I just feel it's ironic that on the JVM the idea is that the best
practices of java that are conducive to very large application
development are considered too painful for everyday development and
therefore the reason d'etre of clojure, but when it comes to
javascript then it's the very large apps that we'll gear up for and
put up with the consequent everyday pain. It's also ironic that with
clojure on the JVM we'd think that things like transaction software
memory are worthwhile compromises performance-wise, but towards
javascript then a slavish obiedience to the google closure compiler -
which predates JITed javascript VMs, and predates the closure library
which was modeled with it in mind - is prioritized over the
development experience or a burgeoning platform of libs.

Anyhow, not wishing to be further misunderstood, I regret any
miscommunication and offer everyone my kindest regards.

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


monads macros

2011-07-12 Thread James Keats

I'm mildly concerned about macros being seen as the secret weapon of
clojure(/lisp).

In their place, i wish monads would get a wider attention and embrace.

Discuss? :-)

-- 
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: Modelling complex data structures (graphs and trees for example)

2011-07-09 Thread James Keats
 and most elegant
 solution with new tools.

 I probably ate something that disagreed with me, but I just want to break
 free from the shackles of these heavy-weight tools and fly!  OK - that's
 enough.

 Or, it might all be a catastrophic failure and I will be signing up to
 Careers 2.0 :)

 Col

 P.S  Usual disclaimer - still only written three lines of Clojure :)

 On 8 July 2011 20:57, James Keats james.w.ke...@gmail.com wrote:









  On Jun 16, 3:08 pm, Colin Yates colin.ya...@gmail.com wrote:
   (newbie warning)

   Our current solution is an OO implementation in Groovy and Java.  We
   have a (mutable) Project which has a DAG (directed acyclic graph).
   This is stored as a set of nodes and edges.  There are multiple
   implementations of nodes (which may themselves be Projects).  There
   are also multiple implementations of edges.

   My question isn't how to do this in a functional paradigm, my first
   question is *how do I learn* to do this in a functional paradigm.  I
   want to be able to get the answer myself ;).  To that end, are there
   any domain driven design with functional programming type resources?

   A more specific question is how do I model a graph?  These graphs can
   be quite extensive, with mutations on the individual nodes as well as
   the structure (i.e. adding or removing branches).  Does this mean that
   every every node would be a ref?  I think the general answer is that
   the aggregate roots are refs, meaning they are an atomic block, but is
   there any more guidance?

  May I humbly suggest that this ought to be a database-ish concern
  rather than a middleware one? have you looked at neo4j for example? A
  quick google found this:

 http://wiki.neo4j.org/content/Roles

  This is an implementation of an example found in the article A Model
  to Represent Directed Acyclic Graphs (DAG) on SQL Databases by Kemal
  Erdogan. ... In Neo4j storing the roles is trivial, as working with
  graphs is what Neo4j was designed for

  I would humbly suggest that you use as much of the database
  functionality as possible for your data needs and avoid replicating it
  in your middleware. I hope this works. :-)

  --
  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: Please stand firm against Steve Yegge's yes language push

2011-07-08 Thread James Keats


On Jul 8, 6:19 am, Ken Wesson kwess...@gmail.com wrote:
 On Fri, Jul 8, 2011 at 1:07 AM, Lee Spector lspec...@hampshire.edu wrote:

  On Jul 7, 2011, at 7:29 PM, Sean Corfield wrote:
  And yet the #1 FAQ we see on lists and reflected in blog posts is
  about getting Clojure up and running... We see Java developers,
  committed to their favorite IDE, still asking Should I install /
  learn Emacs? We see old-time Lispers, happy with Emacs, struggle with
  the Java infrastructure. A lot of n00bs want to be told the One True
  Way to set up their development environment - they don't want to be
  confronted with choices.

  Like you, I don't entirely understand why this is an issue - but I
  accept that it clearly _is_ an issue...

  For me at least the issue isn't that there should be a single blessed 
  setup, but rather that there should be at least one setup (and 
  documentation for that setup) that's a little more newbie-friendly than any 
  of them currently are.

 How about:

 GETTING STARTED

 If you're coming from a Lisp background, or at least are familiar with
 emacs _here is how to set up with emacs and leiningen_.

 If you're coming from a Java background, _download Eclipse and CCW_ or
 _download NetBeans and Enclojure_.

 If your programming experience lies elsewhere, or you're new to
 programming altogether, _insert something here_.

 The last one is maybe the trickiest

May I also add the following caveat emptors:
- If you're new to programming, clojure will overwhelm you. Start with
something like python.
- If you come from python/ruby and have no java background, do not
expect to start hacking clojure in the morning and be productive
and accomplishing work in the afternoon of that same day; go learn
java for a while first (a few months at least). Also, continue using
whatever it is you use now till you're confident you know enough to
jump ship.
- we can't teach you java, please go learn java for a while if you
have no java experience, there are tons and tons of tutorials and
books on teaching you java.
- if all you need is a hello world program, there are simpler
languages for this purpose (python etc). Consider clojure if you have
need for java apis or concurrency needs (concurrency is an advanced,
low level topic and not something most programmers should concern
themselves with).
- and so on... I think it's important to have such caveat emptors, it
seems many of the complaints relate to expectations mismatched to
reality

Regards
J

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-08 Thread James Keats


On Jul 8, 4:30 pm, Lee Spector lspec...@hampshire.edu wrote:
 On Jul 8, 2011, at 10:29 AM, James Keats wrote:

  May I also add the following caveat emptors:
  - If you're new to programming, clojure will overwhelm you. Start with
  something like python.

 I disagree. This is a subject of religious debates that I don't want to get 
 into in detail, but FWIW this educator thinks that Lisp is a perfectly 
 defensible first language and that Clojure can serve the purpose quite well 
 as long as installation and tooling doesn't make it unnecessarily difficult 
 to write and run code.

  - If you come from python/ruby and have no java background, do not
  expect to start hacking clojure in the morning and be productive
  and accomplishing work in the afternoon of that same day; go learn
  java for a while first (a few months at least). Also, continue using
  whatever it is you use now till you're confident you know enough to
  jump ship.
  - we can't teach you java, please go learn java for a while if you
  have no java experience, there are tons and tons of tutorials and
  books on teaching you java.

 Disagree and disagree. One can do a lot in Clojure with almost no knowledge 
 of the Java language or the Java ecosystem. At least for the kinds of things 
 that I do. Yes, I occasionally need to use an interop form for something for 
 which there's no Clojure version, but for me that's rare and easy to pick up 
 on a case by case basis without being a Java programmer.

  - if all you need is a hello world program, there are simpler
  languages for this purpose (python etc). Consider clojure if you have
  need for java apis or concurrency needs (concurrency is an advanced,
  low level topic and not something most programmers should concern
  themselves with).

 Disagree. Nobody *just* wants to write hello world, of course, but Clojure 
 can be a great language for many people who have zero need for Java APIs or 
 concurrency. I use/teach it because of all of the great features of Lisps 
 more generally, and because Clojure is the best Lisp going (IMHO).

  - and so on... I think it's important to have such caveat emptors, it
  seems many of the complaints relate to expectations mismatched to
  reality

 Maybe, but since I disagree with every one of your caveats I wouldn't 
 advocate making them :-0.

  -Lee

Teaching is a strictly controlled and supervised environment. I
wouldn't mind teaching a lisp curriculum based on clojure that
wouldn't veer from the set path, and which test of learning are a set
of specific and circumscribed exercises. For people who come to learn
clojure though from the internet, they tend to be people who self-
teach, and who'll actually want to use it to do actual work. I am
skeptical about its ease for those. Either that, or all those
experienced programmers who still struggle with it despite their long
experience (I included) are just a bunch of pansies.

-- 
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: Emacs and clojure for newbies

2011-07-08 Thread James Keats


On Jul 8, 7:14 pm, nchubrich nchubr...@gmail.com wrote:
  I disagree. This is a subject of religious debates that I don't want to get 
  into in detail, but FWIW this educator thinks that Lisp  is a perfectly 
  defensible first language and that Clojure can serve the purpose quite well 
  as long as installation and tooling
  doesn't make it unnecessarily difficult to write and run code.

 +1 for all your points here, Lee.  Scheme has often used as a first
 language, and it works great.  It's better to teach people the right
 way first, and the right way is Lisp

Oh I have no problem with scheme. Scheme was my introduction to
programming, and itself is a teaching language. I also have no problem
with *teaching* clojure, with a clear supervised curriculum. My
concern is if people are going to self-teach and expect to be able to
do work soon, they shouldn't be led to believe that learning clojure
and java too all at once is easy. I still believe that python would be
more suitable (though *not* jython, the java version of python), and I
note that MIT, famous for for SICP scheme course, now teaches python
instead of scheme.

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-08 Thread James Keats


On Jul 8, 8:02 pm, Lee Spector lspec...@hampshire.edu wrote:

 I'm with you 95% here, but I do think that this much editor fanciness is 
 needed to have a sane environment for coding lisp for anything more than a 
 few minutes: bracket-matching and language-aware auto-re-indenting. If 
 there's a straightforward way to get this along with the rest of your setup 
 then I agree that this would be an excellent entry path for newcomers.

  -Lee

Sam Aaron's emacs setup with cake's swank is really really nice. It
could possibly be combined with a cheatsheet for emacs' most needed
keyboard shortcuts.

May I also add that I found remapping some keyboard keys quite useful
for a sane emacs lisp editing experience. It gives me 3 ctrl keys on
the right and 3 ctrl keys on the left so I could basically use any of
my fingers, pinky to thumb, for that often needed key (I've also
remapped the meta/alt key to one that's tactilely distinguishable - 6
ctrl may seem a bit overboard but i prefer it this way). Remapping the
parens too is possibly a good thing so they'd not require a shift and
won't be a rather tiresome fourth keyboard row pinky affair, I've done
it, but I haven't yet settled on where to put them. I'm not sure this
remapping is needed for newbies, perhaps, perhaps not, depending on
how annoying emacs finger acrobatics seem to them, but for the heavy
duty use I'd probably recommend 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: Modelling complex data structures (graphs and trees for example)

2011-07-08 Thread James Keats


On Jun 16, 3:08 pm, Colin Yates colin.ya...@gmail.com wrote:
 (newbie warning)

 Our current solution is an OO implementation in Groovy and Java.  We
 have a (mutable) Project which has a DAG (directed acyclic graph).
 This is stored as a set of nodes and edges.  There are multiple
 implementations of nodes (which may themselves be Projects).  There
 are also multiple implementations of edges.

 My question isn't how to do this in a functional paradigm, my first
 question is *how do I learn* to do this in a functional paradigm.  I
 want to be able to get the answer myself ;).  To that end, are there
 any domain driven design with functional programming type resources?

 A more specific question is how do I model a graph?  These graphs can
 be quite extensive, with mutations on the individual nodes as well as
 the structure (i.e. adding or removing branches).  Does this mean that
 every every node would be a ref?  I think the general answer is that
 the aggregate roots are refs, meaning they are an atomic block, but is
 there any more guidance?

May I humbly suggest that this ought to be a database-ish concern
rather than a middleware one? have you looked at neo4j for example? A
quick google found this:

http://wiki.neo4j.org/content/Roles

This is an implementation of an example found in the article A Model
to Represent Directed Acyclic Graphs (DAG) on SQL Databases by Kemal
Erdogan. ... In Neo4j storing the roles is trivial, as working with
graphs is what Neo4j was designed for

I would humbly suggest that you use as much of the database
functionality as possible for your data needs and avoid replicating it
in your middleware. I hope this works. :-)

-- 
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: Modelling complex data structures (graphs and trees for example)

2011-07-08 Thread James Keats


On Jul 8, 8:57 pm, James Keats james.w.ke...@gmail.com wrote:
 On Jun 16, 3:08 pm, Colin Yates colin.ya...@gmail.com wrote:
  (newbie warning)

  Our current solution is an OO implementation in Groovy and Java.  We
  have a (mutable) Project which has a DAG (directed acyclic graph).
  This is stored as a set of nodes and edges.  There are multiple
  implementations of nodes (which may themselves be Projects).  There
  are also multiple implementations of edges.

  My question isn't how to do this in a functional paradigm, my first
  question is *how do I learn* to do this in a functional paradigm.  I
  want to be able to get the answer myself ;).  To that end, are there
  any domain driven design with functional programming type resources?

  A more specific question is how do I model a graph?  These graphs can
  be quite extensive, with mutations on the individual nodes as well as
  the structure (i.e. adding or removing branches).  Does this mean that
  every every node would be a ref?  I think the general answer is that
  the aggregate roots are refs, meaning they are an atomic block, but is
  there any more guidance?


I just noticed that you wanted to *learn to do it yourself. Sorry, I
apologize if my reply misread your query. Regards. :-)

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-07 Thread James Keats


On Jul 7, 6:42 am, nchubrich nchubr...@gmail.com wrote:
 I'll try :)  It was really a polemical post for a polemical thread,
 but my main points can be extracted here.  Feel free to read as many
 or as few of them as you are inclined

nchubrich, I've read your original post in its entirely, so forgive me
for not having the time to read your points of summary.

To be clear, I do *not* reflect in any way on the clojure community.
As has been pointed out, I've only been around this group for ~3
weeks.

Given though that I've only been around for ~3 weeks, it irked me to
no measure that I saw things in those Steve Yegge's posts in that
thread (here and on hackernews) that could've only indicated that had
he only bothered to read what books had been published and what
screencasts had been put out and what interviews and posts Rich Hickey
and others had made he would've come to an understanding of the
technical reasons why things with the core language are the way they
are - I did - and had answers to his complaints and wouldn't have had
to rant about them. Yup, it irked me that - evidently - he didn't even
bother to learn the language properly and instead ranted vehemently
against things right to its core (compiler etc), demanding they
change.

Those videos that Rich Hickey put out on blip.tv are outstanding. The
guy is a natural teacher, technically brilliant and a joy to listen
to. I think humility should go both ways. People should be humble
enough to realize that no matter how smart they are that they always
have to be willing and eager to learn. Yes, sorry, it's a fact of this
trade that you should always be willing and eager to learn, and not a
particular situation to this language community. You can never get too
smart for these shifting sands of industry. Sorry, there's no excuse
here.

With regard to emacs, I've pointed out that I wasn't a fan and that I
regarded it as too tinkerish for my taste, especially so in a thread
in which I invited others to convince me to use it instead of
netbeans. In any case, if you do want to use emacs and wish for an out
of the box good user experience, then you may wish to have a look at
this post by Sam Aaron in this group. I found it very useful and I
must admit it made me play with emacs a bit. There really is nothing
much to emacs, just knowing the shortcut keystrokes and doing them
until they become finger/muscle memory:

http://groups.google.com/group/clojure/browse_thread/thread/c3c4febb5b0f0208

Again, to be clear, and I believe I pointed this out in my original
post, I was *not* against the language growing in terms of users. I've
emphasized that what I was against was that being seen as more
important a goal than having a technically sound language.

I could reply to more of your points, but not wishing this post to get
too long, I'll stop 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
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: Please stand firm against Steve Yegge's yes language push

2011-07-07 Thread James Keats


On Jul 7, 8:09 am, nchubrich nchubr...@gmail.com wrote

 (As for Steve Yeggeis he reading all this?if he's totally
 wrong, then of course people should feel free to disagree with him,
 and forget about the consequences.  But if he happens to be \right,
 and I do think he mostly is, then making basically dismissive firm
 stands against him is not going to do anybody any good.  This isn't a
 political party, thank God.)


I agree it isn't a political party, but it isn't a social club either.
It's a technical forum. Technical soundness, rather than social
expansion, should, imho, be the utmost concern. :-)

I empathize with your point regarding how hard it is to deal with
Java. Unfortunately, it is. But I believe it has to be done. Python is
no better in that regard; you still need to understand Unix/C
otherwise you'd be too limited and lost too soon. The other issues you
cited are tangential to the programming language itself, they are
issues of IDE, build system, documentation, etc etc. They do not
affect my original post argument for the language core to be
conservative and technically sound, Python's is. :-)

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-07 Thread James Keats


On Jul 7, 8:03 pm, logan duskli...@gmail.com wrote:


 This poisonous attitude is perfectly exemplified in this thread by
 James Keats.

I completely disagree with your mis-characterization and invite you to
read again what I had maintained:
- I had implored that technical arguments alone should decide
technical issues, not who's who.
- I made clear that I had asked dumb questions, and that I don't
consider myself too smart to read what'd been put out already. I made
a clear distinction between a newbie who'd ask dumb questions (and
explicitly included myself in that category), and a who's who from
elsewhere demanding major changes outright.
- If this is going to turn into a who's against whom (I made it clear
time and again I wasn't against Steve Yegge personally but against his
yes language *features* push, had it come from a Mr firstName
lastName I would've still voiced the same technical concern and titled
it accordingly), I regret that I do not have the time for that.

Regards.
J

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-07 Thread James Keats


On Jul 7, 8:35 pm, nchubrich nchubr...@gmail.com wrote

someone whose name I can't remember right now
  once said, There are no bad students, only bad teachers.

There are three good books already and more on the way (I look forward
to Clojure in Action later this month), there are excellent videos on
blip.tv (Rich Hickey's are some of the best programming talks I've
ever seen), there are tons and tons and tons of books on Java, and
there's ample, ample lisp literature.

I don't buy the user-friendliness argument or bad teachers. This
is a technical trade, not an end user application for grampa. What's
more, people are not in the business of education; they're gracious
enough to share their code. I also don't understand why people are in
such a rush to get hacking clojure code right away; Peter Norvig has
argued that it takes a long time to learn to program, and I would
suggest to anyone considering a new language to learn to allow
themselves an adequate amount of time well ahead to do the homework
required. I think for those who come to clojure having had some Java
experience, some lisp experience, some functional programming
experience o the ML/Haskell family, then the language is actually such
a leap in simplification.

For people's sense of sanity, it's not wise to try to run before you
walk. Am I being a blowhard by saying this?! I don't believe so,
this is a reality. I have expressed an opinion that clojure is for the
advanced programmer (Java/lisp/ML-Haskell), and there are perhaps some
simpler language (eg. python, which is quite capable and I'm actually
quite fond of). But fine, people are free to be impatient and get
frustrated and depressed if they so insist.

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-06 Thread James Keats


On Jul 5, 11:07 pm, faenvie fanny.aen...@gmx.de wrote:
 note on the original posting:

  First, he shouldn't be porting Java code to clojure, Second, Clojure IS
  fundamentally different from Java, and third, such said users who
  don't want to touch Java should not touch Clojure.

 to port java-code to clojure-code is certainly not the
 right thing to do in most cases ... but

 the fact that clojure is not determined to use the jvm as its
 hosting-language could certainly be a driver for the reimplementation
 of popular components.

 even memory-management (gc), io-functions and process-management
 may be candidates for a (re)implementation in clojure some day.

I recently read this and I think it's a very sensible position:


Fogus: Different target hosts would naturally support different
subsets of Clojure’s functionality. How do you plan to unify the
ports?

Hickey: I don’t. It has not been, and will not be, the objective of
Clojure to allow porting of large programs from one host to another.
That is simply a waste of time, and needed by almost no one.
Currently, you often have to change languages when you change hosts—
from Java to C# or Javascript. This is better than that, while short
of some full portability layer. The idea is to be able to take one’s
knowledge of Clojure and its core libraries, and of the host du jour,
and get something done. Certainly, non-IO libraries, like Clojure’s
core, can move between hosts. The JVM and CLR have rough capability
parity. We’ll have to see how restrictive a Javascript host might 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: Please stand firm against Steve Yegge's yes language push

2011-07-06 Thread James Keats


On Jul 5, 7:30 pm, Sean Corfield seancorfi...@gmail.com wrote:
 On Sun, Jul 3, 2011 at 8:04 PM, Sean Corfield seancorfi...@gmail.com wrote:
  On Sun, Jul 3, 2011 at 3:34 PM, James Keats james.w.ke...@gmail.com wrote:
  For example I suggest you look at this video/transcript and pay
  attention in particular to the point of debate between Joe Armstrong
  of Erlang and Martin Odersky of 
  Scalahttp://www.infoq.com/interviews/functional-langs
  , in particular around the point where Odersky says I’m not quite
  sure I buy that (also of additional relevance to those two points
  arehttp://erlang.org/pipermail/erlang-questions/2011-May/058769.html
  and alsohttp://www.scala-lang.org/node/1637), and if you're further
  interested you may wish to read Eric Meyer's essay in the book
  Beautiful Architecture regarding a previous Simon Peter Jones Haskell-
  related publication, titled Software Architecture: Object-Oriented
  Versus Functional.

  I've read that book (a month or two ago) but I'll go back and re-read
  that essay in light of this thread.

 I think you mean Bertrand Meyer's piece, extolling the virtues of OO
 in general (and Eiffel in particular)? I thought it was a terribly
 self-serving piece. Meyer has a strong bias and quite a bit of disdain
 for anything that isn't Eiffel - which shines right thru that essay to
 the point of making it fairly worthless, IMO. It has no objectivity :)


It was an amusing read somewhat - at points hilarious (I'm actually a
fan of Meyer!), but it needs to be considered within a long... what to
call it... well, debate or dispute that I've long observed between the
Haskell and Eiffel communities; both are concerned with correct
software, but come at it in different ways. I believe both are
relevant, Haskell's statelessness and Meyer's design by contract.

 I read the interview transcript for Syme, Armstrong and Odersky and I
 have to be honest that I found Armstrong almost incoherent and half
 the time couldn't figure out what he was trying to argue at all - so
 I'm not sure what point you're trying to make by referring to that
 interview, sorry. Similarly Armstrong's musings on the Erlang list
 about the entire world being a single flat namespace full of
 functions that are globally unique seems rather incoherent too. He
 talks about the problems with using modules to organize functions
 (and, yes, modularity can be hard) but then proposes something that
 would be no different (functions made unique by either having nearly
 random names or a structured set of metadata that would really be
 indistinguishable from modules in the first place - 
 seehttp://erlang.org/pipermail/erlang-questions/2011-May/058773.html).


Armstrong can come across as incoherent but if you read him again and
again and again I find more and more and more in what he says. In any
case, what he's suggesting there reminds me of something I read years
ago by Dr Richard Hipp of Sqlite and Tcl core, where he suggests
instead of putting your program in files you put it in a database
http://www.tcl.tk/community/tcl2004/Papers/D.RichardHipp/drh.html


 The Scala forum discussion is more useful and relevant: TL;DR -
 objects are occasionally the most natural model for solving a problem.
 And in Clojure, mutable (shared) state is occasionally the most
 natural model for solving a problem. That doesn't seem newsworthy to
 me, just that a pure functional approach might not always lead to the
 cleanest solution. That's kind of a duh! because otherwise why would
 we need STM...

I think the point he was making was not so much that, but that OOP
allows you to defer implementation and there's value in that.


 And then there's the Ruby rant. Yeah, I'd be pretty ticked off that I
 got shot in the foot by combining two or three libraries that
 otherwise ought to behave reasonably together. Global method injection
 is pretty nasty. When I first read about multi-methods and protocols
 in Clojure I was a bit worried that library code might cause a similar
 problem by redefining functions out from under me, by virtue of more
 specific overloading but it hasn't been a problem yet and when I
 look at how those features are used in various libraries, I'm no
 longer so worried.

 I have other reasons for not liking Ruby so it's ability to shoot you
 in the foot like that doesn't change my opinion of the language (nor
 does it change its widespread popularity for a certain class of
 programmers / companies).

 Overall then, modularity is hard and sometimes a shared / mutable
 state solution is cleaner... And I agree with both points. Am I
 missing something in your concerns?

No, you're spot on. I wasn't advocating anything in particular, I was
merely suggesting that some of the finest minds in the industry do
still find this a hard problem and can disagree on to how best to deal
with it. :-)

I personally don't feel that much of a schism between functional and
OO, but perhaps that's because I actually quite like

Re: Clojure for large programs

2011-07-04 Thread James Keats


On Jul 4, 5:45 am, Christian Schuhegger
christian.schuheg...@gmail.com wrote:
 Thanks for your feed-back. I already have RDF/OWL in my tool-kit. I am
 only not sure if an ERP like system should be modeled along those
 lines. But I did not put enough thought in that direction yet. Would
 you base an ERP like system on top of RDF/OWL?

My immediate instinct would suggest you already use an existing one,
but I note that you said it was a toy project. ERP is a problem
that's historically been well-suited for prolog and logic programming.
Yes, I believe RDF/OWL(/Sparql and semantic web reasoners) is a major
advancement in that field and would recommend you look at it. A good
book to get you started would SEMANTIC WEB for the WORKING ONTOLOGIST,
of which a second edition has recently come 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: Clojure for large programs

2011-07-04 Thread James Keats


On Jul 4, 1:26 pm, James Keats james.w.ke...@gmail.com wrote:
 On Jul 4, 5:45 am, Christian Schuhegger
 A good
 book to get you started would SEMANTIC WEB for the WORKING ONTOLOGIST,
 of which a second edition has recently come out. :-)

Sorry about the unintentional to get you started figure of speech; I
note you said you already had rdf/owl in your kit. It's not out of
underestimating your knowledge (though it might be out of my sense of
being mildly overwhelmed by the still remaining reading list I already
have of semantic web books, Springer just keeps dropping them like
rain. :-)

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-04 Thread James Keats


On Jul 3, 6:15 am, Ken Wesson kwess...@gmail.com wrote:

 There's one obvious use case for such a wrapper function, though: if
 you'll want to pass the Java method to HOFs from time to time. You
 can't directly pass a Java method to a HOF, but you can pass such a
 wrapper function.


Pardon me if I'm wrong, but could you not use an anonymous function in
those places where you'd need to pass it to a HOF and continue to use
it directly elsewhere? That would probably be how I'd prefer it, as
it'd mean less functions to keep track of, and less indirection
(decoupling api concerns aside).

 --
 Protege: What is this seething mass of parentheses?!
 Master: Your father's Lisp REPL. This is the language of a true
 hacker. Not as clumsy or random as C++; a language for a more
 civilized age.

-- 
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: Clojure for large programs

2011-07-03 Thread James Keats


On Jul 3, 2:26 am, Mark Engelberg mark.engelb...@gmail.com wrote:
 Ideally, I was hoping to start a more in-depth discussion about the
 pros and cons of programming in the large in Clojure than just
 waxing poetic about Clojure/Lisp's capabilities in the abstract :)


I am yet to do a large program in clojure, I still need to be
convinced in the ok, so far so good, but where is this going? but I
have this to say: large programs are primarily an architectural and
secondarily a managerial/organizational concern, not a language issue,
and large programs have been my prime driving consideration over the
years.

In terms of where is this going?, I would be quite concerned if the
clojure community develops an unreasonably negative attitude towards
OO (I don't believe Rich Hickey himself has a negative attitude, I
believe his attitude is reasonable and balanced) and, on the other
hand, believes it would do well to learn from the oral histories of
the early days of Ruby. Well, I believe it would do well to learn
from Ruby, but as a cautionary tale.

All those little niggling issues you mention cause me no worry, either
they could be worked around - or perhaps even properly understood - or
they're easily fixable as the language implementation/tools mature,
with the exception of in large part because failures usually occur
within close proximity of the flaw that triggered the failure; I
mentioned some concerns I had about datatypes/protocols, I'm yet to
make my mind up on that, in particular with regard to failures
usually occur within close proximity of the flaw, I still need to
study them more.

I wish the Clojure community to learn from two sources. 1) Java
itself, and in particular what is happening with the service component
architecture (SCA). Clojure makes those good engineering practices of
services and contracts feasible for a small team or even an individual
developer. I'm not saying that clojure would necessarily work with
those frameworks, for that I believe Scala is better positioned, but I
believe clojure should be mindful of what's happening there, as I
believe that to be the biggest threat and hurdle Clojure faces in
terms of its enterprise utility and adoption. The Service Component
Architecture is incredibly well thought out, and it already has
industry titans singed up to it. 2) RDF/OWL, or otherwise called the
resource oriented architecture, or the global giant graph. I believe
if clojure plays it cards well then that - the semantic web - could be
its killer application. This too is a well thought out and compelling
architecture, and I believe Clojure is uniquely well positioned for
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: Clojure for large programs

2011-07-03 Thread James Keats


On Jul 3, 5:21 pm, Christian Schuhegger
christian.schuheg...@gmail.com wrote:

 Nevertheless for large connected data graphs I think something like a
 data-schema is needed. Clojure would still follow its approach to only
 deal with maps, but there is a descriptive meta-data level in addition
 that explains the connection between those maps.

 I would agree to what was said elsewhere: the Clojure community has to
 come up with idioms on how to deal with large scale projects.

Christian, your thoughts, generally speaking, chime with mine. I would
suggest though that the clojure community does not try to reinvent the
wheel where a well-engineered one has been made elsewhere (Rich
Hickey's reluctance to give clojure a yet-another-distribution/
clustering-story and instead suggest a look at existing ones is one of
the many reasons I believe he has admirable and reassuring
sensibilities Given the diversity, sophistication, maturity,
interoperability, robustness etc of these options, it's unlikely I'm
going to fiddle around with some language-specific solution.
http://groups.google.com/group/clojure/msg/4a7a866c45dc2101 - btw
Rich, if you're reading this, slightly on a tangent, I do agree that
I'm yet to be convinced by Erlang's distributed-at-all-time model,
which you expressed reservations about based on your com/dcom
experience. You may be interested to know that the SCA architecture
takes these into account, and this is detailed in Jim Marino's book
Understanding SCA, which contains a discussion that echoes your
view, from which I'll quote: It may seem odd that a technology
designed for building distributed applications specifies local service
contracts as the default when defined in Java. This was a conscious
decision on the part of the SCA authors. Echoing Jim Waldo’s seminal
essay, “The Fallacies of Distributed Computing,” location transparency
is a fallacy...)

Christian, With regard to large data graphs, meta data, datalog/prolog
and logic programming, I would suggest you take a long at RDF/OWL. It
is a burgeoning field of research and my view would be that the
clojure commmunity embraces it rather than attempt to reduplicate it.

Is Clojure's Json-esque data model suitable for large data graphs? No,
it isn't. Nor is sql or xml. That's the end of that story. But RDF/OWL
is specifically designed for that, and it is very well designed.
Clojure though is an ideal complement to 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: Please stand firm against Steve Yegge's yes language push

2011-07-03 Thread James Keats


On Jul 3, 9:02 pm, Sean Corfield seancorfi...@gmail.com wrote:
 On Sun, Jul 3, 2011 at 3:14 AM, James Keats james.w.ke...@gmail.com wrote:

 Perhaps we move in different circles but I've seen as much bad Java
 in the large as I ever used to see bad FORTRAN and bad C / C++
 code over the years. I think large enterprise Java projects have
 just as many below average developers working on them as any other
 popular language projects. And by definition, half of all developers
 are below average and the more popular a language is, the broader
 that spread is likely to be.

I do not dispute that.


 I think the only way you can avoid the joe developer that you fear
 is to have a language which requires a very high barrier to entry so
 only good developers can even write Hello World! in it. I don't
 think that actually benefits anyone (since such languages don't get
 sufficient critical mass that people ever get the chance to use them
 at work to solve real problems).


I respectfully but unreservedly disagree with the only way you can
avoid the joe developer that you fear is to have a language which
requires a very high barrier to entry. I do not worry so much about
Hello World! taking too long, this is a business case analysis (if
you can't afford to do something right, should you be doing it at
all?!), though I do acknowledge that unfortunately Hello World! is
the measure many developers use to judge things. I do not worry about
that, what I worry about is what happens months or even years down the
line, after much had been invested. Business is business; unless your
motive is simply to scam someone else by passing it on (much of what
startups and VCs nowadays are about - a ponzi scheme of sorts), you do
not want to build on shaky foundations.

There is much bad Java, no doubt, but no one if forcing you to fall
prey to that.


  Beyond Java, that was, more or less, predicting the demise of
  java and was unimpressed by python, whilst favouring ruby, yet since,
  over those past years, they've only - java and python - gone from
  strength to strength and remain on the ascendency whilst the ruby hype
  machine has imploded and the feasibility of ruby has come apart at the
  seams thanks to an ill-disciplined community culture.

 I find it interesting that you offer up a perceived demise of Ruby
 when all I see is continued adoption of Ruby/Rails, far and away ahead
 of Python. Again, possibly we move in different circles. On Java, I
 was just at JAXconf where the overall theme was Don't worry, Java's
 not really dead! - it was an almost desperate sense of trying to
 rally the (enterprise) Java troops and head off the defections to
 other languages, whilst all the time praising how much innovation was
 occurring on the (JVM) platform, i.e., in those other languages.
 Oracle talked about the big focus for Java EE 6 / 7 / 8 being
 simplification - making Java easier to use and removing a lot of the
 complexity and configuration that has grown up in that world (exactly
 the problems that are causing Java developers to move to more
 expressive languages and to adopt convention-based frameworks). The
 big inspiration being held up to everyone at the conference was
 Ruby/JRuby and the convention-based approach of Rails. I came away
 with the sense that even its most stalwart supporters think Java is
 very, very sick and needs to clean its act up if it is to avoid
 becoming irrelevant as a language. The audience were told that Java
 developers need to get used to the idea of learning new languages
 frequently. I bumped into a handful of people there using Groovy and
 one or two using Scala. I ran into a lot of people who really had no
 idea what was going on in the world outside of Java and they seemed
 very focused on data-centric enterprise business applications that
 really didn't do anything particular complex but yet had grown into
 gigantic codebases with a huge amount of complicated infrastructure...

 So, overall, I don't share your belief that Java has a foundational
 design and community cultures [that is] conducive to large, long-term
 software and healthy ecosystems.

Java is vast; there are so many legacy frameworks and legacy ways of
doing things I would not adopt or endorse. After all, there is a
reason why I'm here at clojure.

We need to differentiate between things; how you build your software
is up to you, but it is indisputable that Java has a lot of libraries,
some may be bad, but others are outstanding, and no one is forcing you
to choose the bad ones. I am a big believer that if there's a library
that already does what you do, made by experts and vetted by the
world, then you shouldn't do it yourself. I also believe that Java's
thou shall not do this! and Python's though shall not do this,
unless you have to go towards explaining that. Ruby may have a
tempting Hello World! proposition that makes it appeal to startup
developers, but sooner or later down the road you'll run into this
widely

Re: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread James Keats


On Jul 1, 10:50 pm, Gregg Reynolds d...@mobileink.com wrote:
 On Fri, Jul 1, 2011 at 2:59 PM, James Keats james.w.ke...@gmail.com wrote:

  ...

  Whereas when Steve Yegge writes:

 Who?

Indeed. I'm not wishing this to be a personal attack on Steve Yegge,
but a fair and justified re-examination; if people are going to use
their heavyweight-sounding name to wield influence upon others, it's
fair and justified to ask what's behind that name.

I have been aware of Steve Yegge for many years; pseudo-literary and
pseudo-humorous rants that might be of interest to a programmer's
cabinet of curiosities, but that I've not had the luxury of time to
indulge in reading, preferring to devote mine to meatier topics.

I have not learned anything of note from Steve Yegge. His name seems
to be associated lately with Javascript, but whereas I've learnt a lot
from those folks, the likes of Stoyan Stefanov (perhaps my personal
favourite of those folks), Doug Crockford and John Resig, the one time
I felt compelled to read a Steve Yegge writing was when he was
referenced in the Joy of Clojure regarding his so-called universal
design pattern. What a poorly written piece of crap that was, there
was nothing new in it (Javascript's literal syntax is well documented
in much better writings, and in Steve Yegge's article it was burried
in a bunch of mind-numbing nonsense). I believe it'd be better for the
Clojure core notables, whom I have a deep respect for, to suggest
Haskell and RDF/OWL as better resources for understanding Clojures
types/protocols.

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread James Keats


On Jul 2, 4:16 pm, Aaron Bedra aaron.be...@gmail.com wrote:
 Although I agree with the ideas here that have already been stated by
 Rich, I am concerned about this message.  There is no reason to stand
 against somebody.  Steve is welcome to his own opinions and is an
 incredibly smart guy.  He should be respected as a peer.  His opinions
 happen to be different from Clojure's core values, and that is ok.  
 Steve will either choose to use Clojure or go another path, and that is
 alright.

 The way for Clojure to grow is by embracing it's core values and showing
 the world that careful choices do lead to the right outcome.  Let's not
 turn this into us against Steve.  There's nothing productive there.  
 Focus your energy instead on writing great Clojure code and sharing it
 with everyone else.  Get people excited about Clojure who want something
 more powerful, and show them what is truly possible.

 Cheers,

 Aaron Bedra
 --
 Clojure/corehttp://clojure.com

 On 07/01/2011 03:59 PM, James Keats wrote:


To be absolutely clear, I am not against Steve Yegge as a person. The
title of my post was Please stand firm against Steve Yegge's yes
language push. I implore you as clojure core and clojure community
to stand firm against his yes language push. I did not intend the
message of my post to be personal/social issues, despite the
unfortunate fact that the thrust of his posts in that thread revolved
around his concept of social attitude of a language creator and
community and the evident implication that such social considerations
should take primacy over technical merits.

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread James Keats


On Jul 2, 3:54 pm, David Nolen dnolen.li...@gmail.com wrote:
 On Sat, Jul 2, 2011 at 4:05 AM, faenvie faen...@googlemail.com wrote:
  I agree, that clojure will not gain java-like popularity in
  a forseeable future.

  IMO clojure is much more a Language for SystemProgrammers
  (high demands, thinking in concurrency) than a Language for
  ApplicationProgrammers (midsize demands, thinking singlethread)
  it does not have to target general purpose use. But Very well could
  clojure become a mainstream-language  for SystemProgrammers.

  other promising perspectives for clojure:

  - as a base for true innovation (core.logic)

 If true innovation means implementing good ideas found in academic papers,
 sure ;)

 I think your characterization of Clojure being best suited for systems
 programming to be inaccurate. Two of the most interesting large open source
 projects written in Clojure (for me) are Penumbra and Overtone. Both of
 these are for creative coding.

 David

I agree that it would be unsuitable for systems programming, if
systems programming is of the C variety; in fact even Java wouldn't be
suitable there. Actually I do believe Clojure to be an applications
language, and I would not constrain it to any one application area, I
believe it to be widely applicable.

Where I would advocate caution that'd restrict its use though, it
would not relate to the programming language itself, but to the
programmer. Twofold: 1) Clojure requires an advanced programmer;
there's no escaping that. Said programmer needs to know Java well, and
also functional programming of the haskell/ml sort, as well as lisp 2)
Clojure requires discipline and wisdom; those do not come about
easily, they require wide and long experience. It allows the
programmer much, not too much for the widely-read experienced
programmer, but perhaps too much for a large team constituted of
programmers of varied abilities.

I therefore see it most suited, as I said, for the advanced
independent programmer, or at most a small team of advanced enough
programmers.

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread James Keats


On Jul 2, 6:39 pm, David Nolen dnolen.li...@gmail.com wrote:
 On Sat, Jul 2, 2011 at 12:23 PM, James Keats james.w.ke...@gmail.comwrote:

  I therefore see it most suited, as I said, for the advanced
  independent programmer, or at most a small team of advanced enough
  programmers.

 I think Clojure is great for programmers with all kinds of experience - from
 beginner to advanced. In fact I think people haven't been brain washed by
 too much experience in object oriented and imperative languages will have a
 much easier time picking it up.

 David

This above is the classic Sussman/Abelson/Harvey argument in favour of
teaching lisp and functional programming as early as possible. I have
nothing against it whatsoever other than to note that it is an
educational argument, not an industrial one.

In fact, it is exactly how I came to programming; lisp through the
writings of those folks was my introduction to programming many years
ago. Had it not been for their inspiration I wouldn't have bothered.
However, once you're past the CS education stage then industrial
concerns are an inescapable reality. And once you encounter the
reality and frustration infamously characterized by likening the
managing of lispers to the herding of cats then you begin to admire
languages like python and java and see what they got right in imposing
restrictions.

A very recent quote by Abelson is relevant:
One of the things I’m learning here (Google) is the experience of
working on these enormous programs. I just never experienced that
before. Previously a large program to me was a hundred pages or
something. Now that’s a tiny, little thing.

Kind regards,
J

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread James Keats


On Jul 2, 6:41 pm, Stefan Kamphausen ska2...@googlemail.com wrote:
 FWIW,

 However, as Aaron pointed out, I'd rather a more tolerant, pleasant
 community.

 Kind regards,

A month ago I asked a question here that barely a minute after
clicking send realized was utterly dumb. It reminds of an anecdote
about an (MIT?) professor who'd insist on whomever asks him a question
to explain in some detail what they understand and what they don't
understand, and oftentimes when people do so come to an Oh! moment
of sudden understanding before he'd even answered just out of
formulating the problem.

That utterly dumb question got many tolerant, pleasant answers. :-)

I would draw a thick line between the community's response to someone
who'd ask an utterly dumb question - I don't me specifically, but any
newcomer - and someone who'd insist upon the creator of a carefully
considered and crafted solution and its community to change their
culture outright. If I, and people like me who are willing to put
their nose to the grindstone, read the books and watch the videos
umpteen times over till they get it through and through, to become
invested in clojure and its future, then we need a firm reassurance
that ludicrous demands like those are firmly resisted, and believe
it's imperative to implore clojure core to do so.

Kind regards, :-)
J

-- 
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: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread James Keats


On Jul 2, 8:33 pm, David Nolen dnolen.li...@gmail.com wrote:
 On Sat, Jul 2, 2011 at 3:21 PM, James Keats james.w.ke...@gmail.com wrote:
  And once you encounter the
  reality and frustration infamously characterized by likening the
  managing of lispers to the herding of cats then you begin to admire
  languages like python and java and see what they got right in imposing
  restrictions.

 I've yet to see any evidence anecdotal or otherwise that managing a team of
 good Lisp programmers is any more difficult than managing good programmers
 in any other language. Links?


Sure, good lisp programmers, I have no argument against that, the
key operative word here being *good*; where do you find those in large
enough numbers to fill industry positions? I would also like to be
specific about what good would entail: it has to entail some
knowledge of what would actually work in the large and be
maintainable, and a personal maturity that would prevent them from
becoming too excited and overly adventurous. Unfortunately the
industry is not made of good lisp programmers.


  A very recent quote by Abelson is relevant:
  One of the things I’m learning here (Google) is the experience of
  working on these enormous programs. I just never experienced that
  before. Previously a large program to me was a hundred pages or
  something. Now that’s a tiny, little thing.

 One of the most popular text editors to this day is Emacs. It's near 3
 million lines of Lisp.

 David

Versus the countless libraries and apps of Java and python?

-- 
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: Clojure for large programs, was Re: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread James Keats


On Jul 2, 8:33 pm, Mark Engelberg mark.engelb...@gmail.com wrote:
 On Sat, Jul 2, 2011 at 12:21 PM, James Keats james.w.ke...@gmail.com wrote:
  A very recent quote by Abelson is relevant:
  One of the things I’m learning here (Google) is the experience of
  working on these enormous programs. I just never experienced that
  before. Previously a large program to me was a hundred pages or
  something. Now that’s a tiny, little thing.

 In your post, you talk about a certain naivete among Lispers about its
 practicality in industry, explain that python and java benefit from
 their added restrictions, and then offer up the above quote by
 Abelson.  But you never really tie these observations back to Clojure.
  So I want to ask explicitly, do you think Clojure is suitable for
 these sorts of really large programs?  Why or why not?

If the community sticks to Rich Hickey's original vision, and in
*competent and disciplined* hands, I believe clojure is suitable for
almost any problems (barring the obvious of course, eg, those where
the jvm wouldn't be suitable).

Clojure is not just simply a lisp, it improves upon lisp through its
immutable/persistent data structures, emphasis on pure functions and
separation of pure code from side-effecting one, collections/sequence
abstractions, embrace of java, concurrency, and recently datatypes/
protocols; clojure does impose restrictions; all those above are
restrictions (use immutable/persistent data, use pure functions, use
java directly, use generic data structures and generic sequence
functions to manipulate them, use the appropriate concurrency
feature.. etc, though it does somewhat enable the programmer to work
around those when necessary) and also for example the disabling of
user-defined reader macros. I'm actually thrilled about that, and look
forward to see how it would actually work out as the community
expands. I do though implore clojure core to stick or Rich Hickey's
original vision, and not dilute it to appease ill-conceived social/
marketing claims and incalcitrant newcomers.

Additionally, programs and teams for clojure don't have to be really
large. The language is such that a small and competent team, or even
an individual developer, could do a lot with so little.

In any case, enterprise needs could be bolted on clojure; programming
against services/interfaces/xml schemas/messaging/et cetera. Those
could almost even be said to be orthogonal.

Additionally, whatever clojure does, clojure is ultimately java. I
could take clojure 1.0 and the innumerable java libs and be done with
it (I remain to be convinced about datatypes/protocols and believe
them to impose a managerial overhead, I believe for large teams
they're a double edged-sword, the programming against interfaces is
beneficial, but their ad hoc permissiveness could prove problematic).
The same can't be said for other lisps, those weren't made with Java
in mind as Rich Hickey made clojure.

Regards,
J

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


Please stand firm against Steve Yegge's yes language push

2011-07-01 Thread James Keats

Hi all. I've been looking at Clojure for the past month, having had a
previous look at it a couple of years ago and then moved on to other
things only to return to it now.

Over the past decade I have looked at many languages and many ways of
doing things. People may say this language or that language is
general purpose, but the fact remains that languages have their
niches in which they excel and beyond which it'd be foolish to
venture.

Clojure should not attempt be a mass success language or worry about
its Tiobe index ranking.

Clojure, the way I see it, is most suitable for the advanced
independent developer. It is a language in the image of its creator,
Rich Hickey. It's not a language for the factory hen. It won't become
the next Java. Java already fills that niche, and despite what some
may say, I don't see it going away anytime soon.

I don't feel Clojure needs to grow - in terms of size of language.
In fact it would worry me enormously if Clojure's path is to grow in
size. It is fundamentally unsuited for that. If anything I wish for it
to shrink even further and further.

A Rich Hickey's quote comes to mind:
• (paraphrased) Most Clojure programmers go through an arc.  First
they think “eww, Java” and try to hide all the Java.  Then they think
“ooh, Java” and realize that Clojure is a powerful way to write Java
code
and As I've said in my talks, most Clojure users go from eww, Java
libs to ooh, Java libs, leveraging the fact there there is already
a lib for almost anything they need to do. And using the lib is
completely transparent, idiomatic and wrapper free. - Google verbatim
for sources.

Whereas when Steve Yegge writes: which means that everyone (including
me!) who is porting Java code to Clojure (which, by golly, is a good
way to get a lot of people using Clojure) is stuck having to rework
the code semantically rather than just doing the simplest possible
straight port.  The more they have to do this, the more you're going
to shake users off the tree. all I could think on reading this is
horror, horror, oh God, horror!!!; he really doesn't get it. First,
he shouldn't be porting Java code to clojure, Second, Clojure IS
fundamentally different from Java, and third, such said users who
don't want to touch Java should not touch Clojure.

Clojure shouldn't worry about growing; java already has innumerable
libs. Clojure, imho, should continue its - what I would dub -
middleware begone! path, in which it'd provide an end-to-end, down-
to-the-metal comprehensible system that an individual developer can
get his head round and know exactly what's happening with his code and
its environment here and everywhere.

I could write more, but I have to run. Regards.
J.

-- 
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: hammock driven development...

2011-06-21 Thread James Keats


On Jun 21, 6:54 pm, miner stevemi...@gmail.com wrote:
 Here's some more support for the hammock:

 http://www.npr.org/blogs/health/2011/06/20/137300311/why-hammocks-mak...



If this is going to be anything like those ambient orbs, then I better
hurry up and invest in hammocks.

-- 
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: Why should I use emacs instead of netbeans?

2011-06-19 Thread James Keats


On Jun 18, 4:08 pm, Stefan Kamphausen ska2...@googlemail.com wrote:
 Hi,

 these modern IDEs really do a tremendous job at organizing projects and
 providing additional information at programming time. It's just, their
 text-editor components suck.

 If you are a Java developer, it's probably better to stay away from Emacs.  
 Should you ever get used to it, you're doomed to never be able to use
 something else, and Emacs is not particularly good at Java programming.


See, this is it. Navigating java libs, maven repositories, project
directories, xml files, et cetera et cetera is a much more arduous
task, imo, than dealing with clojure code, which I find fairly trivial
and not really needing much advanced editing features. I'm likely to
want to keep my methods short and my files small.

Strangely, I must admit that in the past I did find vim a bit more
modern than emacs and its keys generally more sensible, especially
when using shift-semicolon instead of esc. I just looked it up and vim
does have clojure support with paredit and slime. My main problem with
emacs is that most things require too many key presses, and I feel
that navigating solely through emacs multi-key keybindings, on the
advocacy of not taking my hands off the keyboard, is a recipe for RSI.
Perhaps there's virtue in using the trackpad after all. I don't know,
I'll see how it goes.

 That being said, I had my best times in front of the computer with
 Emacs/SLIME and Emacs/AUCTeX.


I had this similar situation with latex a few years ago, trying to get
myself into the emacs/auctex holy grail of productivity, and I must
admit that after a few days or weeks abandoned it for Kile, the KDE's
latex IDE, and for latex documents that are mostly composed of text I
quite liked lightweight markup languages, especially those in python
that output latex as python code is quite pleasant to read and modify.
I just simply found myself much productive with those.
http://kile.sourceforge.net/screenshots.php
http://en.wikipedia.org/wiki/Lightweight_markup_language

:-)
J

 ;-)

 Cheers,
 Stefan

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


Are the docs on clojure.org always kept up to date?

2011-06-19 Thread James Keats
Hi all,

Clojure seems to be a language in a bit of flux (eg, defstruct vs
defrecord), is there a canonical set of docs that keeps all of this up-
to-date? are the docs on clojure.org always kept up to date? is there
a place to track succinct notes on language evolution, conventions and
community best practices other than wading through all the blogs and
newsgroup posts? Thanks. :-)

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


Why should I use emacs instead of netbeans?

2011-06-18 Thread James Keats
Hello all.

I'm currently using Netbeans' clojure IDE and I quite like it. It has
a REPL. It highlights syntax and matches parentheses. It supports
maven and mercurial/git. It provides completion and doc for both
clojure and java. It has allows evaluation of forms from source code
to repl. It also allows me to customize keyboard shortcuts.

The other option that I've seen being popular is emacs with cake. I've
seen that cake opens two jvms, one for itself and one for project, ok,
nevermind that, no big deal, but emacs, i find, is unnecessarily
arcane compared to a modern java IDE. It's keyboard shortcuts and
combinations are based on ancient keyboards and terminals and
historical conventions, and while i can customize that and only use
what I need, netbeans already has a comfortable, modern setup out of
the box. I see that some would suggest paredit, but honestly, i don't
see that, navigating code through keyboard shortcuts, as all that much
of an advantage considering that using the mouse or the trackpad is
very convenient.

What am I missing out on? Thanks.

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


(. rnd nextInt) vs (.nextInt rnd)

2011-06-15 Thread James Keats
Hi all. I'm struggling to see the point of this (from Pragmatic's
Programming Clojure):

Java  =  rnd.nextInt()
Clojure = (. rnd nextInt)
sugared = (.nextInt rnd)


What's the point of the sugared version? It's not any less to type.
It's also incomprehensible to me how it came about. In the middle one
it's simple, class and method, but the in sugared one it's just plain
simply bizarre looking. What was the intent?

Thanks.

-- 
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: (. rnd nextInt) vs (.nextInt rnd)

2011-06-15 Thread James Keats


  What's the point of the sugared version? It's not any less to type.

 Actually there's one fewer character -- a space.


Okay, I'll give you that.

  It's also incomprehensible to me how it came about. In the middle one
  it's simple, class and method, but the in sugared one it's just plain
  simply bizarre looking. What was the intent?

 It's closer to typical function-call form: (.doSomething someNoun)
 resembles (do-something some-noun) more than does (. someNoun
 doSomething).


Right. That makes sense. I see the consistency here now. :-)

Thanks. Soldiering on now; I'll probably be back. :-D

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


(function [args] more args)

2011-06-15 Thread James Keats

Hi again. This is another syntax that I'm struggling with:

(function [args] more args)

Or for example:

(subvec [1 2 3 4 5] 1 3)

Please note I'm not referring specifically to the subvec function, but
simply using it as an example, as I've seen this syntax with many
other functions, but it escapes my mind now to provide more examples.

I don't like it, and here's what I don't like about it. It leaves me
with a bad taste that where the arguments are generally meant to be
passed to the function in a vector of arguments, some are sometimes
passed outside the vector. It feels inconsistent and ad hoc.

What am I missing out on? are the arguments contained within a vector
only when defining functions? such as:

(defn name [args]
 body)

Thanks.

-- 
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: (function [args] more args)

2011-06-15 Thread James Keats
Hi, I admit that subvec is not a good example as it does indeed take a
vector as a first argument, perhaps i'll find better example or
perhaps I might've just been confused. I learnt lisp and scheme many
years ago, abandoned them for languages with better libraries, and I'm
perhaps thrown off by the [] of clojure instead of the () throughout
of lisp. Thanks.

On Jun 15, 4:54 pm, Meikel Brandmeyer m...@kotka.de wrote:
 Hi,

 in your example the vector *is* the argument. You could just as well write
 (let [x [1 2 3 4 5]] (subvec x 1 3)).

 On function definition the arguments are given in a vector, yes.

 I'm not sure I understand your concern completely.

 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