From: "M. Edward (Ed) Borasky" Date: 2006-07-05T07:46:44+09:00 Subject: Re: ed borasky and his second favourite programming language Phil Tomson wrote: > However, having some experience with creating DSLs for describing and > simulating quantum circuits [QDL] and for RTL/behavioral level > description/simulation [RHDL], Ihave the suspicion that Ruby is > flexible enough such that we could create some domain specific > languages with it (where the domains can be science and math). It > would be cool to create several little specialized languages in Ruby > so that we could have the 'best of both worlds' - good for specialized > domains while also being good at solving general propgramming > problems. One can imagine that we could create a specialized language > using Ruby that could be every bit as useful as R for statistics, for > example. Useful, sure ... as fast as, as well supported by "professional statisticians" ... that I rather doubt. Languages -- both human and programming -- co-evolve within a community of creators and users. R co-evolved in a community of statisticians with a highly numerical approach. Maxima co-evolved in a community of scientists with lots of symbolic math to do, mostly having to do with the physics of nuclear energy. It's pretty clear to me that Rails co-evolved in a community of web application designers and users, but I'm not sure about Ruby -- I'm a latecomer to Ruby. > > Also, one can imagine that we could perhaps create something very new > given Ruby's strengths right now (Rails and web programming in > general): The web-enabled research paper. When I was working on my > master's thesis I kept thinking that it would be great if I could not > only read the reference papers, but also access their experimental > data seamlessly. And perhaps not only the data , but also the > programs used to generate that data. What if graphs in a web-enabled > research paper were not just graphs, but you could also 'push-into' > them and access the underlying data? It would make it easy to then > compare data from other research in your own paper. crazy idea? > Couldn't a mashup of web programming and sci-research-languages lead > to a new level of collaboration? Could ... and ... (pregnant pause) has. Donald Knuth calls this "literate programming." In the Python universe, it's well supported by Ed Ream's "Leo" editor (http://webpages.charter.net/edreamleo/front.html). R has literate programming "built in" using something called "SWeave". See http://www.bepress.com/bioconductor/paper2 for some pointers. I have quite a few links stashed away on literate programming, mostly in R. I haven't taken the time to do a search for literate programming in the Ruby context, but I'm sure it's there. > > For example: my master's thesis is up on the web in a pdf. A couple > of weeks ago someone doing similar research sent me some questions > about it and asked for more info. What if instead of a static pdf, my > thesis was a web app? The person who was sending the inquiry could > have clicked on the graph in question and downloaded the data used to > create the graph as well as the program used to create the data. They > could have then gone on to modify the algorithm used in the program > somewhat to test their theory and then 'publish' the results back to > the web app (or perhaps post their own web app). Maybe it would work > something like a wiki so that the research continues to grow on one > site? That could certainly lead to a new level of collaboration. Axiom is another language that's heavily into literate programming and in fact has a wiki as its main portal. http://wiki.axiom-developer.org/FrontPage > > ...just brainstorming... Amazing, isn't it? "Not even the tread of mighty armies can stop an idea whose time has come." :) -- M. Edward (Ed) Borasky http://linuxcapacityplanning.com