From: mikel evins <mevins@me.com>
To: Per Bothner <per@bothner.com>
Cc: mikel evins <mevins@me.com>,
"Rafik Naccache [TNTeam]" <rafik@tnteam.rocks>,
kawa@sourceware.org
Subject: Re: What is the Development Environment of Choice for Kawa?
Date: Thu, 18 Feb 2016 19:39:00 -0000 [thread overview]
Message-ID: <9DF680E5-7E2C-4D5E-B4B4-DD157A8E1706@me.com> (raw)
In-Reply-To: <56C61423.4070801@bothner.com>
> On Feb 18, 2016, at 12:57 PM, Per Bothner <per@bothner.com> wrote:
>
>
>
> On 02/18/2016 08:18 AM, Rafik Naccache [TNTeam] wrote:
>> Hi,
>>
>> Coming from Clojure Land, I am experimenting with various scheme implementations, guile, chicken, racket,...
>>
>> As I am experimenting Kawa, I was surprised to see how this scheme can actually beat Clojure in terms of speed and elegance, and want to use it in a serious hobby project in which I have to interact with a great share of imperative Java, a setup that would make Clojure suffer...
>>
>> But then, I can't find what tool is commonly used by the community to develop Kawa: is it emacs with comint? is it slime with the little swank glue-code? maybe something else?
>
> Tooling is Kawa's weak spot - though its compile-time warnings and errors
> are better than most "dynamic languages" IMO.
>
> I'm pretty old-school, so I mostly use Emacs (mainly just editing), the REPL,
> and print statements. (Very rarely I might use jdb to track down an infinite loop.)
> OTOH I write more Java (and lately JavaScript) than I write Scheme …
I write more Scheme than Java, but my solution is the same as Per’s: Emacs and the repl. I got pretty far that way— far enough to write a 3D multiplayer network game that Per presented at the 2015 JavaOne conference—but there are disadvantages, as Per said.
I generally use Emacs with scheme mode and Kawa running in an inferior quack process in a buffer. My emacs setup includes an interactive command to run Kawa with a classpath suitable to my project. Whenever I reload definitions or anything else happens that makes me doubt the integrity of the Kawa runtime, I kill the inferior process and restart it with a few keystrokes. It takes less than a second.
Of course, it blows away the runtime state and I have to rebuild everything from scratch, but I’ve generally solved that by writing loader files that bring my runtime back up to snuff in less than a second. It’s not as good as real Lisp- or Smalltalk-style interactive development, but if you’re coming from the Clojure world then you’re probably not looking for that anyway, and are unlikely to miss it.
next prev parent reply other threads:[~2016-02-18 19:39 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-18 16:18 Rafik
2016-02-18 18:57 ` Per Bothner
2016-02-18 19:39 ` mikel evins [this message]
2016-02-18 19:59 ` Dominique Boucher
2016-02-18 18:53 F. Rafael Leon
[not found] <3go6arm3yvsi6iuungnfyd1o.1455824305674@email.android.com>
2016-02-18 21:18 ` RE : " Per Bothner
2016-02-18 21:22 ` mikel evins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9DF680E5-7E2C-4D5E-B4B4-DD157A8E1706@me.com \
--to=mevins@me.com \
--cc=kawa@sourceware.org \
--cc=per@bothner.com \
--cc=rafik@tnteam.rocks \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).