Earlier quoted context omitted.
Serious question, why not Typescript? Are you not aware of it or do you have other reasons?
You may not realise this, but TS is just JS + Types.
Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
261–270 of 329 posts
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#262Earlier quoted context omitted.
This is a futile pursuit simply because you are creating a layer of abstraction over JS using another dynamic language so there's no real gain other than syntactic sugar.
Would you say the same thing about web assembly and emscripten? At least one of the above is based on those. Using scientific and numeric packages from the python ecosystem is more than syntactic sugar, IMO. It seems like the JS world mostly ignores that stuff. I have yet to try a real project with any of those python web tools. I know just enough HTML, vanilla JS and DOM API to cobble together ugly sites when I need…
It's a bit big but just run nextjs, it solves almost everything for you. Even deployment is one click away. Would take 5 mins to get started. And a few hours to understand for a seasoned dev.
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#263Earlier quoted context omitted.
We use Websockets for state interactions, so the latency may depend on your internet connection + distance to server. We will improve this in the future by leveraging more edge computing and WebAssembly to execute closer to / on the client.
Why is the frontend state stored on the backend?
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#264I went to the button component page [1] and to the section of the counter and two increment and decrement buttons. Clicking on either takes something like 0.5 seconds for the counter to update it's value. Using Android and Samsung internet. Edit: I took a video screenshot https://voicer.com/v/HSpS9 [1] https://pynecone.io/docs/library/forms/button
We use Websockets for state interactions, so the latency may depend on your internet connection + distance to server. We will improve this in the future by leveraging more edge computing and WebAssembly to execute closer to / on the client.
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#265Earlier quoted context omitted.
> ...I'm an old computer science guy and would love to write software again. I can write plenty of functionality in Python but I don't really want to learn all the JS stuff... Back in early 2000s, i used to be more of a front-end dev...but over the years of being more of a manager (or PM or product manager) i stepped away from daily development...So, you know, I lost my touch. But a few years ago when i tried to dip…
Try Svelte
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#266The delay in increment/decrement example is not acceptable for a web UI that is expected to update instantly. I believe it should be less than 150ms to become noticeable for the user.
There are a few others - https://pynecone.io/docs/library/forms/slider for example
> For performance reasons, you may want to trigger state change only when the user releases the slider.
Not a great workaround, now I can't see the number I'm selecting. With the 500ms render time, it's going to feel really slow to pick a value. The perf needs to be fixed for this to be usable.
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#267Earlier quoted context omitted.
Would you say the same thing about web assembly and emscripten? At least one of the above is based on those. Using scientific and numeric packages from the python ecosystem is more than syntactic sugar, IMO. It seems like the JS world mostly ignores that stuff. I have yet to try a real project with any of those python web tools. I know just enough HTML, vanilla JS and DOM API to cobble together ugly sites when I need…
These tools are a waste of time. They take longer to learn then basic js and then in 3 years support is dropped you might have well learned a bit more js. It's a bit big but just run nextjs, it solves almost everything for you. Even deployment is one click away. Would take 5 mins to get started. And a few hours to understand for a seasoned dev.
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#268Earlier quoted context omitted.
Have you tried Django? https://www.djangoproject.com/
In my experience using Django for my webapps hasn't meant I can avoid HTML and javascript. Writing templates is writing HTML, and any relatively fancy UI including charting etc. requires using javascript
Given the update latency pynecone has, I can't imagine a charting library would work well.
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#269For me to be able to write a cool test app I'd need a working date picker and some kind of radio button feature (so that I could ask you to select a date and then display a list of offers on screen to select.)
I checked the docs and it seems there's a radio button, but no date picker yet.
Plus maybe the option to push a pdf result.
(My usecase: I'm a backend dev for a booking api and it would be fun to quickly build a frontend to test the API on my phone)
Re: Launch HN: Pynecone (YC W23) – Web Apps in Pure Python
#270I went to the button component page [1] and to the section of the counter and two increment and decrement buttons. Clicking on either takes something like 0.5 seconds for the counter to update it's value. Using Android and Samsung internet. Edit: I took a video screenshot https://voicer.com/v/HSpS9 [1] https://pynecone.io/docs/library/forms/button
We use Websockets for state interactions, so the latency may depend on your internet connection + distance to server. We will improve this in the future by leveraging more edge computing and WebAssembly to execute closer to / on the client.
Also, I turned off WiFi and then clicked the counter a couple times. Obviously the clicks didn't render. When I turned it on, then the counter updated one at a time at what felt like 300ms intervals. I often use the web from the train as I commute and data service can be spotty. I expect I'd see input latency in the minutes if I tried.
I think this is only viable if you're certain all your users have ping If you have to use this model, try batching user events (10 clicks => increment by 10) and cancelling old events (slider events at 5, 10, 20; only send slider=20 event).