This is the mail archive of the kawa@sourceware.cygnus.com 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]

IMHOs...


I would like to share some thougths about kawa; I apologize in advance
for my poor english and hope this will not be off topic for the list.
I evalued kawa for a couple of months for my personal curiosity and
looking for applications in my ordinary job.
Here are some strongnesses and weaknesses I found; some of these depends
on the nature of Scheme language, others are more related to kawa.
I'm not a scheme programmer, I started learn only recently, so I could
have write something stupid; please let me know your ideas.

Advantages.
-Scheme is a powerful and very elegant language; kawa brings a lot of
interesting things to java like generic programmation, hygienic macros,
first class procedures, higher order functions, data structures / code
r&w and all kinds of these lispy things.
I especially like to imagine a scheme->bytecode compiler like a
programmable compiler where I can specify the compiling behaviour and
language features via macros.

-In the plethora of java-bytecode-compiling languages (JPython, Eiffel,
SoftwareAG'Bolero etc) kawa has the advantage that scheme syntax is very
simple, so I choosed to use it as a server-side scripting language for a
project I developed, because I don't want users to learn OOP before
writing their scripts.

-The optional type definitions in lambdas etc. is really useful and
helps me finding errors; I think that the possibility of defining new
opaque types that imports other native libraries is a great improvement
to bare scheme, but brings with it the need for type checking that is
usually defined via propositions.

Problems.
-Kawa is a rather big system and I can't figure how to deploy kawa
applets without having to send all the classes; i.e. I don't understand
fully the package dependencies and how to send the smallest possible jar
to the client (a sort of kawa runtime environment).
I think that --due to the dynamic nature of scheme-- is very difficoult
to understand if a class will be used from the source code; the worst
case is when I pass an arbitrary string to 'eval'.
Reading Scheme->c release notes I found some reasonable restriction that
--maybe-- could be useful for this problem.

-I need some more support for modules in order to manage the namespace;
I found some interesting approach using macros e.g in guile, but I think
that a closer java-package approach --like the choice for OO in kawa--
can be more useful.

Thank you for any answer.

Marco

-- 
	(--cafe babe--) 
Marco Vezzoli	marco.vezzoli@st.com
CR&D Intranet Developement   STMicroelectronics
tel. +39 039 603 6852 fax. +39 039 603 5055

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