From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 60117 invoked by alias); 18 Feb 2016 19:39:10 -0000 Mailing-List: contact kawa-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: kawa-owner@sourceware.org Received: (qmail 60101 invoked by uid 89); 18 Feb 2016 19:39:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=HX-Proofpoint-Spam-Details:clxscore, integrity, H*F:D*me.com, multiplayer X-HELO: st11p02im-asmtp002.me.com Received: from st11p02im-asmtp002.me.com (HELO st11p02im-asmtp002.me.com) (17.172.220.114) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 18 Feb 2016 19:39:08 +0000 Received: from esthannon.attlocal.net (108-234-57-130.lightspeed.fyvlar.sbcglobal.net [108.234.57.130]) by st11p02im-asmtp002.me.com (Oracle Communications Messaging Server 7.0.5.36.0 64bit (built Sep 8 2015)) with ESMTPSA id <0O2R00ZFDD95OX50@st11p02im-asmtp002.me.com> for kawa@sourceware.org; Thu, 18 Feb 2016 19:39:06 +0000 (GMT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-02-18_08:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 clxscore=1011 suspectscore=2 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1510270003 definitions=main-1602180280 Content-type: text/plain; charset=utf-8 MIME-version: 1.0 (Mac OS X Mail 9.2 \(3112\)) Subject: Re: What is the Development Environment of Choice for Kawa? From: mikel evins In-reply-to: <56C61423.4070801@bothner.com> Date: Thu, 18 Feb 2016 19:39:00 -0000 Cc: mikel evins , "Rafik Naccache [TNTeam]" , kawa@sourceware.org Content-transfer-encoding: quoted-printable Message-id: <9DF680E5-7E2C-4D5E-B4B4-DD157A8E1706@me.com> References: <56C5EED0.8030500@tnteam.rocks> <56C61423.4070801@bothner.com> To: Per Bothner X-IsSubscribed: yes X-SW-Source: 2016-q1/txt/msg00019.txt.bz2 > On Feb 18, 2016, at 12:57 PM, Per Bothner wrote: >=20 >=20 >=20 > On 02/18/2016 08:18 AM, Rafik Naccache [TNTeam] wrote: >> Hi, >>=20 >> Coming from Clojure Land, I am experimenting with various scheme impleme= ntations, guile, chicken, racket,... >>=20 >> As I am experimenting Kawa, I was surprised to see how this scheme can a= ctually 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 i= mperative Java, a setup that would make Clojure suffer... >>=20 >> But then, I can't find what tool is commonly used by the community to de= velop Kawa: is it emacs with comint? is it slime with the little swank glue= -code? maybe something else? >=20 > Tooling is Kawa's weak spot - though its compile-time warnings and errors > are better than most "dynamic languages" IMO. >=20 > I'm pretty old-school, so I mostly use Emacs (mainly just editing), the R= EPL, > and print statements. (Very rarely I might use jdb to track down an infin= ite loop.) > OTOH I write more Java (and lately JavaScript) than I write Scheme =E2=80= =A6 I write more Scheme than Java, but my solution is the same as Per=E2=80=99s= : Emacs and the repl. I got pretty far that way=E2=80=94 far enough to writ= e a 3D multiplayer network game that Per presented at the 2015 JavaOne conf= erence=E2=80=94but there are disadvantages, as Per said. I generally use Emacs with scheme mode and Kawa running in an inferior quac= k process in a buffer. My emacs setup includes an interactive command to ru= n Kawa with a classpath suitable to my project. Whenever I reload definitio= ns or anything else happens that makes me doubt the integrity of the Kawa r= untime, I kill the inferior process and restart it with a few keystrokes. I= t takes less than a second. Of course, it blows away the runtime state and I have to rebuild everything= from scratch, but I=E2=80=99ve generally solved that by writing loader fil= es that bring my runtime back up to snuff in less than a second. It=E2=80= =99s not as good as real Lisp- or Smalltalk-style interactive development, = but if you=E2=80=99re coming from the Clojure world then you=E2=80=99re pro= bably not looking for that anyway, and are unlikely to miss it.