Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Amazing critique! It has a wealth of examples -- I liked the "N+1 query bugs" and "feral concurrency" links (stuff I've experienced but didn't have a name for).

----

The comparison of SQL vs. flink windowing ("kernel space" vs "user space") reminds me of the this 2013 call to change the design of browsers feaetures:

https://extensiblewebmanifesto.org/

Basically there's a lot of stuff implemented stuff in the C++ layer of the browser that's impossible to emulate in JavaScript, and that's a bad design.

It is indeed alarming how much syntax SQL has. It reminds me of shell, where every string manipulation function like stripping a prefix has custom syntax like ${x//pat/replace} or ${x%%prefix}. Oil (https://www.oilshell.org/) will simply have functions for this, like x.sub('pat', 'replace').

----

I also wonder if the author has worked with dplyr and the tidyverse at all? He mentions Pandas, but IMO it's a clunkier imitation of those ideas (and I'm saying that as a Python programmer).

Tidy data was my intro to the design of dplyr: http://vita.had.co.nz/papers/tidy-data.html

It's very inspired by the relational model, but it has a few more operations like "gather" and "spread" which turn "long" format into "wide" format and vice versa.

It has a clean and expressive API: https://www.rstudio.com/wp-content/uploads/2015/02/data-wran...

It composes like regular code, so you can write stuff like:

    bin_sizes %>%
      select(c(host_label, path, num_bytes)) %>%
      left_join(bytecode_size, by = c('host_label')) %>%
      mutate(native_code_size = num_bytes - bytecode_size) ->
      sizes

Good comparison of the relational model and data frames: Is a Dataframe Just a Table? https://plateau-workshop.org/assets/papers-2019/10.pdf

I link all of these in What is a Data Frame? (In Python, R, and SQL) https://www.oilshell.org/blog/2018/11/30.html



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: