# Need some reasons to persuade me to use racket web rather than others eg python flask

**URL:** https://racket.discourse.group/t/need-some-reasons-to-persuade-me-to-use-racket-web-rather-than-others-eg-python-flask/829
**Category:** General
**Tags:** web
**Created:** [March 26, 2022, 2:36am UTC](https://racket.discourse.group/t/need-some-reasons-to-persuade-me-to-use-racket-web-rather-than-others-eg-python-flask/829 "2022-03-26T02:36:55Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Hanson](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/hanson/32/388_2.png) [@Hanson](https://racket.discourse.group/u/Hanson)
#### Post date: [March 26, 2022, 2:36am UTC](https://racket.discourse.group/t/need-some-reasons-to-persuade-me-to-use-racket-web-rather-than-others-eg-python-flask/829/1 "2022-03-26T02:36:55Z")

</div>

I know it's cool to use racket but is there any advantage than other web server?

---

<div class="post-metadata">

### Author: ![sschwarzer](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/sschwarzer/32/1940_2.png) [@sschwarzer](https://racket.discourse.group/u/sschwarzer)
#### Post date: [March 26, 2022, 11:54am UTC](https://racket.discourse.group/t/need-some-reasons-to-persuade-me-to-use-racket-web-rather-than-others-eg-python-flask/829/2 "2022-03-26T11:54:36Z")

</div>

My background is over 20 years of Python and of that about 5 years in web backend development. I haven't worked with Racket web frameworks so far.

The reason I work with Racket (so far only in private projects) is that I enjoy programming with it. I like functional programming and how the language features of Scheme/Racket and the resulting code compose. (Of course the language isn't perfect, but then, no language is. 🙂 )

So even though I can't answer your question about Racket web programming specifically, I hope my reply still helps.

---

<div class="post-metadata">

### Author: ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)
#### Post date: [March 27, 2022, 7:29pm UTC](https://racket.discourse.group/t/need-some-reasons-to-persuade-me-to-use-racket-web-rather-than-others-eg-python-flask/829/3 "2022-03-27T19:29:01Z")

</div>

Seeing no other replies, I'll jump in with a semi-educated point of view.

Racket's web servers brought a bunch of PL-ish thinking to web servers, with a number of ideas that were either new or new-to-web-servers, IIRC.

The first big thing was the recognition of the link between web forms and continuations; specifically, that a server-side application requesting input from a user was essentially a continuation capture. The racket web server leverages this by using continuations to represent suspended operations.

It appears to me (correct me if I'm wrong!) that this solution does have at least one important drawback, in that the server's representation of continuations was not very small, and retaining many continuations could be expensive, memory-wise.

Bringing in more PL knowledge, the "stateless" web server performs a CPS-like transformation on your code to ensure that the continuation has a nice compact form that can easily be stored.

There may be (indeed, there almost certainly _are_) other interesting things to say about the web server, these are the two that occur to me.

@jeapostrophe probably has information to add to this.

---

<div class="post-metadata">

### Author: ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)
#### Post date: [March 27, 2022, 7:31pm UTC](https://racket.discourse.group/t/need-some-reasons-to-persuade-me-to-use-racket-web-rather-than-others-eg-python-flask/829/4 "2022-03-27T19:31:44Z")

</div>

Oh! Just saw this post on another thread, extremely relevant:

> [@What are examples of use-cases for continuations?](https://racket.discourse.group/t/what-are-examples-of-use-cases-for-continuations/806/6):
>
> As Alex wrote. But let me elaborate this, as someone who has played with these things for close to 40 years. Continuations come in two forms to manipulate the flow of control in programs: — manually maintained versions, usually via anonymous functions (or objects), with occasional language support (monads in Haskell) — language-supported objects, usually via control operators such as `call/cc`, `prompt`,` or `control` (see racket/control) Thirty years ago, OS researchers noticed that they w…
