• Aug. 30, 2015, 6:45 p.m.

    As August nears end, it is time for another update. While no progress was really made within implementation of new features, project saw two big decisions occur during this month:

    Ember.js has been dropped for Mithril.js

    I have decided to change JS framework used for app's frontend for smaller one. Ember.js was great framework to start with, but as you got deeper into forest, things were starting to feel like in Blair Witch, with fw's magic starting to work against you as soon as you tried to do little more than was planned, as well as authors trying to support aditional use cases or ideas, breaking API's that you've relied heavily every 6 weeks.

    After short contemplation I've decided to go with custom abstractions build on top of Mithril.js FW that provides everything js app totally needs... and only that. So there's router, that just maps url to component displayed in part of dom, there's simple data bindings solution, there's simple view layer and simple promises lib.

    How everything else's going to work, is up to you. And I am loving that already.

    New approach to project development

    I've decided to stop being shy with including potential testers and commiters into process and begin using continous deployment methodology in works on 0.6.

    This means that as soon as authentication flow will be implemented, I will start looking into setting up 0.6 preview board for everyone to see state of things and potential progress. This also means that potential and current commiters will have access to current installation running latest master to locate project areas that need development and improvements.

    Finally, I've decided to prioritize features associated with discussions when working on 0.6, adding basic stubs to things like avatar options, users list or profiles until discussions reach certain level of completion I will feel comfortable with.

  • Members 21 posts
    Sept. 2, 2015, 7:07 a.m.

    New approach sounds good. Because now very hard understand current status development version.

  • Sept. 7, 2015, 2:23 p.m.

    Yeah, however that duality gonna stick around until 0.6 with migration tool is released, allowing me to merge this and preview forum together under single domain.

  • Members 9 posts
    Sept. 21, 2015, 7:48 p.m.

    I don't want to say at all how should you do things, but my note or advice on your approach is this:
    If you would use a more popular, well-known JS framework (either Angular, React or Ember, whatever) I think more people would contribute to the project in the long term. I don't have any numbers, just a thought :) But depending on your goals where you want to drive this project (having fun with it, getting experience, etc..) this might be a better choice of course.

    Anyway, keep up the good work!

  • Sept. 21, 2015, 9:23 p.m.

    I'm dysliking Angular for their approach to view layer as well as weird HTML popping here and there for their data bindings, which I consider "dirty".

    React is just view-layer, so I would have to look on my own for promises, routing and binding libraries. It has hefty price tag of 130kb too, and there's no telling how much would those other libs add.

    I've dropped Ember.js because I've lost confidence into its developers ability to maintain stable and dev-friendly ecosystem around that library. It also had certain "opinions" and quirks that were making me want to break my laptoop on knee, like need for massive gymnastics for optional route params or "flat" routes loading templates, abysmal performace of Ember-CLI in larger projects, terrible error-reporting on level of "Something tried to do something in your app that wasn't allowed. Good luck finding out what's that" (like "error: calling set on destroyed object"). That was reported milion times to them but there was zero efford done to fix it. But why bother fixing anyway? In half year or so it'll be deprecated and replaced by another solution that will force you to refactor half of your codebase for no real reason. Or they did it to have something cool to show at this month's EmberConf?

    IMHO Mithril.js is actually off to a great start as an alternative to Backbone.js, as it gives you router, databindings, promises, components and viewlayer using vdom, with everything being as basic as possible to let you build on with your own layers of abstraction.