BGB, I love this quote from you
"sometimes, the new thing can be simpler overall, even if initially or conceptually more complex." This resonates with me big time. A lot of effort to build infrastructure that will make things simpler P On Sun, Jan 22, 2012 at 10:08 AM, BGB <cr88...@gmail.com> wrote: > On 1/21/2012 8:11 AM, Peter Franta wrote: > > VPRI answer to their Government and Private Funders, not those of us who > have the fortune to observe as they go. > > It is my understanding the deliverable is not a "product" but "lessons > learned" to go and do it for real! Not ideal for us but then they're not > serving us. > > Clearly this doesn't match your expectations. This is frustrating to you > but are your expectations their concern? Where do these expectations come > from? > > Popular/Successful <> Better. It all depends on your pov and what you > value. > > > yeah. I am just a random observer as well, and operating in the far more > mundane world of "spewing code and trying to make it all work..." (and > wondering if/when/where I will ever make an income). > > there is some amount of "experimentation", but most of this is itself much > more mundane, and not really a central focus (it is more of a "try various > things and see what sticks" experience). > > > likewise, it can be interesting to gather and try out ideas, and see what > all works. > sometimes, the new thing can be simpler overall, even if initially or > conceptually more complex. > > > for example, at a basic level, dynamic typing is more complex than static > typing (which can be seen as a type-checked variant of an untyped system). > once things start getting more complex, and one is dealing with less > trivial type semantics, then dynamic typing becomes much simpler (the main > difference is that dynamic typing is not well-supported on current > hardware, leading to complex/awkward type inference in an attempt to get > reasonable performance). > > but, then there is a tradeoff: > static types work better in the simple case for finding many types of > errors (even a good type-inference algo with type-validation may, with a > loose type-system, accept bad input and coerce it into a > semantically-valid, but unintended form). > > dynamic type-systems work better when the types are less trivial, and/or > may become, well, dynamic (at which point, many good old static languages > lead either to overly complex mechanisms, or a need to "strong arm" the > type-system via lots of casts). even in an otherwise well-developed static > language, there may end up being stupid/arbitrary restrictions which don't > follow from either the implementation or the conceptual semantics (such as, > in several languages, the inability to pass/convert a generic-container for > a subclass into a generic container for the superclass, ...). > > in these cases, it may well make sense to leave it up to the programmer > which semantics they want to use. > > for example, in my own language, if a declared type is used, it is treated > more like in a static language (coercing if needed and the types are > compatible, or potentially making an error otherwise). > > some other languages treat things more loosely, making me wonder what > really is the point of having type annotations in this case. what is gained > from annotations if the compiler does not enforce the types and the types > don't impact run-time behavior? in terms of optimization, in this case, > they offer little more than what could have been reasonably gained by > type-inference. there only real obvious merit is to serve as a hint for > what type the variable "should" be (if people so happen to be look at the > declarations at the time). > > granted, when one has both static and dynamic type-semantics, this is > potentially more complex than either case by itself (although, having both > does allow some potentially interesting semantics, such as the ability to > handle semantics which would likely be slow in a dynamically-typed > language, but which would be overly complicated or not possible to > represent with traditional uses of generics or templates, such as > conditional or "evaluated" types). > > > but, who knows, maybe there are better ways to deal with all this as well? > > how much of the concept of 'types' is itself real, and how much is an > artifact of the existing implementations? how much of existing programming > practice is "real", and how much is essentially cruft? > > simple example: > there are fields and there are methods; > sometimes we want to access fields directly, and sometimes to limit such > access. > > so, then the public/private notion popped up, with the usual convention > being to keep all fields as private. then, people introduced getter/setter > methods (and there is then a whole lot of "obj.getX()" and > "obj.setX(value)"). > > then, languages have added properties, so that the extra notation can be > shaved back off (allowing, once again, "obj.X" and "obj.X=value;"), and > have similarly allowed short-hand dummy property declarations, such as > "public double X { get; set; };" > > although there are sensible reasons behind all of this, one can also > wonder: "what exactly really is the point?". couldn't one, say, just as > easily (assuming the language handled it gracefully) declare the field > initially as public, and if later it needs to be trapped, simply change it > to private, drop in the property handler, and call it good?... > > or, alternatively, if one declares a property without its associated > variable, why not just "infer" that said variable needs to exist and, > y'know, create it?... > > granted, some people have asked the same of other sorts of variables, but > the usual issue is that referring to an undeclared variable leaves it very > ambiguous as to what sort of scope the variable should have, or if it > should exist at all. > > granted, I personally see little "real" need though for why direct static > visibility should be mandatory, and so I tend to leave open the > possibilities of indirect static visibility and also for dynamic visibility > (this has been disallowed in certain cases in some of my language designs, > but my implementations have thus far not bothered checking for them). > typically, the variable needs to exist "somewhere" though. > > practically, I suspect that the issue is that this case would be fairly > complicated in a traditional early-bound VM, and that a lot of stuff I have > read doesn't really allow for the possibility of there to be a > statically-determinable "gray area" between traditional early-bound > semantics and dynamically-handled late-binding... I guess, maybe it is > because it is seen as something roughly akin to inlining virtual methods or > similar. > > sadly, I know of more possible nifty edge-cases than my current > implementation bothers to exploit (most of the time, lacking lexical > visibility, it will just fall back to using dynamic late-binding). > > > but, there are probably endless such things around I guess. > > or such... > > > > Regards > P > > > On Sat, Jan 21, 2012 at 9:11 PM, Loup Vaillant <l...@loup-vaillant.fr>wrote: > >> Le 1/21/2012 2:52 AM, Reuben Thomas a écrit : >> >>> I have just skimmed VPRI's 2011 report; lots of interesting stuff >>> there. The ironies of a working system that the rest of us can only >>> view in snapshot form grow ever-stronger: the constant references to >>> active documents are infuriating. The audience would like to see the >>> active document, but instead we only get a printout. It's as if, >>> waiting for a new film, we got only reviews of trailers rather than >>> the trailers themselves. >>> >>> The irony is then compounded by a code listing at the end of the >>> document (hint: a URL is shorter and actually useful; this is not the >>> 1980s). >>> >>> And then just when we thought it was going to end, the agony >>> continues: you've pushed the deadline back a year. >>> >>> I wish you all a joyful and productive 2012; unlike many projects, >>> it's clear that with this one the question is not whether what is >>> finally released will be worth the wait, it's whether it'll ever >>> actually be released. >>> >>> You do shoot yourselves in the foot at one point: "The Web should have >>> used HyperCard as its model, and the web designers made a terrible >>> mistake by not doing so." Yes, but the web shipped and revolutionised >>> the world; meanwhile, you lot have shipped stuff that, at best, like >>> Smalltalk, has inspired revolutions at one remove. Many of the lessons >>> of your work are decades old and still not widely learned. Contrast >>> with Steve Jobs, who spun an ounce of invention into a mile of >>> innovation, by combining a desire for better computing with the >>> understanding that without taking people with you, your ideas will die >>> with you. It's a shame and an embarrassment that to the world at large >>> he's the gold standard. >>> >>> Please, no more deadline extensions. Whatever you have by the end of >>> this year will unquestionably be worth releasing, for all its >>> imperfections. It's high time to stop inventing the future and start >>> investing it. >>> >> >> The FONC Wiki mention subversion repositories here: >> (stable) http://piumarta.com/svn2/idst/tags/idst-376 >> (trunk) http://piumarta.com/svn2/idst/trunk >> >> I haven't tried yet, but it seems we outsiders can already play with it. >> Maybe that'll do as an actual "trailer"? >> >> Loup. >> _______________________________________________ >> fonc mailing list >> fonc@vpri.org >> http://vpri.org/mailman/listinfo/fonc >> > > > > _______________________________________________ > fonc mailing listfonc@vpri.orghttp://vpri.org/mailman/listinfo/fonc > > > > _______________________________________________ > fonc mailing list > fonc@vpri.org > http://vpri.org/mailman/listinfo/fonc > >
_______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc