3 ms·
Honestly it seems like porting ExifTool would actually be easier than this nightmare.
by hobs 2y ago
Honestly it seems like porting ExifTool would actually be easier than this nightmare.
- jauntywundrkind 2y agoThis is a degree of thinking that feels rank common in the world. When you read a complex blog post with sophisticated approach, there's often a "wouldn't it be easy to just ____." Maybe, yes, perhaps! But sometimes the problem at hand - the proboem specified in the post - isnt the entire desire or objective. "Actually be easier" abounds, but sometimes our scope & intent in the long run builds on the problems at hand. Porting ExifTool may be easier (but then if you want to maintain it, that's a drain for life). But having perl that you can now run anywhere might be something this author sees other use for. Getting good at wasm or exhibiting their excellent systems skills might have been side objectives. Whether we just do things to get to get results at hand, or whether we invest ourselves broadly to build a better world is a constant struggle for many engineers. This shows up in the comments time and time again as "would actually be easier". I'm sorry for hitting hard on this specific comment, but there's a Two Cultures problem here, and one culture trivializes the other endlessly in the comments. It's hard for me to state why trying hard & caring & doing extra matters, but I think that breed of people are the ones that I look up to, that make all the difference to me. And I really wish there was a good defense or rallying cry, something we could say when we get the inevitable "would actually be easier" that can capture the enthusiasm for setting ourselves up & building broadly towards our better worlds.
- hobs 2y agoIf it makes you feel good go for it, seems like a huge PITA for me to figure out what files do, but sometimes the journey is a lot more fun than the destination.
- jauntywundrkind 2y agoI see it less as the fun of the journey, and more as the chance to become better, and make better tools for yourself going forwards. Advancing your position is more tempting than just doing the task. It's not always apparent how the side-quests will help us. But man, I can think of a half-dozens of upsides of the work here. You now have a portal Perl you can use anywhere. You don't have to maintain & keep a fork of ExifTool up to date. You've learned a ton about wasm file system interactions which could be useful for any portable systems. There's so many incidentals, that people just don't see when they blaze through to "but it could be easier."
- transpute 2y ago> And I really wish there was a good defense or rallying cry, something we could say when we get the inevitable "would actually be easier" that can capture the enthusiasm for setting ourselves up & building broadly towards our better worlds. “I must study Politicks and War that my sons may have liberty to study Mathematicks and Philosophy. My sons ought to study Mathematicks and Philosophy, Geography, natural History, Naval Architecture, navigation, Commerce and Agriculture, in order to give their Children a right to study Painting, Poetry, Musick, Architecture, Statuary, Tapestry and Porcelaine.” —John Adams, 1780 “Hard times create strong men, strong men create good times, good times create weak men, and weak men create hard times.” —G. Michael Hopf, 2016 Is there a programming abstraction of this circle of life?
- aghilmort 2y agoyes. this. same. au revoire to the yes and’ers & yes but’ers. plus love how you worked in side quest angle — more often than not the payoff can be quite high!
- cthor 2y agoExifTool is merely a bunch of Perl code, which can't be parsed nor compiled to a program, i.e. computer instructions. There is nothing to port. The only other option is a rewrite. Does that really sound easier?
- tantalor 2y agoComment obviously meant "port" as in "to another programming language". > only other option is a rewrite If you mean by hand, not necessarily, you could use a "code converter" tool to do the rewrite automatically. But it may be impractical; perl is a notoriously difficult language to work with. Perl is pretty close to Ruby and Python; those may be the most obvious candidates.
- cthor 2y agoThere are no programs that will fully transpile Perl to not-Perl, because that would require parsing Perl. A code converter that kindof-sortof-but-not-really transpiles (like Python's 2to3) would require a lot of debugging of ugly machine generated source code. Who wants to do that? Would probably be even harder than a full rewrite. (How many Python libraries were actually ported using 2to3?) Similar for using any translation an LLM might spit out. So yes, by hand. And it's not obvious if a full rewrite of a complex library would be easier than porting its runtime to WASM, especially when said runtime has been ported to countless other systems already.
- ab5tract 2y agoEnglish is a notoriously difficult language to work with. Should we be translating all of our English to Esperanto?
- hobs 2y agoIt really depends on how ExifTool (which again, I started from a point of ignorance so idk) decides to do the work in the first place. Does it have a bunch of magic functions that decide random things about bits? Does it have some sort of internal metadata file format identification lookup? No idea! But in some of those cases rewriting it is a lot less insane than others.
- andrew_rfc 2y agoAuthor here: it wouldn't have been. Sure, it would be nice to have a native version, but that is a lifelong maintenance burden, and ExifTool is already the best at what it does and stays up-to-date with file format changes. By completing this work, I can use ExifTool in any environment now - and more broadly, there is now a portable, embeddable, and sandboxed version of Perl that others can use in their projects. I can think of a lot of use cases, and helping other developers makes any hardship I endured worth it.
- boris 2y ago> and more broadly, there is now a portable, embeddable, and sandboxed version of Perl that others can use in their projects. I can think of a lot of use cases, and helping other developers makes any hardship I endured worth it. Yes, exactly, and thank you for that! I don't know of any other general-purpose scripting language that can be run in WebAssembly. This could make Perl an interesting choice for writing sandboxed build system rules.