Make.ts

Deno/TypeScript Scripting vs Alternatives

  • Several commenters see Deno (and TS) as an excellent scripting environment: easy imports by file path, single-file scripts with dependencies, good tooling; some claim it’s “much better than shell” and notably better than Python for this.
  • Counterpoint: some dislike TS syntax for scripting (async/await noise, JS warts) and argue Python (especially with uv script dependencies) or PowerShell can serve the same role.
  • Other JS/TS-based tools mentioned: zx, Bun’s shell, Dax (used in the article), and custom languages like Rad built explicitly for CLIs.

Shell, Bash, and Longevity

  • One camp: shell is great for one-liners and process composition but becomes painful with conditionals, loops, and string handling.
  • Others defend Bash (or POSIX sh) as the most robust “glue” long-term: ubiquitous, still running decades later, and fine if you know its pitfalls and use tools like ShellCheck.
  • Cross‑platform scripts are highlighted as tricky: differences across Linux/macOS/Windows and non-standard utilities (e.g., uuidgen).

What “Make.ts” Is (and Isn’t)

  • Some initially assume it’s a Make replacement; others clarify it’s really “a consistent scratchpad file for commands,” not dependency-tracked builds.
  • Debate over whether this is over‑engineering versus just putting commands in .sh files or a Makefile; critics say the stated use case (avoiding shell history) doesn’t justify TS + Deno.

Task Runners and Entry Points

  • Alternatives discussed: Make, Just, mise (tasks + runtimes), npm/deno “scripts/tasks,” and project‑local TS/JS/Bash files.
  • Many prefer a single recognizable entrypoint (Makefile, Justfile, package.json, mise.toml) over ad‑hoc scripts scattered around.

History and Shell UX Aids

  • Several suggest improving shell/history instead of switching languages: fzf (fuzzy history search), atuin (global history sync), zoxide, fd, ripgrep.
  • Others mention readline/zsh shortcuts to edit the current command in an editor and then execute it.

Versioning and “Proper” Scripts

  • Tension between treating these scripts as personal, ephemeral tools (hard‑coded paths, secrets, workflow assumptions) vs. checking them into git and sharing.
  • Some advocate a two‑tier approach: scratch scripts vs. promoted, documented tasks.

Meta: Human vs LLM Writing

  • Multiple commenters appreciate the post’s clearly human, opinionated, concise style and contrast it with formulaic “AI slop,” reflecting growing sensitivity to LLM‑generated content.