Hey Alive, nice to heard from you! If I understood correctly, one of the central point of your arguments are against the <iframe>(s) split ? Let me know if I misunderstood ?
If that's correct I think you are missing the core part of my argumentation when I spoke about <iframe>s and what those are offering. <iframe> are documents. A document is a core web object, which offers things that *really* framework can hardly do. It is not a new cool way of writing things for the web. It is the fundamental part of the web you are using every time you're navigating between 2 urls. But more importantly, documents are something the platform, as in the web platform, can understand. That's one of the thing I'm trying to explain since some times: If we want to build a platform, we need the platform to understand the semantic of a what is a web app. Documents is the best thing I have handy - nothing else as far as I know in the web platform can scope js, css and the dom properly. No. Web Components, can not. I would be very happy to be able to replace <iframe>s by top level document, where each panel is its own document. Then you would really think of this <iframe>s change as a no change. Many website already use navigation between pages. What NGA is not trying to define, is what is inside those web pages - since as you mentioned, there may be various way to handle your application constraints. No, IIRC one of your point is that <iframe>s seems to fit the phone in some ways, as it is mostly panel based - which is not true for tablets for example. That's true. But I guess most of your web browsing is on desktop ? And you are still navigating between documents right ? The web is not a single page - but you probably still like browsing the web. Cheers, Vivien. On Wed, Nov 25, 2015 at 6:41 PM, <[email protected]> wrote: > The problem here is coming from un-trust. > > As you said, splitting panel into iframes will force people to destruct > the panel dependency. Isn't this just meaning: hey I don't trust you can > develop a good application architecture with less coupling, so now please > use NGA because you cannot couple panels anymore even you want to coupling. > > As a web developer, I wrote less code than you all; but only thing I know > better is: there is no best practice for Web application. People can use > any framework, any library, and self-made frameworks to bake their > application. There is no total solution for web application. So this is not > a point to say NGA is good. > > Just like djf mentioned, mozilla knows modularity. I liked that we have > different architecture design for each app; it makes sense because each > application is trying to address different user stories and achieve > different goals. So why do we need a overall one-and-all architecture? > Even applying the NGA, people can definitely write codes which makes their > applications looks so different.... you cannot ask people to design the > modules inside the panels with NGA. > > Unless you invent NNGA: hey, please move every little component inside > your panel into iframes. Make every module communication become > asynchronous, even we don't need to do. > > Sounds crazy... and this was something you mentioned to me, but never > convinced me. Yes, being async is good for cases. With promises we can > write beauituful codes. But sometimes we just need synchronous > communication. > > Also, I like the way people have their own idea about module. Even every > one starts to use ES6 syntax to write applications, I could tell there > would be 20 different ways to define a module across 20 different > applications. Some of them might be inspiring, and I can learn from them. > Some of them might be still deep coupling, and we need to fix them by > learning from each other, instead of saying, hey use NGA or NNGA to write > code, I am just want to help! > > Everyone is here to help, who is not? :) > > At least I won't say, hey angular is popular, please rewrite your > application with it. I am just want to help! Hey reactJS is cool, use it! > I'm just want to help. > > No, no. Framework or library won't teach you how to organize your > application. As I said, even with ES6, I can write bad code with dirty > module coupling. It's not what you use shape your app. It's what you think. > It's your experience helping you. I wrote very bad code when I joined > mozilla, but I made some effort such as read all kind of codes from others > and did lots of refactoring. Now I have my own "feel" about modularity and > architecture. If you ask me to follow only one way to write my code, I > don't think I can grow up. > > I believe what shall be done is not asking people to follow your own > "future". I think a better way is to gather people sit down to tell each > other: > > 1. What's the current architecture of my application? > 2. How do I separate my UI and data? If I don't, what's blocking me to do > that? (Please, don't call that FE/BE. Very confusing.) > 3. What's possible if I am asked to design an application to fit different > devices? What would be common, and what would be device specific? Don't we > just need to extract the data logic from the view logic? Why do we need to > put every panel and every little component into iframes and increase the > communication overhead? > > What made me sad at most, is that, people is selling NGA ideas like they > are the sales, not an engineer. I am not the customer. It's really annoying > to hear 'this is really wonderful' without real data. Such an advertising > wording does not convince me. I can do the same thing to split modules > without NGA's help. I can see that some people will still write coupling > codes with NGA. And in the long run, it hears like: people don't how to > lessen module coupling before we invent NGA. This is also the point that > increases the un-trust between developers as I mentioned above. > > It's very "interesting" to see people say "NGA is working" and show us > that pick contact activity now don't need to load the first page. It's not > coming from NGA. It was a design failure that we must load the main panel > and then the second panel. > > There was ever an app called settings app.. Long long time ago, we need to > load the main setting panel when we are using web activity to launch > certain panel. But Arthur and 佳龍 did lots nice refactoring work to split > the subpanels. Now we can directly load any subpanels. And what's most > important, this was happening before NGA. What they use is just require-js > and have their own design of panels. I bet that I can do the same thing > without using requirejs. So why can we say NGA did succeed and work because > of this result..? > > TL;DR > 1. There is No architecture total solution for web. Each app has it own > shape, its own target, and its own future. > 2. Force using NGA implies untrust to the devs > 3. Web won't teach you how to coding. Web is silent. > 4. Brainstorming and learning from each other makes dev grow. Force using > one framework makes dev become code farmer. > 5. When I said NGA, I am talking about "splitting views into iframes". Not > the gaia-fast-list. Not moving heavy-load things to web worker. Some of the > technologies are good, but made everything become iframe is not. > > -Alive > > Vivien Nicolas於 2015年11月23日星期一 UTC+8下午8時46分43秒寫道: > > On Fri, Nov 20, 2015 at 5:38 AM, David Flanagan <[email protected]> > wrote: > > > > > > I've been thinking a lot about this thread in the context of Ari's talk > at the All Hands meeting yesterday. We're working on an OS that has to run > on smartphones, smart tv's and other form factors tbd. Ari asked us to > focus on portability, and that obviously will be key to our ability to run > on different form factors. > > > > > > I had something of an epiphany today: In the future, teams inside and > outside of Mozilla will build > > devices that run FirefoxOS and will create products that provide true > > user value and delight. At this moment we don't know what those products > > will be. So for core FirefoxOS developers, our users are these future > > product development teams. We need to be building an OS that is so fast > > and flexible, so portable and performant that product developers will > > feel delight using our platform. > > > > > > > > > > "At this moment we don't know what those products will be". > > > > > > This sentence is extremely important to me. It should have been the > first thing I noticed. As far as I know, this is correct. Nobody knows. > > > > Am I wrong to say this is true since last December ? > > > > > > But...based on Wilfred initial email, there are some hints. Various form > factors. List of most wanted apps. The need for different views for those > apps. > > > > > > This is something we can address. Ensuring the FE and the BE are > properly splitted, with clear and documented APIs, will be helpful, to make > it easier to write various views. My point is that this work should happens > first. > > > > > > Once it has happens, you can parallelize work. Some people can work on > transforming the front-end to use a components system, while some other may > work on making the backend more pleasant, more abstract, more performant > and add some new features. > > > > > > Also, once a lot of the business logic has been clearly separated, it > would be much easier to have others helping the front-end of any apps. > > > > > > Concerning point #2. The idea is that porting all the front-end in once > is hard. It is also hard to get many people working on various panels at > the same time. Splitting things into multiple isolated contexts, may let > many people working at the same time on a dedicated view, and limit the > possible area of conflicts. > > > > One can argue that this can be more or less achieved using the right > framework and beeing very cautious. This is likely. But once the team > starts to be under heavy constraints this is something very hard to keep > running. While strong isolations of views, prevent some changes to leak in > other views, helping developers and reviewers in their daily job. If > everybody rush into web components now, are we sure we will not beeing > asked to ship something before everything has been converted ? And if so, > do you really want to ends up in the same situation than one of two years > ago ? > > > > > > I'm less confident in #3 if we want to do it at Gecko level. So far, and > as you mentioned, we lack some platform features to do it properly. > Hopefully, once we have #2 it can be emulated partly at the toolkit level > (you will be happy there is a web component for that). > > > > > > Basically Web Components will help to write views faster, with globally > a more unified experience across the target. But if you want more manpower > from people out of your team in order to move very quickly, you will need > to have a clearly isolated backends with clear APIs, ensure the work of > one, will not conflict nor regress the work of an other, and have a > incremental way to migrate. > > > > > > Also, Web Components will help a lot for the UI paradigm. But this part > is undefined so far. > > > > Even by assuming all apps has been able to migrate to use components > everywhere before the next rush - we may be in front of a target device > that use completely a completely different metaphor. > > Yes, components will have clean the (UI) code base, and it sounds easier > to replace just a component. But you will again have to fix all the app > (UI) at once, working with the limited set of people that knows the app > business logic and constraints, trying to avoid regressions abd collisions. > > Sound scary to me. Not saying #1 and #2 will fix everything. But they > are trying to help at least. > > > > > > Vivien. > > > > > > > > > > With that in mind, I'd like to suggest that we'd be better served by > focusing on web components than by working on NGA. > > > > > > > > Converting our building blocks to web components and then refactoring > our apps to use those components and to be based on higher-level web > components will give us much of the modularity and portability that we're > seeking from NGA, but at the same time, it will also create a high-quality > library of reusable UI components that third party app authors (including > those who are embedding FirefoxOS in new products) can use to more easily > create apps. > > > > > > David > > > > > > > > On Fri, Nov 13, 2015 at 9:40 AM, Wilfred Mathanaraj <[email protected]> > wrote: > > > > > > > > > > Hi all, > > > > > > Given the Music app splitting we have done in time for 2.5 we want to > move ahead - I think it makes sense to be executed in a “train model” > fashion. > > We should start from the top of the list and work through the list. > > > > > > When I say splitting of the apps, we are looking for the following > activities to be done: > > 1. FE/BE split > > 2. Split views > > 3. Page transition > > > > > > Why did I choose the priority below? - for now we have 2 products that > we work on: smartphone and TV, but moving forward we need to investigate > what are the products that make sense for us and when we enter the > connected devices market 3rd party developers need to be able to develop > differing views for our core apps. > > > > > > With this is mind we went through some exercise to define a priority for > the apps to be ported to the updated architecture. > > > > > > Priority list: > > > > Settings - this is a key app for any product mozilla may be planning to > release; different apps will have different needs to display information to > the user in the settings > > Camera - again a key app for a lot of the modern devices > > Contacts - everyone wants to have contacts on their devices - but they > need different level of information - creating differing views is going to > key here > > Calendar - as with contacts its critical to have differing views but not > as high priority as contacts > > Gallery - another core app that every connected device may need to have > > E-mail - typing emails on smaller devices will be a problem and > therefore creating readable email view may be needed for some connected > deviceds > > Calculator - table stake app > > Clock - table stake app > > Browser - one of core mozilla apps but a table stake app for some of the > connected devices > > > > > > > > Some of the engineering teams, who have already worked on this split, > will be reaching out in smaller teams to discuss best practices and quick > wins for this activity. > > > > > > BR > > Wilfred > > > > > > > > > > > > > > --- > > FxOS Product Management > > Mozilla Corp., UK > > > > > > > > > > > > > > > > _______________________________________________ > > > > dev-fxos mailing list > > > > [email protected] > > > > https://lists.mozilla.org/listinfo/dev-fxos > _______________________________________________ > dev-fxos mailing list > [email protected] > https://lists.mozilla.org/listinfo/dev-fxos >
_______________________________________________ dev-fxos mailing list [email protected] https://lists.mozilla.org/listinfo/dev-fxos

