From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Allen S. Rout" Newsgroups: gmane.emacs.devel Subject: Re: Differences between Org-Mode and Hyperbole Date: Fri, 1 Jul 2016 19:01:47 -0400 Message-ID: References: <87h9cdmj6t.fsf@delle7240.chemeng.ucl.ac.uk> <5775A512.4020803@gmail.com> <8337ntvm2d.fsf@gnu.org> <87h9c9lqll.fsf@ericabrahamsen.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1467414214 22491 80.91.229.3 (1 Jul 2016 23:03:34 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 1 Jul 2016 23:03:34 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jul 02 01:03:22 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bJ7Sy-0007PJ-W7 for ged-emacs-devel@m.gmane.org; Sat, 02 Jul 2016 01:03:21 +0200 Original-Received: from localhost ([::1]:36119 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bJ7Sv-0001wa-18 for ged-emacs-devel@m.gmane.org; Fri, 01 Jul 2016 19:03:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47489) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bJ7SH-0001wU-1T for emacs-devel@gnu.org; Fri, 01 Jul 2016 19:02:38 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bJ7SD-0000L2-Sz for emacs-devel@gnu.org; Fri, 01 Jul 2016 19:02:37 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:35628) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bJ7SD-0000Kp-MV for emacs-devel@gnu.org; Fri, 01 Jul 2016 19:02:33 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1bJ7SA-0006jX-Rp for emacs-devel@gnu.org; Sat, 02 Jul 2016 01:02:31 +0200 Original-Received: from host-128-227-126-159.xlate.ufl.edu ([128.227.126.159]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 02 Jul 2016 01:02:30 +0200 Original-Received: from asr by host-128-227-126-159.xlate.ufl.edu with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 02 Jul 2016 01:02:30 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 68 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: host-128-227-126-159.xlate.ufl.edu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:205065 Archived-At: On 07/01/2016 06:09 PM, Richard Stallman wrote: > > > > 3. Babel. I don't use this, but it's obviously a really, really powerful > > feature that users cannot find elsewhere. [...] > > What is Babel? > Babel is a facility that lets a document author include pieces of code in a document, which may be used either as their text ("Here is the code I mean") or as their results. ("Here is the output of that code") or both. Taking a recent example I used at work: I was attempting to articulate a system architecture. I enjoy doing this in graphviz. I created a section of my document that was a dot input #+BEGIN_SRC dot :file fedam.png :cmdline -Kdot -Tpng digraph fedam { // graph from left to right splines=true; node [shape=box]; edge [arrowhead=none,arrowtail=none]; [....] #+END_SRC and the babel facility of org took that 'dot document' which I had written, and inserted the result of 'compiling' that source code. If my goals had included demonstrating the features of graphviz, I could have changed some of the declaration, and also displayed the dot source. The result is analogous to: LaTeX source file including an image. dot source file in which the source for the image is recorded Makefile recording the dependency between the files. This is the use which is most relevant from the perspective of a technical document author, but babel goes further: it defines calling conventions so that one can pass values from one code block to another. This enables one to write a code path which uses, for example from my own history: PERL to preprocess; shell to fiddle with files; and R to collate, analyze and generate graphics. This is all in one document, with the ability to generate and retain intermediate results if one so desires. Many languages all trying to work together as one. Babel. There is nothing there that couldn't be written with a bunch of compilers and a makefile. But expressing them as a single, literate-programming document is -profoundly- more accessible, especially to folks who might not think of themselves as systems integrators. This polyglot facility is an important reason that Org is very useful to the 'reproducible research' folks. http://orgmode.org/worg/org-contrib/babel/ - Allen S. Rout