# jq

> programming language for JSON

**Wikidata**: [Q115959735](https://www.wikidata.org/wiki/Q115959735)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Jq_(programming_language))  
**Source**: https://4ort.xyz/entity/jq

## Summary
**jq** is a functional, very high-level programming language and command-line tool designed specifically for processing and manipulating JSON data. Created by Stephen Dolan in 2012, it enables users to filter, map, and transform structured text data efficiently. The language supports tacit programming and is widely utilized for parsing binary file formats through related tools like fq.

## Key Facts
- **Entity Type:** Functional programming language, command-line tool, and very high-level programming language.
- **Primary Purpose:** Designed as a programming language for JSON.
- **Developer:** Stephen Dolan.
- **Inception Date:** August 21, 2012.
- **Latest Stable Version:** 1.8.1 (released July 1, 2025).
- **Programming Paradigms:** Functional programming and tacit programming.
- **Version History:** Notable releases include 1.3 (2013), 1.5 (2015), 1.6 (2018), and the 1.7 series (2023).
- **Related Tools:** fq, an open-source tool for parsing binary file formats.

## FAQs
### Q: What programming paradigms does jq use?
A: jq utilizes functional programming principles and supports tacit programming. It is classified as a very high-level programming language, abstracting complex implementation details from the user.

### Q: Who created jq and when was it released?
A: jq was developed by Stephen Dolan. The project inception date is August 21, 2012, with the first stable version (1.3) released on May 19, 2013.

### Q: What are the recent updates for jq?
A: Recent development includes the release of version 1.7 in September 2023, version 1.7.1 in December 2023, and version 1.8.1 scheduled for July 1, 2025.

## Why It Matters
jq occupies a critical niche in modern software development and data processing as the standard tool for interacting with JSON data via the command line. As a very high-level programming language, it allows developers and system administrators to perform complex queries, filters, and transformations on large datasets without writing verbose boilerplate code typical of general-purpose languages. Its adherence to functional programming paradigms ensures that operations are predictable and stateless, which is essential for reliable data pipelines.

The tool's significance is highlighted by its longevity and active development cycle, spanning from 2012 to present (with releases projected into 2025). It serves as the foundation for other specialized tools, such as `fq`, which extends jq's syntax to binary file formats. By providing a specialized syntax for JSON manipulation, jq solves the friction of parsing API responses and configuration files, making it an indispensable utility in DevOps, web development, and data engineering contexts.

## Notable For
- **Specialized JSON Processing:** Distinct from general-purpose languages, it is optimized specifically for the JSON data format.
- **Tacit Programming:** Supports point-free (tacit) programming styles, allowing for concise function composition.
- **Command-Line Utility:** Functions as a powerful standalone command-line tool rather than requiring a larger runtime environment.
- **Active Development:** Demonstrates a long-term commitment to maintenance, with stable releases spanning over a decade (2013–2025).
- **Extensibility:** Its paradigm has influenced the creation of derivative tools like `fq` for binary parsing.

## Body
### Origins and Classification
jq was created by **Stephen Dolan** with an inception date of **August 21, 2012**. It is classified as a **functional programming language** and a **very high-level programming language**. Unlike general-purpose scripting languages, jq is optimized for text processing and transformation, specifically targeting JSON structures. It functions as a **command-line tool**, allowing for direct integration into shell scripts and data pipelines.

### Technical Paradigms
The language strictly adheres to **functional programming** methodologies. This ensures that data flows through filters and transformations without side effects. Additionally, jq supports **tacit programming** (or point-free style), where functions are composed without explicitly naming their arguments, resulting in highly concise and expressive code.

### Version History and Timeline
The development of jq has been marked by a series of stable releases that introduce new features and optimizations over more than a decade:

- **2013:** The first recorded stable version, **1.3**, was released on May 19.
- **2014:** Version **1.4** arrived on June 9.
- **2015:** A significant update, version **1.5**, was released on August 16.
- **2018:** Version **1.6** was issued on November 2.
- **2023:** The project saw renewed activity with **1.7** released on September 7, followed by a patch, **1.7.1**, on December 13.
- **2025:** The roadmap includes version **1.8.1**, noted as a stable release for July 1.

### Ecosystem and Related Tools
The utility of jq's syntax extends beyond JSON. A related entity, **fq**, is listed as an open-source software tool for parsing binary file formats. fq leverages the concepts established by jq to apply similar querying techniques to non-textual data. The language maintains a presence on Rosetta Code (Category:Jq) and has Wikipedia entries in English, Chinese, and Czech.

## References

1. [Source](https://jqlang.github.io/jq/)
2. [Release jq 1.5](https://github.com/jqlang/jq/releases/tag/jq-1.5)
3. [Release jq 1.6](https://github.com/jqlang/jq/releases/tag/jq-1.6)
4. [Release jq 1.7](https://github.com/jqlang/jq/releases/tag/jq-1.7)
5. [Release jq 1.7.1](https://github.com/jqlang/jq/releases/tag/jq-1.7.1)
6. [Source](https://github.com/jqlang/jq/blob/master/NEWS.md)