Not sure if the right place to post, let me know i...
# linking-together
m
Not sure if the right place to post, let me know if this doesn't belong here. Interesting exploration of file systems and highlights. https://twitter.com/kirkbyo_/status/1447307525116743680?s=21
👍🏼 2
👍 3
c
I love this. I read Omar Rizwan's article the other day about "Skew" (https://omar.website/posts/skew/) - how lots of complexity in computer systems is a response to performance characteristics that don't necessarily apply any longer. The biggest one these as far as I can see, that never really gets talked about for how revolutionary it is, is the random-access performance of a SSD vs a HDD. Just store everything as human readable plain text files, parsed at the point of use, and only bring in databases etc if that isn't working.
👀 3
d
The concept of annotations is a powerful expressive resource for interactive environments, which I believe is underexploited. IMO they are easier to understand for non-coders than data types: annotations allow building some relevant computations without worrying about run-time state changes. Users may simply annotate their data objects with relevant symbols, and expect built-in processes to create automated results with little work and a simple mental model of what's going on. For example, tags are a common and easy-to-use mechanism. Users tag their data with different words, and this creates different collections, one for each word. Search allows retrieving all the annotated instances in each collection no matter where they are located. Generating this same interaction by code by the user would be a very complex development, but annotations create a language to obtain that effect by leveraging a pre-programmed system that hides all the complexity. As @Mattia Fregola's example shows, they can also be used for collaborative work. An annotation is accessible from multiple remote points and can be edited with different tools with conceptually simple semantics. I think an annotation style of programming may be used for other use cases such as data transformations and data pipeline creation, as an automation mechanism that retains this kind of simplicity for end users. Also, think of the Decorator design pattern for more cases where this style is used even by expert programmers to simplify some kinds of automated effects.
❤️ 1
With respect to the concept of "skew" brought up by @Chris Knott, there is a vicious cycle that leads to conservatism in engineering tools.Abstractions are created to handle those technical constraints, the next generation learns to program based on those abstractions, and an entire industry of tools and processes is built on that model that is maintained even after the constraints have been resolved. From time to time we have to look back and undo some of the old assumptions to reorient the path in a new direction.