Live data from Hacker News

Django Developers Survery Results

docs.google.com

21–30 of 32 posts

Re: Django Developers Survery Results

#21
post #12

It's quite interesting that the ORM comes in first in the question on value. Ahead of routing and views. Once I learnt and used SQLAlchemy, I think the Django ORM is lesser component than the routing/view processing, which I find much of a much-ness in terms of the other major frameworks. That said, in django, batteries are included, and spares, and rechargables, and a charger!

The ORM has great utility. There are better ORMs but the built-in Django ORM is plenty good enough.

Re: Django Developers Survery Results

#22
post #20

I see a lot of feedback about how difficult it is to use websockets or add real-time features to an Django app. I work at Pusher ( http://pusher.com ) and this is exactly what we do. We make it dead simple for any developers to use websockets and handle the scaling and maintenance for them. We even have custom libraries for Django such as Django-pusherable https://github.com/pusher/django-pusherable Associated blog p…

Thanks for a mention of the library/blog post :)

I also did a talk at this year's DjangoCon Europe about building realtime apps in Django which covers integrating Swampdragon[1] and Pusher in Django.

Video of the talk isn't up yet but the slides are on Speakerdeck[2] and my example code is on Github[3].

[1]: http://swampdragon.net/ [2]: https://speakerdeck.com/aaronbassett/effortless-real-time-ap... [3]: https://github.com/search?q=user%3Aaaronbassett+djangocon

Re: Django Developers Survery Results

#23
post #20

I see a lot of feedback about how difficult it is to use websockets or add real-time features to an Django app. I work at Pusher ( http://pusher.com ) and this is exactly what we do. We make it dead simple for any developers to use websockets and handle the scaling and maintenance for them. We even have custom libraries for Django such as Django-pusherable https://github.com/pusher/django-pusherable Associated blog p…

Or, just use the right tool for the job, to begin with - Phoenix http://www.phoenixframework.org/

Re: Django Developers Survery Results

#24
post #17

Earlier quoted context omitted.

> Python should get serious about static analysis Then it's not python I love people trying to shove static typing onto python when there's a multitude of other choices to pick. The alternatives suck exactly because of that . If you want static typing go use Java, Go, etc.

What about optional, inferred, lightweight static typing? Do those things ever suck? What would be bad about that?

If you want a static check of your program, use PyLint, it's excellent at detecting most errors, be them syntax, typing error (things like x = 10; x.do_stuff() )

I think annotations would be useful in very few cases, since interfaces are not bound by types and that's what's good about python

Re: Django Developers Survery Results

#25
post #12

It's quite interesting that the ORM comes in first in the question on value. Ahead of routing and views. Once I learnt and used SQLAlchemy, I think the Django ORM is lesser component than the routing/view processing, which I find much of a much-ness in terms of the other major frameworks. That said, in django, batteries are included, and spares, and rechargables, and a charger!

The Django ORM isn't that good, that's true. But the framework integrates with it, and several great features depend on that integration.

Re: Django Developers Survery Results

#26
post #20

I see a lot of feedback about how difficult it is to use websockets or add real-time features to an Django app. I work at Pusher ( http://pusher.com ) and this is exactly what we do. We make it dead simple for any developers to use websockets and handle the scaling and maintenance for them. We even have custom libraries for Django such as Django-pusherable https://github.com/pusher/django-pusherable Associated blog p…

And of course there is also Pushpin, which allows Django to delegate WebSocket and long-lived HTTP connection handling.

This is not a cop out, either. In a multi-tiered architecture, it's preferable to avoid stateful sessions between the edge and backend.

Re: Django Developers Survery Results

#27

Missed the survey but going to express my feelings here hoping that they will still be read. I like the opinionated, batteries included approach of Django a lot. My major gripe with it is that it only takes you so far. There's a ton of ever expanding documentation out there how to make your first app. Whether it's the official tutorial, another one or a workshop. But when looking to build something less trivial—not j…

I've felt more or less the same as you and recently I've found Test-Driven Development with Python[0] to be a really nice resource. It is first and foremost a TDD book, which I certainly appreciate, but it takes you through creating an app in a (to my eyes at least) fairly rigorous way. It probably shouldn't serve as an introduction to Django but for someone who has a basic idea of how a project is put together but has never connected those dots, it might be really helpful.

[0] http://shop.oreilly.com/product/mobile/0636920029533.do

Re: Django Developers Survery Results

#28
post #14

I've used Django a lot, however for past few years I've wanted to transition to type safe languages. Python should get serious about static analysis, e.g. mypy or some such, they provide a great way to increase productivity, and help you refactor if something changes. I tried with Atom and (jedi) plugin, get this `CharField([Ctrl+Space]`, it fills me with `CharField( * args, * * kwargs)`, sigh.

I agree, I've been looking for something as good as Django in languages like Java, Go, and even Rust but I haven't stumbled across anything equivalent yet.

Re: Django Developers Survery Results

#29
post #14

I've used Django a lot, however for past few years I've wanted to transition to type safe languages. Python should get serious about static analysis, e.g. mypy or some such, they provide a great way to increase productivity, and help you refactor if something changes. I tried with Atom and (jedi) plugin, get this `CharField([Ctrl+Space]`, it fills me with `CharField( * args, * * kwargs)`, sigh.

> Python should get serious about static analysis Then it's not python I love people trying to shove static typing onto python when there's a multitude of other choices to pick. The alternatives suck exactly because of that . If you want static typing go use Java, Go, etc.

Optional typing is definitely coming. As eeZi pointed out, and I've been following this in the mailing list also. https://www.python.org/dev/peps/pep-0484/

Guido is pushing to standardize mypy as static analysis for py3k, but it is taking so damned long, meanwhile something like TypeScript is already superb with it's compiler service architecture providing great tooling for all kinds of editors & IDE.

PEP484 is simply too little, to get good tooling it requires compiler service (API for IDEs), and we are long way from that.

Re: Django Developers Survery Results

#30

Missed the survey but going to express my feelings here hoping that they will still be read. I like the opinionated, batteries included approach of Django a lot. My major gripe with it is that it only takes you so far. There's a ton of ever expanding documentation out there how to make your first app. Whether it's the official tutorial, another one or a workshop. But when looking to build something less trivial—not j…

> I'm starting to feel that the only way to get fluent in Django would be to get a job in an experienced Django shop, which IMO should not be the case.

Like learning any serious language/framework, it requires a relatively large-scale project to really understand all of the moving parts. Project Euler isn't going to cut it, but most web-application ideas you might have should expose you to quite a bit. To-do lists, workout logs, weather trend tracking, etc. would all be decent learner projects. Basically anything with somewhat normal data that multiple users can input & view.

It's obviously more complex than something like Flask, but it's definitely not as convoluted or unintuitive as Twisted. Django covers a lot of territory with the number of features it provides (ORM models, URL routing, request-handling views, templating, management commands, middleware, etc.), but each of those features is well-isolated and reasonably easy to grok if you focus on one at a time.

Post reply on HN