Hi Haohui, Thanks for the reply. I am not suggesting to change existing java code to python or saying that we can live without javascript. All I am suggesting is that we do need to use a server side web framework. Try implementing a very basic requirement: user sessions( a logged in user doesn't need to login again on every page) with existing stack and you will understand what I am trying to say.
P.S. On a side note, you can use python to interact with Hadoop, Hive, Pig, Oozie. Again, I am not suggesting to use python instead of java in existing components. On Sun, Jul 13, 2014 at 11:40 PM, Haohui Mai <h...@hortonworks.com> wrote: > Thanks for your interests in contributing in Falcon. I am one of the > early contributors in Falcon UI, here are my two cents: > > Falcon has a browser-server architecture which needs to address two > requirements: > > 1. Provide a feature-rich UI (e.g. FALCON-290) to the browser. > > 2. The server-side logics have to integrate with existing Hadoop > ecosystems (e.g., MapReduce, Hive, Pig, and Oozie) which are heavily > based on Java. > > While personally I'm pretty open to any other technologies, but I am > yet to be convinced that how Python+Django will add any values to > address the above requirements. More concretely: > > i. JavaScript is (and will continue to be) an essential part of the UI > to meet requirement (1). The python stack cannot replace the > JavaScript part on the client side. > > ii. Falcon has to rely on Java to interact with other projects in the > Hadoop ecosystems, as there are few bindings in other languages for > these projects. > > > Using Python+Django might help attract attentions from the python > community, but I think that from the Falcon points of view, it is much > more important to keep align with the whole Hadoop ecosystems (which are > the main audiences of the Falcon project). Moreover, I don't think that the > merits that you mentioned for server-side technologies have to be coupled > with Python+Django -- in fact, there are many more implementation of > enterprise > features like exporting to Excel in Java. > > In short, I think that the current choice of Java+REST+JavaScript is quite > reasonable. Though I'm pretty open to any other technologies, I'm yet to be > convinced that Python+Django can be a superior choice. > > > Thanks, > Haohui > > > On Sat, Jul 12, 2014 at 7:06 PM, Ajay Yadav <ajayn...@gmail.com> wrote: > > > Any comments? I am awaiting your decision to start working on this. > > > > > > On Fri, Jul 11, 2014 at 11:10 AM, Ajay Yadav <ajayn...@gmail.com> wrote: > > > > > Hi Venkatesh, > > > > > > Valid question and I am glad that you gave an opportunity to discuss > it. > > I > > > have no particular bias towards using django. I have worked with client > > > side templates(not dust.js but more popular alternatives like mustache, > > > handlebars etc.) and client side MV* frameworks like backbone.js, > > angularjs > > > etc. It is completely possible to use both together, most common case. > > > > > > *Note: *I looked at the existing code and saw that the current work in > > > dust.js is very less - around15-25 lines(only dust templates part not > > > html/css). So may I take the liberty of rephrasing your question > slightly > > > as below > > > > > > *Question*: Assuming we can choose only one to keep stack mix to > minimum > > > - shall we use pure client side framework(like dust.js) or pure server > > > side framework(like django)? > > > > > > *Answer*: > > > *TLDR Version:* > > > Server side components offer more flexibility and extensibility than a > > > pure client side framework. Using only client side stack will rule out > > use > > > of database for dashboards, talking to other services,plugins etc. by > > using > > > just dust.js. Things like hardcoding of rest server end points, > graceful > > > degradation, number of parallel connections available in browser will > > limit > > > pure client side stacks. In other cases it will put a stress on falcon > > REST > > > API to be modified just for the dashboard. Using python stack instead > of > > > javascript, will help in getting more support from community. > > > > > > *Long Version* > > > > > > - *Convenience vs. Possibility* - Server side components give us > > > flexibility and extensibility to build for any use case in future as > > well. > > > Any future feature is possible to be built without dust.js and > > bootstrap > > > but not other way around. Dust.js and bootstrap just make it easier > > to do > > > lot of things to enhance user experience. > > > - *Features* - Consider the login page of the dashboard. We will > need > > > a database to store users/ integrate with ldap. We will need to > > generate > > > new random passwords when users forget passwords. Same for features > > like > > > bookmarks, custom dashboards etc. A lot of features like this can't > > be done > > > if we are not using any server side component. > > > - *Sanity of REST API* - REST services of falcon are not only for > web > > > browser consumption. They can be used by command line clients etc. > as > > well. > > > As the use cases for dashboard will evolve, it will become more > > involved to > > > do things using js alone on client side and it will put lot of > stress > > on > > > modifying REST API to suit just the client. For example consider the > > use > > > case of allowing an administrator to edit a process from an HTML > > form. REST > > > API will return plain text/xml and it will be tedious and slow to > > parse > > > everything in javascript side and then recreate it. Sending a json > and > > > accepting json just to cater to web client will be problem for > > > - Another use case can be to be able to export the reports like SLAs > > > missed in last quarter, metrics in pdf/excel format and it will not > be > > > possible to do it on client side and in lack of a server side > > component it > > > will again put stress on REST API to be modified just for dashboard > > UI. > > > - *Best Practices* - With just dust.js and simple htmls being served > > > through a webserver, we will have to deal with naming urls with > .html > > > extensions, hardcoding the REST end points in each HTML etc. > > > - *Browser constraints* - We will have to deal with browser > > > constraints like number of parallel connections, cross site > requests, > > > javascript not being enabled etc. This will also restrict the > > development. > > > > > > > > > - *Community Support* - This is purely my impression and I might be > > > completely wrong here. I see that more python developers are > involved > > with > > > big data/data science/machine learning eco system than more > javascript > > > developers. Hence it will be easier to find more support for > > maintaining > > > and extending these components in community if we develop them in > > django > > > instead of dust.js. > > > > > > > > > > > > > > > On Fri, Jul 11, 2014 at 2:28 AM, Seetharam Venkatesh < > > > venkat...@innerzeal.com> wrote: > > > > > >> I think we are using bootstrap and dust templates. I'd want to see if > we > > >> need to introduce more technologies into the mix. Do we need Python > and > > >> Django? > > >> > > >> > > >> On Thu, Jul 10, 2014 at 6:08 PM, Ajay Yadav <ajayn...@gmail.com> > wrote: > > >> > > >> > Thanks Srikanth and Venkatesh. > > >> > > > >> > I had looked at the UI and the graph database related code and I > will > > >> reuse > > >> > existing code where ever available. I checked for compatibility of > > each > > >> of > > >> > the software being used and they are all compatible with APL 2.0 > > >> (Python, > > >> > Django & Bootstrap). > > >> > > > >> > If you can assign the task to me on JIRA also, it will be > > >> > great(user:ajayyadava) Also, I got the balsamiq account for > > >> falcon(thanks > > >> > Srikant) and I will be asking all my questions on mocks there. > > >> > > > >> > > > >> > > > >> > > > >> > On Thu, Jul 10, 2014 at 2:45 PM, Seetharam Venkatesh < > > >> > venkat...@innerzeal.com> wrote: > > >> > > > >> > > Welcome aboard Ajay. Please let us know how we can help you to get > > up > > >> and > > >> > > running on this. The REST APIs are documented at: > > >> > > http://falcon.incubator.apache.org/docs/restapi/ResourceList.html > > >> > > > > >> > > Thanks! > > >> > > > > >> > > > > >> > > On Thu, Jul 10, 2014 at 7:12 AM, Ajay Yadav <ajayn...@gmail.com> > > >> wrote: > > >> > > > > >> > > > Hi, > > >> > > > > > >> > > > I would like to volunteer for > > >> > > > https://issues.apache.org/jira/browse/FALCON-37 > > >> > > > > > >> > > > I have more than 7 years of experience in building websites. I > > have > > >> > > > experience in both client side > > >> technologies(javascript/HTML5/Bootstrap > > >> > > > etc.) and server side technologies(Python/Django). > > >> > > > > > >> > > > I will need some help with iterating on the mocks as they don't > > >> seem to > > >> > > be > > >> > > > complete. I spent couple of hours on building a couple of pages > > >> using > > >> > > > "dummy" data to get an idea of what all APIs are required. > Please > > >> find > > >> > > them > > >> > > > attached. They are just a quick and dirty prototype and UI is > > pretty > > >> > raw > > >> > > as > > >> > > > of now, to get quick feedback. I used Django,HTML5 & Bootstrap. > > >> > > > > > >> > > > Please let me know if I can own this task. > > >> > > > > > >> > > > > > >> > > > > >> > > > > >> > > -- > > >> > > Regards, > > >> > > Venkatesh > > >> > > > > >> > > “Perfection (in design) is achieved not when there is nothing more > > to > > >> > add, > > >> > > but rather when there is nothing more to take away.” > > >> > > - Antoine de Saint-Exupéry > > >> > > > > >> > > > >> > > >> > > >> > > >> -- > > >> Regards, > > >> Venkatesh > > >> > > >> “Perfection (in design) is achieved not when there is nothing more to > > add, > > >> but rather when there is nothing more to take away.” > > >> - Antoine de Saint-Exupéry > > >> > > > > > > > > > > -- > CONFIDENTIALITY NOTICE > NOTICE: This message is intended for the use of the individual or entity to > which it is addressed and may contain information that is confidential, > privileged and exempt from disclosure under applicable law. If the reader > of this message is not the intended recipient, you are hereby notified that > any printing, copying, dissemination, distribution, disclosure or > forwarding of this communication is strictly prohibited. If you have > received this communication in error, please contact the sender immediately > and delete it from your system. Thank You. >