tag:blogger.com,1999:blog-2447174102813539049.post1739587729462359547..comments2024-03-27T03:52:14.195-07:00Comments on Room 101: Debug Mode is the Only ModeGilad Brachahttp://www.blogger.com/profile/17934280339206214042noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-2447174102813539049.post-82941921710847791502019-08-19T08:14:34.267-07:002019-08-19T08:14:34.267-07:00Dmitry,
a. HARC was shot down two years ago.
b. Y...Dmitry,<br /><br />a. HARC was shot down two years ago.<br />b. Your example, to me, is a visual DSL. As long as there is a clear visual metaphor (in this case the network as a graph) that can work very well. Once things get more involved or abstract, not so much.<br />c. Have you seen https://www.luna-lang.org/ ? I'm not saying that's exactly what you are talking about (in fact, I can't say I know what exactly you are driving at) nor am I endorsing that work, but it seems related.Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-41406434389191691962019-08-19T02:07:02.538-07:002019-08-19T02:07:02.538-07:00As a sample, most minimalistic webserver represent...As a sample, most minimalistic webserver represented in a frame model can look like this scheme for the user: https://github.com/ponyatov/itstep/wiki/plot.png<br />It is an executable data model, represents a tiny software system in the form of an object graph, all execution magic is hidden from the user, but it not only shows the _concept_, but also editable (from CLI, but web API can be used), so the user can change its behavior.<br />If we want to dive deeper, the model can be extended with other elements which control internal logic, like template files and Flask routing rules. Or even deeper, showing the whole model interpreter core written in Python (in the form of graph built with pyClass, pyMethod, etc frames).Dmitry Ponyatovhttps://www.blogger.com/profile/16207939306921247843noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-67456609635564615382019-08-19T00:38:57.568-07:002019-08-19T00:38:57.568-07:00Is any work (in HARC or not) is in progress to wor...Is any work (in HARC or not) is in progress to work in the area of using Knowledge Representation & Reasoning data models as a core of interactive systems?<br /><br />It is very strange that semantic AI is not under wide research to be used as a base technology for software development. I mean things like representing the whole software system as a huge data structure in a homoiconic manner and manipulate it dynamically without programming languages (one part of structure manipulates another part of the structure). The data model can be arbitrarily selected, maybe some sort of attribute grammar, Smalltalk objects works well but not free from scripting in a language, maybe frame model, something other used in KR&R... Not a Lisp definitely, it's too cryptic for humans 8-)Dmitry Ponyatovhttps://www.blogger.com/profile/16207939306921247843noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-24797017796485286792019-05-15T08:33:56.921-07:002019-05-15T08:33:56.921-07:00Certainly interesting work, though a bit off topic...Certainly interesting work, though a bit off topic for this post. Visual programming works best when there is a good visual metaphor or notation for a domain. GUI builders are a case in point; electrical circuits would be another. I've always been skeptical about general purpose visual programming. In particular, control flow tends to be a problem. Dataflow might be a bit of an exception to that, a slong as its coarse-grain (which fits with your note on miniapps - building blocks which take care of fine detail).Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-25858769172656333792019-05-14T21:37:58.044-07:002019-05-14T21:37:58.044-07:00We would keep several flags available that sped up...We would keep several flags available that sped up visual programming, such as not opening an closing levels of scope each time.yottzummhttps://www.blogger.com/profile/13512893992219685596noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-46295280592601728292019-05-14T21:35:43.941-07:002019-05-14T21:35:43.941-07:00http://dsmforum.org/events/DSVL01/carlson.pdf Vi...http://dsmforum.org/events/DSVL01/carlson.pdf Visual program/macro editor/debugger (reversible) for text documents. Engine in production for 2 or so years @ WPAFB Procurement office. Developed in 1-2 years by a team of 3, one of who was one of 2 in his state for his grade level, another who graduated summa cum laude, and had failed on other languages. One attending business school. Had plans for developing a multithreaded object-oriented stack environment (MOOSE), but funding was cut. Key points to take away: Build domain specific desktop objects or miniapps (calculators for string, number, and date). Also, document, form, branch (if-the-else, loops, recursion, "subroutines"), and table. Then use cut/copy paste into text fields and text areas of cross-domain stuff. Probably not too different from AppleScript could have been, except a visual language was included. Didn't quite add multiuser PbE in 2001, 9 years before such a feature was made public to press. Could have been made much faster by unrolling branches into normal C++ code instead of outputting C++ objects. It was pretty brittle and hard to change. So it didn't change much until the project was over.yottzummhttps://www.blogger.com/profile/13512893992219685596noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-82670798777210778572015-01-07T15:43:21.407-08:002015-01-07T15:43:21.407-08:00Michael,
That's a really interesting take I h...Michael,<br /><br />That's a really interesting take I had not given any thought to. The relation to types goes both ways - one can use live data to infer types, and use types to generate exemplar data. And one can use tests to generate data. Your suggestion adds to that by letting types help generate tests.Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-66578839507060064972015-01-07T08:34:13.990-08:002015-01-07T08:34:13.990-08:00I've been pondering your points and the relate...I've been pondering your points and the related topics for a while (obviously, given the article date). <br /><br />I wonder about the possibility of extending the notion of a time-traveling debugger-as-editor to include the future by using aspects type inference and QuickCheck-like property testing. I have a hazy vision of defining a method body, the system suggesting property tests based on the inferred types as I do so, and, myself, then refining the tests--all in a very tight think, make, explore loop.<br /><br />Could optional/gradual typing, then, simply be a means of refining the type-inferred property tests?Michaelhttps://www.blogger.com/profile/00608142096981844135noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-32392813449029594292013-12-22T05:44:50.568-08:002013-12-22T05:44:50.568-08:00A bit late to this thread but you might be interes...A bit late to this thread but you might be interested in the work we have done in the recording & playback of partial software execution behavior in the form of a near real-time discrete event simulation engine that recreates an alternative runtime universe for one or more JVMs.<br /><br />http://www.jinspired.com/products/simz<br /><br />The following two articles give a good idea of the approach taken and the benefits it has afforded.<br /><br />http://www.jinspired.com/site/mirroring-mindreading-and-simulation-of-the-java-virtual-machine<br /><br />http://www.jinspired.com/site/changing-space-and-time-in-software-execution-the-future-is-simulated<br /><br />One of the challenges that faced previous incarnations of somewhat similar goals of recording & playback was performance overhead which we addressed via an adaptive profiling (filtering) mechanism that automatically determines the essence of the execution. This has allowed us to apply this simulation on a much grander scale in terms of parallelism and distribution. At least that is what I believe our benchmark and real-world usage demonstrates.Unknownhttps://www.blogger.com/profile/00414063535114178838noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-12722150496749678052012-11-19T16:07:35.054-08:002012-11-19T16:07:35.054-08:00stuaxo:
Yes, there are several such systems and p...stuaxo:<br /><br />Yes, there are several such systems and people keep pointing me at more. The challenge remains to get these to perform well enough during execution and perform well on interesting queries. The two tend to trade off against each other. Also, many of the replay tools just don't support nice interaction and sophisticated queries. That said, we need more developers aware and asking for this to drive progress and adoption.Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-86618029507472372392012-11-19T14:37:29.896-08:002012-11-19T14:37:29.896-08:00I'm pretty sure some console emulators impleme...I'm pretty sure some console emulators implement drainsing by keeping state periodically and the changes inbetween stuaxohttps://www.blogger.com/profile/08755227063937859112noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-64039735471434774692012-11-18T17:21:52.039-08:002012-11-18T17:21:52.039-08:00Heath: Took a look at the GDB link, thanks. This i...Heath: Took a look at the GDB link, thanks. This is progress, though Linux only. The usual issues of speed & size come up, as well as the question of how to query the history effectively.<br /><br />I know that .Net supports what it calls historical debugging, and there are commercial Eclipse based tools as well. And there are several research papers I'm aware of.<br /><br />I think that part of the reason we have not seen this become standard practice is that there are still challenges in terms of performance and UI. I hope to study further examples to get a good sense of how well the various systems out there work and what is needed to get this to be standard practice.<br /><br />Most important, we need to build awareness of the potential, so programmers demand this as basic right.Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-11331597344765720492012-11-18T12:29:30.258-08:002012-11-18T12:29:30.258-08:00Steve:
Yes I do have a reference:
A Demon of Our...Steve:<br /><br />Yes I do have a reference:<br /><br />A Demon of Our Own Design, by Richard Bookstaber. AT page 43 there is a section entitled "The APL Cult".<br /><br />In many ways it is a fine book, though I'm not quite done with it. However, that particular section is a lesson in what happens when even very smart people get out of their depth. The comments on interpretive languages (an inane concept to begin with) are utter nonsense, especially wrt loops. It is clear that the distinction between implementation and language was lost on the author.<br /><br />That said, APL is a terrible notation for iteration, and it may be that this was a real problem in that context (using the A+ dialect of APL I gather).<br /><br />http://www.amazon.com/Demon-Our-Own-Design-Innovation/dp/0470393750/ref=sr_1_1?ie=UTF8&qid=1353269649&sr=8-1&keywords=bookstaber+richardGilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-55828322094083872522012-11-18T11:36:55.307-08:002012-11-18T11:36:55.307-08:00Gilad: "I've even read arguments that exc...Gilad: "I've even read arguments that excessive use of APL contributed to the crash but I'm skeptical." Do you have a reference for that?<br /><br />I know of one large investment bank that implemented its credit risk management system in Smalltalk, and emerged from the crisis relatively unscathed. Another used Objective-C, and suffered very badly. For interesting historical reasons many of these systems are not built using mainstream software technologies, but I haven't come across APL (I have seen K, but its use was deprecated years before these events unfolded). Of course no programming language can seriously be considered responsible for a large-scale systemic failure, although people are always looking for scapegoats.<br /><br />Deliberate and accidental subversions of intent play a large role in human folly. I agree it will never be eliminated, but an important goal of language design is to reduce errors and clarify intent. Steve Warthttps://www.blogger.com/profile/11504652590059785955noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-77597323069791974002012-11-18T08:04:08.871-08:002012-11-18T08:04:08.871-08:00Sean:
Looking forward to it.Sean:<br /><br />Looking forward to it.Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-64326393850554384602012-11-18T08:02:41.861-08:002012-11-18T08:02:41.861-08:00Jason:
I have reservations about multiple notatio...Jason:<br /><br />I have reservations about multiple notations, but I do agree with adding constraints gradually. These two considerations imply a minimum of built-in constraints in the language, and rich tool support to gently and controllably highlight potential errors.<br /><br />An example is optional typing. More generally, in Dart, we've changed most compilation errors to warnings for this reason - so as to avoid constricting the programmer's workflow.Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-19472318484691717382012-11-18T07:29:37.552-08:002012-11-18T07:29:37.552-08:00I've been working in this area for more 5 year...I've been working in this area for more 5 years now, its nice to see it start getting more attention. To be honest, I was kind of miffed when I first saw Bret's talk, but he brought a lot of new UX/PX ideas that really shined some light on the problem. I agree that the barriers are not really technical, though I'm not unconvinced that programming model changes won't be needed. <br /><br />I expect some interesting discussions two weeks from now. Sean McDirmidhttps://www.blogger.com/profile/16610011228675377563noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-22423437523945338922012-11-18T07:29:06.993-08:002012-11-18T07:29:06.993-08:00This comment has been removed by the author.Sean McDirmidhttps://www.blogger.com/profile/16610011228675377563noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-19221667120386568772012-11-17T21:50:14.773-08:002012-11-17T21:50:14.773-08:00I think we can take inspiration from other creativ...I think we can take inspiration from other creative endeavors. In many ways, it's important to think about the process of going from idea (sketching) to completion (finishing). Since I'm a music guy I'll use that as an example.<br /><br />When creating a new pieces of music (let's say for publication), the final format is going to some software similar to type-setting (like Finale or Sibelius). But when you first start working on the idea, you're likely not working on it in Finale/Sibelius as that is too final, it's too inflexible. First you may sit at a piano and simply sketch out some words, chords, melodies onto some manuscript paper. Then you may move ideas around as you start to get the shape of the tune together. Then when the idea has come together, you can put it into final notation and star the finishing process (polishing). <br /><br />Of course, I'm sure I could use a building/construction analogy as well, but those are over-used :). <br /><br />The challenge I see with some programming languages, is that you are using the same language with the same rigid constraints to do your sketching as you will use to do put together the final form. In many ways, I think this just makes it harder to sketch. It becomes more difficult to rapidly try out a bunch of different ideas and throw out the ones that don't work. <br /><br />What I find intriguing in the paper you link to (on Gradual Abstraction) is the idea that, over time, you can introduce more constraints as you come closer to the final form. When you are still sketching, the things that aid you in finalizing the design are hindrances. So why not simply remove those constraints while you are sketching out your ideas?Jason Olsonhttps://www.blogger.com/profile/09506042673601435668noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-69631585892770955562012-11-17T21:05:28.986-08:002012-11-17T21:05:28.986-08:00GDB supports reverse debugging.<a href="http://www.sourceware.org/gdb/wiki/ProcessRecord/Tutorial" rel="nofollow">GDB supports reverse debugging.</a>Heathhttps://www.blogger.com/profile/16219966444108277892noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-11325119015297566862012-11-17T20:52:28.368-08:002012-11-17T20:52:28.368-08:00There is nothing wrong with the concept of the spr...There is nothing wrong with the concept of the spreadsheet but there is plenty wrong with Excel and its ilk. Over reliance on these is a recipe for disaster, but it is as much symptom as cause.<br /><br />I've even read arguments that excessive use of APL contributed to the crash but I'm skeptical.<br /><br />I am confident human folly will continue regardless of what PLs and tools we come up with. The fact that better tools are not accepted is rooted in that folly - not the other way around.<br /><br /><br /><br />Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-12966132574517470602012-11-17T18:49:45.869-08:002012-11-17T18:49:45.869-08:00Document-oriented storage of data is the problem, ...Document-oriented storage of data is the problem, not the concept of a spreadsheet.<br /><br />In late 2006 it was common practice at major investment banks to use Excel to store the risk parameters for credit derivatives, each trading desk having its own format. Needless to say this was out of control, and it still is.<br /><br />What happened next was perhaps not entirely the blame of the lowly spreadsheet, but it was predictable and it cost millions of people their jobs and livelihoods.<br /><br />There is really a critical social need for high-quality tools that do not lock companies into proprietary data formats. If management isn't receptive, they can be replaced :)Steve Warthttps://www.blogger.com/profile/11504652590059785955noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-46919383558505902152012-11-17T16:12:46.519-08:002012-11-17T16:12:46.519-08:00Spreadsheets are unmaintainable and error-prone be...Spreadsheets are unmaintainable and error-prone because the formulae are hidden and can be overridden with fixed data at any time. However, <a href="http://en.wikipedia.org/wiki/Lotus_Improv" rel="nofollow">Lotus Improv</a> solved that problem back in 1991 already, and <a href="http://quantrix.com" rel="nofollow">Quantrix Modeler</a> provides the same solution today, with many modern bells and whistles. Unfortunately, though Quantrix is very enjoyable to use, it's proprietary and pricey (though you can get a 30-day free trial). If someone could put together some open-source competition for it (perhaps on top of a LibreOffice engine), it would have the potential to transform the spreadsheet world forever.John Cowanhttps://www.blogger.com/profile/11452247999156925669noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-87442630936727938592012-11-17T11:47:50.664-08:002012-11-17T11:47:50.664-08:00Craig,
Progress in PLs is gated not by technology...Craig,<br /><br />Progress in PLs is gated not by technology but by people. PLs (an dthe tools around them, like IDEs and debuggers) are cultural artifacts, and they change slowly simply because humans have difficulty dealing with more rapid change - often to the point they simply refuse to change even if it is in their own interest.<br /><br />So the biggest change is simply generational. What some managers at Sun could not digets in 2004 say, may become digestible in a another place and time.<br /><br />Of course, technical solutions help, but this area has mainly languished due to people failing to appreciate it.<br /><br />I do believe that the mainstream is moving forward, ever so slowly. Gilad Brachahttps://www.blogger.com/profile/17934280339206214042noreply@blogger.comtag:blogger.com,1999:blog-2447174102813539049.post-53720044219372641472012-11-17T11:10:52.517-08:002012-11-17T11:10:52.517-08:00Hi Gilad-- You say that when you tried to interest...Hi Gilad-- You say that when you tried to interest your management in back-in-time debugging, you were met with predictable disinterest, and what work has been done has languished from expense. Yet you seem convinced that the tide will turn. What are some visions you have about that? Is it simply that the expense goes down, or (I hope) do you also imagine other pivotal developments?Craighttps://www.blogger.com/profile/12641614221336024618noreply@blogger.com