Personally I think the way Arc deals with Racket interop is pretty solid (expect passing lists to Racket functions, as can be seen in app.arc). There's a lot to like about Arc: its terseness when compared to Racket and the anaphoric macros, but here's what pushed me to try out plain Racket:
- Arc is too slow to handle file uploads. Arc is not suitable for web apps that handle image and video upload.
- This is not a problem with Arc but with News: It relies a lot on state. I'm not a purist, but it is to an extend making it a bit difficult to hack on sometimes, e.g. the `unmarkdown` function because original input is "forgotten", and how the score of an item is just a numerical value rather than something that can be derived from voting data which makes `unvote` difficult to implement correctly.
- Racket has a nice way of just representing html as s-expressions, where with Arc it's functions and macros some of which return a value and some of which print to stdout. Also, a lot of the html in News is a bit hacky.