2020年にMeteorを使用する理由

死んだとされる開発プラットフォームであるMeteorはまだ生きており、日常のコーディング体験に大きな価値をもたらすことができます。

Meteorは2012年の初めに登場し、Web開発の世界を揺るがしました。特定のウェブサイトまたはウェブアプリのサーバー側とクライアント側の間のギャップを埋める可能性は、本当に魅力的でした。

多くの専門家は、この機能だけでプラットフォームを主流の業界標準に変えるべきだと考えました。それにもかかわらず、8年後、多くの人々が流星が死んだと主張します。

そうですか?そして、流星を学ぶための合理的な正当化はありますか?この記事はあなたに決定的な答えを与えるでしょう。

流星は死んだ!ロングライブメテオ!

多くの開発者は、Meteorが死んでいると信じています。一般的な説明は単純です。2012年に導入され、2015年にはすでに有望な機能セットがありましたが、それらを大幅に拡張することはできませんでした。

開発チームの資金調達の問題について聞いたことがある方もいらっしゃるかもしれません。多くの人にとって、この事実だけでプラットフォームを完全に忘れるのに十分です。

しかし、現実は見た目よりもはるかに楽観的です。今日、Meteorの開発者は、ITで最も信頼できる投資ファンドの1つであるTinyから安定した資金を受け取っています。バージョン履歴は、開発プラットフォームが死んでいるわけではないことも示しています。最新のイテレーションでは、2020年2月に1.10.1の指定がリリースされています。

したがって、Meteorが常に密かに好きであるが、プラットフォームが死んでいるという絶え間ない報告のためにプラットフォームを選択することを恐れていた場合は、今が誇大広告の列車に飛び乗る絶好の機会です。

メテオの死の報告は非常に誇張されており、その成功の可能性は非常に過小評価されています。

前例のないシンプルさ:Meteorの主な機能

Meteorのステータスを明らかにしたので、今度はそのキラー機能のいくつかを説明します。Meteorは間違いなく、最も機能が豊富であると同時に、今日の使いやすいJavaScriptフレームワークの1つです。

キラー機能1:統合されたクライアントとサーバーの開発

Meteorは、前述したように、プロジェクトのサーバー側とクライアント側の間のギャップを埋める機能で注目に値します。したがって、Webサイトのあらゆる側面をJavaScriptのみで開発できます。

この機能の利点は、現代の開発の世界では無限であり、駆け出しの開発者と経験豊富な開発者の両方にとって価値があります。

とりわけ、このアプローチにより、開発者は他のプログラミング言語の経験がなくてもプロジェクトを作成できます。

したがって、才能はあるが経験の浅いJavaScriptプログラマーは、問題なく複数のMeteorプロジェクトを簡単に保守できます。経験豊富な開発者は、Meteorプラットフォームを介して、サービスと製品のエコシステム全体を維持しながら、さらに先に進むことができます。

その結果、あなたの会社でMeteorを採用することは、すべての関係者にとって並外れた恩恵となる可能性があります。

  • プログラマーは、追加のフレームワークやプログラミング言語を学習するための疲れ果てたプロセスにより多くの開発を行い、より少ない時間を費やすことができます。
  • あなたの顧客はサービスのより低い価格を楽しむでしょう。
  • そして、フレームワークの採用後、あなたはより高い利益を得るでしょう。

独立した開発者も、今日の開発プラットフォームの主要な恩恵を受けることができます。結局のところ、個人的なプログラムに1つの言語のみを使用できるため、より多くのフリーランスプロジェクトに取り組む機会が得られます。

キラー機能2:Webアプリケーションをスマートフォンプログラムに変換する

特定のWebアプリケーションを開発するすべての企業は、その製品のスマートフォンバージョンを求めています。そのような戦略の利点はかなり明白です:結局のところ、誰もが今日AndroidまたはiOS電話を持っています。

ただし、スマートフォン版のアプリを探している企業は、多くの場合、莫大な開発コストの問題に直面しています。多くの場合、Webアプリのモバイルバージョンは最初から再作成されます。

運が良ければ、このプロセスにはクライアント側のプラットフォームのみが関係する可能性があります。ただし、スマートフォン開発フレームワークは非常に多様であるため、クライアントとサーバーの両方を拡張する必要がある場合があります。

特定のWebアプリにスマートフォン用のiOSまたはAndroidクライアントしかないという苛立たしい状況を見たことがあると確信しています。この場合、フレームワークに関する統一性の欠如が主な原因です。

Meteorは、この問題に対してエレガントで拡張可能なソリューションを提供します。MeteorとApacheCordovaの強力な統合により、大きな投資をすることなく、Webアプリケーションをスマートフォンアプリにすばやく変換できます。

純粋に技術的な側面では、MeteorとCordovaの組み込みコンテナー機能により、このような移行が可能です。あなたがしなければならないのは、あなたのウェブアプリを事前に開発されたスマートフォンコンテナに挿入することだけです。

Another critical design choice is the approach Meteor takes with data. Meteor uses data on the wire – the server doesn't send HTML but data, which is then rendered by the client. If the design of your web app is already touchscreen-friendly, you can immediately push your new program into the App Store or Google Play Market with Meteor.

If that is not the case, all you would have to do is slightly adjust the design using the JavaScript language. Essentially, the process would be similar to developing a mobile version of a website.

Once again, such an approach will save you unprecedented amounts of time and money. Instead of having to hire some dedicated smartphone developers, you will be able to fully concentrate on your web apps. This feature is also vital from a purely aesthetic standpoint. Meteor is one of the best tools when it comes to making the design of your products uniform.

The use of a unified platform will help you establish a professional standardized look in all business spheres.

Killer Feature 3: Real-Time Updates

Meteor is also capable of real-time updates, or so-called "full-stack reactivity." The changes you make immediately appear across all databases and style templates. In this way, you would be immediately able to see critical bugs and double check the features without having to tediously update web pages and certain programs.

This feature is of vital importance when it comes to large teams. The immediate updates are visible to all team members, creating a perfect environment for collaborative development. Ultimately, your web apps and smartphone programs will significantly benefit from this feature as it makes bug fixing incredibly simple.

Without going into details, one way of implementing the feature is a publication/subscription functionality.

// Code on the server side const MyAwesomeData = new Mongo.Collection('myAwesomeData'); Meteor.publish('myAwesomeData', () => { return MyAwesomeData.find() })

It creates a publication for everything in the collection myAwesomeData. This publish function is requested whenever a client subscribes to it. So, let's create a subscription.

// Code on the client side Meteor.subscribe('myAwesomeData')

Now, all the subscribers will receive updates whenever a publication is requested. Also, we can receive data using a specific parameter.

// Code on the server side Meteor.publish('myAwesomeData', (userName) => { return Comments.find({ userName: userName }) })

The last piece of code retrieves data using a specific user name:

// Code on the client side const userName = 'Jack Sparrow' Meteor.subscribe('myAwesomeData', userName)

Killer Feature 4: Easy Package Management

Often, the deployment of modified versions of development frameworks requires a significant expenditure of time and resources. Meteor, however, is extremely user-friendly in this regard, offering some of the best package management tools on the market.

Today, the community of the Meteor developers maintains a gargantuan database of extensions on the AtmosphereJs website. Some of the popular extensions include tools for embedding ReactJS and Vulcan Bootstrap.

To install an Atmosphere package, you simply run the following command meteor add nameOfThePackage:

meteor add react-meteor-data

And to delete a package:

meteor remove react-meteor-data

To import and start using it in code, you should use the "meteor/" prefix:

import { useTracker } from 'meteor/react-meteor-data';

More information can be found here: //guide.meteor.com/using-atmosphere-packages.html#peer-npm-dependencies

This feature is especially impressive considering its simplicity. The installation process only requires a set of simple commands that almost any advanced Windows or Linux user should already be comfortable with.

Even if you are an absolute beginner, you should have absolutely no problems with setting up a basis for even the most complex programs.

Thus, any person can swiftly create app prototypes and make them feature-rich by using this robust library of extensions and the advanced package management tools provided by some of the Meteor developers and the active community that surrounds the framework.

Killer Feature 5: Extensive Learning Resources and Documentation

One of the key problems of many open-source projects is the complete lack of proper documentation. This problem led to the death of countless promising projects as outside developers were often forced to essentially reverse-engineer their features.

Do not worry – Meteor is unlikely to fall victim to this problem. After all, the website of the platform has a powerful set of tutorials for beginners and a whole subsection is dedicated to documentation.

We recommend these resources to both the beginners and the advanced users.

If you are new to web development, Meteor tutorials will help you create your first web apps (one of the highlights includes a Whatsapp clone).

If you are an advanced developer, the tutorials will quickly teach you the basics of Meteor. After that, you will just need to check the documentation from time to time to resolve some issues.

Killer Feature 6: Active Community          

If you fail to find information on the Meteor website, you can always resort to the robust forums.

We have spoken extensively about the death of Meteor in the first section of this article. Few facts defy this claim as much as the community of Meteor users.

As the massive extension library of Meteor proves, the framework receives active support not only from its developers but also from the community.

At the time of Meteor's presumed death, the interest from developers regarding the platform was seeing unprecedented growth. Consequently, the framework now has an incredibly passionate user base which is always ready to troubleshoot your problems.

Many people (including myself) know that Meteor’s community is among the nicest on the Internet. You are unlikely to meet any hostility there, and many active members are eager to help newcomers.

Since Meteor developers have received a significant financial boost from the Tiny Investment Fund, this community is likely to grow even more. Thus, your adoption of Meteor is likely to be very smooth as countless developers will be be ready to assist you.

Conclusion: So, Should You Learn Meteor?

The short answer is simple: yes, undoubtedly.

Knowledge of the Meteor platform is the perfect addition to any developer's portfolio.

  • If you primarily develop with JavaScript, the platform will help you or your company cut time expenditures on creating separate client and server projects.
  • If you are an independent developer who uses C# or Ruby, Meteor can be a perfect entry point into JavaScript development. It will allow you to create independent web app projects with one programming language.
  • If you are an absolute beginner, the platform will help you create your first well-functioning apps after just a few weeks.
  • If you want to establish a startup, Meteor can be a perfect starting point for quickly creating a powerful prototype of your future web app. More importantly, the tool is robust enough to make any transition to other platforms unnecessary after prototyping.

Essentially, with Meteor, only the sky is the limit. Modern development is becoming more and more web-centric. Meteor perfectly reflects this trend, offering an all-encompassing platform for web developers.

By using it, you will be able to create a seamless integration of web and mobile apps, both of which are the future of consumer-centric computing.

Do you have an idea for a JavaScript project?

My company KeenEthics is an early adopter of the Meteor framework and a well-established JavaScript company in general. In case you have a promising project in mind, feel free to request an estimate.

If you have enjoyed the article, you should continue with What Are the Advantages of Node.JS? and Angular vs React: What to Choose for Your App?