Eval in Racket: A Powerful Tool, But Use with Caution

2025-05-30

This article delves into the advantages and disadvantages of the `eval` function in dynamic languages, particularly its use in Racket. Using vivid analogies, the author compares `eval` to relaying instructions to another person, highlighting how its use increases program complexity and reduces understandability due to language translation and environmental dependencies. While acknowledging that `eval` is sometimes necessary, such as when interacting with external systems, the author emphasizes the need for cautious use and clear context definition. In Racket, `eval`'s behavior is heavily influenced by the execution environment, demanding careful namespace management. Ultimately, `eval` is a powerful tool, but one that demands careful and considered application.

Read more
Development dynamic languages

Racket v8.17 Released: Performance Boosts and New Features

2025-05-17

Racket programming language version 8.17 is now available! This release boasts numerous improvements, including a slimmed-down DrRacket core package, Typed Racket support for treelists, an enhanced package manager, increased precision for numeric functions, and Windows terminal mouse event support. Additionally, the HTTP client, JSON handling, and Redex library have received optimizations. This update is a testament to the vibrant Racket community, with contributions from many developers.

Read more
Development