lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 2017-04-26 19:55, Dirk Laurie wrote:

(sorry for the delay)

2017-04-26 5:18 GMT+02:00 nobody <nobody+lua-list@afra-berlin.de>:

I'd say that if you have a good idea of what you want & have looked
at how love2d is structured, it's feasible to get a runnable
prototype of a beginner-friendly environment in about 1-2 hours.
(Yes, it really is very hackable & close to usable.)  After a few
more hours of polishing it should be in acceptable shape to try it
on real beginners.  (And then you improve it over the next
weeks/months – better error messages, …)

Is this a description of something you are actually working on?

Short answer:  No.

Long answer: Well, something like that is "simmering" in the background, but I think such an environment without a tutorial or at least good documentation is worthless (for the purpose of teaching beginners), and that would take much more time. And then there's also this:

  http://worrydream.com/LearnableProgramming/

which is closer to what I'd like to have, and if you take those ideas
and compare them, you'll see that this "beginner-friendly" environment
isn't all that friendly.  ('"Properly" teaching programming/CS' is on my
"long-term todo list", so I'm slowly accumulating stuff that will be
helpful for reaching this.  But that will still take a long time.)

Some time ago I tried to produce something of the kind […]. When I
tried running it now, it wouldn't (Love has made some breaking
changes since 2011).

I had a look at your code.  The history approach is interesting, the
rest is… meh (primarily quite large).  But have this!

diff -urw vilua.A.love/main.lua vilua.B.love/main.lua
--- vilua.A.love/main.lua	2011-11-20 21:44:21.000000000 +0100
+++ vilua.B.love/main.lua	2017-04-27 17:42:23.000000005 +0200
#
# Some time back they split love.graphics, adding love.window.  They
# also renamed some functions.  I think this is the only necessary
# change:
#
@@ -30,3 +30,3 @@
 function love.load()
-   love.graphics.setCaption('Lua with graphics')
+   love.window.setTitle('Lua with graphics')
    deg = math.pi/180
#
# I don't know if this change is necessary, but there's a designated
# function for that purpose:
#
@@ -50 +50 @@
-function signal_quit() love.event.push "q" end
+signal_quit = love.event.quit
#
# Not bored enough to fix it crashing non-reversibly on any error.
# (Also don't know if that's new or always was like that.)
# Try (my favourite) `circle( 100, 100, 50 )` to see what I mean.

But I can distinctly remember that it took me more than two hours

Right, so that estimate probably mostly applies to me. (I've explored most of the necessary features and know how to work around most of the quirks.) So the logical conclusion is this:

If anyone wants this ("friendly" REPL and/or (drag&drop?) script runner) badly enough and has a good idea of what they want, ping me in about a month (most seminar-related work should be through by then), send a spec, and I'll build it. (No fancy stuff like what Bret Victor is doing – that would need much more research.)

-- nobody