7 ms·
While this list looks solid, I think it's telling that none of the papers that immediately came to my mind were on this list. I suspect that there are many mor
by danpalmer 5y ago
While this list looks solid, I think it's telling that none of the papers that immediately came to my mind were on this list.
I suspect that there are many more, and which papers are important to any one person is as varied as the disciplines we have within software engineering.
- Out of the Tar Pit 2005, a paper on Functional Reactive Programming that is an excellent read for anyone doing functional programming, UI programming, or a number of other things.
- Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web 1997, important read for anyone working in distributed systems or services with any sort of scale.
- Roy Fielding's dissertation 2000, to learn just how widely applicable REST principles are and how misunderstood it is as a design.
- The Part Time Parliament 1998, the original Paxos paper, important basis for anyone working with distributed systems.
- The Cathedral and the Bazaar 1997, an essay not a paper, but a good background to the open source world.
- bob1029 5y agoOut of the tar pit is the one I came in here to see. I think the implications of that paper double every time I read it. Last time I walked away from that paper I decided I wanted to write a pure SQL logic evaluation system and now we're actually using it in our product to expose customization opportunities. I almost worry what another read through might reveal. The last one was a really painful realization about wasted human capital. Edit: I just realized the parent posted this as: > a paper on Functional Reactive Programming It is incredibly important to note that this is incorrect. It should be: > a paper on Functional Relational Programming It actually doesnt have much to do with "reactive" programming model as we know it today, and is more about managing complexity.
- Qub3d 5y agoPaper link: http://curtclifton.net/papers/MoseleyMarks06a.pdf http://curtclifton.net/papers/MoseleyMarks06a.pdf
- Ezku 5y agoThe paper explicitly states that it’s about Functional Relational Programming, so that’s verifiably correct. I’m not sure if I can agree, though. > It actually doesnt have much to do with "reactive" programming model as we know it today What would you say is the ”reactive” model as we know it today? If you asked me what FRP is, I’d tell you about Functional Reactive Programming. Maybe I’d point you to Conal’s writings[0] or something like Your Mouse is a Database[1]. Andre Staltz did a nice writeup on how it’s useful to think of FRP in more broader terms than the original definition would require[2]: > it would make sense to talk about "functional reactive programming" as a paradigm or an idea where you build applications using listenable event streams (or "signals"), creating and composing them using pure functions For me, that’s the spirit of FRP. And when I read Out of the Tarpit, that’s exactly what jumps at me. The paper seems to describe data that’s changing over time, and other data being derived from those such that when the original data changes, so does the derived one. That’s pretty much precisely Functional Reactive Programming to me, even if the words are different. You might have another sense of the words in mind; I’d like to understand what you think, and why. [0]: http://conal.net/papers/push-pull-frp/ [1]: https://queue.acm.org/detail.cfm?id=2169076 [2]: https://medium.com/@andrestaltz/why-i-cannot-say-frp-but-i-just-did-d5ffaa23973b
- tnorthcutt 5y agoFielding dissertation for those interested: https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- amw-zero 5y agoThis is probably one of the most practical ones to read. REST is so much more than "/noun/id" routes.
- sanderjd 5y agoI'll confess that I've never been able to make heads or tails of the Fielding paper. That is, it's not that I don't think I understand what it's saying, it's that I don't relate to it; it doesn't really seem to be describing solutions to problems that have bugged me during my career. So I'll ask you and others here: what do you think are the most important and applicable insights from that paper?
- specialist 5y agoUseful heuristics. Mooted by coworker's incomprehension, poor craftsmanship, and beligerent disregard for received wisdom. In other words, all HTTP APIs devolve into screen scrapping, which is actively thwarted by terrible libraries. So just give up any expectations and do whatever scores the most agile scrum kanban karma on your team.
- sanderjd 5y agoI'll confess that, like the Fielding dissertation, I also can't make heads or tails of this comment.
- specialist 5y agoToo cynical? Distrust any one who claims they do understand. Because they don't. Our study group chewed thru REST in Practice. It's very reasonable, approachable. Good advice for a lot of design choices that you'll likely run into. Sadly, REST is like Agile. It's not possible for any two people to reach consensus on any aspect, big or small. And just like Agile, REST doesn't matter. What ever you do will be wrong. So just smile and play along.
- ModernMech 5y agoCame here to add Out of the Tar Pit. Here’s my clipboard: http://curtclifton.net/papers/MoseleyMarks06a.pdf http://curtclifton.net/papers/MoseleyMarks06a.pdf
- hardwaresofton 5y agoIf you are into Out of the Tar Pit, check out M36, a relational DB written in Haskell that aims to live up to the paper: https://github.com/agentm/project-m36/blob/master/docs/reaching_out_of_the_tarpit.markdown https://github.com/agentm/project-m36/blob/master/docs/reach...
- bob1029 5y agoYou could probably get away with SQLite too. This seems to work really well for our use cases - We integrate SQLite w/ C# and do have many functional aspects involved. C#8 is great about opt-in functional paradigms. If you pick SQLite you can also lean on their exotic-tier test coverage and the fact that you can author application defined functions for utilization from SQL (i.e. your DSL in this usage context).
- trinovantes 5y agoPaxos paper was one of my favorite reads back in grad school. Would highly recommend
- z5h 5y agoYes! I’m (yet another) person expecting to have seen Out of the Tar Pit on the list.
- tmountain 5y agoJust for everyone's general information, The Cathedral and the Bazaar was written by Eric S. Raymond, an overt racist and white supremacist who once publicly stated that, "the average black American has an IQ about 85". https://rationalwiki.org/wiki/Eric_S._Raymond https://rationalwiki.org/wiki/Eric_S._Raymond
- danpalmer 5y agoThanks for this, I hadn't realised. I don't condone or support those views in any way, and would therefore recommend that anyone reading the essay do so with a critical eye in case these views leaked into its content. It's been a long time since I read it and I'm much more sensitive to this now than I was then so I may have missed subtext that was inappropriate in that way.
- tmountain 5y agoNo problem. See I'm being downvoted for what I guess is perceived as "tone policing". FWIW, I've read the cathedral and the bazaar many times over the years myself, and I don't think there's anything controversial in the paper itself. That said, some people have sensitivity as to where information comes from, so it's good to have that context when recommending any particular work.
- danpalmer 5y agoAbsolutely. Even if this essay happens to be ok I recognise that I'm fairly unlikely to spot problematic issues in things so I do like to know the context and give it when recommending so that I can give a heads up to those who might be more likely to spot issues.
- deleted 5y ago[deleted]
- da39a3ee 5y agoOn the contrary, it is inappropriate to pander to silly people who have “sensitivity to where information comes from”. You just have to read that phrase to see how wrong it is. The very nature of information (as opposed to opinion) is that its provenance is irrelevant.
- dematz 5y agoThe Paxos paper...I mean it seems funny, especially so to the author's academic audience who get all the references? From the distributed systems class I took, the main takeaway was Paxos seems inaccessible mainly due to the byzantine writing style. We also read Paxos Made Simple and Paxos Made Live, and when it came time to actually implement anything, nobody used the original paper at all. So yeah, the original paper might be fun or funny, but not the easiest for understanding the basis for consensus protocols.
- DonaldPShimoda 5y agoI've seen that paper referenced multiple times in the vein of "Metaphors might seem nice, but never ever do what this paper did because it renders the subject matter practically inscrutable."