To ProseLint or to Vale?

What is linting?

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.

To ProseLint or To Vale

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 Cons
Consistent Not extensible
Authoritative Not markup-aware
Comprehensive Requires Python and pip
Based on existing sources of advice Less common license

Vale

Pros Cons
Extensible Less consistent
Markup-aware Less authoritative
Multiple options to install Requires YAML
Supports popular style guides May have conflicting or overlapping rules
Has a web interface  
More common license  

The conclusion

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.