From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 57706 invoked by alias); 18 Feb 2016 18:57:51 -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 57689 invoked by uid 89); 18 Feb 2016 18:57:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=weakness, ide, Coming, lately X-HELO: aibo.runbox.com Received: from aibo.runbox.com (HELO aibo.runbox.com) (91.220.196.211) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Thu, 18 Feb 2016 18:57:49 +0000 Received: from [10.9.9.210] (helo=mailfront10.runbox.com) by bars.runbox.com with esmtp (Exim 4.71) (envelope-from ) id 1aWTlo-00004z-H2; Thu, 18 Feb 2016 19:57:44 +0100 Received: from 70-36-239-75.dsl.dynamic.fusionbroadband.com ([70.36.239.75] helo=toshie.bothner.com) by mailfront10.runbox.com with esmtpsa (uid:757155 ) (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.82) id 1aWTlm-0007LG-HF; Thu, 18 Feb 2016 19:57:42 +0100 Subject: Re: What is the Development Environment of Choice for Kawa? To: Rafik Naccache [TNTeam] , kawa@sourceware.org References: <56C5EED0.8030500@tnteam.rocks> From: Per Bothner Message-ID: <56C61423.4070801@bothner.com> Date: Thu, 18 Feb 2016 18:57:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <56C5EED0.8030500@tnteam.rocks> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2016-q1/txt/msg00018.txt.bz2 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 ... A related weakness is connected to Kawa's strength: Kawa does a fair amount of compile-time optimization and inlining. This causes problems in interactive development: you load a function or module, and then edit it and reload it. Other functions that depend on the change code may no longer work. A partial work-around is to use the --no-inline command-line option. I do have plans to improve the situation, though a combination of extra indirection and automatic re-compilation of dependencies. There are various Emacs packages and/or IDE plugins that can be used. There is this plugin for Eclipse: https://github.com/schemeway/SchemeScript However, I don't think it's actively maintained, though the git repo has seen a few semi-recent updates. I haven't tried it recently - a status report would be interesting. There are also various Emacs packages that can be used, though I don't have much experience with them. I have been working recently on improving the Kawa repl, both using DomTerm and using jline2/jline3. I have some not-quite-working code - and plenty of ideas :-) -- --Per Bothner per@bothner.com http://per.bothner.com/