+1 well said.

Cal


On Tue, Jan 28, 2014 at 4:59 PM, James Turley <
[email protected]> wrote:

> I'm not sure I buy this stuff about JS taking over everything. The reason
> is that client and server are different domains, and we might reasonably
> expect - even in a pure JS-only shop - people to specialise anyway. Apart
> from the tiniest start-ups, there isn't really an evolutionary advantage to
> having the same language on both ends. Rather than people who know x
> language, you primarily want people with familiarity with the
> domain-specific problems.
>
> It's worth noting that the JS hype is not the only thing at the moment:
> among functional programming evangelists, there is a sense that "their time
> has come" after years on the CS-boffin fringe. The theory goes like this -
> nowadays, major web apps are deployed on enormous server clusters,
> sometimes with enormous numbers of virtual or real CPU cores, database
> sharding and so forth. The key problems facing server-side dev work - at
> least at the top end of the web - have to do with handling all this,
> parallelism, async, race conditions and so forth. A relatively 'pure' FP
> language like Haskell, with its divine commandments against mutable state
> and focus on pure functions, has a headstart on OOP languages like Python &
> Ruby in this domain.
>
> JS is *sort of *an FP language, and can be used to write pure code, but
> has hitherto been used almost exclusively as a simple interface to that
> great clump of mutable global state called the DOM; it certainly does not
> enforce good FP practices or anything like that. The Node model of
> event-driven IO is obviously directed at this group of problems, but it's
> very much a work in progress, despite all the hype. (This is also a problem
> I have with client-side MV* frameworks, BTW: I'm promised that picking up
> Ember is a breeze, but major parts of the API change so frequently that it
> gives me actual nightmares.)
>
> Meanwhile, we've got the Async IO library coming in Python 3.4; and, as
> others have pointed out, a headstart on big data crunching thanks to
> Python's excellent math/science ecosystem. I'm sure the Ruby people have
> tricks up their sleeve. And there's Go. And Scala. And Clojure. And ...
>
> The point is: there's an enormous explosion of new tools around, plus
> serious improvements in old favourites. Devs who know what's good for them
> will use the correct tool for the job at hand; the cognitive convenience of
> working in one language only is a part of that decision, but only a part.
>
>
> On Tue, Jan 28, 2014 at 4:27 PM, Cal Leeming [Simplicity Media Ltd] <
> [email protected]> wrote:
>
>> It makes for an interesting debate and food for thought.
>>
>> Python has a lot of libraries and user contributions which can speed up
>> development, but like every language, has it's good sides and bad sides.
>>
>> Django holds a strong position, libraries such as south, pipeline,
>> mongoengine, uWSGI and the Django ORM itself make it incredibly easy to get
>> clean code quickly out the door.
>>
>> Personally I think the biggest risk to Django's future is lack of public
>> contributions (separate debate), and evolution being held back for
>> backwards compatibility reasons (again, separate debate), rather than any
>> threat from new kids on the block. I would be quite surprised if NodeJS (as
>> an example) overtook Django in terms of functionality and popularity.
>>
>> Disclaimer: I'm +1 python and -0 JS, and thus slightly biased.
>>
>> Cal
>>
>>
>>
>>
>>
>> On Mon, Jan 27, 2014 at 10:44 PM, <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> I would like to know if this community is somewhat worried about the
>>> future relevance of Django (and other purely server-side MV* Python web
>>> app frameworks such as web2py for that matter) given the current momentum
>>> of JavaScript (JS) everywhere?
>>>
>>> There are many competing architecture patterns for a WHOLE web app today
>>> ranging:
>>> a)  from client-heavy SPA with a client-side MVC framework synching its
>>> models via a REST API with a server-side reduced to a database access layer
>>>
>>> b) to light client apps with a server-side MVC frameworks and very
>>> little or no Ajax
>>>
>>> c) and everything in the middle.
>>>
>>> I guess it is not too controversial to say that which is best (or even
>>> merely adequate) depends on the generally moving target of the app
>>> requirements (especially the non-functional ones) and thus a long
>>> lifecycle app can be expected to have to change pattern at some point.
>>>
>>>
>>> Given that:
>>> 1) full web apps following any pattern can today be developed
>>> exclusively with JavaScript (JS) frameworks on both sides who have
>>> incorporated most (if not all) great design ideas from Django (and
>>> Rails)
>>>
>>> 2) IDEs ranging from Visual Studio to browser-based ones are available
>>> to support such development
>>>
>>> 3) Python in the browser projects do not yet provide productive
>>> debugging support (and will they ever without support from a tech giant?)
>>>
>>> 4) Cloud giants (Amazon, Google, Heroku, Microsoft) all offering JS 
>>> framework
>>> running servers
>>>
>>> are the productivity gains from the more legible, concise and abstract
>>> Python code as compared to JS code really compensate the productivity
>>> loss of having to port part of the app from one language to other every
>>> time it must be pushed from one side (say server) to the other (say
>>> client), or even to maintain a code base in two languages instead of one?
>>>
>>> Why then adopt Django (or web2py) for a new project today, instead of
>>> going pure JS?
>>>
>>> I am a big Python fan in terms of design and principles, but I am
>>> fearing that it has started to lose the popularity/adoption/community size
>>> battle against JS, which, from a pragmatic productivity standpoint is
>>> relevant and thus potentially snowballing after a tipping point is reached.
>>> Trends are deadly fast in web development, cf. how quickly J2EE+static
>>> HTML, then J2EE+Flash and .NET+Silverlight have fallen from grace.
>>>
>>> Any thought on this?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Django users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/django-users.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/django-users/f01c1f78-aac4-467c-a777-a70ecd0de61e%40googlegroups.com
>>> .
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/django-users.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/django-users/CAHKQagGvjtxt9wL727rKYpV2_QJWuYP0%3DAhY7xE7uZ%3D7gjwC4g%40mail.gmail.com
>> .
>>
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CAAb4X%3Dx%2BtKWsnA1Lq1P%2B02AOZgkShkmrqC7VTq%3D%2BX0BXkRoNwg%40mail.gmail.com
> .
>
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAHKQagGR1UDps7M%3DMPh09U-cKAumdDcWw86gr6t-ZBK4TRMf8Q%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to