This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: What is the Development Environment of Choice for Kawa?


On Thu, Feb 18, 2016 at 11:18 AM, Rafik Naccache [TNTeam]
<rafik@tnteam.rocks> wrote:
> I really would love to take community's pulse on what tool is used by
> Kawa-ians

Rafik,

The correct answer to this is "whatever makes you most comfortable."

In order to vividly illuminate what this means in practice, I will
explain MY own strange workflow so that you can feel comfortable
adopting YOUR own strange workflow:

It starts with emacs.

To emacs, I add the "evil" package which provides vim bindings.
"evil" can be found in the melpa or marmalade repositories.
The standard emacs control-meta-alt-shift s-x-w-y simultaneous chords
give me horrible finger cramps, so I prefer vim. For editing code I
really like the buffer system of emacs.
So, I use emacs with vim bindings.

Theoretically, if I were a better person, I would use paredit instead of evil.

In a separate terminal, NOT in an emacs buffer, I run "rlwrap java
kawa.repl" with an appropriate CLASSPATH for my project.

In emacs, I write some code and save it in "project.scm"

In the rlwrap kawa console, I type (load "project.scm").

I then edit project.scm in emacs and then type the up arrow into the
rlwrap kawa console to repeat the load command and then I hit Enter.

I repeat this process around 1000 times a day.

When doing this for Android, the workflow is identical, except instead
of "rlwrap kawa" I run "rlwrap telnet x.x.x.x 4444" to connect to a
telnet REPL running on the Android device. Also, after each edit and
save in emacs I run "adb push project.scm /sdcard" and then in the
telnet terminal: (load "/sdcard/project.scm").

That's basically it.  I should do a YouTube.

I DON'T run kawa in an emacs buffer because often I like to (display
... ) or (write ... ) lists and look at them.

This dumps thousands of lines of stupidity that I don't want to look
at ever again after I solve the immediate problem.  I don't want
thousands of lines of REPL output saved in an emacs buffer.  As I jump
between emacs buffers, I don't want to glance at a big wasteland of
failed algorithms. It makes me feel like emacs is watching me and
laughing.

If I never made any mistakes and never was unsure about any algorithm,
then a REPL in a buffer would be totally awesome because I could
record and save all my brilliance for all eternity.
Instead, every time I put a REPL in a buffer I just feel embarrassed
when I scroll through it.

      -Rafael


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]