
Django Awarded MOSS Grant from Mozilla - cdnsteve
https://www.djangoproject.com/weblog/2015/dec/11/django-awarded-moss-grant/
======
mladenkovacevic
I know purists and more experienced developers will disagree, but for a
clueless beginner like myself with no real-life connections to the developer
community, it's awesome how external projects have been integrated into
official Django releases as they become widely adopted and production ready.
From staticfiles, through migrations (developer of South took this one to
Kickstarter too) and now channels and DRF. Python 3 followed a similar path
with virtualenv.

Does any other framework ecosystem work the same way? I don't follow Rails or
other ones as closely as I do Python and Django.

~~~
Daishiman
Whether you're a fan or merely tolerate the Python environment, to me the
biggest advantage of Django above literally every other web framework I've
worked with, is the fact that the developers are extremely serious about
maintenance, compatibility, and documentation, things which matter in large,
long-lived projects much more than the newest bell and whistle.

The core team has been willing to rip out and improve central infrastructure
but never at the cost of unreasonable backward incompatibilities, and all
changes are documented. Upgrading is never easy on large projects but it's
been the easiest in Django. And the third-party packages pretty much fill
every niche in a very modular way.

I see other devs complaining about their current frameworks' lack of
documentation or testing and I feel like I'm in a parallel universe. I can
never go back trivially to year-old JS code (and Rails isn't that much better)
without some level of breakage or a new way of doing things.

Of course other technologies share a similar position on the matter, but they
generally don't move as fast as Django does.

~~~
stefantalpalaru
> compatibility

You're joking, right? They break compatibility with every minor version,
forcing tens of thousands of developers to waste valuable hours each time they
update.

If there's something to learn from this project, it's that if you find your
niche and gain enough momentum, you can piss on your user base and they'll say
it's raining.

~~~
Daishiman
Name one single framework that is perpetually backwards compatible while being
even remotely modern.

------
hackuser
Good for Mozilla, putting their money where their mouth is and setting an
example. It would be great if they or someone with sufficient reputation setup
a way to make it easy for others to contribute financially to FOSS projects, a
central payment clearinghouse.

In my for-profit organization, we thought we should contribute to the free /
open source projects that we were using and which were helping us make money.
We wanted to pay our share.

We started by putting together a list, and that's pretty much where it ended.
The list was enormous. Try it yourself, and don't forget the components of
other products that are FOSS. EDIT: Here's Mozilla's attempt at making such a
list, which they label "incomplete":

[https://wiki.mozilla.org/MOSS/Projects_in_use_by_Mozilla](https://wiki.mozilla.org/MOSS/Projects_in_use_by_Mozilla)

On one hand, it reflects the incredible contribution of FOSS software. On the
other there was no way, in a busy workplace, we were going to spend days
tracking down all those FOSS developers, finding ways to send them money, and
implementing it.

~~~
andrewgodwin
Yeah, it's a fantastic step and we're very happy they piloted the program. The
Django Software Foundation has also hired a part-time fundraiser to try and
make the project self-sustaining; we're trying to make the project sustainable
as a whole and not just a timesink for those who are lucky enough to have
unpaid spare time.

------
bjt
On one hand, awesome to see Django getting first class Websockets support.

On the other hand this feels a bit like "Build the web applications of today,
tomorrow!" I think that's an inherent problem with kitchen sink frameworks;
new things that come along have be shoehorned into the old way of doing
things, except when they can't, and then you have to restructure your
foundation. I stopped using Django a couple years ago because the kind of apps
I wanted to build were REST APIs, websockets, a little static file serving,
and connections to realtime backends like redis pubsubs or RabbitMQ. Django
wasn't great at any of those, yet carried a lot of baggage from stuff I didn't
need (e.g. form handing, templates).

I would recommend Flask and/or its underlying Werkzeug library (my personal
preference) over Django.

~~~
mangeletti
Django has a community and leaders that care, and Django continues to get
better.

Flask is basically abandoned, despite continually receiving undocumented
commits.

Flask hasn't even had a PyPi release, or _even a Git tag_ for that matter,
since June, 2013. The documentation is also far behind.

~~~
bjt
Most of Flask's heavy lifting is done by Werkzeug, which had its last PyPi
release a month ago.

I use Werkzeug directly rather than Flask, so I can't speak to whether Flask
is abandonware or not, but I'm very happy with Werkzeug. With very little
effort, I get to build just enough framework for my application, without
having to be shoehorned into someone else's tradeoffs.

~~~
mangeletti
Very interesting. I'm going to give Werkzeug a try.

Have you tried out Falcon, btw? If so, how does it compare to Werkzeug?

~~~
bjt
I haven't tried Falcon. I hear it's fast.

------
mangeletti
Congrats to Django, and thanks to Mozilla!

This is the best news! Thanks @ Andrew Godwin (since I see him in here) for
all the work you've done on Django over the past N years. I've contributed
small amounts of money to the fellowship program 3 or 4 times now, but the sum
of that program's entire fundraising for 2015 is almost tripled by this single
grant, and the purpose of this grant money is so exciting. Channels is
awesome; so is Django REST Framework. Adding the best of these things to the
core and tightening some of the architecture sounds exciting. It helps to
position Django for continued relevance, web services and real-time
applications become more popular.

------
dudus
Don't get me wrong, these are amazing news love the project, but I'm a bit
confused on how Mozilla works. Just the other day they were requesting
donations, now they are donating money?

Why ask for donations if you are expecting to donate the money away instead of
using it to improve your products?

I donated to mozilla a few weeks ago, but now I wonder if I should have just
donated directly to django instead, skip the middleman that is not adding
anything.

~~~
dragonwriter
> Just the other day they were requesting donations, now they are donating
> money?

Nonprofits often fund themselves through donations, and award grants as a
means of advancing their mission.

> I donated to mozilla a few weeks ago, but now I wonder if I should have just
> donated directly to django instead, skip the middleman that is not adding
> anything.

If your primary concern was the mission of the Django project, you should have
donated to Django directly. If it was the mission of the Mozilla project, then
donating to Mozilla makes sense. That the Mozilla project determined that one
of the ways in which it should expend resources to achieve its goals was to
give grants to other OSS projects _for specific, identified tasks_ does not,
in any way, change that the funds are being used to support the mission of the
Mozilla project.

------
hackuser
Here's a full list of Mozilla's first round of MOSS grants:

[https://blog.mozilla.org/blog/2015/12/10/mozilla-open-
source...](https://blog.mozilla.org/blog/2015/12/10/mozilla-open-source-
support-first-awards-made/)

~~~
sleepymountain
> Buildbot: $15,000. Buildbot is a continuous build and integration system
> which has been immensely valuable to Mozilla over the past few years. Their
> award will be used to remove the term “slave” from all documentation,

Such a valuable use of donations!

~~~
scrollaway
Oh they're not alone in that absurdity. See for example symmetric BS in
Django:

[https://github.com/django/django/pull/2692](https://github.com/django/django/pull/2692)

Welcome to the "fear of offence" culture. Should coin a term for that -
offendiphobic?

Edit: I'd like to point out to the silent downvoters here that there's
legitimate concerns being raised in this subthread about money being wasted on
political correctness, which are not being addressed by any of you. If you are
unable to give a counterpoint, you should rethink your position instead of
downvoting based on emotions.

~~~
hackuser
I'm a downvoter: I find arguments like this one to be ideological rants and
not valuable.

For every person and in every culture, offending people is considered wrong.
To suggest that it doesn't matter is not a serious argument.

Apparently 'slave' doesn't offend you. It doesn't offend me either (I remember
being a little uncomfortable with it long ago, when I first encountered it,
but I don't notice it now). But for me to say that therefore it is not
offensive to others would be ignorant and self-centered, as if the world
revolves around my views and experiences. If others say they are offended then
I respect that; I hope they would respect my concerns if I was offended.

Also, a common cause of discrimination is due to honest ignorance on the part
of people in the dominant group. Like all humans, they are blind to things
that they don't experience themselves; for example, consider law enforcement
discrimination against minorities. It's happened for decades or centuries, but
wasn't taken seriously until we actually had film of it due to the spread of
cameras. That's another good reason to think that whether or not something
bothers me is not evidence of whether it offends others.

Finally, the dominant culture in the U.S. was built at a time of widespread,
accepted discrimination, and many artefacts of that time persist. People may
get tired of seeing so much of it being challenged and changed, from school
buildings named after slave holders; Confederate flags; and movie casts,
company executives, etc. being almost all white and mostly male, etc. But
being tired of the challenge and change, rather than of the discrimination, is
a 'first world' problem, so to speak.

~~~
scrollaway
Thanks for speaking up. To answer your points: There's a line, and people are
crossing it.

There are words in the english language which are offensive because they are
_specifically_ employed to be offensive. Swear words, words used in offensive
(as in, literally offensive) contexts, verbal abuse etc.

We avoid using this words in civilized discourse not because we're afraid to
offend, but because we have no need for them. We don't intend to offend. If we
intend to offend, we use them - there is no political correctness involved in
not using _actual_ offensive terms.

Now when a word has a non-offensive meaning and actually offends people, it's
important to look at why this happens. Does it only offend one person or does
it offend many? Is it meant to offend, is it used in an actual offensive
context? Is the person being offended themselves or by proxy?

This is a conversation I've had before when the Django PR came up, so I'll
save you looking these up. You'll note that in that PR, almost everybody
praising the PR was white, 18-30 years old. The people being offended are
near-unanimously fighting a cause that isn't their own.

There's nothing wrong with that of course - I'm not gay, yet I fight for gay
rights for example. But was this ever actually an issue for the black
community?

Do you know why it's important to answer that question? Because if the answer
is no, then you are fabricating problems for a community you are not even a
part of. It is not harmless - it is actively harmful.

If a word, a technical word, was not a problem one day, and is a problem the
next, you have now artificially widened the gap a certain minority needs to
cross in order to be part of the programming community.

And if you look at it closely, you'll see this is exactly what happened. This
issue got artificially popular with Django (just about a decade after the LA
nonissue). Now it's causing problems in other parts of the technical
community. Something which wasn't a problem a year ago, is now a problem -
your FOSS project which was open to all, is now _perceived as_ potentially
racist.

I don't get pissed off at these things because I get a kick out of
discrimination. I get pissed off because they make things worse.

~~~
hackuser
I agree that if it's not offensive to blacks (or maybe to someone I'm not
thinking of) then it doesn't matter. But ...

1) You are saying that you don't know if it's offensive to blacks. Shouldn't
we find out before condemning the change?

2) I think you are blowing out of proportion the consequences of erring on the
side of not offending. I think they are minor. It's really about a bigger
issue, which is why both of us are writing so many words about it.

3) I take your word for it that this isn't the case for you, but for many
people this issue is a proxy - a dog-whistle[1] - for change to the status quo
dominant culture. It's like people who objected to or advocated school busing
when really it was about desegregation, or people fighting over Syrian
refugees when it's really about Muslim immigrants (at least Trump was honest).

Anyway, the essential thing is to get these issues out in the open and learn
from each other. Good talking to you.

[1] [https://en.wikipedia.org/wiki/Dog-
whistle_politics](https://en.wikipedia.org/wiki/Dog-whistle_politics)

~~~
scrollaway
> You are saying that you don't know if it's offensive to blacks.

I was very careful not to say anything on what I know. But since you bring it
up, what I _know_ is that the original issue in the tracker was created in bad
faith and people hopped on the bandwagon. Addressing this is another
discussion entirely.

> I think you are blowing out of proportion the consequences of erring on the
> side of not offending.

I'm open to hear arguments as to _why_ what I'm saying is "blowing things out
of proportions", when all I'm claiming is that the direct results of these
actions are producing the exact negative of the effects they intend to. So
really, my argument's proportion is relative to how large of an issue you
think the original premise is.

Another consequence of course is opening your project up to abuse. If people
see that you'll cave in to any form of "political correctness" pressure,
they'll double down and find more faults, and if there are no more faults
they'll create them for you. I'm speaking from experience - This is something
we see a lot in the game development community.

~~~
hackuser
> what I know is that the original issue in the tracker was created in bad
> faith

I think it's unfair to the Django people to make that allegation without
substantiating it. Otherwise it's just a mean rumor.

> all I'm claiming is that the direct results of these actions are producing
> the exact negative of the effects they intend to. ... If people see that
> you'll cave in to any form of "political correctness" pressure, they'll
> double down and find more faults, and if there are no more faults they'll
> create them for you.

It's hard to tell if you are making a prediction or saying it has happened.
Could you provide evidence of these consequences happening to the Django
project? Also, perhaps those additional faults are real to others but not to
you - returning us to the orginal discussion of how one judges what is
'offensive'.

> "political correctness" pressure

I think today's "political correctness" is to criticize people pointing out
any kind of prejudice. They are automatically assumed to be in bad faith and
attacked, with the same criticisms almost every time, regardless of the
content or merits of their complaint. It's an attempt to intimidate into
silence anyone thinking about complaining, which I think is unhealthy and
disrespectful.

------
austinjp
Congratulations to the Django team.

In practical terms, what does this mean for those of us who use Django and
Django REST Framework? Will there be a graceful transition path to the planned
all-in-one model? What timescales are likely?

Also curious about which version(s) of Python are likely to see continued
support.

I appreciate that some of these questions probably can't easily be answered
yet, but a steer would be appreciated.

Edit: typo.

~~~
andrewgodwin
We're not bringing in the whole of Django REST Framework, just some of the
underlying mechanics that are useful for all apps (like content negotiation).
DRF will remain a third-party project.

As for Python versions, there isn't any plan to drop 2.7 yet and Channels will
work on it. It might be we move to Python 3 only at some point in the future,
but there are no firm plans right now.

~~~
SEJeff
Is Tom Christie (DRF author) going to help with any of that? I backed his
kickstarter when he was writing DRF 3.x and I'm just curious if he is
involved. Super nice gent.

~~~
andrewgodwin
He is indeed - he helped me with the Django proposal, actually. He's the one
setting the direction for what to include and what to keep separate.

------
icn2
Could some company support phoenix framework as well? Phoenix's channel
feature is already there :)

~~~
elliotec
I was wondering why Django was the choice anyway... Am I out of the loop here?
What about Rails, or anything else?

~~~
pramodliv1
MDN is written in Django:
[https://github.com/mozilla/kuma](https://github.com/mozilla/kuma). The add-
ons site also uses Django.
[http://reinout.vanrees.org/weblog/2011/06/06/large-
mozilla-s...](http://reinout.vanrees.org/weblog/2011/06/06/large-mozilla-
sites.html)

They have around 15 django libraries on GitHub as well
[https://github.com/mozilla?utf8=%E2%9C%93&query=django](https://github.com/mozilla?utf8=%E2%9C%93&query=django)

~~~
elliotec
Got it. Thanks.

------
samskeller
Very exciting news. The Channels project within Django is one of the most
anticipated future projects and the Django REST framework has been a essential
add-on to Django for a long time now

~~~
Antwan
DRF is one of the best addon for django, I'm glad to hear it's finally gonna
be (partially) integrated to the main project.

------
travelton
This is great news! My Django installation feels pretty bloated with various
3rd party libraries to handle post-request tasks and serving data via web
sockets. Can't wait to shed those dependencies. Congrats Django team!

------
dethos
Awesome news, I'm even more excited after reading about how they decided to
spend the money. I haven't yet digged into it, but "channels" look promising.

I would also like to congratulate Mozilla for this program, several other
great projects are being funded.

------
victorhooi
Curious if anybody here has experience with Django versus Flask versus <other>
on AppEngine?

I'm new to AppEngine and I'm familiar with Django, so that would have been my
first choice - but it seems like Flask, Werzkeug, Webapp2 are more popular -
just curious why, or how good/bad Django is on it.

~~~
davidwtbuxton
Django works well on App Engine. If you are using CloudSQL you can use vanilla
models, but if you are using the datastore then you can either choose not to
use Django models at all (use ndb/db instead) or use django-nonrel or djangae
which provide a db back-end.

[https://github.com/django-nonrel/djangoappengine](https://github.com/django-
nonrel/djangoappengine)

[https://github.com/potatolondon/djangae](https://github.com/potatolondon/djangae)

There's compromises in using the datastore - you can't do a lot of things that
are dead simple with SQL, but in return you get massive scaleability. And the
App Engine SDK itself can be a pain to work with, but there are also amazing
features like task queues for background processing and Google Cloud Storage
integration.

Other than Django I've used Bottle for very small App Engine projects. Works
great, it's faster than Django, I'd still prefer Django for a typical complex
web app where you need all the features.

Disclaimer: I work for Potato, which sponsors djangae development.

------
dormanted
> Buildbot: $15,000. Buildbot is a continuous build and integration system
> which has been immensely valuable to Mozilla over the past few years. Their
> award will be used to remove the term “slave” from all documentation, APIs
> and tests

Oh good. $15,000 well spent.... sigh.

------
rayalez
Oh, this is amazing!! I'm a huge fan of Django, and I'm really happy to see
that the project keeps improving. Recently we had news about update to Django
CMS, and now this.

Really great stuff.

------
foxhop
I use Pyramid:

[http://www.pylonsproject.org/projects/pyramid/about](http://www.pylonsproject.org/projects/pyramid/about)

------
astaroth360
I would love it if django were able to compete for more funding like this!
Things tend to move much more quickly when there is decent funding involved :D

------
latenightcoding
As a perl programmer I wish someone would fund mojolicious

------
bedros
awesome, love django project

------
reinhardt
TIL there's a (big apparently) FOSS project called "Bro". Is this an acronym,
humour, sarcasm or what?

~~~
d-m
Bro ([https://www.bro.org](https://www.bro.org)) is a network monitoring and
protocol analysis framework that has been in development for roughly 15 years.
Its name is a reference to "Big Brother" due to its ability to provide
visibility into network traffic. The project also got a MOSS grant for $200K
today. ([http://blog.bro.org/2015/12/bro-receives-200k-grant-from-
moz...](http://blog.bro.org/2015/12/bro-receives-200k-grant-from-
mozilla.html)) An employee from Mozilla gave a talk at BroCon this year
describing how they use Bro. The video is at
[https://www.youtube.com/watch?v=cGlTo9y7u88](https://www.youtube.com/watch?v=cGlTo9y7u88).

------
asr1
Wow, channels...I will just go and learn go. But for other reasons too. I dont
like django anymore, because I kept continuously fighting with the framework.
Its fast to work with, if you do exactly what the developers had in mind, but
it gets in your way all the time, if you use your own brain.

~~~
pcx
Care to give some actionable feedback rather than just ranting and FUD?

I've worked with Go but I would still prefer using Django to start off a new
project. The rich set of libraries it provides is only rivaled by Rails among
web frameworks. I've never felt I was fighting the framework and it actually
taught me several good practices.

This grant shows how Django is embracing the new web and moving forward. I am
happy I will be able to continue to use Django for use cases it does not cover
now.

~~~
asr1
What is "the new web"?

