Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure

Ah -- after quitting and restarting Atom the error (which I was getting 
from Start REPL), the error is gone, and it appears to work nicely.

Thanks again!

So Atom + atom-beautify + proto-repl might do much of what I need, with 
relatively painless installation and setup.

I guess this still requires leiningen, both because proto-repl uses it and 
because students will have to use it to make new projects, right? 
Installing leiningen has been problematic for some of my students 
(especially on Windows), and it'd be great to be able to avoid that (as is 
possible with Nightcode, for example, although that won't work for me 
because of parinfer). In any event, even I'm using proto-repl, the minimal 
setup with Atom would still require leiningen, right?

 -Lee

On Monday, August 27, 2018 at 5:15:37 PM UTC-4, Nando Breiter wrote:
>
> Not sure what errors you are seeing. I’ve found proto-repl to be reliable. 
> If I recall correctly, the project you are using proto-repl with has to be 
> the topmost. I will check this for you.
>
> Aria Media Sagl
>
> On 27 Aug 2018, at 22:51, 'Lee' via Clojure  > wrote:
>
>
> Aha -- atom-beautify does seem to work!
>
> Excellent.
>
> This will lead me to consider Atom further.
>
> Would you recommend it for editing only, or also for REPLs etc? I just 
> tried proto-repl but this leads to errors and confusion. Still, if it works 
> well as just an editor then perhaps I could pair it with a CLI-based REPL 
> and the overall setup experience and usability will be okay overall.
>
> Thanks!
>
>  -Lee
>
> On Monday, August 27, 2018 at 4:00:34 PM UTC-4, Nando Breiter wrote:
>>
>> Lee, 
>>
>> Perhaps https://atom.io/packages/atom-beautify will do what you want. 
>>
>> With Parinfer disabled, I can select and shift-tab all code to the left 
>> margin, removing all indentation. Then when I run Atom Beautify on the 
>> file, all indentation is restored. 
>>
>>
>>
>> Aria Media Sagl
>> +41 (0)76 303 4477 cell
>> skype: ariamedia
>>
>> On Mon, Aug 27, 2018 at 9:18 PM, 'Lee' via Clojure <
>> clo...@googlegroups.com> wrote:
>>
>>>
>>> Ah -- thank you! 
>>>
>>> Now I can re-indent in Cursive, although it doesn't do the right thing 
>>> after defn, etc. What do Cursive users do to get standard indentation?
>>>
>>> Playing a bit more I see some other with basic editing, even in 
>>> "Structural Off" mode. Like if you type "(defn foo" and hit return, then 
>>> foo changes into some strange autocompleted symbol. Shift-return avoids 
>>> this, but the idea is to let people use their pre-existing typing skills. 
>>> It also won't let you delete to the left of the indentation point (it jumps 
>>> you up to the previous line), etc. I'm not sure how problematic these 
>>> issues would be.
>>>
>>>
>>>
>>> On Monday, August 27, 2018 at 3:01:37 PM UTC-4, ri...@chartbeat.com 
>>> wrote:

 It’s under one of the code or refactor menus, you can auto-format or 
 auto-indent.

 On Aug 27, 2018, at 11:30 AM, 'Lee' via Clojure <
 clo...@googlegroups.com> wrote:


 Probably true that my requirements are a bigger challenge for 
 multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable 
 job of it back when that was an active project, but it was a bit rough 
 too, 
 since there was a lot of incidental and distracting complexity in dealing 
 with Eclipse in general.

 I did see the "off" setting for parinfer/paredit in Cursive, but it's 
 not really "off" in the sense of behaving like a normal text editor, and I 
 don't see re-indentation anywhere. FWIW since this is for teaching I'm not 
 really interested in customization, just reasonable behavior out of the 
 box.


 On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:
>
> Yeah, I actually just create projects with lein. If you right click on 
> a project.clj you can just fire up a repl via lein and it works really 
> well. There's 3 choices for parenthesis, there's again a little button on 
> the bottom right to switch between parinfer/paredit and off. You can 
> customize all of the code reformatting and you can even alias things like 
> defnp and other macros to evaluate correctly. 
>
> That said, a tool that supports dozens of languages isn't going to do 
> any of them particularly easily :)
>
>
>
> On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure <
> clo...@googlegroups.com> wrote:
>
>> Thanks Rick. 
>>
>> Just tried Cursive again but it still seems to fail pretty badly on 
>> newbie setup and usability, which is what has hung me up in the past. 
>>
>> tldr: A half hour or so after a fresh install and going through the 
>> Getting Started instructions I still don't have a REPL (confused about 
>> Run 
>> Configurations and what I'm seeing doesn't match the website pics), and 
>> although I can edit code in an existing project with 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread Nando Breiter
Not sure what errors you are seeing. I’ve found proto-repl to be reliable.
If I recall correctly, the project you are using proto-repl with has to be
the topmost. I will check this for you.

Aria Media Sagl

On 27 Aug 2018, at 22:51, 'Lee' via Clojure 
wrote:


Aha -- atom-beautify does seem to work!

Excellent.

This will lead me to consider Atom further.

Would you recommend it for editing only, or also for REPLs etc? I just
tried proto-repl but this leads to errors and confusion. Still, if it works
well as just an editor then perhaps I could pair it with a CLI-based REPL
and the overall setup experience and usability will be okay overall.

Thanks!

 -Lee

On Monday, August 27, 2018 at 4:00:34 PM UTC-4, Nando Breiter wrote:
>
> Lee,
>
> Perhaps https://atom.io/packages/atom-beautify will do what you want.
>
> With Parinfer disabled, I can select and shift-tab all code to the left
> margin, removing all indentation. Then when I run Atom Beautify on the
> file, all indentation is restored.
>
>
>
> Aria Media Sagl
> +41 (0)76 303 4477 cell
> skype: ariamedia
>
> On Mon, Aug 27, 2018 at 9:18 PM, 'Lee' via Clojure <
> clo...@googlegroups.com> wrote:
>
>>
>> Ah -- thank you!
>>
>> Now I can re-indent in Cursive, although it doesn't do the right thing
>> after defn, etc. What do Cursive users do to get standard indentation?
>>
>> Playing a bit more I see some other with basic editing, even in
>> "Structural Off" mode. Like if you type "(defn foo" and hit return, then
>> foo changes into some strange autocompleted symbol. Shift-return avoids
>> this, but the idea is to let people use their pre-existing typing skills.
>> It also won't let you delete to the left of the indentation point (it jumps
>> you up to the previous line), etc. I'm not sure how problematic these
>> issues would be.
>>
>>
>>
>> On Monday, August 27, 2018 at 3:01:37 PM UTC-4, ri...@chartbeat.com
>> wrote:
>>>
>>> It’s under one of the code or refactor menus, you can auto-format or
>>> auto-indent.
>>>
>>> On Aug 27, 2018, at 11:30 AM, 'Lee' via Clojure 
>>> wrote:
>>>
>>>
>>> Probably true that my requirements are a bigger challenge for
>>> multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable
>>> job of it back when that was an active project, but it was a bit rough too,
>>> since there was a lot of incidental and distracting complexity in dealing
>>> with Eclipse in general.
>>>
>>> I did see the "off" setting for parinfer/paredit in Cursive, but it's
>>> not really "off" in the sense of behaving like a normal text editor, and I
>>> don't see re-indentation anywhere. FWIW since this is for teaching I'm not
>>> really interested in customization, just reasonable behavior out of the box.
>>>
>>>
>>> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:

 Yeah, I actually just create projects with lein. If you right click on
 a project.clj you can just fire up a repl via lein and it works really
 well. There's 3 choices for parenthesis, there's again a little button on
 the bottom right to switch between parinfer/paredit and off. You can
 customize all of the code reformatting and you can even alias things like
 defnp and other macros to evaluate correctly.

 That said, a tool that supports dozens of languages isn't going to do
 any of them particularly easily :)



 On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure <
 clo...@googlegroups.com> wrote:

> Thanks Rick.
>
> Just tried Cursive again but it still seems to fail pretty badly on
> newbie setup and usability, which is what has hung me up in the past.
>
> tldr: A half hour or so after a fresh install and going through the
> Getting Started instructions I still don't have a REPL (confused about Run
> Configurations and what I'm seeing doesn't match the website pics), and
> although I can edit code in an existing project with drag and drop (can't
> yet create a project with a core.clj), even the "Structural Off" editing
> mode behaves oddly and doesn't appear to support structure-aware
> re-indentation (again, unless I'm missing it). And the indentation that it
> prefers after a newline appears to be non-standard (e.g. after "(defn 
> foo").
>
> I follow the Cursive mailing list and I know that a lot of people find
> it to be a wonderful tool, but I don't think it meets my requirements.
>
>  -Lee
>
>
> On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>>
>> I find intellij + cursive to be pretty darn easy to use, and the repl
>> has an option to turn off parinfer. That said, I'm not a beginner. The 
>> only
>> drawback that I can think of other than price is that the clojure
>> functionality is mostly put under a single menu and it's sometimes 
>> awkward
>> to navigate to subcommands.
>>
>>
>>
>> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure

Alas, current Nightcode forces use of parinfer, unless something has 
changed very recently.

Previous versions of Nightcode met all of my requirements and I used them 
for teaching, and liked it quite a lot.

But parinfer is a problem. One of my requirements is that the editor acts 
mostly like a normal text editor, aside from bracket matching and 
user-triggered re-indentation. Auto-insertion of closing brackets is okay 
too, if they can be erased. My students know how to type and to cut and 
paste text, and I want them to be able to rely on those skills working as 
they expect them to work as they learn to program. I've seen parinfer 
confuse and frustrate some of my students, and it also happens to clash 
badly with my own ways of editing code.

 -Lee


On Monday, August 27, 2018 at 4:36:33 PM UTC-4, Erik Assum wrote:
>
> Have you had a look at Nightcode?
> https://sekao.net/nightcode/
>
> Erik. 
> -- 
> i farta
>
> 27. aug. 2018 kl. 22:00 skrev Nando Breiter  >:
>
> Lee,
>
> Perhaps https://atom.io/packages/atom-beautify will do what you want. 
>
> With Parinfer disabled, I can select and shift-tab all code to the left 
> margin, removing all indentation. Then when I run Atom Beautify on the 
> file, all indentation is restored. 
>
>
>
> Aria Media Sagl
> +41 (0)76 303 4477 cell
> skype: ariamedia
>
> On Mon, Aug 27, 2018 at 9:18 PM, 'Lee' via Clojure <
> clo...@googlegroups.com > wrote:
>
>>
>> Ah -- thank you! 
>>
>> Now I can re-indent in Cursive, although it doesn't do the right thing 
>> after defn, etc. What do Cursive users do to get standard indentation?
>>
>> Playing a bit more I see some other with basic editing, even in 
>> "Structural Off" mode. Like if you type "(defn foo" and hit return, then 
>> foo changes into some strange autocompleted symbol. Shift-return avoids 
>> this, but the idea is to let people use their pre-existing typing skills. 
>> It also won't let you delete to the left of the indentation point (it jumps 
>> you up to the previous line), etc. I'm not sure how problematic these 
>> issues would be.
>>
>>
>>
>> On Monday, August 27, 2018 at 3:01:37 PM UTC-4, ri...@chartbeat.com 
>> wrote:
>>>
>>> It’s under one of the code or refactor menus, you can auto-format or 
>>> auto-indent.
>>>
>>> On Aug 27, 2018, at 11:30 AM, 'Lee' via Clojure  
>>> wrote:
>>>
>>>
>>> Probably true that my requirements are a bigger challenge for 
>>> multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable 
>>> job of it back when that was an active project, but it was a bit rough too, 
>>> since there was a lot of incidental and distracting complexity in dealing 
>>> with Eclipse in general.
>>>
>>> I did see the "off" setting for parinfer/paredit in Cursive, but it's 
>>> not really "off" in the sense of behaving like a normal text editor, and I 
>>> don't see re-indentation anywhere. FWIW since this is for teaching I'm not 
>>> really interested in customization, just reasonable behavior out of the box.
>>>
>>>
>>> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:

 Yeah, I actually just create projects with lein. If you right click on 
 a project.clj you can just fire up a repl via lein and it works really 
 well. There's 3 choices for parenthesis, there's again a little button on 
 the bottom right to switch between parinfer/paredit and off. You can 
 customize all of the code reformatting and you can even alias things like 
 defnp and other macros to evaluate correctly. 

 That said, a tool that supports dozens of languages isn't going to do 
 any of them particularly easily :)



 On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure <
 clo...@googlegroups.com> wrote:

> Thanks Rick. 
>
> Just tried Cursive again but it still seems to fail pretty badly on 
> newbie setup and usability, which is what has hung me up in the past. 
>
> tldr: A half hour or so after a fresh install and going through the 
> Getting Started instructions I still don't have a REPL (confused about 
> Run 
> Configurations and what I'm seeing doesn't match the website pics), and 
> although I can edit code in an existing project with drag and drop (can't 
> yet create a project with a core.clj), even the "Structural Off" editing 
> mode behaves oddly and doesn't appear to support structure-aware 
> re-indentation (again, unless I'm missing it). And the indentation that 
> it 
> prefers after a newline appears to be non-standard (e.g. after "(defn 
> foo").
>
> I follow the Cursive mailing list and I know that a lot of people find 
> it to be a wonderful tool, but I don't think it meets my requirements.
>
>  -Lee
>
>
> On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>>
>> I find intellij + cursive to be pretty darn easy to use, and the repl 
>> has an option to turn off parinfer. That said, I'm not 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure

Aha -- atom-beautify does seem to work!

Excellent.

This will lead me to consider Atom further.

Would you recommend it for editing only, or also for REPLs etc? I just 
tried proto-repl but this leads to errors and confusion. Still, if it works 
well as just an editor then perhaps I could pair it with a CLI-based REPL 
and the overall setup experience and usability will be okay overall.

Thanks!

 -Lee

On Monday, August 27, 2018 at 4:00:34 PM UTC-4, Nando Breiter wrote:
>
> Lee, 
>
> Perhaps https://atom.io/packages/atom-beautify will do what you want. 
>
> With Parinfer disabled, I can select and shift-tab all code to the left 
> margin, removing all indentation. Then when I run Atom Beautify on the 
> file, all indentation is restored. 
>
>
>
> Aria Media Sagl
> +41 (0)76 303 4477 cell
> skype: ariamedia
>
> On Mon, Aug 27, 2018 at 9:18 PM, 'Lee' via Clojure <
> clo...@googlegroups.com > wrote:
>
>>
>> Ah -- thank you! 
>>
>> Now I can re-indent in Cursive, although it doesn't do the right thing 
>> after defn, etc. What do Cursive users do to get standard indentation?
>>
>> Playing a bit more I see some other with basic editing, even in 
>> "Structural Off" mode. Like if you type "(defn foo" and hit return, then 
>> foo changes into some strange autocompleted symbol. Shift-return avoids 
>> this, but the idea is to let people use their pre-existing typing skills. 
>> It also won't let you delete to the left of the indentation point (it jumps 
>> you up to the previous line), etc. I'm not sure how problematic these 
>> issues would be.
>>
>>
>>
>> On Monday, August 27, 2018 at 3:01:37 PM UTC-4, ri...@chartbeat.com 
>> wrote:
>>>
>>> It’s under one of the code or refactor menus, you can auto-format or 
>>> auto-indent.
>>>
>>> On Aug 27, 2018, at 11:30 AM, 'Lee' via Clojure  
>>> wrote:
>>>
>>>
>>> Probably true that my requirements are a bigger challenge for 
>>> multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable 
>>> job of it back when that was an active project, but it was a bit rough too, 
>>> since there was a lot of incidental and distracting complexity in dealing 
>>> with Eclipse in general.
>>>
>>> I did see the "off" setting for parinfer/paredit in Cursive, but it's 
>>> not really "off" in the sense of behaving like a normal text editor, and I 
>>> don't see re-indentation anywhere. FWIW since this is for teaching I'm not 
>>> really interested in customization, just reasonable behavior out of the box.
>>>
>>>
>>> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:

 Yeah, I actually just create projects with lein. If you right click on 
 a project.clj you can just fire up a repl via lein and it works really 
 well. There's 3 choices for parenthesis, there's again a little button on 
 the bottom right to switch between parinfer/paredit and off. You can 
 customize all of the code reformatting and you can even alias things like 
 defnp and other macros to evaluate correctly. 

 That said, a tool that supports dozens of languages isn't going to do 
 any of them particularly easily :)



 On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure <
 clo...@googlegroups.com> wrote:

> Thanks Rick. 
>
> Just tried Cursive again but it still seems to fail pretty badly on 
> newbie setup and usability, which is what has hung me up in the past. 
>
> tldr: A half hour or so after a fresh install and going through the 
> Getting Started instructions I still don't have a REPL (confused about 
> Run 
> Configurations and what I'm seeing doesn't match the website pics), and 
> although I can edit code in an existing project with drag and drop (can't 
> yet create a project with a core.clj), even the "Structural Off" editing 
> mode behaves oddly and doesn't appear to support structure-aware 
> re-indentation (again, unless I'm missing it). And the indentation that 
> it 
> prefers after a newline appears to be non-standard (e.g. after "(defn 
> foo").
>
> I follow the Cursive mailing list and I know that a lot of people find 
> it to be a wonderful tool, but I don't think it meets my requirements.
>
>  -Lee
>
>
> On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>>
>> I find intellij + cursive to be pretty darn easy to use, and the repl 
>> has an option to turn off parinfer. That said, I'm not a beginner. The 
>> only 
>> drawback that I can think of other than price is that the clojure 
>> functionality is mostly put under a single menu and it's sometimes 
>> awkward 
>> to navigate to subcommands.
>>
>>
>>
>> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller  
>> wrote:
>>
>>> I think Atom and VSCode are probably the two additional ones you 
>>> might want to look into?
>>>
>>> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread Erik Assum
Have you had a look at Nightcode?
https://sekao.net/nightcode/

Erik. 
-- 
i farta

> 27. aug. 2018 kl. 22:00 skrev Nando Breiter :
> 
> Lee,
> 
> Perhaps https://atom.io/packages/atom-beautify will do what you want. 
> 
> With Parinfer disabled, I can select and shift-tab all code to the left 
> margin, removing all indentation. Then when I run Atom Beautify on the file, 
> all indentation is restored. 
> 
> 
> 
> Aria Media Sagl
> +41 (0)76 303 4477 cell
> skype: ariamedia
> 
>> On Mon, Aug 27, 2018 at 9:18 PM, 'Lee' via Clojure 
>>  wrote:
>> 
>> Ah -- thank you! 
>> 
>> Now I can re-indent in Cursive, although it doesn't do the right thing after 
>> defn, etc. What do Cursive users do to get standard indentation?
>> 
>> Playing a bit more I see some other with basic editing, even in "Structural 
>> Off" mode. Like if you type "(defn foo" and hit return, then foo changes 
>> into some strange autocompleted symbol. Shift-return avoids this, but the 
>> idea is to let people use their pre-existing typing skills. It also won't 
>> let you delete to the left of the indentation point (it jumps you up to the 
>> previous line), etc. I'm not sure how problematic these issues would be.
>> 
>> 
>> 
>>> On Monday, August 27, 2018 at 3:01:37 PM UTC-4, ri...@chartbeat.com wrote:
>>> It’s under one of the code or refactor menus, you can auto-format or 
>>> auto-indent.
>>> 
 On Aug 27, 2018, at 11:30 AM, 'Lee' via Clojure  
 wrote:
 
 
 Probably true that my requirements are a bigger challenge for 
 multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable 
 job of it back when that was an active project, but it was a bit rough 
 too, since there was a lot of incidental and distracting complexity in 
 dealing with Eclipse in general.
 
 I did see the "off" setting for parinfer/paredit in Cursive, but it's not 
 really "off" in the sense of behaving like a normal text editor, and I 
 don't see re-indentation anywhere. FWIW since this is for teaching I'm not 
 really interested in customization, just reasonable behavior out of the 
 box.
 
 
> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:
> Yeah, I actually just create projects with lein. If you right click on a 
> project.clj you can just fire up a repl via lein and it works really 
> well. There's 3 choices for parenthesis, there's again a little button on 
> the bottom right to switch between parinfer/paredit and off. You can 
> customize all of the code reformatting and you can even alias things like 
> defnp and other macros to evaluate correctly. 
> 
> That said, a tool that supports dozens of languages isn't going to do any 
> of them particularly easily :)
> 
> 
> 
>> On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure 
>>  wrote:
>> Thanks Rick. 
>> 
>> Just tried Cursive again but it still seems to fail pretty badly on 
>> newbie setup and usability, which is what has hung me up in the past. 
>> 
>> tldr: A half hour or so after a fresh install and going through the 
>> Getting Started instructions I still don't have a REPL (confused about 
>> Run Configurations and what I'm seeing doesn't match the website pics), 
>> and although I can edit code in an existing project with drag and drop 
>> (can't yet create a project with a core.clj), even the "Structural Off" 
>> editing mode behaves oddly and doesn't appear to support structure-aware 
>> re-indentation (again, unless I'm missing it). And the indentation that 
>> it prefers after a newline appears to be non-standard (e.g. after "(defn 
>> foo").
>> 
>> I follow the Cursive mailing list and I know that a lot of people find 
>> it to be a wonderful tool, but I don't think it meets my requirements.
>> 
>>  -Lee
>> 
>> 
>>> On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>>> I find intellij + cursive to be pretty darn easy to use, and the repl 
>>> has an option to turn off parinfer. That said, I'm not a beginner. The 
>>> only drawback that I can think of other than price is that the clojure 
>>> functionality is mostly put under a single menu and it's sometimes 
>>> awkward to navigate to subcommands.
>>> 
>>> 
>>> 
 On Mon, Aug 27, 2018 at 9:48 AM Alex Miller  
 wrote:
 I think Atom and VSCode are probably the two additional ones you might 
 want to look into?
 
> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
> This is my roughly-annual check-in to see if there are new good 
> editing/execution options for me to use in my Clojure teaching and 
> coding.
> 
> My requirements are:
> 
> - Simple installation/setup, even for new programmers, on 
> Mac/Win/Linux
> 
> - Usable 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread Nando Breiter
Lee,

Perhaps https://atom.io/packages/atom-beautify will do what you want.

With Parinfer disabled, I can select and shift-tab all code to the left
margin, removing all indentation. Then when I run Atom Beautify on the
file, all indentation is restored.



Aria Media Sagl
+41 (0)76 303 4477 cell
skype: ariamedia

On Mon, Aug 27, 2018 at 9:18 PM, 'Lee' via Clojure  wrote:

>
> Ah -- thank you!
>
> Now I can re-indent in Cursive, although it doesn't do the right thing
> after defn, etc. What do Cursive users do to get standard indentation?
>
> Playing a bit more I see some other with basic editing, even in
> "Structural Off" mode. Like if you type "(defn foo" and hit return, then
> foo changes into some strange autocompleted symbol. Shift-return avoids
> this, but the idea is to let people use their pre-existing typing skills.
> It also won't let you delete to the left of the indentation point (it jumps
> you up to the previous line), etc. I'm not sure how problematic these
> issues would be.
>
>
>
> On Monday, August 27, 2018 at 3:01:37 PM UTC-4, ri...@chartbeat.com wrote:
>>
>> It’s under one of the code or refactor menus, you can auto-format or
>> auto-indent.
>>
>> On Aug 27, 2018, at 11:30 AM, 'Lee' via Clojure 
>> wrote:
>>
>>
>> Probably true that my requirements are a bigger challenge for
>> multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable
>> job of it back when that was an active project, but it was a bit rough too,
>> since there was a lot of incidental and distracting complexity in dealing
>> with Eclipse in general.
>>
>> I did see the "off" setting for parinfer/paredit in Cursive, but it's not
>> really "off" in the sense of behaving like a normal text editor, and I
>> don't see re-indentation anywhere. FWIW since this is for teaching I'm not
>> really interested in customization, just reasonable behavior out of the box.
>>
>>
>> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:
>>>
>>> Yeah, I actually just create projects with lein. If you right click on a
>>> project.clj you can just fire up a repl via lein and it works really well.
>>> There's 3 choices for parenthesis, there's again a little button on the
>>> bottom right to switch between parinfer/paredit and off. You can customize
>>> all of the code reformatting and you can even alias things like defnp and
>>> other macros to evaluate correctly.
>>>
>>> That said, a tool that supports dozens of languages isn't going to do
>>> any of them particularly easily :)
>>>
>>>
>>>
>>> On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure <
>>> clo...@googlegroups.com> wrote:
>>>
 Thanks Rick.

 Just tried Cursive again but it still seems to fail pretty badly on
 newbie setup and usability, which is what has hung me up in the past.

 tldr: A half hour or so after a fresh install and going through the
 Getting Started instructions I still don't have a REPL (confused about Run
 Configurations and what I'm seeing doesn't match the website pics), and
 although I can edit code in an existing project with drag and drop (can't
 yet create a project with a core.clj), even the "Structural Off" editing
 mode behaves oddly and doesn't appear to support structure-aware
 re-indentation (again, unless I'm missing it). And the indentation that it
 prefers after a newline appears to be non-standard (e.g. after "(defn 
 foo").

 I follow the Cursive mailing list and I know that a lot of people find
 it to be a wonderful tool, but I don't think it meets my requirements.

  -Lee


 On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>
> I find intellij + cursive to be pretty darn easy to use, and the repl
> has an option to turn off parinfer. That said, I'm not a beginner. The 
> only
> drawback that I can think of other than price is that the clojure
> functionality is mostly put under a single menu and it's sometimes awkward
> to navigate to subcommands.
>
>
>
> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller 
> wrote:
>
>> I think Atom and VSCode are probably the two additional ones you
>> might want to look into?
>>
>> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>>>
>>> This is my roughly-annual check-in to see if there are new good
>>> editing/execution options for me to use in my Clojure teaching and 
>>> coding.
>>>
>>> My requirements are:
>>>
>>> - Simple installation/setup, even for new programmers, on
>>> Mac/Win/Linux
>>>
>>> - Usable by new programmers without significant training or learning
>>> curve
>>>
>>> - Syntax-aware re-indentation
>>>
>>> - Visual indication of matching brackets (e.g. matching bracket
>>> highlighted, or rainbow brackets, etc.)
>>>
>>> - No required use of paredit or parinfer
>>>
>>> Bells and whistles that would help but 

Re: Why are mutable fields on deftype not public?

2018-08-27 Thread Alex Miller


On Monday, August 27, 2018 at 2:56:37 PM UTC-5, Alex Miller wrote:
>
>
>
> On Monday, August 27, 2018 at 1:39:29 PM UTC-5, Didier wrote:
>>
>> I see, actually that makes a lot of sense. I always kind of disagreed 
>> with the encapsulation is folly mentra. But if you add to it, of immutable 
>> data, it makes more sense.
>>
>> A few more related questions.
>>
>> 1) I gathered the fields are made package restricted. Is that correct?
>>
>
> I believe that's correct. Code in question is here:
>
>
> https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java#L4358-L4360
>  
>
>> 2) It seems methods defined inline on deftype are different then the ones 
>> defined with extend. Is there a performance implication here? It appears 
>> the inline ones would be compiled to methods on the class. So are the 
>> extend one compiled as seperate classes, and then dispatched too in a more 
>> dynamic nature?
>>
>
> Yes, that's correct. Inline are compiled onto the class, extended (note, 
> this is protocol-only) are external functions. Protocol method invocation 
> uses a cache when determining the correct impl so while there is a 
> performance difference but it's unlikely to be a critical factor in most 
> cases.
>

I guess I should elaborate that it's a call-site specific cache.  

-- 
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/d/optout.


Re: Why are mutable fields on deftype not public?

2018-08-27 Thread Alex Miller


On Monday, August 27, 2018 at 1:39:29 PM UTC-5, Didier wrote:
>
> I see, actually that makes a lot of sense. I always kind of disagreed with 
> the encapsulation is folly mentra. But if you add to it, of immutable data, 
> it makes more sense.
>
> A few more related questions.
>
> 1) I gathered the fields are made package restricted. Is that correct?
>

I believe that's correct. Code in question is here:

https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java#L4358-L4360
 

> 2) It seems methods defined inline on deftype are different then the ones 
> defined with extend. Is there a performance implication here? It appears 
> the inline ones would be compiled to methods on the class. So are the 
> extend one compiled as seperate classes, and then dispatched too in a more 
> dynamic nature?
>

Yes, that's correct. Inline are compiled onto the class, extended (note, 
this is protocol-only) are external functions. Protocol method invocation 
uses a cache when determining the correct impl so while there is a 
performance difference but it's unlikely to be a critical factor in most 
cases.

-- 
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/d/optout.


Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread rick
It’s under one of the code or refactor menus, you can auto-format or 
auto-indent.

> On Aug 27, 2018, at 11:30 AM, 'Lee' via Clojure  
> wrote:
> 
> 
> Probably true that my requirements are a bigger challenge for multi-language 
> IDEs. I thought Eclipse/Counterclockwise did a reasonable job of it back when 
> that was an active project, but it was a bit rough too, since there was a lot 
> of incidental and distracting complexity in dealing with Eclipse in general.
> 
> I did see the "off" setting for parinfer/paredit in Cursive, but it's not 
> really "off" in the sense of behaving like a normal text editor, and I don't 
> see re-indentation anywhere. FWIW since this is for teaching I'm not really 
> interested in customization, just reasonable behavior out of the box.
> 
> 
>> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:
>> Yeah, I actually just create projects with lein. If you right click on a 
>> project.clj you can just fire up a repl via lein and it works really well. 
>> There's 3 choices for parenthesis, there's again a little button on the 
>> bottom right to switch between parinfer/paredit and off. You can customize 
>> all of the code reformatting and you can even alias things like defnp and 
>> other macros to evaluate correctly. 
>> 
>> That said, a tool that supports dozens of languages isn't going to do any of 
>> them particularly easily :)
>> 
>> 
>> 
>>> On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure 
>>>  wrote:
>>> Thanks Rick. 
>>> 
>>> Just tried Cursive again but it still seems to fail pretty badly on newbie 
>>> setup and usability, which is what has hung me up in the past. 
>>> 
>>> tldr: A half hour or so after a fresh install and going through the Getting 
>>> Started instructions I still don't have a REPL (confused about Run 
>>> Configurations and what I'm seeing doesn't match the website pics), and 
>>> although I can edit code in an existing project with drag and drop (can't 
>>> yet create a project with a core.clj), even the "Structural Off" editing 
>>> mode behaves oddly and doesn't appear to support structure-aware 
>>> re-indentation (again, unless I'm missing it). And the indentation that it 
>>> prefers after a newline appears to be non-standard (e.g. after "(defn foo").
>>> 
>>> I follow the Cursive mailing list and I know that a lot of people find it 
>>> to be a wonderful tool, but I don't think it meets my requirements.
>>> 
>>>  -Lee
>>> 
>>> 
 On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
 I find intellij + cursive to be pretty darn easy to use, and the repl has 
 an option to turn off parinfer. That said, I'm not a beginner. The only 
 drawback that I can think of other than price is that the clojure 
 functionality is mostly put under a single menu and it's sometimes awkward 
 to navigate to subcommands.
 
 
 
> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller  wrote:
> I think Atom and VSCode are probably the two additional ones you might 
> want to look into?
> 
>> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>> This is my roughly-annual check-in to see if there are new good 
>> editing/execution options for me to use in my Clojure teaching and 
>> coding.
>> 
>> My requirements are:
>> 
>> - Simple installation/setup, even for new programmers, on Mac/Win/Linux
>> 
>> - Usable by new programmers without significant training or learning 
>> curve
>> 
>> - Syntax-aware re-indentation
>> 
>> - Visual indication of matching brackets (e.g. matching bracket 
>> highlighted, or rainbow brackets, etc.)
>> 
>> - No required use of paredit or parinfer
>> 
>> Bells and whistles that would help but aren't as critical as the 
>> requirements listed above:
>> 
>> - Access to argument lists, documentation, and symbol completion while 
>> typing
>> 
>> - Integrated REPL, although a command-line REPL paired with an editor 
>> that met the requirements above would work
>> 
>> I would be interested in solutions that work for Clojure and 
>> Clojurescript, or just Clojure, or just Clojurescript.
>> 
>> Recent developments of which I'm aware but fall short of my requirements:
>> 
>> - Nightcode and Lightmod, which would be fabulous if not for the 
>> required use of parinfer
>> 
>> - Jupyter-based approaches, which also seem great except I see none with 
>> syntax-aware re-indentation for Clojure
>> 
>> FYI what I'm currently using is a combination of Gorilla REPL and 
>> leiningen at the command line. This is quite nice although 
>> installation/setup is not as easy or foolproof as I would like (I've had 
>> students who tried and failed to get it working on their Windows laptops 
>> for an entire semester, messing with Java versions etc.), Gorilla REPL 
>> is not very actively maintained, 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure

Thanks Didier -- I have checked that out and it's cool! 

But what I'm looking for has to be able to handle ordinary projects, with 
files and dependencies, etc.

 -Lee

On Monday, August 27, 2018 at 2:44:36 PM UTC-4, Didier wrote:
>
> Have you tried maria.cloud? Its only ClojureScript, but in the Jupiter 
> style seems to meet your needs.
>
> Though you can't add dependencies to it as far as I know.
>

-- 
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/d/optout.


Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure
Interesting. 

I've now installed clojure-indent and it looks like it improves indentation 
when you type a newline, but doesn't provide a way to re-indent the current 
line or selection, which is the key feature. Maybe it's there but I don't 
see it?

I guess one could delete and then re-enter each newline and it'll end up 
re-indented, but that's not usable.

Thanks,

 -Lee


On Monday, August 27, 2018 at 2:27:10 PM UTC-4, Nando Breiter wrote:
>
> I haven't tried it, but 
>
> https://atom.io/packages/clojure-indent 
> 
>   
> ?
>
>
>
> Aria Media Sagl
> +41 (0)76 303 4477 cell
> skype: ariamedia
>
> On Mon, Aug 27, 2018 at 5:30 PM, 'Lee' via Clojure <
> clo...@googlegroups.com > wrote:
>
>>
>> Probably true that my requirements are a bigger challenge for 
>> multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable 
>> job of it back when that was an active project, but it was a bit rough too, 
>> since there was a lot of incidental and distracting complexity in dealing 
>> with Eclipse in general.
>>
>> I did see the "off" setting for parinfer/paredit in Cursive, but it's not 
>> really "off" in the sense of behaving like a normal text editor, and I 
>> don't see re-indentation anywhere. FWIW since this is for teaching I'm not 
>> really interested in customization, just reasonable behavior out of the box.
>>
>>
>> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:
>>>
>>> Yeah, I actually just create projects with lein. If you right click on a 
>>> project.clj you can just fire up a repl via lein and it works really well. 
>>> There's 3 choices for parenthesis, there's again a little button on the 
>>> bottom right to switch between parinfer/paredit and off. You can customize 
>>> all of the code reformatting and you can even alias things like defnp and 
>>> other macros to evaluate correctly. 
>>>
>>> That said, a tool that supports dozens of languages isn't going to do 
>>> any of them particularly easily :)
>>>
>>>
>>>
>>> On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure <
>>> clo...@googlegroups.com> wrote:
>>>
 Thanks Rick. 

 Just tried Cursive again but it still seems to fail pretty badly on 
 newbie setup and usability, which is what has hung me up in the past. 

 tldr: A half hour or so after a fresh install and going through the 
 Getting Started instructions I still don't have a REPL (confused about Run 
 Configurations and what I'm seeing doesn't match the website pics), and 
 although I can edit code in an existing project with drag and drop (can't 
 yet create a project with a core.clj), even the "Structural Off" editing 
 mode behaves oddly and doesn't appear to support structure-aware 
 re-indentation (again, unless I'm missing it). And the indentation that it 
 prefers after a newline appears to be non-standard (e.g. after "(defn 
 foo").

 I follow the Cursive mailing list and I know that a lot of people find 
 it to be a wonderful tool, but I don't think it meets my requirements.

  -Lee


 On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>
> I find intellij + cursive to be pretty darn easy to use, and the repl 
> has an option to turn off parinfer. That said, I'm not a beginner. The 
> only 
> drawback that I can think of other than price is that the clojure 
> functionality is mostly put under a single menu and it's sometimes 
> awkward 
> to navigate to subcommands.
>
>
>
> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller  
> wrote:
>
>> I think Atom and VSCode are probably the two additional ones you 
>> might want to look into?
>>
>> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>>>
>>> This is my roughly-annual check-in to see if there are new good 
>>> editing/execution options for me to use in my Clojure teaching and 
>>> coding.
>>>
>>> My requirements are:
>>>
>>> - Simple installation/setup, even for new programmers, on 
>>> Mac/Win/Linux
>>>
>>> - Usable by new programmers without significant training or learning 
>>> curve
>>>
>>> - Syntax-aware re-indentation
>>>
>>> - Visual indication of matching brackets (e.g. matching bracket 
>>> highlighted, or rainbow brackets, etc.)
>>>
>>> - No required use of paredit or parinfer
>>>
>>> Bells and whistles that would help but aren't as critical as the 
>>> requirements listed above:
>>>
>>> - Access to argument lists, documentation, and symbol completion 
>>> while typing
>>>
>>> - Integrated REPL, although a command-line REPL paired with an 
>>> editor that met the requirements above would work
>>>
>>> I would be interested in solutions that work for Clojure and 
>>> 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread Didier
Have you tried maria.cloud? Its only ClojureScript, but in the Jupiter style 
seems to meet your needs.

Though you can't add dependencies to it as far as I know.

-- 
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/d/optout.


Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure

Maybe a good new approach would be to combine working with CLI and some 
minimal or existing editor that just supports bracket-matching and 
re-indentation?

I'm led to this from listening to David Nolen's "Embracing Simpler Tools" 
(https://www.youtube.com/watch?v=F0Lv53lop2g), although I'm taking a leap 
because the video doesn't show David's slides or screen, so I'm guessing 
about a lot of what he was showing. 

The workflow could be similar to what I use and teach with now (leinengen 
command line + Gorilla REPL) but each piece might be simpler to set up and 
use. 

I guess this rules out bells and whistles like arg/doc display and 
auto-completion. But if the rest of the story is really good then it'd be 
worth it.

Does this make sense to people who know more about CLI?

And does anyone have suggestions for editors that would work well for this? 
It could be something minimal, maybe running in a browser window (like 
gorilla REPL and other systems do, but simpler to set up). Or maybe 
something like TextMate but with Clojure re-indentation, which it doesn't 
look like it currently has?

Thanks,

 -Lee



On Monday, August 27, 2018 at 9:45:34 AM UTC-4, Lee wrote:
>
> This is my roughly-annual check-in to see if there are new good 
> editing/execution options for me to use in my Clojure teaching and coding.
>
> My requirements are:
>
> - Simple installation/setup, even for new programmers, on Mac/Win/Linux
>
> - Usable by new programmers without significant training or learning curve
>
> - Syntax-aware re-indentation
>
> - Visual indication of matching brackets (e.g. matching bracket 
> highlighted, or rainbow brackets, etc.)
>
> - No required use of paredit or parinfer
>
> Bells and whistles that would help but aren't as critical as the 
> requirements listed above:
>
> - Access to argument lists, documentation, and symbol completion while 
> typing
>
> - Integrated REPL, although a command-line REPL paired with an editor that 
> met the requirements above would work
>
> I would be interested in solutions that work for Clojure and 
> Clojurescript, or just Clojure, or just Clojurescript.
>
> Recent developments of which I'm aware but fall short of my requirements:
>
> - Nightcode and Lightmod, which would be fabulous if not for the required 
> use of parinfer
>
> - Jupyter-based approaches, which also seem great except I see none with 
> syntax-aware re-indentation for Clojure
>
> FYI what I'm currently using is a combination of Gorilla REPL and 
> leiningen at the command line. This is quite nice although 
> installation/setup is not as easy or foolproof as I would like (I've had 
> students who tried and failed to get it working on their Windows laptops 
> for an entire semester, messing with Java versions etc.), Gorilla REPL is 
> not very actively maintained, and the requirement to do some things at the 
> command line isn't ideal.
>
> Options I've used in the past, which more-or-less met my requirements but 
> are no longer viable, include Clooj, Nightcode (old versions, before 
> parinfer), and Counterclockwise.
>
> I also try to keep an eye on "high-end" IDEs like Emacs and Cursive, but 
> so far haven't found any that really meet my requirements for simple 
> installation/setup and usability for beginners.
>
> Any pointers would be very much appreciated!
>
> Thanks,
>
>  -Lee
>
> --
> Lee Spector, Professor of Computer Science
> Director, Institute for Computational Intelligence
> Hampshire College, Amherst, Massachusetts, 01002, USA
> lspec...@hampshire.edu, http://hampshire.edu/lspector/, 413-559-5352
>
>

-- 
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/d/optout.


Re: Why are mutable fields on deftype not public?

2018-08-27 Thread Didier
I see, actually that makes a lot of sense. I always kind of disagreed with the 
encapsulation is folly mentra. But if you add to it, of immutable data, it 
makes more sense.

A few more related questions.

1) I gathered the fields are made package restricted. Is that correct?

2) It seems methods defined inline on deftype are different then the ones 
defined with extend. Is there a performance implication here? It appears the 
inline ones would be compiled to methods on the class. So are the extend one 
compiled as seperate classes, and then dispatched too in a more dynamic nature?

-- 
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/d/optout.


Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread Nando Breiter
I haven't tried it, but

https://atom.io/packages/clojure-indent  ?



Aria Media Sagl
+41 (0)76 303 4477 cell
skype: ariamedia

On Mon, Aug 27, 2018 at 5:30 PM, 'Lee' via Clojure  wrote:

>
> Probably true that my requirements are a bigger challenge for
> multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable
> job of it back when that was an active project, but it was a bit rough too,
> since there was a lot of incidental and distracting complexity in dealing
> with Eclipse in general.
>
> I did see the "off" setting for parinfer/paredit in Cursive, but it's not
> really "off" in the sense of behaving like a normal text editor, and I
> don't see re-indentation anywhere. FWIW since this is for teaching I'm not
> really interested in customization, just reasonable behavior out of the box.
>
>
> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:
>>
>> Yeah, I actually just create projects with lein. If you right click on a
>> project.clj you can just fire up a repl via lein and it works really well.
>> There's 3 choices for parenthesis, there's again a little button on the
>> bottom right to switch between parinfer/paredit and off. You can customize
>> all of the code reformatting and you can even alias things like defnp and
>> other macros to evaluate correctly.
>>
>> That said, a tool that supports dozens of languages isn't going to do any
>> of them particularly easily :)
>>
>>
>>
>> On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure <
>> clo...@googlegroups.com> wrote:
>>
>>> Thanks Rick.
>>>
>>> Just tried Cursive again but it still seems to fail pretty badly on
>>> newbie setup and usability, which is what has hung me up in the past.
>>>
>>> tldr: A half hour or so after a fresh install and going through the
>>> Getting Started instructions I still don't have a REPL (confused about Run
>>> Configurations and what I'm seeing doesn't match the website pics), and
>>> although I can edit code in an existing project with drag and drop (can't
>>> yet create a project with a core.clj), even the "Structural Off" editing
>>> mode behaves oddly and doesn't appear to support structure-aware
>>> re-indentation (again, unless I'm missing it). And the indentation that it
>>> prefers after a newline appears to be non-standard (e.g. after "(defn foo").
>>>
>>> I follow the Cursive mailing list and I know that a lot of people find
>>> it to be a wonderful tool, but I don't think it meets my requirements.
>>>
>>>  -Lee
>>>
>>>
>>> On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:

 I find intellij + cursive to be pretty darn easy to use, and the repl
 has an option to turn off parinfer. That said, I'm not a beginner. The only
 drawback that I can think of other than price is that the clojure
 functionality is mostly put under a single menu and it's sometimes awkward
 to navigate to subcommands.



 On Mon, Aug 27, 2018 at 9:48 AM Alex Miller 
 wrote:

> I think Atom and VSCode are probably the two additional ones you might
> want to look into?
>
> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>>
>> This is my roughly-annual check-in to see if there are new good
>> editing/execution options for me to use in my Clojure teaching and 
>> coding.
>>
>> My requirements are:
>>
>> - Simple installation/setup, even for new programmers, on
>> Mac/Win/Linux
>>
>> - Usable by new programmers without significant training or learning
>> curve
>>
>> - Syntax-aware re-indentation
>>
>> - Visual indication of matching brackets (e.g. matching bracket
>> highlighted, or rainbow brackets, etc.)
>>
>> - No required use of paredit or parinfer
>>
>> Bells and whistles that would help but aren't as critical as the
>> requirements listed above:
>>
>> - Access to argument lists, documentation, and symbol completion
>> while typing
>>
>> - Integrated REPL, although a command-line REPL paired with an editor
>> that met the requirements above would work
>>
>> I would be interested in solutions that work for Clojure and
>> Clojurescript, or just Clojure, or just Clojurescript.
>>
>> Recent developments of which I'm aware but fall short of my
>> requirements:
>>
>> - Nightcode and Lightmod, which would be fabulous if not for the
>> required use of parinfer
>>
>> - Jupyter-based approaches, which also seem great except I see none
>> with syntax-aware re-indentation for Clojure
>>
>> FYI what I'm currently using is a combination of Gorilla REPL and
>> leiningen at the command line. This is quite nice although
>> installation/setup is not as easy or foolproof as I would like (I've had
>> students who tried and failed to get it working on their Windows laptops
>> for an entire semester, messing with Java versions etc.), Gorilla REPL is
>> 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure

Probably true that my requirements are a bigger challenge for 
multi-language IDEs. I thought Eclipse/Counterclockwise did a reasonable 
job of it back when that was an active project, but it was a bit rough too, 
since there was a lot of incidental and distracting complexity in dealing 
with Eclipse in general.

I did see the "off" setting for parinfer/paredit in Cursive, but it's not 
really "off" in the sense of behaving like a normal text editor, and I 
don't see re-indentation anywhere. FWIW since this is for teaching I'm not 
really interested in customization, just reasonable behavior out of the box.


On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote:
>
> Yeah, I actually just create projects with lein. If you right click on a 
> project.clj you can just fire up a repl via lein and it works really well. 
> There's 3 choices for parenthesis, there's again a little button on the 
> bottom right to switch between parinfer/paredit and off. You can customize 
> all of the code reformatting and you can even alias things like defnp and 
> other macros to evaluate correctly. 
>
> That said, a tool that supports dozens of languages isn't going to do any 
> of them particularly easily :)
>
>
>
> On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure <
> clo...@googlegroups.com > wrote:
>
>> Thanks Rick. 
>>
>> Just tried Cursive again but it still seems to fail pretty badly on 
>> newbie setup and usability, which is what has hung me up in the past. 
>>
>> tldr: A half hour or so after a fresh install and going through the 
>> Getting Started instructions I still don't have a REPL (confused about Run 
>> Configurations and what I'm seeing doesn't match the website pics), and 
>> although I can edit code in an existing project with drag and drop (can't 
>> yet create a project with a core.clj), even the "Structural Off" editing 
>> mode behaves oddly and doesn't appear to support structure-aware 
>> re-indentation (again, unless I'm missing it). And the indentation that it 
>> prefers after a newline appears to be non-standard (e.g. after "(defn foo").
>>
>> I follow the Cursive mailing list and I know that a lot of people find it 
>> to be a wonderful tool, but I don't think it meets my requirements.
>>
>>  -Lee
>>
>>
>> On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>>>
>>> I find intellij + cursive to be pretty darn easy to use, and the repl 
>>> has an option to turn off parinfer. That said, I'm not a beginner. The only 
>>> drawback that I can think of other than price is that the clojure 
>>> functionality is mostly put under a single menu and it's sometimes awkward 
>>> to navigate to subcommands.
>>>
>>>
>>>
>>> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller  
>>> wrote:
>>>
 I think Atom and VSCode are probably the two additional ones you might 
 want to look into?

 On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>
> This is my roughly-annual check-in to see if there are new good 
> editing/execution options for me to use in my Clojure teaching and coding.
>
> My requirements are:
>
> - Simple installation/setup, even for new programmers, on Mac/Win/Linux
>
> - Usable by new programmers without significant training or learning 
> curve
>
> - Syntax-aware re-indentation
>
> - Visual indication of matching brackets (e.g. matching bracket 
> highlighted, or rainbow brackets, etc.)
>
> - No required use of paredit or parinfer
>
> Bells and whistles that would help but aren't as critical as the 
> requirements listed above:
>
> - Access to argument lists, documentation, and symbol completion while 
> typing
>
> - Integrated REPL, although a command-line REPL paired with an editor 
> that met the requirements above would work
>
> I would be interested in solutions that work for Clojure and 
> Clojurescript, or just Clojure, or just Clojurescript.
>
> Recent developments of which I'm aware but fall short of my 
> requirements:
>
> - Nightcode and Lightmod, which would be fabulous if not for the 
> required use of parinfer
>
> - Jupyter-based approaches, which also seem great except I see none 
> with syntax-aware re-indentation for Clojure
>
> FYI what I'm currently using is a combination of Gorilla REPL and 
> leiningen at the command line. This is quite nice although 
> installation/setup is not as easy or foolproof as I would like (I've had 
> students who tried and failed to get it working on their Windows laptops 
> for an entire semester, messing with Java versions etc.), Gorilla REPL is 
> not very actively maintained, and the requirement to do some things at 
> the 
> command line isn't ideal.
>
> Options I've used in the past, which more-or-less met my requirements 
> but are no longer viable, include Clooj, Nightcode (old versions, before 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread Rick Mangi
Yeah, I actually just create projects with lein. If you right click on a
project.clj you can just fire up a repl via lein and it works really well.
There's 3 choices for parenthesis, there's again a little button on the
bottom right to switch between parinfer/paredit and off. You can customize
all of the code reformatting and you can even alias things like defnp and
other macros to evaluate correctly.

That said, a tool that supports dozens of languages isn't going to do any
of them particularly easily :)



On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure 
wrote:

> Thanks Rick.
>
> Just tried Cursive again but it still seems to fail pretty badly on newbie
> setup and usability, which is what has hung me up in the past.
>
> tldr: A half hour or so after a fresh install and going through the
> Getting Started instructions I still don't have a REPL (confused about Run
> Configurations and what I'm seeing doesn't match the website pics), and
> although I can edit code in an existing project with drag and drop (can't
> yet create a project with a core.clj), even the "Structural Off" editing
> mode behaves oddly and doesn't appear to support structure-aware
> re-indentation (again, unless I'm missing it). And the indentation that it
> prefers after a newline appears to be non-standard (e.g. after "(defn foo").
>
> I follow the Cursive mailing list and I know that a lot of people find it
> to be a wonderful tool, but I don't think it meets my requirements.
>
>  -Lee
>
>
> On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>>
>> I find intellij + cursive to be pretty darn easy to use, and the repl has
>> an option to turn off parinfer. That said, I'm not a beginner. The only
>> drawback that I can think of other than price is that the clojure
>> functionality is mostly put under a single menu and it's sometimes awkward
>> to navigate to subcommands.
>>
>>
>>
>> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller  wrote:
>>
>>> I think Atom and VSCode are probably the two additional ones you might
>>> want to look into?
>>>
>>> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:

 This is my roughly-annual check-in to see if there are new good
 editing/execution options for me to use in my Clojure teaching and coding.

 My requirements are:

 - Simple installation/setup, even for new programmers, on Mac/Win/Linux

 - Usable by new programmers without significant training or learning
 curve

 - Syntax-aware re-indentation

 - Visual indication of matching brackets (e.g. matching bracket
 highlighted, or rainbow brackets, etc.)

 - No required use of paredit or parinfer

 Bells and whistles that would help but aren't as critical as the
 requirements listed above:

 - Access to argument lists, documentation, and symbol completion while
 typing

 - Integrated REPL, although a command-line REPL paired with an editor
 that met the requirements above would work

 I would be interested in solutions that work for Clojure and
 Clojurescript, or just Clojure, or just Clojurescript.

 Recent developments of which I'm aware but fall short of my
 requirements:

 - Nightcode and Lightmod, which would be fabulous if not for the
 required use of parinfer

 - Jupyter-based approaches, which also seem great except I see none
 with syntax-aware re-indentation for Clojure

 FYI what I'm currently using is a combination of Gorilla REPL and
 leiningen at the command line. This is quite nice although
 installation/setup is not as easy or foolproof as I would like (I've had
 students who tried and failed to get it working on their Windows laptops
 for an entire semester, messing with Java versions etc.), Gorilla REPL is
 not very actively maintained, and the requirement to do some things at the
 command line isn't ideal.

 Options I've used in the past, which more-or-less met my requirements
 but are no longer viable, include Clooj, Nightcode (old versions, before
 parinfer), and Counterclockwise.

 I also try to keep an eye on "high-end" IDEs like Emacs and Cursive,
 but so far haven't found any that really meet my requirements for simple
 installation/setup and usability for beginners.

 Any pointers would be very much appreciated!

 Thanks,

  -Lee

 --
 Lee Spector, Professor of Computer Science
 Director, Institute for Computational Intelligence
 Hampshire College, Amherst, Massachusetts, 01002, USA
 lspe...@hampshire.edu, http://hampshire.edu/lspector/, 413-559-5352

 --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe 

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure
Thanks Rick. 

Just tried Cursive again but it still seems to fail pretty badly on newbie 
setup and usability, which is what has hung me up in the past. 

tldr: A half hour or so after a fresh install and going through the Getting 
Started instructions I still don't have a REPL (confused about Run 
Configurations and what I'm seeing doesn't match the website pics), and 
although I can edit code in an existing project with drag and drop (can't 
yet create a project with a core.clj), even the "Structural Off" editing 
mode behaves oddly and doesn't appear to support structure-aware 
re-indentation (again, unless I'm missing it). And the indentation that it 
prefers after a newline appears to be non-standard (e.g. after "(defn foo").

I follow the Cursive mailing list and I know that a lot of people find it 
to be a wonderful tool, but I don't think it meets my requirements.

 -Lee


On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote:
>
> I find intellij + cursive to be pretty darn easy to use, and the repl has 
> an option to turn off parinfer. That said, I'm not a beginner. The only 
> drawback that I can think of other than price is that the clojure 
> functionality is mostly put under a single menu and it's sometimes awkward 
> to navigate to subcommands.
>
>
>
> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller  > wrote:
>
>> I think Atom and VSCode are probably the two additional ones you might 
>> want to look into?
>>
>> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>>>
>>> This is my roughly-annual check-in to see if there are new good 
>>> editing/execution options for me to use in my Clojure teaching and coding.
>>>
>>> My requirements are:
>>>
>>> - Simple installation/setup, even for new programmers, on Mac/Win/Linux
>>>
>>> - Usable by new programmers without significant training or learning 
>>> curve
>>>
>>> - Syntax-aware re-indentation
>>>
>>> - Visual indication of matching brackets (e.g. matching bracket 
>>> highlighted, or rainbow brackets, etc.)
>>>
>>> - No required use of paredit or parinfer
>>>
>>> Bells and whistles that would help but aren't as critical as the 
>>> requirements listed above:
>>>
>>> - Access to argument lists, documentation, and symbol completion while 
>>> typing
>>>
>>> - Integrated REPL, although a command-line REPL paired with an editor 
>>> that met the requirements above would work
>>>
>>> I would be interested in solutions that work for Clojure and 
>>> Clojurescript, or just Clojure, or just Clojurescript.
>>>
>>> Recent developments of which I'm aware but fall short of my requirements:
>>>
>>> - Nightcode and Lightmod, which would be fabulous if not for the 
>>> required use of parinfer
>>>
>>> - Jupyter-based approaches, which also seem great except I see none with 
>>> syntax-aware re-indentation for Clojure
>>>
>>> FYI what I'm currently using is a combination of Gorilla REPL and 
>>> leiningen at the command line. This is quite nice although 
>>> installation/setup is not as easy or foolproof as I would like (I've had 
>>> students who tried and failed to get it working on their Windows laptops 
>>> for an entire semester, messing with Java versions etc.), Gorilla REPL is 
>>> not very actively maintained, and the requirement to do some things at the 
>>> command line isn't ideal.
>>>
>>> Options I've used in the past, which more-or-less met my requirements 
>>> but are no longer viable, include Clooj, Nightcode (old versions, before 
>>> parinfer), and Counterclockwise.
>>>
>>> I also try to keep an eye on "high-end" IDEs like Emacs and Cursive, but 
>>> so far haven't found any that really meet my requirements for simple 
>>> installation/setup and usability for beginners.
>>>
>>> Any pointers would be very much appreciated!
>>>
>>> Thanks,
>>>
>>>  -Lee
>>>
>>> --
>>> Lee Spector, Professor of Computer Science
>>> Director, Institute for Computational Intelligence
>>> Hampshire College, Amherst, Massachusetts, 01002, USA
>>> lspe...@hampshire.edu , http://hampshire.edu/lspector/, 
>>> 413-559-5352
>>>
>>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

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

Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread Rick Mangi
I find intellij + cursive to be pretty darn easy to use, and the repl has
an option to turn off parinfer. That said, I'm not a beginner. The only
drawback that I can think of other than price is that the clojure
functionality is mostly put under a single menu and it's sometimes awkward
to navigate to subcommands.



On Mon, Aug 27, 2018 at 9:48 AM Alex Miller  wrote:

> I think Atom and VSCode are probably the two additional ones you might
> want to look into?
>
> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>>
>> This is my roughly-annual check-in to see if there are new good
>> editing/execution options for me to use in my Clojure teaching and coding.
>>
>> My requirements are:
>>
>> - Simple installation/setup, even for new programmers, on Mac/Win/Linux
>>
>> - Usable by new programmers without significant training or learning curve
>>
>> - Syntax-aware re-indentation
>>
>> - Visual indication of matching brackets (e.g. matching bracket
>> highlighted, or rainbow brackets, etc.)
>>
>> - No required use of paredit or parinfer
>>
>> Bells and whistles that would help but aren't as critical as the
>> requirements listed above:
>>
>> - Access to argument lists, documentation, and symbol completion while
>> typing
>>
>> - Integrated REPL, although a command-line REPL paired with an editor
>> that met the requirements above would work
>>
>> I would be interested in solutions that work for Clojure and
>> Clojurescript, or just Clojure, or just Clojurescript.
>>
>> Recent developments of which I'm aware but fall short of my requirements:
>>
>> - Nightcode and Lightmod, which would be fabulous if not for the required
>> use of parinfer
>>
>> - Jupyter-based approaches, which also seem great except I see none with
>> syntax-aware re-indentation for Clojure
>>
>> FYI what I'm currently using is a combination of Gorilla REPL and
>> leiningen at the command line. This is quite nice although
>> installation/setup is not as easy or foolproof as I would like (I've had
>> students who tried and failed to get it working on their Windows laptops
>> for an entire semester, messing with Java versions etc.), Gorilla REPL is
>> not very actively maintained, and the requirement to do some things at the
>> command line isn't ideal.
>>
>> Options I've used in the past, which more-or-less met my requirements but
>> are no longer viable, include Clooj, Nightcode (old versions, before
>> parinfer), and Counterclockwise.
>>
>> I also try to keep an eye on "high-end" IDEs like Emacs and Cursive, but
>> so far haven't found any that really meet my requirements for simple
>> installation/setup and usability for beginners.
>>
>> Any pointers would be very much appreciated!
>>
>> Thanks,
>>
>>  -Lee
>>
>> --
>> Lee Spector, Professor of Computer Science
>> Director, Institute for Computational Intelligence
>> Hampshire College, Amherst, Massachusetts, 01002, USA
>> lspec...@hampshire.edu, http://hampshire.edu/lspector/, 413-559-5352
>>
>> --
> 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/d/optout.
>

-- 
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/d/optout.


Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure
Thanks Alex. 

I've tried Atom periodically and just updated/reinitialized to try again. 
Unfortunately, I don't see syntax-aware re-indentation, which may be what 
has always prevented me from using this in the past. Am I just missing it?

VSCode is a new one for me, and I've just tried it. Not great on "Simple 
installation/setup, even for new programmers," or "Usable by new 
programmers without significant training or learning curve," involving 
editing `.lein/profiles.clj` and command key chords etc., and although I 
think I've got it running (connected to server), I still haven't really 
figured out how to use it. The kicker, though, is that it also doesn't 
appear to have syntax-aware re-indentation. Am I missing it here too?

Thanks,

 -Lee

On Monday, August 27, 2018 at 9:48:35 AM UTC-4, Alex Miller wrote:
>
> I think Atom and VSCode are probably the two additional ones you might 
> want to look into?
>
> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>>
>> This is my roughly-annual check-in to see if there are new good 
>> editing/execution options for me to use in my Clojure teaching and coding.
>>
>> My requirements are:
>>
>> - Simple installation/setup, even for new programmers, on Mac/Win/Linux
>>
>> - Usable by new programmers without significant training or learning curve
>>
>> - Syntax-aware re-indentation
>>
>> - Visual indication of matching brackets (e.g. matching bracket 
>> highlighted, or rainbow brackets, etc.)
>>
>> - No required use of paredit or parinfer
>>
>> Bells and whistles that would help but aren't as critical as the 
>> requirements listed above:
>>
>> - Access to argument lists, documentation, and symbol completion while 
>> typing
>>
>> - Integrated REPL, although a command-line REPL paired with an editor 
>> that met the requirements above would work
>>
>> I would be interested in solutions that work for Clojure and 
>> Clojurescript, or just Clojure, or just Clojurescript.
>>
>> Recent developments of which I'm aware but fall short of my requirements:
>>
>> - Nightcode and Lightmod, which would be fabulous if not for the required 
>> use of parinfer
>>
>> - Jupyter-based approaches, which also seem great except I see none with 
>> syntax-aware re-indentation for Clojure
>>
>> FYI what I'm currently using is a combination of Gorilla REPL and 
>> leiningen at the command line. This is quite nice although 
>> installation/setup is not as easy or foolproof as I would like (I've had 
>> students who tried and failed to get it working on their Windows laptops 
>> for an entire semester, messing with Java versions etc.), Gorilla REPL is 
>> not very actively maintained, and the requirement to do some things at the 
>> command line isn't ideal.
>>
>> Options I've used in the past, which more-or-less met my requirements but 
>> are no longer viable, include Clooj, Nightcode (old versions, before 
>> parinfer), and Counterclockwise.
>>
>> I also try to keep an eye on "high-end" IDEs like Emacs and Cursive, but 
>> so far haven't found any that really meet my requirements for simple 
>> installation/setup and usability for beginners.
>>
>> Any pointers would be very much appreciated!
>>
>> Thanks,
>>
>>  -Lee
>>
>> --
>> Lee Spector, Professor of Computer Science
>> Director, Institute for Computational Intelligence
>> Hampshire College, Amherst, Massachusetts, 01002, USA
>> lspe...@hampshire.edu , http://hampshire.edu/lspector/, 
>> 413-559-5352
>>
>>

-- 
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/d/optout.


Re: New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread Alex Miller
I think Atom and VSCode are probably the two additional ones you might want 
to look into?

On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote:
>
> This is my roughly-annual check-in to see if there are new good 
> editing/execution options for me to use in my Clojure teaching and coding.
>
> My requirements are:
>
> - Simple installation/setup, even for new programmers, on Mac/Win/Linux
>
> - Usable by new programmers without significant training or learning curve
>
> - Syntax-aware re-indentation
>
> - Visual indication of matching brackets (e.g. matching bracket 
> highlighted, or rainbow brackets, etc.)
>
> - No required use of paredit or parinfer
>
> Bells and whistles that would help but aren't as critical as the 
> requirements listed above:
>
> - Access to argument lists, documentation, and symbol completion while 
> typing
>
> - Integrated REPL, although a command-line REPL paired with an editor that 
> met the requirements above would work
>
> I would be interested in solutions that work for Clojure and 
> Clojurescript, or just Clojure, or just Clojurescript.
>
> Recent developments of which I'm aware but fall short of my requirements:
>
> - Nightcode and Lightmod, which would be fabulous if not for the required 
> use of parinfer
>
> - Jupyter-based approaches, which also seem great except I see none with 
> syntax-aware re-indentation for Clojure
>
> FYI what I'm currently using is a combination of Gorilla REPL and 
> leiningen at the command line. This is quite nice although 
> installation/setup is not as easy or foolproof as I would like (I've had 
> students who tried and failed to get it working on their Windows laptops 
> for an entire semester, messing with Java versions etc.), Gorilla REPL is 
> not very actively maintained, and the requirement to do some things at the 
> command line isn't ideal.
>
> Options I've used in the past, which more-or-less met my requirements but 
> are no longer viable, include Clooj, Nightcode (old versions, before 
> parinfer), and Counterclockwise.
>
> I also try to keep an eye on "high-end" IDEs like Emacs and Cursive, but 
> so far haven't found any that really meet my requirements for simple 
> installation/setup and usability for beginners.
>
> Any pointers would be very much appreciated!
>
> Thanks,
>
>  -Lee
>
> --
> Lee Spector, Professor of Computer Science
> Director, Institute for Computational Intelligence
> Hampshire College, Amherst, Massachusetts, 01002, USA
> lspec...@hampshire.edu, http://hampshire.edu/lspector/, 413-559-5352
>
>

-- 
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/d/optout.


New developments in beginner-friendly editing/repl environments?

2018-08-27 Thread 'Lee' via Clojure
This is my roughly-annual check-in to see if there are new good 
editing/execution options for me to use in my Clojure teaching and coding.

My requirements are:

- Simple installation/setup, even for new programmers, on Mac/Win/Linux

- Usable by new programmers without significant training or learning curve

- Syntax-aware re-indentation

- Visual indication of matching brackets (e.g. matching bracket 
highlighted, or rainbow brackets, etc.)

- No required use of paredit or parinfer

Bells and whistles that would help but aren't as critical as the 
requirements listed above:

- Access to argument lists, documentation, and symbol completion while 
typing

- Integrated REPL, although a command-line REPL paired with an editor that 
met the requirements above would work

I would be interested in solutions that work for Clojure and Clojurescript, 
or just Clojure, or just Clojurescript.

Recent developments of which I'm aware but fall short of my requirements:

- Nightcode and Lightmod, which would be fabulous if not for the required 
use of parinfer

- Jupyter-based approaches, which also seem great except I see none with 
syntax-aware re-indentation for Clojure

FYI what I'm currently using is a combination of Gorilla REPL and leiningen 
at the command line. This is quite nice although installation/setup is not 
as easy or foolproof as I would like (I've had students who tried and 
failed to get it working on their Windows laptops for an entire semester, 
messing with Java versions etc.), Gorilla REPL is not very actively 
maintained, and the requirement to do some things at the command line isn't 
ideal.

Options I've used in the past, which more-or-less met my requirements but 
are no longer viable, include Clooj, Nightcode (old versions, before 
parinfer), and Counterclockwise.

I also try to keep an eye on "high-end" IDEs like Emacs and Cursive, but so 
far haven't found any that really meet my requirements for simple 
installation/setup and usability for beginners.

Any pointers would be very much appreciated!

Thanks,

 -Lee

--
Lee Spector, Professor of Computer Science
Director, Institute for Computational Intelligence
Hampshire College, Amherst, Massachusetts, 01002, USA
lspec...@hampshire.edu, http://hampshire.edu/lspector/, 413-559-5352

-- 
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/d/optout.


Re: Why are mutable fields on deftype not public?

2018-08-27 Thread Alex Miller
The points about encapsulation are pointed at immutable fields (which are 
public) and don't hold for mutable fields, which are provided as an 
advanced mechanism for building higher-level constructs.

The deftype docstring says:

  Fields can be qualified
  with the metadata :volatile-mutable true or :unsynchronized-mutable
  true, at which point (set! afield aval) will be supported in method
  bodies. Note well that mutable fields are extremely difficult to use
  correctly, and are present only to facilitate the building of higher
  level constructs, such as Clojure's reference types, in Clojure
  itself. They are for experts only - if the semantics and
  implications of :volatile-mutable or :unsynchronized-mutable are not
  immediately apparent to you, you should not be using them.

As the datatypes reference page also says, "Concrete derivation is bad" - 
this is not something we have any desire to enable or support.

Some other options that usually are better:
- Define interfaces and have the deftype implement them for access
- Use composition instead of inheritance
- Use fields holding Clojure stateful constructs (like atoms)


On Monday, August 27, 2018 at 1:08:21 AM UTC-5, Didier wrote:
>
> It seems to contradict the documentation found here datatypes 
> :
>
> > Encapsulation of information is folly. Fields are public, use 
> protocols/interfaces to avoid dependencies
>
> It is also not documented in the doc-string, and makes it impossible to 
> further extend the type. No more ad-hoc polymorphism basically.
>
> So you can't do this:
>
> (deftype MutableBox [^{:volatile-mutable true} contents])
>
> (defprotocol Container
>   (inventory [this]))
>
> (extend-type MutableBox
>   Container
>   (inventory [this] (.-contents this)))
>

-- 
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/d/optout.


Why are mutable fields on deftype not public?

2018-08-27 Thread Didier
It seems to contradict the documentation found here datatypes 
:

> Encapsulation of information is folly. Fields are public, use 
protocols/interfaces to avoid dependencies

It is also not documented in the doc-string, and makes it impossible to 
further extend the type. No more ad-hoc polymorphism basically.

So you can't do this:

(deftype MutableBox [^{:volatile-mutable true} contents])

(defprotocol Container
  (inventory [this]))

(extend-type MutableBox
  Container
  (inventory [this] (.-contents this)))

-- 
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/d/optout.