I come mainly from a Java background with close to 6 years of software development in Java for corporate giants. What I like about Java is that it is robust, stable, scalable, huge huge ecosystem including libraries, frameworks, tools, apart from stackoverflow & numerous other forums’ questions., patterns, etc. etc.
Do I still like Java today? My reply would be yes absolutely and I am especially proud of one thing which I realized in last few days: The things that I learnt about Java and all the code that I had typed on day 1 (6 years back) still hold good and true.
I acknowledge the fact that it’s a heinous crime to compare a couple decades old, proven and alive programming language Java to a vey new young and budding development framework Meteor and before I get murdered for this act, I would like to share my beautiful and lovely encounter with Meteor in March 2015.
In March 2015, myself and a couple other geeks ventured out to build an enterprise PAAS B2B application for a specific industry and the first question was what do we use to build it? In the last couple years, we had worked a bit on Angular, Backbone, and we really liked the simplicity and more importantly the amount of time that is saved compared to compiling Java source, packaging into a WAR/EAR, deploying to server for changing a single line of code. Trust me it takes ages Hence, we started to look into MEAN stack for turning out quick MVPs and POCs. We had a problem: we now had to learn Angular, Express, Mongo and we just started searching if this route can be further shortened and boy we discovered the Magic land of Meteor and it was love at first sight mainly because of the following:
Isomorphic JS development platform and hot-deploys,
Reactive out-of-the-box
The most important: it took us less than two hours to install Meteor and learn the basics using the To-Do tutorial and before we knew it, we had already started developing our app. Such was (still currently is) the simplicity and magic of Meteor.
The official documentation although a bit poor, official meteor forum, atmosphere (love it), stackoverflow helped us cruise through our app development, since all Meteorites spoke the same language: Blaze, spacebars, helpers, events etc.
In the last few days, however, we feel like Meteor was indeed a dreamland, a comet far away from the reality of earth. I apologize if it sounds too harsh. Hopefully, that’s not the case. Here’s why we are so concerned.
Earlier if we had any query/issue, we would simply post the query on meteor forums or stackoverflow and additionally mentioning the meteor version being used by us. In the near future, the meta-data for such a post would be like:
Meteor version: 1.x.y Template: React (or Blaze or Angular) Router: Iron router (or flow router or hopefully someday core-router) Build system: Meteor core (or webpack or gulp)
Similar repercussions would be felt in atmosphere packages: it would be mandatory for package maintainers to specify above metadata in their “Supports” section of the package homepage as well.
What worries me is the kind of mysterious direction MDG would take in the indefinite near-future based on questions like:
The last question is really important here: What do you not like about JSX? Why? May be (pretty sure), such questions are also being raised outside Meteor community and within React community. It’s quite possible that someone (or some merry geeks) out there are currently working on addressing these issues and then publish a better open-source framework “ReactNext” probably in another 4 to 6 months (being a bit over optimistic) solving JSX limitations. On the other side, let’s say MDG releases Meteor v. 2.0 with official new templating language Blaze2 or inferno or something else with the being discussed React thin layer atop Blaze. Our next task would be to then learn React and refactor our entire app (to v. 2.0) which then gets over by the time “ReactNext” hits the market. What happens then? A similar thread and similar discussion to chuck out React and target Meteor v. 3.0 with “ReactNext”? It would be a nightmare to then learn “ReactNext” and then refactor all over again.
I am not against React or Angular or Blaze 2 or any other templating framework for that matter. I think what I am looking for is if MDG agrees to go with React as the next templating language, can we be assured of a LTS (may be 2 to 3 years). Support would not simply mean backward compatibility but more importantly active maintenance i.e. fixing open Github issues and upgrading the same templating language over the duration of LTS to include the new features and enhancements of other parts of Meteor. This a major concern looking at the way MDG treated its own quite good (may be not perfect) templating language Blaze, first by ignoring the open Github issues and then in a process to kill it altogether.
I think what a lot of people here are trying to say is that as a start-up, they (including us) would prefer to invest their time and effort in developing and enhancing their app built with the adorable Meteor instead of developing Meteor (refactoring to newer versions) every 6 months. Hence, I believe to gain some trust and lighten this thread, it would be really great if MDG first officially announces the two key-points 1. tentative release timeline of this new templating language and 2. long term support duration of the same including bug fixes and enhancements; there would be some fear and scepticism among the community (especially the older members who have Meteor apps running on production) on discussing about the new templating language. I believe this holds true for any major enhancements or changes to any part of Meteor. If this question cannot be answered (rather commitment) before taking a decision to change core parts of Meteor and deprecate existing ones, then unfortunately we face the same dilemma while trying to sell Meteor based apps to our customers; portraying Meteor as dreadful, unstable and unknown since we would not know what Meteor has in store for us in the near future.
However, if those two key-points are first confirmed, then the community would be aware of the upcoming changes and plan accordingly. The tentative release timeline could then also accommodate some dedicated time to discuss the design and architecture with the community as being discussed in this thread regarding the next gen templating language of choice for Meteor (including validating the fact that this is what the community needs right now or prioritise other tasks on the roadmap). It would also avoid a lot of questions being asked in this thread viz. “if we start with meteor now, should I pick Blaze, React or Angular?”
Disclaimer: All of the above is my personal opinion Having said that, I am quite positive Meteor is here to stay for a very long time and I will be riding on it for a long time as well.