caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Idea for an open-source project
@ 2007-10-31 12:47 David Teller
  2007-10-31 14:16 ` [Caml-list] " skaller
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: David Teller @ 2007-10-31 12:47 UTC (permalink / raw)
  To: OCaml

     Hi everyone,

 I've had an idea for a potentially useful project, but no time or
manpower to put on that idea, so here it is, in case anyone is
interested.

 In a few words: a beginner-oriented environment to build OCaml programs
only by clicking and dragging stuff around, with real-time type checking
to prevent connecting stuff when types don't match. For people aware of
Pure Data [1] or Scratch [2], well, this would essentially be a
functional version of either.

 Let me detail the idea a bit more. The IDE looks like a vector-drawing
program, with a number of building blocks available for use in the
toolbar. Each block is actually either one function or one control flow
statement. Blocks may have holes on the top (one for each argument), on
the bottom (one for each return value) or in the inside (one for each
other block it may contain). Each hole has a name, which is often not
displayed. Holes may then be connected with lines to specify
composition, as long as types do match.

For instance, let's take function print_string. That function is
represented by a block named "print_string". It contains one hole on the
top, named "text", of type string, a hole of type unit on the bottom, no
hole in the inside.

Let's now take a constant string. "Hello world !" is represented by a
block named "string", and containing some initial text. The contents of
the block may be edited to change the text. The block has a hole on the
bottom, named "string", also of type "string".

A line may be drawn from "Hello world !" to the "text" hole of
"print_string", as both have the same type. 

A simple rectangle may also be drawn around all of this, to group this
as a new block (an expression). Another kind of rectangle may also be
drawn to group this as a function. etc.

I think it would be a nice project for a group of students. What do you
think of this ? 

Cheers,
 David


[1] http://en.wikipedia.org/wiki/Pure_Data
[2] http://scratch.mit.edu 

-- 
David Teller ------------------------------------------
Security of Distributed Systems -----------------------
Project JStify: Static Analysis for JavaScript 2  -----
-- http://www.univ-orleans.fr/lifo/Members/David.Teller
----- Laboratoire d'Informatique Fondamentale d'Orleans


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Caml-list] Idea for an open-source project
  2007-10-31 12:47 Idea for an open-source project David Teller
@ 2007-10-31 14:16 ` skaller
  2007-10-31 14:50   ` Loup Vaillant
  2007-10-31 15:11 ` Lars Nilsson
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 7+ messages in thread
From: skaller @ 2007-10-31 14:16 UTC (permalink / raw)
  To: David Teller; +Cc: OCaml


On Wed, 2007-10-31 at 13:47 +0100, David Teller wrote:

> I think it would be a nice project for a group of students. What do you
> think of this ? 

Just my $A0.92, I've used these kinds of tools before,
and they're great for the first 2 days learning a language,
and useless after that -- typing is so much faster.

For that reason a GUI based version of this is probably a
waste of time. 

However a web-browser based version is another story altogether
because it only needs to be deployed once on a single server,
and then everyone can use it.

Ruby has a tutorial with a 'try it and see' approach .. 
that's my total experience with Ruby, 1 hour playing
with the web tutorial, but I think it worked well
to introduce me to that language.


-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Caml-list] Idea for an open-source project
  2007-10-31 14:16 ` [Caml-list] " skaller
@ 2007-10-31 14:50   ` Loup Vaillant
  0 siblings, 0 replies; 7+ messages in thread
From: Loup Vaillant @ 2007-10-31 14:50 UTC (permalink / raw)
  To: skaller; +Cc: David Teller, OCaml

2007/10/31, skaller <skaller@users.sourceforge.net>:
>
> However a web-browser based version is another story altogether
> because it only needs to be deployed once on a single server,
> and then everyone can use it.

It has already been done here:
http://www.france-ioi.org

They developed a web interface so one can submit his code, written in
one file. Several languages are embedded, including Ocaml.

Maybe someone there could tell how they did it?

Loup


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Caml-list] Idea for an open-source project
  2007-10-31 12:47 Idea for an open-source project David Teller
  2007-10-31 14:16 ` [Caml-list] " skaller
@ 2007-10-31 15:11 ` Lars Nilsson
  2007-11-04 10:38 ` Vincent Aravantinos
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Lars Nilsson @ 2007-10-31 15:11 UTC (permalink / raw)
  To: David Teller; +Cc: OCaml

On 10/31/07, David Teller <David.Teller@univ-orleans.fr> wrote:
>  Let me detail the idea a bit more. The IDE looks like a vector-drawing
> program, with a number of building blocks available for use in the
> toolbar. Each block is actually either one function or one control flow
> statement. Blocks may have holes on the top (one for each argument), on
> the bottom (one for each return value) or in the inside (one for each
> other block it may contain). Each hole has a name, which is often not
> displayed. Holes may then be connected with lines to specify
> composition, as long as types do match.

Sounds to me like you're looking for something vaguely similar to
Jackson Structured Programming.

http://en.wikipedia.org/wiki/Jackson_Structured_Programming

Lars Nilsson


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Caml-list] Idea for an open-source project
  2007-10-31 12:47 Idea for an open-source project David Teller
  2007-10-31 14:16 ` [Caml-list] " skaller
  2007-10-31 15:11 ` Lars Nilsson
@ 2007-11-04 10:38 ` Vincent Aravantinos
  2007-11-04 11:36 ` Jon Harrop
  2007-11-05 15:17 ` Granicz Adam
  4 siblings, 0 replies; 7+ messages in thread
From: Vincent Aravantinos @ 2007-11-04 10:38 UTC (permalink / raw)
  To: David Teller; +Cc: OCaml


Le 31 oct. 07 à 13:47, David Teller a écrit :

>      Hi everyone,
>
(...)
> I think it would be a nice project for a group of students. What do  
> you
> think of this ?

Maybe this:

http://www.cs.rice.edu/~taha/publications/conference/pepm07.pdf

could also be of interest.

V.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Caml-list] Idea for an open-source project
  2007-10-31 12:47 Idea for an open-source project David Teller
                   ` (2 preceding siblings ...)
  2007-11-04 10:38 ` Vincent Aravantinos
@ 2007-11-04 11:36 ` Jon Harrop
  2007-11-05 15:17 ` Granicz Adam
  4 siblings, 0 replies; 7+ messages in thread
From: Jon Harrop @ 2007-11-04 11:36 UTC (permalink / raw)
  To: caml-list

On Wednesday 31 October 2007 12:47, David Teller wrote:
>  In a few words: a beginner-oriented environment to build OCaml programs
> only by clicking and dragging stuff around, with real-time type checking
> to prevent connecting stuff when types don't match. For people aware of
> Pure Data [1] or Scratch [2], well, this would essentially be a
> functional version of either.

I think this is an excellent idea!

I have heard of similar work (research) but I've never seen one working. The 
nearest I've seen was GeoGebra. If such a thing existed in OCaml then I would 
certainly try it out.

>  Let me detail the idea a bit more. The IDE looks like a vector-drawing
> program, with a number of building blocks available for use in the
> toolbar.

You might like to use the free edition of our Smoke Vector Graphics library 
for the rendering back-end:

  http://www.ffconsultancy.com/products/smoke_vector_graphics/?ol

Then you just have to compose purely functional scenegraphs, which is much 
easier than using OpenGL directly.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Caml-list] Idea for an open-source project
  2007-10-31 12:47 Idea for an open-source project David Teller
                   ` (3 preceding siblings ...)
  2007-11-04 11:36 ` Jon Harrop
@ 2007-11-05 15:17 ` Granicz Adam
  4 siblings, 0 replies; 7+ messages in thread
From: Granicz Adam @ 2007-11-05 15:17 UTC (permalink / raw)
  To: caml-list

On Wed, 31 Oct 2007 13:47:23 +0100, David Teller  
<David.Teller@univ-orleans.fr> wrote:

>      Hi everyone,
>
>  I've had an idea for a potentially useful project, but no time or
> manpower to put on that idea, so here it is, in case anyone is
> interested.
>
>  In a few words: a beginner-oriented environment to build OCaml programs
> only by clicking and dragging stuff around, with real-time type checking
> to prevent connecting stuff when types don't match. For people aware of
> Pure Data [1] or Scratch [2], well, this would essentially be a
> functional version of either.

Microsoft Popfly won't output Ocaml programs, but it can make some cool  
mashups:

http://www.popfly.ms/

Cheers,
Adam.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-11-05 15:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-31 12:47 Idea for an open-source project David Teller
2007-10-31 14:16 ` [Caml-list] " skaller
2007-10-31 14:50   ` Loup Vaillant
2007-10-31 15:11 ` Lars Nilsson
2007-11-04 10:38 ` Vincent Aravantinos
2007-11-04 11:36 ` Jon Harrop
2007-11-05 15:17 ` Granicz Adam

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 NNTP newsgroup(s).