Home > Archive > Scheme > December 2004 > scheme IDE
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
|
|
| Kamil Ignacak 2004-11-22, 8:58 pm |
| Hello
Two months ago I thought that it's time for me to write mature and
serious application in C. My choice was yet another Scheme-aware GTK2
editor, which will be in future (hopefully) a part of Scheme IDE based
on guile.
As a complete newbie in scheme world I'm asking you for some tips and
advices or requests. What is essential in your work with Scheme code,
what features of your current editor are most useful and what features
you would like to see?
I'm focusing on guile because it is big and guile main objective is to
be embedded in C applications, but it lacks a good non-vi, non-emacs
editor.
Kamil Ignacak
| |
| Dominique Boucher 2004-11-23, 3:57 am |
| Kamil,
> Two months ago I thought that it's time for me to write mature and
> serious application in C. My choice was yet another Scheme-aware GTK2
> editor, which will be in future (hopefully) a part of Scheme IDE based
> on guile.
> As a complete newbie in scheme world I'm asking you for some tips and
> advices or requests. What is essential in your work with Scheme code,
> what features of your current editor are most useful and what features
> you would like to see?
I think you should take a look at the following book:
The Craft of Text Editing - http://www.finseth.com/craft/
This book covers the basic features of a good text editor, mainly
focusing of Emacs-like editors.
As far as Scheme coding is concerned, take a look at these
editors/IDEs to get a feel of what Scheme programmers really care
about :
XEmacs: http://www.xemacs.org and it's Scheme modes (cmuscheme)
DrScheme: http://www.plt-scheme.org
SchemeWay: http://schemeway.sourceforge.net
Cheers,
Dominique Boucher
SchemeWay Project
http://schemeway.sourceforge.net
| |
| Taylor Campbell 2004-11-23, 8:57 pm |
| Why don't you write the application itself in Scheme?
| |
| Andreas Rottmann 2004-11-23, 8:57 pm |
| campbell@bloodandcoffee.net (Taylor Campbell) writes:
> Why don't you write the application itself in Scheme?
>
Good question. FWIW, Guile has pretty good GTK2 bindings now, see
http://home.gna.org/guile-gnome </plug>
Cheers, Andy
--
Andreas Rottmann | Rotty@ICQ | 118634484@ICQ | a.rottmann@gmx.at
http://yi.org/rotty | GnuPG Key: http://yi.org/rotty/gpg.asc
Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62
Latein ist das humanoide Äquivalent zu Fortran.
-- Alexander Bartolich in at.linux
| |
| Ray Dillinger 2004-11-23, 8:57 pm |
| Kamil Ignacak wrote:
> Hello
>
> Two months ago I thought that it's time for me to write mature and
> serious application in C. My choice was yet another Scheme-aware GTK2
> editor, which will be in future (hopefully) a part of Scheme IDE based
> on guile.
> As a complete newbie in scheme world I'm asking you for some tips and
> advices or requests. What is essential in your work with Scheme code,
> what features of your current editor are most useful and what features
> you would like to see?
It's going to be really, really hard to improve on Emacs
for scheme editing. The basic scheme-mode is good, and
there are some customized scheme-editing modes avalable
as EL files that are even better.
But, at a minimum:
Autoindentation
Paren Matching
Paren Walking (jump to matching paren)
syntax coloring (scheme has no reserved words, but assume
people want to know when they're using the names
of functions and syntax defined in R5RS)
Jump to definition/Jump back
Bear
| |
| Dominique Boucher 2004-11-24, 3:59 am |
| Ray Dillinger <bear@sonic.net> writes:
> But, at a minimum:
> Autoindentation
> Paren Matching
> Paren Walking (jump to matching paren)
> syntax coloring (scheme has no reserved words, but assume
> people want to know when they're using the names
> of functions and syntax defined in R5RS)
> Jump to definition/Jump back
I would add:
S-expression-based movements
- forward/backward S-expression
- upward S-expression
S-expression-based selection
- select next/previous S-expression
- select enclosing S-expression
Mouse copy
You move your mouse over an S-expression, press a key
sequence, and the S-expression is copied at the insertion
point (or replaces the selection, if any). This is a very
useful feature when you don't have code completion on
local variables.
Interaction with an interpreter
- start/restart a Scheme interpreter in a console
- eval S-expression
- eval top-level expression
- eval selection
- eval buffer (file being edited)
Now let me give some advice to the OP. I think that if he wants to
write a very good Scheme IDE, he should begin writing some Scheme code
right now (i.e. undertake a non-trivial Scheme project first). I tried
many Scheme plugins for the Eclipse environment in the past months,
written by students for term projects [1]. They were not bad, but they
were almost useless for serious Scheme programming. I guess the main
reason is that these students were not Scheme programmers
themselves. And they put lot of effort in providing some " "
features like syntax coloring (and understanding the Eclipse
framework...), but not on core editing features. I would immediately
choose a Scheme editor that provides S-expression-based movements,
selection, and (correct!) auto indentation, over one providing only
syntax coloring.
My 2 cents.
[1] I'm not assuming that the OP is a student. But he clearly stated
that he is a Scheme newbie, which is almost equivalent for me in this
context. Scheme code editing is quite different from C or Java code
editing.
Dominique Boucher
The SchemeWay Project
http://schemeway.sourceforge.net
| |
| Dominique Boucher 2004-11-24, 3:59 am |
| Ray Dillinger <bear@sonic.net> writes:
> But, at a minimum:
> Autoindentation
> Paren Matching
> Paren Walking (jump to matching paren)
> syntax coloring (scheme has no reserved words, but assume
> people want to know when they're using the names
> of functions and syntax defined in R5RS)
> Jump to definition/Jump back
I would add:
S-expression-based movements
- forward/backward S-expression
- upward S-expression
S-expression-based selection
- select next/previous S-expression
- select enclosing S-expression
Mouse copy
You move your mouse over an S-expression, press a key
sequence, and the S-expression is copied at the insertion
point (or replaces the selection, if any). This is a very
useful feature when you don't have code completion on
local variables.
Interaction with an interpreter
- start/restart a Scheme interpreter in a console
- eval S-expression
- eval top-level expression
- eval selection
- eval buffer (file being edited)
Now let me give some advice to the OP. I think that if he wants to
write a very good Scheme IDE, he should begin writing some Scheme code
right now (i.e. undertake a non-trivial Scheme project first). I tried
many Scheme plugins for the Eclipse environment in the past months,
written by students for term projects [1]. They were not bad, but they
were almost useless for serious Scheme programming. I guess the main
reason is that these students were not Scheme programmers
themselves. And they put lot of effort in providing some " "
features like syntax coloring (and understanding the Eclipse
framework...), but not on core editing features. I would immediately
choose a Scheme editor that provides S-expression-based movements,
selection, and (correct!) auto indentation, over one providing only
syntax coloring.
My 2 cents.
[1] I'm not saying that the OP is a student. But he clearly stated
that he is a Scheme newbie, which is almost equivalent for me in this
context. Scheme code editing is quite different from C or Java code
editing.
Dominique Boucher
The SchemeWay Project
http://schemeway.sourceforge.net
| |
| Shriram Krishnamurthi 2004-11-24, 3:59 am |
| Ray Dillinger <bear@sonic.net> writes:
> But, at a minimum:
> Autoindentation
> Paren Matching
> Paren Walking (jump to matching paren)
> syntax coloring (scheme has no reserved words, but assume
> people want to know when they're using the names
> of functions and syntax defined in R5RS)
> Jump to definition/Jump back
That's pretty lame. Even DrScheme has all that, and more, and it is a
tenet of c.l.s religion to revile DrScheme as an editor. DrScheme
even has *real* syntax coloring, not that crapola Emacs variant.
Shriram
| |
| Abdulaziz Ghuloum 2004-11-24, 3:59 am |
| Shriram Krishnamurthi wrote:
> ... DrScheme
> even has *real* syntax coloring, not that crapola Emacs variant.
>
> Shriram
Not knowing what `crapola' means, I was reading the helpdesk to see what
DrScheme has regarding syntax-coloring that was not `crapola'. The docs
say:
Each Definitions window has a Check Syntax button. Clicking this
button makes DrScheme analyze the program source and identify any
syntax errors *without* having to run the program. (my emphasis)
So, I typed the following:
(let-syntax ([foo
(lambda (x)
(delete-file "fubar")
(syntax-case x ()
[(_ x) #'(quote x)]))])
(foo 12))
and *without* executing the program, I pressed the "Check Syntax"
button. Well, it didn't go very well as fubar got fuedbar.
At that point, I realized that I like my crapola Emacs variant.
Aziz,,,
PS. Please take it as constructive criticism. Having implemented a
syntax-case expander, I know that *real* syntax coloring and syntax-case
(or even syntax-rules) don't get along very well. However, I know that
PLT has brought us many things to make scheme pleasant to learn.
DrScheme's syntax-coloring nicely covers 99% of the common uses (maybe).
I wish it was better than my crapola Emacs.
| |
|
| Shriram Krishnamurthi <sk@cs.brown.edu> wrote in message news:<w7dllcsouh9.fsf@cs.brown.edu>...
> Ray Dillinger <bear@sonic.net> writes:
>
>
> That's pretty lame. Even DrScheme has all that, and more, and it is a
> tenet of c.l.s religion to revile DrScheme as an editor. DrScheme
> even has *real* syntax coloring, not that crapola Emacs variant.
>
An editor that doesn't suport M-x tetris shouldn't even be called
an editor.
Besides, emacs is less resource-hungry than DrScheme. :-)
cheers,
felix
| |
| Hrvoje Blazevic 2004-11-24, 8:56 am |
| Shriram Krishnamurthi wrote:
> That's pretty lame. Even DrScheme has all that, and more, and it is a
> tenet of c.l.s religion to revile DrScheme as an editor. DrScheme
> even has *real* syntax coloring, not that crapola Emacs variant.
>
No matter how much I admire DrScheme and it's static syntax checker
which does work nicely, and *is* helpful, say--up to a level of EoPL2.
When you do go further, say--try running LiSP book code, eventually you
will have to use the *crapola* editor with MzScheme, and forget about
the DrScheme, because the IDE gets in the way.
Aside from that, now that we are throwing names, for any serious work, I
would have to use *crapola* editor, because DrScheme still does not have
the dabbrev mode. As I'm not touch typist, I use C-M-/ on any word that
is longer than 6 letters, which saves me from typing, and avoids many
typos, so I do *not* lack DrScheme's static syntax coloring :-)
-- Hrvoje
| |
| Ray Dillinger 2004-11-24, 8:56 am |
| Shriram Krishnamurthi wrote:
> Ray Dillinger <bear@sonic.net> writes:
>
>
>
>
> That's pretty lame. Even DrScheme has all that, and more, and it is a
> tenet of c.l.s religion to revile DrScheme as an editor.
Like I said: a minimum. if it doesn't have this stuff,
people will just laugh at it instead of thinking it's
good enough to revile.
Nobody bothers to revile software that's not even usable.
Bear
| |
| Kamil Ignacak 2004-11-24, 8:56 am |
| campbell@bloodandcoffee.net (Taylor Campbell) wrote in message news:<5d744894.0411231256.2a4f0f7f@posting.google.com>...
> Why don't you write the application itself in Scheme?
Because I want it to be independent from any Scheme implementation.
The IDE will be developed for (and with) guile, but the editor itself
should be able to work with any implementation on any platform. Of
course I could use SLIB/SRFI, but I want to write C app so that in my
CV I can write: 'C programmer, GTK2' :).
Kamil Ignacak
| |
| Eli Barzilay 2004-11-24, 4:02 pm |
| Abdulaziz Ghuloum <aghuloum@c-s-remove-dashes.indiana.edu> writes:
> So, I typed the following:
>
> (let-syntax ([foo
> (lambda (x)
> (delete-file "fubar")
> (syntax-case x ()
> [(_ x) #'(quote x)]))])
> (foo 12))
>
> and *without* executing the program, I pressed the "Check Syntax"
> button. Well, it didn't go very well as fubar got fuedbar.
(If you walked under one of those huge ad signs, and it fell on your
head, would you say that "words hurt" as a result?
If you see this sign --
http://scheme.barzilay.org/pics/pic/1340
would you have problems "entering here"?)
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!
| |
| Bruce Lewis 2004-11-24, 4:02 pm |
| Abdulaziz Ghuloum <aghuloum@c-s-remove-dashes.indiana.edu> writes:
> and *without* executing the program, I pressed the "Check Syntax"
> button. Well, it didn't go very well as fubar got fuedbar.
>
> At that point, I realized that I like my crapola Emacs variant.
If the syntax error is a misplaced paren like (vector-ref (foo 12 0))
will emacs find it? I doubt very much that it could both find such a
syntax error and avoid deleting your fubar file.
I use emacs myself, but only for paren matching, indentation and s-exp
traversal. It sounds like DrScheme is doing the right thing. If you
don't want your macros expanded, don't click the "Check Syntax" button.
--
http://ourdoings.com/ Let your digital photos organize themselves.
Sign up today for a 7-day free trial.
| |
| Brandon J. Van Every 2004-11-29, 4:10 pm |
| Kamil Ignacak wrote:
> campbell@bloodandcoffee.net (Taylor Campbell) wrote in message
> news:<5d744894.0411231256.2a4f0f7f@posting.google.com>...
>
> Because I want it to be independent from any Scheme implementation.
I'm not seeing what's important about that. All that matters is that you
can *use* anybody's Scheme implementation. It doesn't matter if the editor
itself is written in a specific Scheme.
> The IDE will be developed for (and with) guile, but the editor itself
> should be able to work with any implementation on any platform. Of
> course I could use SLIB/SRFI, but I want to write C app so that in my
> CV I can write: 'C programmer, GTK2' :).
Why, in the latest part of the year 2004, does anyone want to put 'C' on
their CV? GTK2 I could possibly understand, in certain circles. But C is,
frankly, not much of a skill nowadays.
--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA
20% of the world is real.
80% is gobbledygook we make up inside our own heads.
| |
| marksweiss@yahoo.com 2004-12-10, 8:58 pm |
| Hmm... tell that to the majority of embedded systems programmers ...
|
|
|
|
|