digitalmars.D.announce - Tango Conference 2008 - MiniD talk by by Jarrett Billingsley.
- Peter Modzelewski (3/3) Oct 06 2008 http://petermodzelewski.blogspot.com/2008/10/tango-conference-2008-minid...
- bearophile (14/15) Oct 06 2008 Quite nice.
- Jarrett Billingsley (4/9) Oct 06 2008 Not quite as easily. D has a lot more syntax and a lot more
- bearophile (6/8) Oct 06 2008 Do you know of a language named Scala?
- Jarrett Billingsley (3/9) Oct 06 2008 I'm not going to argue with you on this. You're not going to get what
- bearophile (4/5) Oct 06 2008 I've seen so many things change, who knows what the future will bring us...
- ore-sama (4/6) Oct 09 2008 this also seems dangerous to me.
- Jarrett Billingsley (8/14) Oct 09 2008 How is it dangerous? It has precisely one meaning. It's a perfectly
- ore-sama (2/16) Oct 09 2008 It behaves surprisingly compared to others C family languages: C, C++, J...
- bearophile (25/31) Oct 11 2008 To answer I have to go partially OT. In Python you can put () around tup...
- Jarrett Billingsley (9/12) Oct 06 2008 I suppose I should also link to the MiniD site:
- BLS (7/27) Oct 06 2008 Hi Jarret,
- Jarrett Billingsley (7/38) Oct 06 2008 They're simpler to implement as there is now only one type and one set
- bearophile (4/10) Oct 06 2008 I agree they are probably simpler to implement. Regarding that bifurcati...
- BLS (8/20) Oct 06 2008 Hope you may find it interesting enough :)
- Robert Fraser (3/7) Oct 09 2008 Does MiniD support multiple OS threads or only fibers (for multicore
- Jarrett Billingsley (10/18) Oct 09 2008 The language itself is not designed to be multithreaded and the
http://petermodzelewski.blogspot.com/2008/10/tango-conference-2008-m nid-talk-video.html slides: http://team0xf.com/conference/minid.pdf Enjoy! :)
Oct 06 2008
Peter Modzelewski:slides: http://team0xf.com/conference/minid.pdfQuite nice. I see no semicolons, I presume D sources too can spare them :-) Multivalues seems dangerous, they look like the auto-flattening things of Perl. I think I don't like them. I like true tuples plus the * (apply) syntax of Python better to do similar things. This: global x, y, z = freep() // they are 1, 2, 3 writeln(freep()) // writes 123 global a = [freep()] // a is [1, 2, 3] In Python becomes about as: x, y, z = freep() // they are 1, 2, 3 a = [freep()] // a is [(1, 2, 3)] somefunc(*freep()) // somefunc called with 3 arguments Bye, bearophile
Oct 06 2008
On Mon, Oct 6, 2008 at 6:34 AM, bearophile <bearophileHUGS lycos.com> wrote:Peter Modzelewski:Not quite as easily. D has a lot more syntax and a lot more opportunities to cause ambiguity.slides: http://team0xf.com/conference/minid.pdfQuite nice. I see no semicolons, I presume D sources too can spare them :-)Multivalues seems dangerous, they look like the auto-flattening things of Perl. I think I don't like them. I like true tuples plus the * (apply) syntax of Python better to do similar things.That's nice.
Oct 06 2008
Jarrett Billingsley:Not quite as easily. D has a lot more syntax and a lot more opportunities to cause ambiguity.Do you know of a language named Scala? http://en.wikipedia.org/wiki/Scala_(programming_language) It's a Java-derived language that seems to have optional semicolons as well, and it has a syntax that's probably about as complex as D one. Bye, bearophile
Oct 06 2008
On Mon, Oct 6, 2008 at 8:54 AM, bearophile <bearophileHUGS lycos.com> wrote:Jarrett Billingsley:I'm not going to argue with you on this. You're not going to get what you want for D, sorry.Not quite as easily. D has a lot more syntax and a lot more opportunities to cause ambiguity.Do you know of a language named Scala? http://en.wikipedia.org/wiki/Scala_(programming_language) It's a Java-derived language that seems to have optional semicolons as well, and it has a syntax that's probably about as complex as D one.
Oct 06 2008
Jarrett Billingsley:You're not going to get what you want for D, sorry.<I've seen so many things change, who knows what the future will bring us? Don't be sad, Jarrett. Bye and thank you, bearophile
Oct 06 2008
bearophile Wrote:This: global x, y, z = freep() // they are 1, 2, 3this also seems dangerous to me. Some language has syntax (x, y, z) = freep()
Oct 09 2008
On Thu, Oct 9, 2008 at 6:48 AM, ore-sama <spam here.lot> wrote:bearophile Wrote:How is it dangerous? It has precisely one meaning. It's a perfectly well-defined area of the language and does not incur any performance penalty. And if you really, really want to put multiple values into an object, use an array. local xyz = [freep()] somefunc(freep.expand()) // somefunc called with 3 argumentsThis: global x, y, z = freep() // they are 1, 2, 3this also seems dangerous to me. Some language has syntax (x, y, z) = freep()
Oct 09 2008
Jarrett Billingsley Wrote:On Thu, Oct 9, 2008 at 6:48 AM, ore-sama <spam here.lot> wrote:It behaves surprisingly compared to others C family languages: C, C++, Java,bearophile Wrote:How is it dangerous? It has precisely one meaning. It's a perfectly well-defined area of the language and does not incur any performance penalty.This: global x, y, z = freep() // they are 1, 2, 3this also seems dangerous to me. Some language has syntax (x, y, z) = freep()
Oct 09 2008
ore-sama Wrote:To answer I have to go partially OT. In Python you can put () around tuples, but 99% of the times they are optional, so this syntax is accepted and Python programmers often add those () to improve clarity: (x, y, z) = freep() Or to destructure the result (here freep2 returns a generic iterable pair inside another pair): ((x, y), z) = freep2() I don't like the syntax Python3 uses for tuples, I'd like them to be compulsively enclosed by symbols, like python lists (arrays) and like all collection literals in Fortress. For example the bitwise operations may become named AND OR XOR NOT, that in Python code aren't much common (currently and, not, or are the boolean operators), freeing | to to denote tuples (and freeing other symbols): x, y, z = freep() ((x, y), z) = freep2() z = (!x & y) | (z & !w) ==> |x, y, z| = freep() ||x, y|, z| = freep2() z = (NOT x AND y) OR (z AND NOT w) (I don't like that synax too much, anyway). Fortress uses pairs of symbols to encose some of its collections: {x, y, z} {x: y, z: w} {|x: y, z: w|} (|x, y, x|) {|x, y, z|} [|x, y, z|] ... etc Bye, bearophileThis: global x, y, z = freep() // they are 1, 2, 3this also seems dangerous to me. Some language has syntax (x, y, z) = freep()
Oct 11 2008
On Mon, Oct 6, 2008 at 4:08 AM, Peter Modzelewski <peter.modzelewski gmail.com> wrote:http://petermodzelewski.blogspot.com/2008/10/tango-conference-2008-minid-talk-video.html slides: http://team0xf.com/conference/minid.pdf Enjoy! :)I suppose I should also link to the MiniD site: http://dsource.org/projects/minid and mention that MiniD 2 is approaching a beta release :) The slides only scratch the surface of the language's features. Read more here: http://dsource.org/projects/minid/wiki/LanguageSpec2 and I've started a PIL-style walkthrough here: http://dsource.org/projects/minid/wiki/Lang/GettingStarted
Oct 06 2008
Jarrett Billingsley schrieb:On Mon, Oct 6, 2008 at 4:08 AM, Peter Modzelewski <peter.modzelewski gmail.com> wrote:Hi Jarret, I have'nt followed MiniD development for quit a while, Sorry. It seems to me that you are switching from Class instantiation to Prototype's clone() paradigmn. In case, and just in case ;), that I am right: Can you please explain: Why. TIA, Bjoernhttp://petermodzelewski.blogspot.com/2008/10/tango-conference-2008-minid-talk-video.html slides: http://team0xf.com/conference/minid.pdf Enjoy! :)I suppose I should also link to the MiniD site: http://dsource.org/projects/minid and mention that MiniD 2 is approaching a beta release :) The slides only scratch the surface of the language's features. Read more here: http://dsource.org/projects/minid/wiki/LanguageSpec2 and I've started a PIL-style walkthrough here: http://dsource.org/projects/minid/wiki/Lang/GettingStarted
Oct 06 2008
On Mon, Oct 6, 2008 at 9:21 AM, BLS <nanali nospam-wanadoo.fr> wrote:Jarrett Billingsley schrieb:They're simpler to implement as there is now only one type and one set of lookup rules, and, well, it's cool. Besides, MiniD is a dynamic language, and if I were to make classes as dynamic as they could be, you'd more or less end up with a prototype-based object system with an arbitrary bifurcation between classes and their instances. Which is precisely what happened in the development of MD2, in fact.On Mon, Oct 6, 2008 at 4:08 AM, Peter Modzelewski <peter.modzelewski gmail.com> wrote:Hi Jarret, I have'nt followed MiniD development for quit a while, Sorry. It seems to me that you are switching from Class instantiation to Prototype's clone() paradigmn. In case, and just in case ;), that I am right: Can you please explain: Why. TIA, Bjoernhttp://petermodzelewski.blogspot.com/2008/10/tango-conference-2008-minid-talk-video.html slides: http://team0xf.com/conference/minid.pdf Enjoy! :)I suppose I should also link to the MiniD site: http://dsource.org/projects/minid and mention that MiniD 2 is approaching a beta release :) The slides only scratch the surface of the language's features. Read more here: http://dsource.org/projects/minid/wiki/LanguageSpec2 and I've started a PIL-style walkthrough here: http://dsource.org/projects/minid/wiki/Lang/GettingStarted
Oct 06 2008
Jarrett Billingsley:They're simpler to implement as there is now only one type and one set of lookup rules, and, well, it's cool. Besides, MiniD is a dynamic language, and if I were to make classes as dynamic as they could be, you'd more or less end up with a prototype-based object system with an arbitrary bifurcation between classes and their instances. Which is precisely what happened in the development of MD2, in fact.I agree they are probably simpler to implement. Regarding that bifurcation, Python has solved it introducing metaclasses, so classes are objects too, that is instances of a metaclass. This seems just to move the problem up one level, but in most cases it solves the problem. But it also introduces some complexity, and programming with metaclasses requires some skills. Bye, bearophile
Oct 06 2008
bearophile schrieb:Jarrett Billingsley:Hope you may find it interesting enough :) A *small prototype-based programming language. Native compiled. Runtime-loadable-prototypes! Yeah. Inspired by SELF/Smalltalk/Eiffel. Speed of C. *4 keywords http://isaacproject.u-strasbg.fr/li.html Bjoern (I am just learning the language out of ?? I don't know.)They're simpler to implement as there is now only one type and one set of lookup rules, and, well, it's cool. Besides, MiniD is a dynamic language, and if I were to make classes as dynamic as they could be, you'd more or less end up with a prototype-based object system with an arbitrary bifurcation between classes and their instances. Which is precisely what happened in the development of MD2, in fact.I agree they are probably simpler to implement. Regarding that bifurcation, Python has solved it introducing metaclasses, so classes are objects too, that is instances of a metaclass. This seems just to move the problem up one level, but in most cases it solves the problem. But it also introduces some complexity, and programming with metaclasses requires some skills. Bye, bearophile
Oct 06 2008
Peter Modzelewski wrote:http://petermodzelewski.blogspot.com/2008/10/tango-conference-2008-m nid-talk-video.html slides: http://team0xf.com/conference/minid.pdf Enjoy! :)Does MiniD support multiple OS threads or only fibers (for multicore processors, etc.)?
Oct 09 2008
On Thu, Oct 9, 2008 at 6:49 PM, Robert Fraser <fraserofthenight gmail.com> wrote:Peter Modzelewski wrote:The language itself is not designed to be multithreaded and the interpreter has not been designed with any consideration for it. However, as long as only one system thread is using a MDVM object at any given time, it should be fine, as the library is completely reentrant and depends on no global state. In that case, you can just use normal synchronization on the VM and it should work. Or, you know, create multiple VMs and make a MiniD library to allow multiple threads to communicate/spawn new VMs/whatever.http://petermodzelewski.blogspot.com/2008/10/tango-conference-2008-minid-talk-video.html slides: http://team0xf.com/conference/minid.pdf Enjoy! :)Does MiniD support multiple OS threads or only fibers (for multicore processors, etc.)?
Oct 09 2008