Giter Site home page Giter Site logo

Differences with Pollen? about prose HOT 6 CLOSED

classicrob avatar classicrob commented on August 26, 2024
Differences with Pollen?

from prose.

Comments (6)

JeremS avatar JeremS commented on August 26, 2024

Hi @classicrob,

There are indeed several differences between the two projects. Before I delve into them, note that if Pollen inspired me in writing Prose, I haven't used Pollen and I don't use Racket either. So this comparison is to be taken with a grain of salt.

The differrences

In essence both tools provide convenient syntax when writing programs that generate data. The use case the most presented for this syntax is the writing of mostly textual programs that generate textual documents I.e. web pages, books... The idea is to have static text in which you use a special syntax to embed code. This code serves to either mark specific parts (titles, links, etc...) like HTML does or dynamically generate part of the final document (think of a table generated from data in a database for instance) like template systems do.

In the case of Prose Clojure is embedded, in the case of Pollen Racket is. This means that you have access to Clojure's ecosystem with Prose, Racket's with Pollen. The language difference doesn't stop at the libraries you can use, booth tools present differences in how they are implemented. For instance both tools represent documents as trees in memory but where Pollen represents documents using X-expressions, Prose uses maps and seqs like enlive or hickory.

The scope of both projects also differ. While Prose provides APIs to read, execute, and output documents, Pollen provides that and more. It comes with a suite of tools to generate websites and its author refers to it as a publishing system. The author has published several books using it.

When choosing which tool to use you may consider what language you prefer, if there are specific libraries you want to use available in one system and not the other, whether the additional tools Pollen provides are useful to you or not. There are also other similar tools if you want to look at more options, Skribilo is one.

Some notebooks considerations

When I think of hyperlinked notes and your example, I think of tools like Roam Research, Athens Research or Logseq. One way to categorize the functionality of these tools is as follow:

  • you can write notes based on different syntaxes (Logseq uses Markdown and Orgmode I believe)
  • you get the processing of the data in these notes to generates documents, knowledge graphs, bi-directional links, etc...

Pollen and Prose may indeed be used to provide the syntax you write your notes in. There are trade offs involved off course, Pollen like syntax isn't as concise as Markdown, but adding new syntax in Pollen just requires adding a new function where you need to start by changing a parser in Markdown.

Prose (for sure) and Pollen (to my knowledge) don't provide the rest of the notebook functionality. Maybe the extra tools Pollen has when it comes to publishing are a good start toward what you want. However I am not confident these extra tools will allow for an easy way to recover the notebook functionality.

If you want to use something Prose like you'll need bridge to something or code something yourself for the notebook stuff.

I hope this helps. Cheers,

from prose.

classicrob avatar classicrob commented on August 26, 2024

This is very helpful, thank you! I assumed hypertext notebook functionality like showing backlinks would require custom coding regardless of whether I used Pollen or Prose. So am I correct from my reading of your explanation that if I want to turn this into a website (which I do), there would be a few extra steps involved to using Prose that I wouldn't have to use in Pollen?

from prose.

JeremS avatar JeremS commented on August 26, 2024

I have studied Pollen to get a sense of its syntax and it implementation. I only read in the docs the parts that helped me get a sense on how I could embed Clojure in plain text. Beyond that I don't know Pollen very well. I know there is functionality beyond what Prose provides. Whether that functionality will be a good fit for your use case I don't know.

from prose.

classicrob avatar classicrob commented on August 26, 2024

I guess I'm just trying to figure out... let's say that I'm capable of writing functions for Prose to create markup and syntax within it. Let's say I use the HTML compiler to turn the source into HTML. If I want to turn to publish it on a website, what comes next?

from prose.

JeremS avatar JeremS commented on August 26, 2024

To be honest we are going off of the Prose topic. What comes next is you host your HTML someplace accessible from the web, same process you went through with your current website. Again at this point this is outside of what Prose provides.

Cheers,

from prose.

classicrob avatar classicrob commented on August 26, 2024

Fair enough. I appreciate you answering my questions... feel free to tell me to shut up, I just find Prose fascinating and would prefer to work with that if I can figure out a few parts of it.

I'm still trying to explore the advantages of Clojure ecosystem with Prose then... How could you see Prose working with Reagent?

from prose.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.