logoalt Hacker News

saysjonathantoday at 10:33 AM1 replyview on HN

Tangential:

I would love to see more interpreted languages offer shells with native constructs for operating as daily drivers shells (not just REPLs). When I first started learning Ruby I used `rush`[0] as my main shell. Being immersed in the language, even if there were a few helpers for shell operations, really helped me reason better about Ruby and think in the language. `scsh`[1] was enlightening as well. Ultimately the ergonomics of both pushed me back to more conventional variant but they were really helpful learning mechanisms.

0: https://github.com/adamwiggins/rush 1: https://github.com/scheme/scsh


Replies

twictoday at 12:38 PM

Not sure if this is related, but i'd love to see more scripting languages (mostly Python) offer facilities which let them take over from shell script for more scripts and one-liners.

Think about what it would take to write this in Python right now:

  for wmv_file in $(find $1 -name '*.wmv'); do
    echo -n "${wmv_file} "
    ffmpeg -i $wmv_file ${wmv_file%.wmv}.mpg 2>&1 | grep kb/s: || echo "ERROR $?"
  done
With a few handy variables and functions predefined, this could be something like:

  for wmv_file in find(argv[1], glob="\*.wmv"):
    print(wmv_file, end=" ")
    result = do("ffmpeg", "-i", wmv_file, basename(wmv_file, ".wmv") + ".mpg")
    if result: print(grep(str(result), "kb/s:"))
    else: print("ERROR", result.status)
show 3 replies