Re: IDE feature

2013-08-09 Thread Laurent PETIT
Le vendredi 9 août 2013, Sean Corfield a écrit :

 On Thu, Aug 8, 2013 at 5:00 PM, Mark Engelberg 
 mark.engelb...@gmail.comjavascript:;
 wrote:
  Getting back to the point of the original post, one of the nice features
 of
  DrRacket is that when you type `]`, it automatically puts either ']' or
 ')'

 Having used DrRacket quite a bit lately, I do not find its handling of
 parens to be particularly good. Regardless of whether I set it to
 auto-close each opening paren or not, I constantly find myself with a
 missing paren or an extra paren, or an incorrect mix of closing ))]))]
 somewhere. It's not a problem I ever have in Emacs working on Clojure
 - with paredit.

  this is like closing off a thought.  Paren matching is currently more
  arduous in Clojure, because you really do have to pay attention to which
  kind of delimiter you're closing off and type the right one, so I would
 love

 Well, that's why folks advocate paredit - that problem simply goes away.

 Yes, paredit is a bit of a pain to get used to at first, but it really
 does remove a whole slew of issues around parentheses in code, and it
 really does make you a lot more productive, especially once you learn
 the structural editing commands (I am surprised at how many times I
 use paredit-convolute-sexpr


What does it do? (first time I encounter it)


 to help reorganize code - I'm almost at
 the point of binding it to a key sequence!).
 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

 Perfection is the enemy of the good.
 -- Gustave Flaubert, French realist novelist (1821-1880)

 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.comjavascript:;
 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 javascript:;
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com javascript:;.
 For more options, visit https://groups.google.com/groups/opt_out.


-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-09 Thread Sean Corfield
On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com wrote:
 What does it do? (first time I encounter it)

DrRacket? It's the standard IDE for the Racket language (and all of
its teaching subsets etc).
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

Perfection is the enemy of the good.
-- Gustave Flaubert, French realist novelist (1821-1880)

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-09 Thread Ambrose Bonnaire-Sergeant
I'll bet Laurent means paredit-convolute-sexpr :-)

Ambrose


On Fri, Aug 9, 2013 at 11:09 PM, Sean Corfield seancorfi...@gmail.comwrote:

 On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com
 wrote:
  What does it do? (first time I encounter it)

 DrRacket? It's the standard IDE for the Racket language (and all of
 its teaching subsets etc).
 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

 Perfection is the enemy of the good.
 -- Gustave Flaubert, French realist novelist (1821-1880)

 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-09 Thread Sean Corfield
Ah, yes... it turns this ( | represents the cursor ):

(f a b (g c d |e f))

into this:

(g c d (f a b e f))

I find I use it most often when moving `let` forms around, but also
for other constructs occasionally.

Sean

On Fri, Aug 9, 2013 at 8:15 AM, Ambrose Bonnaire-Sergeant
abonnaireserge...@gmail.com wrote:
 I'll bet Laurent means paredit-convolute-sexpr :-)

 Ambrose


 On Fri, Aug 9, 2013 at 11:09 PM, Sean Corfield seancorfi...@gmail.com
 wrote:

 On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com
 wrote:
  What does it do? (first time I encounter it)

 DrRacket? It's the standard IDE for the Racket language (and all of
 its teaching subsets etc).
 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

 Perfection is the enemy of the good.
 -- Gustave Flaubert, French realist novelist (1821-1880)

 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

Perfection is the enemy of the good.
-- Gustave Flaubert, French realist novelist (1821-1880)

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-09 Thread Sean Corfield
Suppose I start out writing this:

(if some-expr
  (let [x (something y)]
(process x))
  (deal-with ...))

and I get to the ... and realize I need x in that expression as well.
I just place my cursor before (process x) and do M-x conv RET and I
get this code:

(let [x (something y)]
  (if some-expr
(process x)
(deal-with x)))

Similarly I can go from:

(let [x (something y)]
  (if some-expr
(process x)
(deal-with y)))

to:

(if some-expr
  (let [x (something y)]
(process x))
  (deal-with y))

with a convolute (cursor in front of (process x) again) followed by a
forward barf C-} after moving the cursor down two lines - convolute
leaves it in front of (if ...).

Sean

On Fri, Aug 9, 2013 at 8:49 AM, Laurent PETIT laurent.pe...@gmail.com wrote:


 Le vendredi 9 août 2013, Sean Corfield a écrit :

 Ah, yes... it turns this ( | represents the cursor ):


 (f a b (g c d |e f))

 into this:

 (g c d (f a b e f))

 I find I use it most often when moving `let` forms around, but also
 for other constructs occasionally.


 Sorry, maybe it's just me, but I still fail to see how to use it to help
 with moving let.
 Could you elaborate a little example with let ?


 Sean

 On Fri, Aug 9, 2013 at 8:15 AM, Ambrose Bonnaire-Sergeant
 abonnaireserge...@gmail.com wrote:
  I'll bet Laurent means paredit-convolute-sexpr :-)
 
  Ambrose
 
 
  On Fri, Aug 9, 2013 at 11:09 PM, Sean Corfield seancorfi...@gmail.com
  wrote:
 
  On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com
  wrote:
   What does it do? (first time I encounter it)
 
  DrRacket? It's the standard IDE for the Racket language (and all of
  its teaching subsets etc).
  --
  Sean A Corfield -- (904) 302-SEAN
  An Architect's View -- http://corfield.org/
  World Singles, LLC. -- http://worldsingles.com/
 
  Perfection is the enemy of the good.
  -- Gustave Flaubert, French realist novelist (1821-1880)
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your
  first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

 Perfection is the enemy of the good.
 -- Gustave Flaubert, French realist novelist (1821-1880)

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

 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

Perfection is the enemy of the good.
-- Gustave Flaubert, French realist novelist (1821-1880)

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

Re: IDE feature

2013-08-08 Thread Steven Degutis
The vast majority of people who have tried paredit prefer using it, your
reaction is very rare. So this is as far from YMMV as you can get.


On Wed, Aug 7, 2013 at 9:58 PM, Lee Spector lspec...@hampshire.edu wrote:


 On Aug 7, 2013, at 2:06 PM, Norman Richards wrote:
  Structural editing, like paredit, is really the only sane way to do
 Clojure code.  I honestly thing anyone who manually balances parenthesis or
 edits Clojure functions in a way that doesn't preserve the structural
 integrity of your expressions is just doing it wrong.  (not just doing it
 poorly - but doing it wrong)

 What a spectacularly annoying thing to say.

 I've been coding in Lisp for close to 30 years and teaching Lisp off and
 on for about 20. I have used paredit many times over these decades but I
 dislike it intensely, both for my own coding and for my teaching. I have my
 reasons for this, which I could explain, but I have no interest in
 discouraging you or anyone else who finds it useful from using it. But I
 don't want to use it, and I don't see where you get off saying that I'm
 doing it wrong on account of this.

  So, of course, my advice to the original poster is to just jump in and
 learn paredit.  It will probably seem awkward at first, but if you invest
 the effort (and it honestly doesn't take that much) to learn a better way
 to edit expressions, you'll be so much better off.

 Your mileage may vary!

  In fact, I've sold several people on Clojure just by showing them how
 paredit makes it significantly easier to lisp-style expressions than to
 edit C-style languages with their irregular syntax.  I would jumped on lisp
 years ago if I had realized how easy it was to edit instead of remembering
 those painful university lisp assignments where I spent all my time
 balancing parenthesis and being afraid to make simple structural changes
 for fear of getting my code all messed up.

 In my own experience bracket-matching and auto-reindentation are indeed
 essential, and they make balancing parentheses and seeing the structure of
 the code almost effortless. I would personally have a hard time coding in
 any environment without these tools. But Paredit takes things further by
 interfering with the typing/cutting/pasting/sketching/brainstorming
 skills/habits that I've developed over my whole life and which I use in
 every other text-based application and environment, preventing me from
 treating programs as text -- which is how I sometimes really want to think
 of them, especially when I'm playing with ideas and sketching out code
 roughly.

 Your mileage may vary! But that doesn't mean that either of us is doing it
 wrong.

  -Lee


 --
 Lee Spector, Professor of Computer Science
 Cognitive Science, Hampshire College
 893 West Street, Amherst, MA 01002-3359
 lspec...@hampshire.edu, http://hampshire.edu/lspector/
 Phone: 413-559-5352, Fax: 413-559-5438

 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Robert Stuttaford
Lee has a valid point. Lee's point is: let me decide. Put paredit in, but 
let me turn it off if I want. 

I agree that paredit is the only sane way for me and for anyone who doesn't 
have Lee's muscle memory to overcome. But for Lee, paredit is 'doing it 
wrong', because he doesn't enjoy it and he's unproductive that way. And 
that trumps any particular language, tool, paradigm, what-have-you.

I mean, there are some people who are perfectly productive and happy in 
C++. If that's possible, then anything is :-)

On Thursday, August 8, 2013 4:58:32 AM UTC+2, Lee wrote:


 On Aug 7, 2013, at 2:06 PM, Norman Richards wrote: 
  Structural editing, like paredit, is really the only sane way to do 
 Clojure code.  I honestly thing anyone who manually balances parenthesis or 
 edits Clojure functions in a way that doesn't preserve the structural 
 integrity of your expressions is just doing it wrong.  (not just doing it 
 poorly - but doing it wrong) 

 What a spectacularly annoying thing to say. 

 I've been coding in Lisp for close to 30 years and teaching Lisp off and 
 on for about 20. I have used paredit many times over these decades but I 
 dislike it intensely, both for my own coding and for my teaching. I have my 
 reasons for this, which I could explain, but I have no interest in 
 discouraging you or anyone else who finds it useful from using it. But I 
 don't want to use it, and I don't see where you get off saying that I'm 
 doing it wrong on account of this. 

  So, of course, my advice to the original poster is to just jump in and 
 learn paredit.  It will probably seem awkward at first, but if you invest 
 the effort (and it honestly doesn't take that much) to learn a better way 
 to edit expressions, you'll be so much better off. 

 Your mileage may vary! 

  In fact, I've sold several people on Clojure just by showing them how 
 paredit makes it significantly easier to lisp-style expressions than to 
 edit C-style languages with their irregular syntax.  I would jumped on lisp 
 years ago if I had realized how easy it was to edit instead of remembering 
 those painful university lisp assignments where I spent all my time 
 balancing parenthesis and being afraid to make simple structural changes 
 for fear of getting my code all messed up. 

 In my own experience bracket-matching and auto-reindentation are indeed 
 essential, and they make balancing parentheses and seeing the structure of 
 the code almost effortless. I would personally have a hard time coding in 
 any environment without these tools. But Paredit takes things further by 
 interfering with the typing/cutting/pasting/sketching/brainstorming 
 skills/habits that I've developed over my whole life and which I use in 
 every other text-based application and environment, preventing me from 
 treating programs as text -- which is how I sometimes really want to think 
 of them, especially when I'm playing with ideas and sketching out code 
 roughly. 

 Your mileage may vary! But that doesn't mean that either of us is doing it 
 wrong. 

  -Lee 


 -- 
 Lee Spector, Professor of Computer Science 
 Cognitive Science, Hampshire College 
 893 West Street, Amherst, MA 01002-3359 
 lspe...@hampshire.edu javascript:, http://hampshire.edu/lspector/ 
 Phone: 413-559-5352, Fax: 413-559-5438 



-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Mark Engelberg
I've tried paredit several times and dislike it.  I found that while
editing the code, I spent a lot of mental energy trying to figure out how
to edit the code within the constraints of the structure-preserving
transformation key combos, which took away from my ability to concentrate
on the problem at hand.  I know plenty of others who feel the same way.  So
maybe the paredit folks are just a vocal minority.  Do you have any
evidence for your claim that paredit is preferred by the vast majority of
people who have tried it?

On Thu, Aug 8, 2013 at 12:20 AM, Steven Degutis sbdegu...@gmail.com wrote:

 The vast majority of people who have tried paredit prefer using it, your
 reaction is very rare. So this is as far from YMMV as you can get.



-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Tassilo Horn
Mark Engelberg mark.engelb...@gmail.com writes:

 I've tried paredit several times and dislike it.  I found that while
 editing the code, I spent a lot of mental energy trying to figure out
 how to edit the code within the constraints of the
 structure-preserving transformation key combos, which took away from
 my ability to concentrate on the problem at hand.

That statement is also true for people new to emacs or even more vi.
But after the key bindings mave made it into your muscle memory, there
are probably no other editors that can be used that effectively for text
editing as those two.  When I started using paredit, I also found it
awkward at first, but I kept on using it, and now I don't know how
people can edit Lisp without it.

Bye,
Tassilo

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: IDE feature

2013-08-08 Thread Meikel Brandmeyer (kotarak)
Hi,

Am Donnerstag, 8. August 2013 10:05:28 UTC+2 schrieb Tassilo Horn:

 now I don't know how people can edit Lisp without it. 


Quite simple: You type an (, you type some more code, you type ). Easy as 
that.

Can we stop this arrogant smug paredit weenie discussion now? Writing 
great code would be a much better use of our time than calling other people 
insane.

Meikel
(who kept hundreds of vim users happy around the globe for more than four 
years with VimClojure (ranked 2nd after emacs in Chas' surveys) - without 
using paredit)

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Tassilo Horn
Meikel Brandmeyer (kotarak) m...@kotka.de writes:

 now I don't know how people can edit Lisp without it. 

 Quite simple: You type an (, you type some more code, you type ). Easy
 as that.

Writing is easy.  IMO, paredit (or structural editing in general) shines
when refactoring code.

 Can we stop this arrogant smug paredit weenie discussion now?

Yes.

 Writing great code would be a much better use of our time than calling
 other people insane.

I've never called anybody insane.  I just wanted to transport that
paredit and other tools need some time to get used to, but then the
investment might be worth it.

Bye,
Tassilo

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Meikel Brandmeyer (kotarak)
Hi,

Am Donnerstag, 8. August 2013 10:45:34 UTC+2 schrieb Tassilo Horn:


 I've never called anybody insane.  I just wanted to transport that 
 paredit and other tools need some time to get used to, but then the 
 investment might be worth it. 


I meant the overall discussion. Not you in person. From somewhere down the 
thread:

Structural editing, like paredit, is really the only sane way to do Clojure 
code.
 
So not using it is insane. I don't agree together with Lee and Mark. YMMV.

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
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Phillip Lord
Tassilo Horn t...@gnu.org writes:
 Writing great code would be a much better use of our time than calling
 other people insane.

 I've never called anybody insane.  I just wanted to transport that
 paredit and other tools need some time to get used to, but then the
 investment might be worth it.


I didn't discover paredit till I started clojure, having spent many
years writing emacs-lisp. For me, it was like learning to touch type
many years ago; hard at first, but paid benefits within a week.

I think part of the problem is that the commands that I used most
frequently are classifed under Barfage and Slurpage -- names that are
so ridiculous that it took me a week to find out what they do.

Phil

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: IDE feature

2013-08-08 Thread Lee Spector

On Aug 8, 2013, at 3:34 AM, Robert Stuttaford wrote:

 Lee has a valid point. Lee's point is: let me decide. Put paredit in, but let 
 me turn it off if I want. 
 
 I agree that paredit is the only sane way for me and for anyone who doesn't 
 have Lee's muscle memory to overcome. But for Lee, paredit is 'doing it 
 wrong', because he doesn't enjoy it and he's unproductive that way. And that 
 trumps any particular language, tool, paradigm, what-have-you.
 
 I mean, there are some people who are perfectly productive and happy in C++. 
 If that's possible, then anything is :-)

I'm happy to drop this after this message too. I just couldn't let such an 
unnecessarily insulting email stand without a response, and BTW I also don't 
know where the alleged data about majorities/minorities is coming from (not 
that such data would even mean that the minority are doing it wrong). 

Before I do, though, I'd like to clarify: my dislike of paredit isn't just 
about muscle memory, although that's part of it. The biggest issue is that when 
I write code it is very often not structurally sound while I'm composing it, 
and that's intentional and important. Yes, it has to be structurally sound when 
I evaluate it, but along the way I often jump around non-linearly and add weird 
things when I think about them as I have new ideas, or copy chunks of code with 
unbalanced parentheses from someplace else because I know I need *something* 
related but I'm not yet sure how the pieces should fit into the new structure 
yet. Sort of like I'm composing this email (and like I compose most text), 
which had ungrammatical stuff at first but which I've rearranged and patched up 
(I hope :-) as I've proceeded. For me, paredit is like a straightjacket that 
prevents me from writing code in this free-form way, which is an important part 
of the way I work. 

And one other part of my dislike comes from my work teaching new programmers, 
who have enough to learn and overcome without having to rethink the concept of 
editing before turning (a b (c d)) into (a (b c d)), which they could do 
effortlessly in a normal editor.

Okay. I'm done.

  -Lee

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Phillip Lord
Lee Spector lspec...@hampshire.edu writes:

 On Aug 8, 2013, at 3:34 AM, Robert Stuttaford wrote:

 Lee has a valid point. Lee's point is: let me decide. Put paredit in, but 
 let me turn it off if I want. 
 
 I agree that paredit is the only sane way for me and for anyone who doesn't
 have Lee's muscle memory to overcome. But for Lee, paredit is 'doing it
 wrong', because he doesn't enjoy it and he's unproductive that way. And that
 trumps any particular language, tool, paradigm, what-have-you.
 
 I mean, there are some people who are perfectly productive and happy in C++.
 If that's possible, then anything is :-)

 I'm happy to drop this after this message too. I just couldn't let such an
 unnecessarily insulting email stand without a response


I think he was trying to support you actually. He's saying it doesn't
work for you, which means it's the wrong tool!

 And one other part of my dislike comes from my work teaching new programmers,
 who have enough to learn and overcome without having to rethink the concept of
 editing before turning (a b (c d)) into (a (b c d)), which they could do
 effortlessly in a normal editor.

I can see this as a problem, although, there again new programmers are
likely to have problems getting parens balanced. I've never taught lisp
to new programmers, but given the difficult those I have taught Java
have with brace/paren matching, I guess it's a problem. 

It's always hard to know when to bring in tools, especially the ones
that are really useful, but have a learning curve.

Phil

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Neale Swinnerton
 I can see this as a problem, although, there again new programmers are
 likely to have problems getting parens balanced. I've never taught lisp
 to new programmers, but given the difficult those I have taught Java
 have with brace/paren matching, I guess it's a problem.

 It's always hard to know when to bring in tools, especially the ones
 that are really useful, but have a learning curve.


Smart Parens[1] looks interesting/useful. Seems like a less oppressive
paredit without losing too many features and gaining others. This might be
easier for beginners.

[1] https://github.com/Fuco1/smartparens/wiki

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: IDE feature

2013-08-08 Thread Lee Spector


On Aug 8, 2013, at 8:15 AM, Phillip Lord wrote:
 
 I'm happy to drop this after this message too. I just couldn't let such an
 unnecessarily insulting email stand without a response
 
 I think he was trying to support you actually. He's saying it doesn't
 work for you, which means it's the wrong tool!

I was referring to Norman Richard's comment, which is what set me off: 
Structural editing, like paredit, is really the only sane way to do Clojure 
code.  I honestly thing anyone who manually balances parenthesis or edits 
Clojure functions in a way that doesn't preserve the structural integrity of 
your expressions is just doing it wrong.  (not just doing it poorly - but doing 
it wrong).


 And one other part of my dislike comes from my work teaching new programmers,
 who have enough to learn and overcome without having to rethink the concept 
 of
 editing before turning (a b (c d)) into (a (b c d)), which they could do
 effortlessly in a normal editor.
 
 I can see this as a problem, although, there again new programmers are
 likely to have problems getting parens balanced. I've never taught lisp
 to new programmers, but given the difficult those I have taught Java
 have with brace/paren matching, I guess it's a problem. 

Agreed. But good brace/paren *matching* (highlighting the mate and/or unmatched 
brackets) solves this problem without all the downsides (IMHO) of paredit.

 -Lee

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Stefan Kamphausen
Just for the record:

I've been coding in Lisp for close to 30 years 


make that 20 years in my case and I agree with Lee. 

Can't live without C-M-q, TAB, M-left/right, C-M-SPC but paredit is 
interfering too much for /my/ taste.

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
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Sam Aaron
Haha, I come back to this list after a good few months of not being able to 
keep up with the volume to find a rant about paredit - priceless!

Seriously though, these things are all personal and as such clearly get 
people's backs up. So for what it's worth, let me throw my thoughts in...

I wouldn't go so far as to say that not using paredit (or an equivalent) is 
the wrong way (although I probably would in the pub after a couple of pints). 
However, it *definitely* feels to me that using an editor that doesn't support 
paredit feels broken - and I always wind up writing broken code with missing 
parenthesis because my mind is used to not worrying about them. Also, moving 
forms around manually is pretty dreadful and syntax-error prone - paredit 
massively improves this.

The analogy I think about is touch typing. People might also make a claim that 
programmers that don't touch type are doing it the wrong way. I personally 
definitely find that touch typing improves my ability to program as it frees my 
mind from having to worry about my finger placement and looking at the 
keyboard. Also, I can do an awful lot with key combos which all serves to 
improve my bandwidth of communication to the computer. However, this isn't an 
experience you can explain to someone - you have to be a touch typer to 
appreciate these benefits. Similarly, you have to be fluent with paredit to 
appreciate the benefits. With both, you have to go through a pretty dreadful 
learning curve where your productivity is reduced.

Here's a challenge:
Find me a person who touch typed fluently that stopped and reverted back to 
single finger typing.
Find me a person who fluently used paredit that stopped and reverted back to 
manual parenthesis manipulation.

Sam

---
http://sam.aaron.name


On 8 Aug 2013, at 14:09, Stefan Kamphausen ska2...@gmail.com wrote:

 Just for the record:
 
 I've been coding in Lisp for close to 30 years 
 
 
 make that 20 years in my case and I agree with Lee. 
 
 Can't live without C-M-q, TAB, M-left/right, C-M-SPC but paredit is 
 interfering too much for /my/ taste.
 
 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
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.
  
  

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: IDE feature

2013-08-08 Thread Tim Daly
 Find me a person who fluently used paredit that stopped and reverted back to 
 manual parenthesis manipulation.

/me raises my hand.

Structural editing was useful in LispVM (on IBM mainframes) where the
display was 12 lines by 40 characters. It might also be useful for the
iPad lisping app. If your IDE uses 80% of your display for buttons,
lines, and icons I can see where it would be useful, since most of the
text area is gone.

However, I've been programming in lisp for 42 years on everything from
punched cards to mega-displays. I find that keeping structure and
counting parens is like finishing a thought. It just happens.  I don't
remember the last time I had a paren-balance bug. I've spent the last 13
years rewriting and refactoring Axiom which is 1.2 million lines of lisp
code so I have a fair sized sample as a test case.

I find that programming occurs in my head and that the computer is
only useful for recording the results. For me, smart editing and IDEs
get in my way, like a helpful newbie in a metal shop.

Then again I don't use IDEs. If it works for you, go for it.

Tim


-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Sam Aaron

On 8 Aug 2013, at 16:29, Tim Daly d...@axiom-developer.org wrote:

 Find me a person who fluently used paredit that stopped and reverted back to 
 manual parenthesis manipulation.
 
 /me raises my hand.
 
 Structural editing was useful in LispVM (on IBM mainframes) where the
 display was 12 lines by 40 characters. It might also be useful for the
 iPad lisping app. If your IDE uses 80% of your display for buttons,
 lines, and icons I can see where it would be useful, since most of the
 text area is gone.
 
 However, I've been programming in lisp for 42 years on everything from
 punched cards to mega-displays. I find that keeping structure and
 counting parens is like finishing a thought. It just happens.  I don't
 remember the last time I had a paren-balance bug. I've spent the last 13
 years rewriting and refactoring Axiom which is 1.2 million lines of lisp
 code so I have a fair sized sample as a test case.
 
 I find that programming occurs in my head and that the computer is
 only useful for recording the results. For me, smart editing and IDEs
 get in my way, like a helpful newbie in a metal shop.
 
 Then again I don't use IDEs. If it works for you, go for it.

Super interesting - thanks for sharing this. 

The fact that this list contains such a broad range of such interesting people 
is a real asset to the Clojure community.

Sam

---
http://sam.aaron.name

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Paul L. Snyder
On Thu, 08 Aug 2013, Sam Aaron wrote:

 Haha, I come back to this list after a good few months of not being able
 to keep up with the volume to find a rant about paredit - priceless!
 
 Seriously though, these things are all personal and as such clearly get
 people's backs up. So for what it's worth, let me throw my thoughts in...

I'm very much of the can't we all just get along? school, too.

One of my biggest resistance-points to paredit was that I hated the idea of
the editor producing syntactically correct structures even though the
partially written logic behind them was incomplete and broken. Unclosed
parentheses were a visible marker of unfinished thoughts, and having them
automatically closed was like chopping down signposts I was relying on.

The switch from this mindset wasn't easy, and didn't happen until I'd been
editing paredit-only for a good while. It still makes me nervous.  One
result is that I actively try to write shorter functions (which is good
practice, anyway). I also more frequently put mental state that might be
lost into FIXME comments or logging statements, so there is a visual (and,
better, searchable) reminder of incompleteness if I switch contexts.

A second stumbling-block was paredit's occasional tendency just to get
something wrong and make it obnoxiously hard to fix. Being unable to
delete a bad parenthesis or switch the nesting level of a square bracket is
utterly rage-inducing. My early experiences with this were quite
aggravating. Who would want to use a mode that breaks the backspace key?

The realization that I could manually fix problems by killing/cutting the
bad bits (C-SPACE at one end, positioning the cursor at the other, then C-w
to kill the region) and, if necessary, yanking/pasting them to an
appropriate location (C-y) meant that I could jump outside of paredit's
straightjacket when the annoyance factor started rising, without losing 
ground by disabling it completely. I'd long before rebound C-q to something
else so I never relied on the ability to C-q delimiter to force an
insertion, but that option is there, too.

 I wouldn't go so far as to say that not using paredit (or an equivalent)
 is the wrong way (although I probably would in the pub after a couple
 of pints). However, it *definitely* feels to me that using an editor that
 doesn't support paredit feels broken - and I always wind up writing
 broken code with missing parenthesis because my mind is used to not
 worrying about them. Also, moving forms around manually is pretty
 dreadful and syntax-error prone - paredit massively improves this.

I'd probably agree with you over those beers to the extent that trying to go
non-paredit is deeply suboptimal if you're live-coding!

There's a deeper issue that gets back to Lee's comment about thinking of
code as text. If that is the mental model one is using, paredit's approach
is almost offensive.  That's the way I felt for quite a while, and I am
deeply sympathetic to this perspective.

When paredit finally started clicking with me, I realized that I was
thinking about programming as editing and manipulating S-expressions
rather than as editing text. I now find that this jump to a higher level
of abstraction has reduced a certain level of friction between the code 
in my brain and the code that needs to appear on the screen.

Tools are important, and the match between tools and mental models is
critical. One of the marvelous things about Emacs is how easily you
can adapt the tool to fit the shape of your mind (even though with paredit
you might have to meet it halfway).

What actually let me get paredit embedded into my work habits
was that I changed my approach to keybindings. Rather than blithely
learning and accepting the defaults, I began to optimize my entire
environment.

The best enabler for this was binding Hyper to the Caps Lock key.

This has been absolutely brilliant. Hyper is a green field.  You don't
interfere with any existing bindings, and you can still rely on the normal
keystroke documentation for any packages you might have installed.  So, for
example, I could never recall how barfage and slurpage were supposed to
work but using

  H-M-n paredit-backward-slurp-sexp
  H-M-m paredit-backward-barf-sexp
  H-M-, paredit-forward-barf-sexp
  H-M-. paredit-forward-slurp-sexp

feels completely natural. I also bind commonly used keys like delimiters to
the Hyper plane, such as H-l for '(', H-; for ')'.

 The analogy I think about is touch typing. People might also make a claim
 that programmers that don't touch type are doing it the wrong way. I
 personally definitely find that touch typing improves my ability to
 program as it frees my mind from having to worry about my finger
 placement and looking at the keyboard. Also, I can do an awful lot with
 key combos which all serves to improve my bandwidth of communication to
 the computer. However, this isn't an experience you can explain to
 someone - you have to be a touch typer to appreciate these 

Re: IDE feature

2013-08-08 Thread Norman Richards
On Thu, Aug 8, 2013 at 7:44 AM, Lee Spector lspec...@hampshire.edu wrote:


 I was referring to Norman Richard's comment, which is what set me off:
 Structural editing, like paredit, is really the only sane way to do
 Clojure code.  I honestly thing anyone who manually balances parenthesis or
 edits Clojure functions in a way that doesn't preserve the structural
 integrity of your expressions is just doing it wrong.  (not just doing it
 poorly - but doing it wrong).


I do stand by comment.  You are free to disagree.   It's so painful to
watch people (experienced LISPers and newbies alike) manually balancing
parenthesis and spending inordinate amounts of time to do the simplest
tasks like pulling an expression up into a let or wrapping/unwrapping
blocks.  I've never once seen someone programming Clojure without paredit
and thought to myself wow - that guy/gal really has this down.  The scope
of this statement is limited by the sadly small number of great Clojure
coders I've had the pleasure of watching work.  I would truly love to see
some counter examples.

If doing it by hand works for you, more power to you.  I think you are
doing it wrong, but my personal opinions thankfully don't really affect
much of the world outside my head.

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Mark Engelberg
On Thu, Aug 8, 2013 at 4:50 PM, Norman Richards o...@nostacktrace.comwrote:

 I do stand by comment.  You are free to disagree.   It's so painful to
 watch people (experienced LISPers and newbies alike) manually balancing
 parenthesis and spending inordinate amounts of time to do the simplest
 tasks like pulling an expression up into a let or wrapping/unwrapping
 blocks.  I've never once seen someone programming Clojure without paredit
 and thought to myself wow - that guy/gal really has this down.  The scope
 of this statement is limited by the sadly small number of great Clojure
 coders I've had the pleasure of watching work.  I would truly love to see
 some counter examples.


Getting back to the point of the original post, one of the nice features of
DrRacket is that when you type `]`, it automatically puts either ']' or ')'
depending on which delimiter is required.  In Clojure, you could extend
this to `}`.  When you have this feature, there's nothing arduous about
matching parens.  You just hit `]` repeatedly to close off the section that
is now complete.  I really like the analogy put forth earlier in this
thread that this is like closing off a thought.  Paren matching is
currently more arduous in Clojure, because you really do have to pay
attention to which kind of delimiter you're closing off and type the right
one, so I would love to see this convenience feature implemented in one of
the Clojure environments.

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: IDE feature

2013-08-08 Thread Sean Corfield
On Thu, Aug 8, 2013 at 5:00 PM, Mark Engelberg mark.engelb...@gmail.com wrote:
 Getting back to the point of the original post, one of the nice features of
 DrRacket is that when you type `]`, it automatically puts either ']' or ')'

Having used DrRacket quite a bit lately, I do not find its handling of
parens to be particularly good. Regardless of whether I set it to
auto-close each opening paren or not, I constantly find myself with a
missing paren or an extra paren, or an incorrect mix of closing ))]))]
somewhere. It's not a problem I ever have in Emacs working on Clojure
- with paredit.

 this is like closing off a thought.  Paren matching is currently more
 arduous in Clojure, because you really do have to pay attention to which
 kind of delimiter you're closing off and type the right one, so I would love

Well, that's why folks advocate paredit - that problem simply goes away.

Yes, paredit is a bit of a pain to get used to at first, but it really
does remove a whole slew of issues around parentheses in code, and it
really does make you a lot more productive, especially once you learn
the structural editing commands (I am surprised at how many times I
use paredit-convolute-sexpr to help reorganize code - I'm almost at
the point of binding it to a key sequence!).
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

Perfection is the enemy of the good.
-- Gustave Flaubert, French realist novelist (1821-1880)

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: IDE feature

2013-08-08 Thread Norman Richards
On Thu, Aug 8, 2013 at 7:20 PM, Sean Corfield seancorfi...@gmail.comwrote:

 Yes, paredit is a bit of a pain to get used to at first, but it really
  does remove a whole slew of issues around parentheses in code, and it
 really does make you a lot more productive, especially once you learn
 the structural editing commands (I am surprised at how many times I
 use paredit-convolute-sexpr to help reorganize code - I'm almost at
 the point of binding it to a key sequence!).


It's almost like magic, when it fits the situation.  I've been toying with
the idea of starting a project to create a refactoring-like layer on top of
paredit to give more of these types of operations - and hopefully with
clearer names that convolute-sexpr...  Is anyone else interested in working
on refactoring tool?

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-08 Thread Stanislav Sedov

On Aug 8, 2013, at 5:44 AM, Lee Spector lspec...@hampshire.edu wrote:

 Agreed. But good brace/paren *matching* (highlighting the mate and/or 
 unmatched brackets) solves this problem without all the downsides (IMHO) of 
 paredit.

I too had a similar experience.  Often when writing code I don't even produce 
it in
the LISP form but more like a freehand drawing, and then, if the idea turned out
to be valid, correct the syntax and put in the parenthesis.  Paren matching 
helps
me to do it without any effort by showing which parens are complimentary and,
more importantly, without getting in the way.

Having said that, paredit can be a great tool depending on your editing habits.
One should definitely try it to see if it works for him, but saying it is a 
panacea
for balancing parens/braces is a bit for stretch as other tools solve this 
problem
as well.

--
ST4096-RIPE

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-07 Thread Mark Engelberg
I don't think there's any IDE that does this out of the box, although I'm
certain that if you're an elisp hacker, you could easily add this to emacs'
clojure mode.

I, too, miss that feature from DrRacket.

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-07 Thread Paul L. Snyder
 On Wed, 07 Aug 2013, Abraham wrote:

 Any IDE provides the feature found in DrRacket ,that is it auto completes 
 the corresponding 
 
 [  or  (  .  by pressing ) . Keep on pressing ) in DrRacket will 
 autocomplete the square or round bracket.
 
 Clojure IDE feature shld be for completing { , [  , ( ... and so on.

 On Wed, 07 Aug 2013, Mark Engelberg wrote:

 I don't think there's any IDE that does this out of the box, although I'm
 certain that if you're an elisp hacker, you could easily add this to emacs'
 clojure mode.
 
 I, too, miss that feature from DrRacket.

When using Emacs with paredit: paredit-close-parenthesis (or, in fact, any
of paredit-close-round, paredit-close-square, and paredit-close-curly,
which should be bound to the corresponding keys by default) will jump to
past the closest closing delimiter, whether that closest delimiter is ')',
']', or '}'. This doesn't apply if you're in a string, comment, or
character literal, of course.

If paredit is a hard sell (it was for me, the first three or four times
that I tried it), realizing that you can break the balance when needed by
judicious use of kill and yank may be helpful during the transition to a
structural editing mindset.

Paul

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-07 Thread Norman Richards
On Wed, Aug 7, 2013 at 12:25 PM, Paul L. Snyder p...@pataprogramming.comwrote:

 If paredit is a hard sell (it was for me, the first three or four times
  that I tried it), realizing that you can break the balance when needed
 by
 judicious use of kill and yank may be helpful during the transition to a
 structural editing mindset.


Structural editing, like paredit, is really the only sane way to do Clojure
code.  I honestly thing anyone who manually balances parenthesis or edits
Clojure functions in a way that doesn't preserve the structural integrity
of your expressions is just doing it wrong.  (not just doing it poorly -
but doing it wrong)

So, of course, my advice to the original poster is to just jump in and
learn paredit.  It will probably seem awkward at first, but if you invest
the effort (and it honestly doesn't take that much) to learn a better way
to edit expressions, you'll be so much better off.

In fact, I've sold several people on Clojure just by showing them how
paredit makes it significantly easier to lisp-style expressions than to
edit C-style languages with their irregular syntax.  I would jumped on lisp
years ago if I had realized how easy it was to edit instead of remembering
those painful university lisp assignments where I spent all my time
balancing parenthesis and being afraid to make simple structural changes
for fear of getting my code all messed up.

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: IDE feature

2013-08-07 Thread Lee Spector

On Aug 7, 2013, at 2:06 PM, Norman Richards wrote:
 Structural editing, like paredit, is really the only sane way to do Clojure 
 code.  I honestly thing anyone who manually balances parenthesis or edits 
 Clojure functions in a way that doesn't preserve the structural integrity of 
 your expressions is just doing it wrong.  (not just doing it poorly - but 
 doing it wrong)

What a spectacularly annoying thing to say.

I've been coding in Lisp for close to 30 years and teaching Lisp off and on for 
about 20. I have used paredit many times over these decades but I dislike it 
intensely, both for my own coding and for my teaching. I have my reasons for 
this, which I could explain, but I have no interest in discouraging you or 
anyone else who finds it useful from using it. But I don't want to use it, and 
I don't see where you get off saying that I'm doing it wrong on account of 
this.

 So, of course, my advice to the original poster is to just jump in and learn 
 paredit.  It will probably seem awkward at first, but if you invest the 
 effort (and it honestly doesn't take that much) to learn a better way to edit 
 expressions, you'll be so much better off. 

Your mileage may vary!

 In fact, I've sold several people on Clojure just by showing them how paredit 
 makes it significantly easier to lisp-style expressions than to edit C-style 
 languages with their irregular syntax.  I would jumped on lisp years ago if I 
 had realized how easy it was to edit instead of remembering those painful 
 university lisp assignments where I spent all my time balancing parenthesis 
 and being afraid to make simple structural changes for fear of getting my 
 code all messed up.

In my own experience bracket-matching and auto-reindentation are indeed 
essential, and they make balancing parentheses and seeing the structure of the 
code almost effortless. I would personally have a hard time coding in any 
environment without these tools. But Paredit takes things further by 
interfering with the typing/cutting/pasting/sketching/brainstorming 
skills/habits that I've developed over my whole life and which I use in every 
other text-based application and environment, preventing me from treating 
programs as text -- which is how I sometimes really want to think of them, 
especially when I'm playing with ideas and sketching out code roughly.

Your mileage may vary! But that doesn't mean that either of us is doing it 
wrong.

 -Lee


--
Lee Spector, Professor of Computer Science
Cognitive Science, Hampshire College
893 West Street, Amherst, MA 01002-3359
lspec...@hampshire.edu, http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.