Stödet för OOP är inte heller någon höjdare i Python. Men det går absolut snabbt att få saker gjorda i språket!
Ett annat alternativ är Ruby, blir ju inte jättelångt från Python-programmet. Ruby har en av de bästa stöden för OOP jag sett, är i nivå med Smalltalk. Tycker också det rent generellt är långt mer koherent i sin design jämfört med Python.
Det lyckas dock med konststycket att exekvera långsammare än Python i många fall. Det är en konsekvens av att man alltid valt den väg som ger "renast" design, man har aldrig tänk på om det är effektivt för en dator.
require 'docopt'
require 'tempfile'
doc = <<DOCOPT
Create a playlist of all files with matching set of extensions.
Usage:
#{__FILE__} [--filter=<csv>] DIRECTORY
Arguments:
DIRECTORY Recurse from this directory
Options:
--filter=<csv> Use files with these extensions [default: mkv,mp4].
DOCOPT
begin
args = Docopt::docopt(doc)
baseGlob = File.join(args['DIRECTORY'], '**/*.')
filter = args['--filter']
Tempfile.open('mpv.playlist') do |playlistFile|
filter.split(',').reduce([]){|files,ext| files + Dir[baseGlob + ext]}.shuffle.each{|fn| playlistFile.puts(fn)}
playlistFile.close
`mpv --playlist=#{playlistFile.path}`
end
rescue Docopt::Exit => e
puts e.message
end
Edit: var några tecken som fallit bort i koden