To ProseLint or To Vale?
Writing clear, concise, and consistent prose is not an easy task. Whether you are writing a blog post, a technical document, a marketing copy, or a novel, you need to follow some rules and guidelines to ensure your writing is effective and engaging. However, keeping track of all the rules and guidelines can be overwhelming and time-consuming. That’s why you need a linter for your prose.
A linter is a tool that checks your writing for spelling, grammar, style, and other issues. It can help you improve your writing quality, avoid common errors, and adhere to a specific style guide. There are many linters available for prose, but not all of them are created equal. In this blog post, I will compare two popular open-source linters for prose: proselint and vale. I will highlight their features, strengths, weaknesses, and use cases, and help you decide which one is the best fit for your needs.
What is Proselint?
Proselint is a linter that places the world’s greatest writers and editors by your side, where they whisper suggestions on how to improve your prose. Proselint is written in Python and works with plain text files. You can install it using pip and run it from the command line or integrate it with your editor of choice.
What is Vale?
Vale is a linter that brings code-like linting to prose. It’s fast, cross-platform (Windows, macOS, and Linux), and highly customizable. Vale is written in Go and works as a stand-alone binary. You can download it from the official website and run it from the command line or integrate it with your editor or build tool of choice.
Proselint vs. Vale: The Comparison
Extensibility
Proselint is not very extensible, as it has a fixed set of rules that are hard-coded in Python. You cannot create your own rules or styles, or modify the existing ones. You can only enable or disable some of the rules using a configuration file. Proselint is more consistent and authoritative, but less flexible and customizable.
Vale is very extensible, as it allows you to create your own rules and styles using YAML, a human-readable data format. You can define the scope, level, message, and logic of each rule, and apply them to different sections or files using glob patterns. You can also use one of the many existing packages that implement popular style guides, or extend them with your own rules. Vale is more flexible and customizable, but less consistent and authoritative.
Markup support
Proselint does not support any markup format, and only works with plain text files. Now that was a bummer for me. This means that I would have to preprocess my documents before using proselint, and that proselint may generate false positives or negatives if my documents contain code blocks or other non-prose elements.
Vale supports various markup formats, such as Markdown, AsciiDoc, HTML, and XML, and can intelligently exclude code blocks and other non-prose elements from linting. Vale also has a rich understanding of the syntax and structure of each format, and can apply different rules to different elements, such as headings, lists, links, etc.
Installation and usage
Proselint requires Python and pip, which may not be available or convenient for some users. You have to install proselint using pip, and then run it from the command line or integrate it with your editor of choice. Proselint has plugins for some popular editors, such as Atom, Sublime Text, and VS Code.
Vale does not require any external dependencies, and works as a stand-alone binary. You can download the latest version of vale from the official website, and then run it from the command line or integrate it with your editor or build tool of choice. Vale has plugins for some popular editors, such as Atom, Sublime Text, VS Code, and Vim. Vale also has a web-based interface called Vale Studio, which offers a graphical way to create and test your rules and styles.
License
Proselint is licensed under the BSD 3-Clause license, which is a permissive but less common open-source license.
Vale is licensed under the MIT license, which is a permissive and widely used open-source license.
Both linters allow you to use, modify, and distribute them, as long as you retain the original license and attribution. They also disclaim any warranty and liability for vale.
Proselint vs. Vale: The Verdict
Proselint and vale are both great tools that can help you improve your writing by checking for spelling, grammar, style, and other issues. However, they have some differences in their features, implementation, and usage. Here is a brief summary of their pros and cons:
Proselint
Pros:
- Consistent
- Authoritative
- Comprehensive
- Based on existing sources of advice.
Cons
- Not extensible
- Not markup-aware
- Requires Python and pip, less common license.
Vale
Pros
- Extensible
- Markup-aware
- Easy to install and use
- Supports popular style guides
- Has a web interface
- More common license.
Cons
- Less consistent
- Less authoritative
- Requires YAML
- May have conflicting or overlapping rules.
The best linter for your prose depends on your specific needs and preferences. If you want a linter that follows a fixed set of rules based on the wisdom of the world’s greatest writers and editors, and you don’t mind installing Python and pip, then proselint may be the right choice for you.
If you want a linter that allows you to create or modify your own rules and styles, and you prefer a stand-alone binary that can handle different markup formats, then vale may be the right choice for you.
I hope this blog helps you choose the best linter for your prose.