Content deleted Content added
No edit summary |
m Maintain {{WPBS}} and vital articles: 2 WikiProject templates. Create {{WPBS}}. Tag: |
||
(17 intermediate revisions by 7 users not shown) | |||
Line 1:
{{oldafdfull| date = 1 June 2011 (UTC) | result = '''keep''' | page = Impromptu (programming environment) }}
{{WikiProject Computing}}▼
{{WikiProject banner shell|
{{WikiProject Electronic music|importance=}}
▲{{WikiProject Computing|attention=yes}}
}}
== Trimming ==
Line 8 ⟶ 12:
::Also, the description was a copy-paste of a text that belongs to the subject's website, and that appears verbatim over a whole bunch of sites online. I've modified it to focus on the subject rather than just advertising it, but I'm still not sure what is meant by some things and whether they are relevant, such as ''an idiom called "temporal recursion"'', or how is it that the interpreter has been modified from TinyScheme 1.35 - [[User:Frankie|frankie]] ([[User talk:Frankie|talk]]) 16:37, 4 June 2011 (UTC)
:::I'll answer both comments here: temporal recursion is a key feature of Impromptu. Functions end up with a "callback" call, which schedules a new execution of the function at a given time, optionally passing arguments. You can see it around 1:10 in the video. You are right about the code examples. The video, however, illustrates the "paradigmatic features of the environment", as you said and is not at all a tutorial (you can see Andrew Sorensen editing the code, live). Have a look at it, the music is excellent. To be honest, I've never seen a video in a Wikipedia article either. But the software allows it and it fits in this case. [[User:Pygy|Pygy]] ([[User talk:Pygy|talk]]) 17:21, 4 June 2011 (UTC)
{{cot|Study_in_keith.ogv}}
:::[[Image:Study_in_keith.ogv]]
{{cob}}
:::::What does this video demonstrate? Does it have any audio? It doesn't work for me all under IE, so I'm definitely missing a plug-in there. Under Firefox, I get video but no audio. It's just a silent screen shot video as someone edits something (who knows what or why) in a Lisp-like language with a full-screen editor. Do I need specific plug-in to make this do something useful? [[User:Msnicki|Msnicki]] ([[User talk:Msnicki|talk]]) 21:40, 5 June 2011 (UTC)
:::::: I have no idea exactly what it's trying to show. Sorenson has a bunch of these on his Vimeo channel. The video uploaded here only works for me ''with audio'' if I download the ogv (click more) an play it in VLC. The audio is 6-channel Vorbis, which is rather uncommon, I suspect. Triggers a known Firefox bug [https://bugzilla.mozilla.org/show_bug.cgi?id=521615]. Another good reason to remove it. There should be a much simpler example in this article. [[User:FuFoFuEd|FuFoFuEd]] ([[User talk:FuFoFuEd|talk]]) 23:06, 5 June 2011 (UTC)
::::::: Oh, my. I downloaded VLC and now I get audio. It's like listening to someone who doesn't know how to play the piano try to play the piano — one bad note at a time. There's no voiceover to give even a hint what's going on. I don't know how it could be more pointless. [[Wikipedia:Files for deletion/2011 June 6|Nominated for deletion]]. [[User:Msnicki|Msnicki]] ([[User talk:Msnicki|talk]]) 00:04, 6 June 2011 (UTC)
::::Using callback methods is a standard feature, actually this is closer to a database trigger. The code itself says nothing about the actual features of the environment, but how to use it. Programming languages work by adjusting to particular conventions (in this case the one from Scheme) in order to achieve a purpose, but that makes that the code rarely reflects such purpose, it is instead a collection of esoteric words that only developers make use of. For developers, the framework should provide documentation or an API as part of their product offering, but for a Wikipedia article such information is too specialized - [[User:Frankie|frankie]] ([[User talk:Frankie|talk]]) 17:41, 4 June 2011 (UTC)
::::::Temporal recursion is about scheduled callbacks at predicted intervals, not just callbacks. For sure, callbacks are pretty common in CS, but AFAIK, in musical programming environment it is a unique feature for scheduling stuff. Furthermore, from a syntactic standpoint, it looks like tail recursion with a special keyword (see recurse in Clojure). Not mentioning it would be like not mentioning that a violin is played with a bow, because everyone knows what a bow is (in the archery meaning of the word). [[Special:Contributions/81.247.43.6|81.247.43.6]] ([[User talk:81.247.43.6|talk]]) 08:48, 5 June 2011 (UTC)
::::::: I'm hardly familiar with Clojure, but that's an unrelated "feature". You need to use those keywords in Clojure [http://lambda-the-ultimate.org/node/2547 because the JVM lacks tail-call optimization, it seems]. I checked ''The Joy of
I have a couple of observations on the above discussion:
* Language features should be explained in less proprietary jargon if possible. I think the current version of the article does that reasonably well. It explains what "temporal recursion" is for example. Nota bene.
Line 20 ⟶ 30:
The feature did sound like something to include, the only thing is that this information needs to be put in a context so that the user of the article understands what that means to a certain level, and there is very little to be understood by the statement that it is "temporal recursion". Now it can be linked to Clojure, and that brings the capabilities of the subject into a proper context. One question, how is it that this framework uses triggers that equivalent packages don't? - [[User:Frankie|frankie]] ([[User talk:Frankie|talk]]) 18:50, 5 June 2011 (UTC)
: I think most music programming languages have some form of scheduling like this. From what I recall, in ChucK one can schedule the rest/continuation of a "shard" (thread) to resume after a some time by chucking some interval into the predefined variable "now". Many threading libraries and OS kernels have something similar, except for the syntactic sugar: you put the thread/LWP/process in a queue to be activated on some event, and then call something like yield()/schedule() to relinquish the CPU. This so called "temporal recursion" seems to be just a pause by a specified amount, which yields the CPU and schedules a continuation that just does a normal [[tail call]]. [[User:FuFoFuEd|FuFoFuEd]] ([[User talk:FuFoFuEd|talk]]) 20:21, 5 June 2011 (UTC)
I've restored the video (see the rationale here: http://en.wikipedia.org/wiki/Wikipedia:Files_for_deletion/2011_June_6#File:Study_in_keith.ogv ).[[User:Pygy|Pygy]] ([[User talk:Pygy|talk]]) 10:21, 14 June 2011 (UTC)
Now we've established notability, I've trimmed the references back to the most relevant ones. [[User:Yaxu|Yaxu]] ([[User talk:Yaxu|talk]]) 22:27, 25 June 2011 (UTC)
:Thanks Yaxu. I've been meaning to do it for a while but haven't had the time to check which ones were relevant. Actually, I haven't done anything else on the article for that same reason, and I doubt I'll find time to dwell into the subject in order to assist here anymore. Keep up the good work - [[User:Frankie|frankie]] ([[User talk:Frankie|talk]]) 22:44, 25 June 2011 (UTC)
|