Yeah this would be awesome, but sadly representing Clojure code as data is as 
hard as representing Java.
All the reader macros make it a nightmare, and the closest thing you'll get is 
tools.analyzer AST nodes.

Session is certainly a step in the right direction, and I wish more people 
would embrace it,
but it works on text as well. Same pretty much goes for codeq, if that is not 
dead.

One could define a Clojure subset that is valid EDN though,
which would make everything from serialisable functions to a nano-pass compiler 
a lot easier.
This has to be the first step imho.

Cheers Jan

> On 14 Nov 2014, at 17:09, atucker <agjf.tuc...@gmail.com> wrote:
> re
> As I understand it, Session <https://github.com/kovasb/session> and codeq 
> <https://github.com/Datomic/codeq> are tools that somehow keep your code in a 
> database instead of plain text.
> 
> On Friday, 14 November 2014 12:42:57 UTC, Thomas Huber wrote:
> Hi, here is an idea that has been in my mind for a while. I wonder what you 
> think about it.
> 
> In Clojure code is data, right? But when we program we manipulate flat text 
> files, not the data directly.
> Imagine your source code where a data structure (in memory). And programming 
> is done by manipulating this data structure. No text editor and text files 
> involved. 
> Your editor directly manipulates the source data and later saves it on disk 
> (maybe as a text file). 
> 
> These are the benefits I can think of:
>  - It enables you to use any Clojure function to manipulate your source 
> „code“. Giving you hole new opportunities for refactoring.This functions can 
> be provides as library. 
> 
> - Really nice auto complete. 
> 
> - Visual programming. Source code can be represented in many different ways 
> (not just text) . The easiest example I can think of is color. It can be 
> represented as text of course (#23FF02)
> but that’s a quite bad interface for humans. Why not display the actual color 
> and provide a color picker? Or what about music notes? Or Math formulars? Or 
> what about a tree view to move and rename functions like files? 
> This could all be implemented in a way that every library can ship there own 
> „views“. I think this „views“ are basically macros that are not limited to 
> text. 
> 
> - You don’t have to worry that you text files are in the same state as your 
> JVM (when developing interactive). You only work on your sourcedata and it 
> gets loaded into the JVM automatically.
> 
> - Answer questions about your source code. What is the most called function? 
> Who depends on this namespace? Where is this function used? What is the 
> biggest function? Thinks like that become easy. Again you can ship this 
> queries as a library.
> 
> 
> 
> The drawback is you can’t simply program using any text editor. You need a 
> special tool. But we have that anyway (syntax highlighting, paredit etc.). 
> Nobody programs using a bare text editor. 
> 
> Maybe this idea is not new? What do you think?
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en 
> <http://groups.google.com/group/clojure?hl=en>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com 
> <mailto:clojure+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to