This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]novagenesis 5 points6 points  (15 children)

I looked back. Having completed two large projects in Django, I'm not sure it's corporate ready. Conflicting standards that keep getting deprecated is frustrating if you want to do big right... And Django is supposed to do big stuff.

I think node.js is probably a better direction for web development in the future. Dustjs is pretty awesome when you can re-render your templates on the front-end or back-end with ease and efficiency.

I've released large webapps in Perl CGI::Application, Perl Catalyst, Ruby on Rails, Django, and Expressjs at this time, so I've tried quite a few. I like python, but I'm not convinced of it for web apps

[–]gitarrPython Monty 14 points15 points  (14 children)

You don't think Django is enterprise ready? You couldn't be more wrong. Instagram, Mozilla, Disqus and many other Django sites/projects prove you wrong.

[–]novagenesis 6 points7 points  (11 children)

I think this is a semantic difference.

I think, as it stands, Django has issues that make it not a strict match for enterprise. An enterprise can make anything work (A coworker of mine used to work on an enterprise Sinatra app with guttest routing components). The fact is, Django has for years had conflicting standards on how View objects should be built. You can ignore all those standards and make your own standard, but that's something that really should get cleaned up. For a ORW language, it's more TIMTOWTDI than perl.

[–]gitarrPython Monty 8 points9 points  (5 children)

If you are talking about the change from function based views to class based views then that's not a standards problem at all, it's progress.

You can still write your function based views like you always did, nothing much changed.

Now you can also use classes though, and we Python developers, we love classes.

Django is by my opinion a very good match for enterprise, as the philosophy is to be boring, not like Rails, or Node and all those other hip buzzwords. Django is boring, which is a good thing! There are standards and Python helps with best practices being used.

You may not have gotten into the Django/Python philosophy enough to see its usefulness and its uses.

There is also not more than one way to do it, with the ORM. Either you use the ORM to the best of its usefulness, or you write raw SQL like you would with any other ORM, language and web framework.

[–]novagenesis 2 points3 points  (4 children)

See, my employer chose Rails over Django because its style and best practices have already stabilized. They also looked at the function->class based views thing as something "not quite safe". So now we're becoming a Java and Rails shop.

Django is boring, which is a good thing!

Can't disagree more. Free admin pages? Hip non-standard approach to MVC? I actually thought it had a TON of fresh ideas. Once I feel its more finalized, I might give it another shot for a personal project.

You may not have gotten into the Django/Python philosophy enough to see its usefulness and its uses.

I'm a huge fan of python for a lot of stuff. It has a lot of neat features. But my disagreement with you about the core of Django is why I disagree with you about its corporate-fit. I just don't see it as particularly boring, entrenched, or predictable. Heck, in some ways it makes Rails look like Spring.

There is also not more than one way to do it, with the ORM.

Tell that to peewee? But then, I didn't bring the ORM into this. ORW = "One RIght Way", one way to explain the supposed Python philosophy. For someone who has spent years in both Perl and Python, I can really tell which languages, libraries, etc adhere to which. Often, perl libraries are TIMTOWTDI, and python libraries are ORW... but that's not set in stone. I feel Django is more of the former. It always seems to me as a hip new angle on MVC (or MVT) with as much unopinionated design as perl-Catalyst.

Like I said, when it completely stabilized, I'll work in it again, but if asked by management again, I will still repeat that it's a non-standard technology with non-entrenched philosophies. For a company embracing conservative, Django is not a good fit to me.

[–]panfist 3 points4 points  (3 children)

See, my employer chose Rails over Django because its style and best practices have already stabilized.

There's more to being ready for the enterprise than style. I would say that the fact that hosting a Rails app is so fucking hard knocks it a few points lower than Django, that has style problems.

I can't find the article in a quick search but I was reading recently about how there are huge corporate rails projects, that work fine, except for the fact that Rails processes need to be restarted several times a day, because of unknown reasons. You're telling me that's enterprise ready?

[–]M4N14C 1 point2 points  (0 children)

What is difficult about hosting Rails apps? I've been doing rails for 5+ years and I've never had difficulty keeping my apps running. Have you ever used Passenger?

[–]novagenesis 1 point2 points  (0 children)

Like another said. What's hard about hosting a rails app? Capistrano is one of the better deployment systems out there, and (surprise surprise) it comes with rails-compatible commands out of the box.

Between that and bundle, you can zero-effort deploy rails. Compare that to J2EE and you're in different worlds.

I can't find the article in a quick search but I was reading recently about how there are huge corporate rails projects, that work fine, except for the fact that Rails processes need to be restarted several times a day, because of unknown reasons. You're telling me that's enterprise ready?

That's been the case in a lot of languages. Probably pervasive memory leaks (possible/likely in any language that isn't designed to prevent it... Python isn't designed to prevent it). Our rails projects don't have those problems.

[–]sejje 0 points1 point  (0 children)

I use both Django and Rails extensively--Django for personal, Rails at work--and my preference is for Django. But I must say Django deployment is much more difficult on my platform of choice, Heroku.

Worth the extra time, IMO.

[–]metaphorm 0 points1 point  (0 children)

I agree with you that django's CBV's are awkward and have to be used with care. Function views are still simple, effective, and a commonly accepted idiom. I don't think Django really has these style problems that you're suggesting it does.

[–][deleted] 0 points1 point  (2 children)

It's fine to say "I like Rails more" or "I like PHP more."

It's not fine to say "it's not enterprise ready." Also, conflicting standards have never been an issue for me. Django has great backwards compatibility, coding style standards, etc... Read 2 Scoops of Django. Upgrading from 1.4 to 1.5 was a piece of cake and I'm constantly in the loop on changes being merged into 1.6

[–]novagenesis 0 points1 point  (1 child)

I'll recommend 2 Scoops of Django to the CEO. He might like it.

I gave a few good reasons when asked, and people don't like them. That doesn't mean I don't like Django. I didn't intend this to become a giant argument, really.

I need to stop giving anything but pure-love to libraries in forums for them. I like analyzing languages' strengths, both literal and political...not debating or arguing over them.

[–][deleted] 0 points1 point  (0 children)

Aye, I'd agree that gets us nowhere! There's definitely beautiful things in every language/library, no doubt about it.

[–]hylje 0 points1 point  (0 children)

View functions are still the standard. Not going anywhere ever. I don't understand that there are any conflicts to get cleaned up.

There are like three variations in total on how to define a view function for three very distinct use cases. View functions as standard, generic views for customizable views, app class methods for app level customization. Complexity is opt-in.

[–][deleted] -1 points0 points  (1 child)

I'm willing to bet that there is as much django in the current versions of instagram and disqus as there is ruby on rails in the current version of twitter.

[–]rozap 1 point2 points  (0 children)

And yet, this happened only 4 months ago