Coder Social home page Coder Social logo

nyx's Introduction

Simple B2G Shell without Too Much Historical Burden

Yes, Gaia is unavoidable becoming too complex for an unseen developer who understands no mysterious UX and only want a simple shell. Although this is actually a good thing because we have made so much mistakes and tried lots of paths lead to nothing. All of these can be the solid ground for a better future.

Nevertheless, it still has too much compromises and dirty workarounds left by people care no architecture issues but only want to finish the work. We've been tortured by these sad code everyday and do lots of refactoring to try to make things become better. It sometime works well, but unfortunately the other parts of our components are still growing with the monstrous styles and the continuing careless patches. Think about what if we can get rid of these messes and start to develop again, and this time even it may never be a product with commercial success, but we can finally create and hold our peaceful land to see how powerful or awful our underlying platform is, in a different but healthy way.

So, this project would never replace Gaia and it's a very personal project, with the following very personal principles of developments:

  1. If our architecture can't afford UX features, don't do that until we can fix and extend the architecture. In Gaia there are too much ridiculous code exist only because people can't, or even worse, don't like to find a good and unified way to implement the feature, within a theoretical powerful enough architecture.

  2. Rewriting all things should not be blamed, especially when this is for an architecture change. Every time we hit the wall we may discover the limits of our architecture. Sometimes we can still extend it to fit the needs, but if situation is bad we should be allowed to get rid of whole things and start again, with a much better plan.

  3. If platform sucks, do no workarounds for features. Some APIs just not mature enough to support features, and thus the shell should stop to support the relevant features until platform is ready. For example, if orientation API is so problematic when app is in background, kill untrusted background apps to avoid the issue. To be radical hurts nothing in this pure personal project.

  4. Supports nothing if we can't make sure there is no intermittent errors during test. If our code leads to intermittent failures the feature should be suspended, until we can find the root cause and make sure each small step is robust enough.

The current goal is to avoid modify Gaia code but create a new, launch-able System app 'Core'. In the Core environment we can test all new things without be bothered by other legacy components and build scripts. We would not remove Gaia in the code base unless we can make sure the architecture is robust enough.

nyx's People

Contributors

vingtetun avatar timdream avatar kevingrandon avatar etiennesegonzac avatar fabi1cazenave avatar lightsofapollo avatar alivedise avatar albertopq avatar jmcanterafonseca avatar arcturus avatar delapuente avatar daleharvey avatar rudylu avatar crh0716 avatar julienw avatar benfrancis avatar asutherland avatar rvandermeulen avatar gasolin avatar steveck-chung avatar yurenju avatar gtorodelvalle avatar cctuan avatar dominickuo avatar borjasalguero avatar rik avatar ian-liu avatar jrburke avatar rnowm avatar wilsonpage avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.