Color Palette #8

A few days ago I was poking around the resources for a good old Mac game, Maelstrom. The port to Mac OS X (now just “macOS”) mostly left the resources of the old game in their original format, the Macintosh “resource fork”; the only difference is that it stores the resources as normal data instead of in the special part of the filesystem where they used to live.

The New Kingdom of Nouns

Last time I talked about how algebraic abstractions like “monoid” and “semigroup” didn’t seem to be pulling their weight, despite love from functional programmers. That focused on a practical issue: do these abstractions aid or harm comprehension? Do they make programming easier or harder? (Of course, there’s not a simple answer to this question.)

This time, though, I want to talk about something more exploratory: do we have the right tools to talk about these abstractions? This post is therefore going to be much longer and contain a lot more rambling.

Over-abstraction

Back in July I got myself into a discussion on Twitter about whether some of the more algebraic concepts in functional programming were net-useful, after reading Brandon Williams’ (great) articles on how they can be applied in Swift. Brandon Kase suggested I watch his talk “Beyond Types in Swift” from this year’s Functional Swift conference.

Older Posts

  1. 2016-08-21 Macromancy, Part 2
  2. 2016-08-07 Macromancy
  3. 2016-06-19 Pronoun Buttons
  4. 2016-05-29 Webmailer's Update Bar
  5. 2016-05-23 So You Want to Be a (Compiler) Wizard
  6. 2015-12-29 Re: Contempt Culture
  7. 2015-11-18 Recommendations
  8. 2015-05-09 Nibblesort: Adventures in Optimization
  9. 2015-02-22 AlterConf SF/Oakland
  10. 2015-01-24 “Skip the FFI”
  11. 2012-12-08 How to Write a Checker in 24 Hours
  12. 2012-10-02 Git Tricks
  13. 2012-05-16 Big News
  14. 2012-04-26 Keyboard Adventures
  15. 2012-04-10 Mail Aliases
  16. 2011-08-14 Header Anchors: A Safari Extension
  17. 2011-08-10 "Little Big Details"
  18. 2011-07-29 Weak Linking
  19. 2011-07-25 Using Clang from SVN in Xcode
  20. 2011-07-22 rm vs. Time Machine
  21. 2011-07-14 Priorities
  22. 2011-06-30 Quick Look in TextMate
  23. 2011-06-27 git add
  24. 2011-06-20 Automatic Reference Counting
  25. 2011-06-16 Dealing with "Sandwich Code"
  26. 2011-06-05 gdba
  27. 2011-06-03 Chrome vs. Safari
  28. 2011-05-31 User-Side Troubleshooting
  29. 2011-05-30 Auspicious Continuation
  30. 2009-07-21 Scripting Bridge
  31. 2009-07-08 What Happened to Dockyard?
  32. 2009-06-26 Garbage Collectors and Stack Drawers
  33. 2009-06-21 Z shell
  34. 2009-05-22 “Several New Features”
  35. 2009-05-05 C++ Templates are Turing-Complete
  36. 2009-04-21 [Meme] How Many HTML Elements Can You Name in 5 Minutes?
  37. 2009-04-16 Safer Plugin Categories
  38. 2009-04-02 Hacking Safari 4...for Great Convenience
  39. 2009-03-27 Const Correctness
  40. 2009-03-19 Categories and +load
  41. 2009-03-15 Subversion Checksum Problems
  42. 2009-03-06 JavaScript Tetris
  43. 2008-09-04 Objective-J and Objective-C
  44. 2008-08-28 HTTPS and Name-based Virtual Hosting
  45. 2008-03-08 Alerts Without Apps (or nibs)
  46. 2008-01-14 NSNumber, CFNumber, and CFBoolean
  47. 2007-12-13 GenericToolbar and IB3
  48. 2007-10-27 Performance Optimization: Why We Can't Use valueForKeyPath:
  49. 2007-09-01 Short Xcode Tip: Plugins
  50. 2007-07-15 Port 25 Blocked?
  51. 2007-06-27 GenericToolbar Icon
  52. 2007-04-13 The Symbolism of Pretty URLS
  53. 2007-03-07 Flexible PHP
  54. 2007-01-12 Inauspicious Beginnings