S-Collection株式会社 システムについて

S-Collection株式会社のシステムサポート事業

3Dトラッキングの可能性!スポーツの現場でも使われている技術に注目します

注目!スポーツで大活躍のIT技術、3Dトラッキング

昨今、スポーツへのIT技術の導入がより活発になっています。
2020年東京五輪でお披露目される最新技術!」でも、東京五輪に向けて開発していた最新技術を紹介しました。

今回は3Dトラッキングについてです。3Dトラッキングの技術がスポーツにどのような影響を与えたのか、これからスポーツ界にどのような影響を与えていくのかを紹介します。


3Dトラッキングとは?

3Dトラッキングとは、カメラで撮影した映像から、物体の3次元の位置情報を計測し、物体の軌跡、速度、高さ、角度などのデータを算出する技術です。

3Dトラッキングで算出したデータは、CGを使って撮影した映像に合成することで、実写映像に自然に合成することができます。
映画やCMなどでも、実際の街に架空のビルを建て、ロボットや怪獣を合成するなど、さまざまな用途で3Dトラッキングが使われています。


スポーツ中継をさらに面白くした3Dトラッキング

3Dトラッキングがスポーツ業界に取り入れられた事例を紹介します。
2019年に開催された「ワールドカップバレー2019」のテレビ中継で、3Dトラッキングの技術が取り入れられました。リプレイの映像が表示されるときに、ボールの軌跡が表示されたり、スパイクの高さやボールの速度などのデータが合わせられた映像が流されました。この3Dトラッキングを用いた映像は、海外でも話題になったそうです。

3Dトラッキングが取り入れられる前は、たとえばスパイクやサーブが決まったとき、リプレイ映像に、スパイクやサーブのスピードを表示するだけでした。しかし、3Dトラッキングが取り入れられたことで、画面にスピードを表示するだけでなく、スパイクやサーブの軌道をリプレイ映像に合成して流すことで、プレーの迫力を可視化して伝えることができるようになりました。


3Dトラッキングはアスリートの支援にも活用される!

3Dトラッキングの導入はファンだけでなく、スポーツの競技者にも大きな影響を与える可能性を秘めています。3Dトラッキングで取得したデータは、アスリートにとって有意義な情報になるのです。
たとえば、自分が意識してなかったプレーの傾向やクセが、3次元の位置情報を通じてわかるようになるかも知れません。自分が考えていたことと現実が違うということが、3Dトラッキングで取得したデータを取ってみてはじめてわかったり、今まではわからなかった選手自身の特徴がデータをとおしてはじめて見つけられるようになります。

また、3Dトラッキングで取得したデータの活用については、企業の取り組みも進んでいます。
たとえば、パナソニックではバレーボールの男子チームに、リアルタイムで取得したデータを提供しています。そこで提供したデータは、選手の強化や育成に利用されています。


今回は3Dトラッキングを紹介しました。3Dトラッキングについて調べていくうちに、スポーツ業界にITが浸透していることを感じました。

3Dトラッキングのほかにも、スポーツの現場で取り入れられているITの技術はたくさんあります。ここで紹介しきれなかったものは別の機会に紹介します。

これからもS-Collection株式会社では 、IT技術に関する有益な情報を発信していきます。

XPで普及してきたペアプログラミング!ペアプログラミングの関心が高まっている理由とは?

質の高いコードができるペアプログラミング

システム開発の手法である、ペアプログラミングをご存じでしょうか?
スピーディーなシステム開発を実現!XP(エクストリームプログラミング)についてお話します - S-Collection株式会社 システムについて」でお話したアジャイル開発の手法のひとつであるXPでも、ペアプログラミングは採用されています。
今回は、ペアプログラミングの手法から、ペアプログラミングのメリットとデメリット、導入事例を紹介します。

ペアプログラミングとはなにか?

ペアプログラミングとは、その名前のとおり、ひとつのプログラムを2名で開発する手法であり、アジャイル開発(特にXP)でよく採用されます。
プログラミング初心者と上級者でペアを組むことにより、技術の向上や知識の共有を図ることができます。
ペアプログラミングでは、2人で1台のパソコンを使って開発します。コーティングを担当するドライバーと、コーディングの指示を出すナビゲーターの役割に分かれて、システム開発を進めていきます。

ドライバーとナビゲーターの役割について、もう少し詳しく説明します。
ドライバーは基本的にキーボードを使用してコーディング作業を行います。ナビゲーターの指示にしたがってコーディングすることで、知識や技術を共有しながら、開発を進めていくことができます。

これに対してナビゲーターは、ドライバーに指示を出します。開発内容に応じて、さまざまなケースを想定し、適切な指示を出す必要があります。

ペアプログラミングは多くの場合「ナビゲーター」を上級者、「ドライバー」を初心者が担当します。指示を出すナビゲーターが初心者だった場合、作業効率が下がってしまうためです。

ペアプログラミングのメリットとデメリット

次にペアプログラミングのメリットとデメリットをいくつか紹介します。

まずはメリットです。
1つ目は作業ミスを軽減できることです。1人で作業するよりも、2人で作業するほうがコーディングミスに気付きやすくなります。プログラムのレビュー後の修正も減らすことができるので、作業の効率を上げることができます。
また、2人で情報共有しながら開発を進めることで、途中で仕様が分からなくなる事態を避けることができます。
2つ目は知識の向上です。ペアプログラミングでは一般的に初心者と上級者がペアとなるため、初心者が1人で作業するより、学習のスピードが向上します。また、質問したいときに隣に聞ける上級者がいるので、すぐに疑問を解消することができます。
3つ目はチームワークの向上です。ペアプログラミングでは2人で作業するため、作業をしながらチームワークを向上することができます。また、交代する人を含めて4人で作業する場合もあり、その場合はより多い人数でのチームワークを向上させることができます。

次にデメリットについてです。
1つ目はペアを組んだプログラマーのスキルの差が大きい場合、片方が退屈してしまう可能性があることです。ペアプログラミングでは、初心者の経験値やスキル向上が見込めますが、上級者にとっては一方的に教えるだけの簡単な作業になりがちです。
2つ目はコーディング方法で意見が合わない場合があることです。同じ処理でもいろいろな書き方ができるため、ドライバーとナビゲーターの書き方に相違があると対立してしまう場合があります。
3つ目は2人のスケジュール管理を調整する必要があることです。どちらかが体調を崩したり、スケジュールが合わない場合は、作業を行うことができなくなります。

ペアプログラミングの導入事例

ここからは、実際にシステム開発の現場でペアプログラミングが導入されている事例をご紹介します。

まずは、ヤフー株式会社のヤフオク!カンパニー開発本部の事例をご紹介します。
ヤフオク!カンパニーでペアプログラミングを行うときは、毎日ペアをローテーションして組みかえておられます。毎日ペアを変えることで知識や情報を共有する頻度を上がるため、システム仕様の理解が加速度的に向上していくそうです。

ヤフオク!カンパニーでは、毎日ペアが変わるため、次の日に組むペアは、前日に作業をしたペアのどちらか片方が必ず残り、ほかのペアから1人がやって来るというルールにしているそうです。
その日の作業をはじめる前に、前日に取り組んでいた作業を、新しくペアを組む人に10分程度レクチャーします。このルールで毎日違うペアと開発すると、1週間以内に各メンバーがチーム内のすべての作業に触れることができます。

こうして、ペアローテーションを繰り返すことで、全員が案件全体の仕様に詳しくなり、属人化を防げます。
もし誰かがプロジェクトから離れることになっても、ほかの誰かが仕様を知っているので、引き継ぎ作業は発生しません。全員が全体の仕様に詳しいため、ドキュメントもほとんど書く必要がありません。
このようにペアプログラミングとペアローテーションを組み合わせることで、ヤフオク!は強いエンジニアチームを作っています。

次に株式会社ぐるなびの開発チームの事例をご紹介します。
ぐるなびでは、プログラミングだけではなく設計の段階からペアで作業をしているそうです。
作業の進め方は以下のとおりです。

1. チーム全体で仕様面、実装概要を決める。
2. ペアに分かれて設計をする。
3. 事前にコーディングの工程の認識を合わせる。
4. ペアプログラミングでコーディングを行う。
  ナビゲータ:決めたコーディングの工程どおりに指示する。
  ドライバー:ナビゲータの指示にしたがって手を動かす。
5. 随時レビューや相談をしながら実装をすすめる。
6. プログラムのリリースを行う。チーム全体で集まり1週間の作業を振り返る。

ぐるなびでは、1~6の作業を1週間かけて行われています。
ここで重要なのは、「3.事前にコーディングの工程の認識を合わせる。」だそうです。
この作業により、最適なロジックを見つけることができ、コーディング時の考慮漏れを事前に防げます。
また、事前に工程を2人で決めることによって責任が分配され、気持ちも楽になるそうです。

ほかにもぐるなびでは、休憩をこまめにとることを推奨されています。ペアプログラミングでは、常にディスカッションを行いながら作業をするので、想像以上に疲れるためです。

さらに定期的に席替えを実施したり、作業を行うためのフリースペースを設けるなど、ペアプログラミングを実施するために必要な環境を整えることに力を入れているそうです。

このように、ぐるなびペアプログラミングを実施した結果、引き継ぎなしでスムーズにメンバー編成を変えられるようになりました。

まとめ

今回は、XPのプラクティスのひとつとして採用されている、ペアプログラミングを紹介しました。

ペアプログラミングを導入することで、質の高いコードを作成することはもちろん、知識や技術を共有し、作業効率を上げることが可能です。
2人で議論しながら作業すると疑問解消がしやすく、1人で作業するよりも早く学習することができるので、新しくプロジェクトにアサインされたメンバーへの教育にも有効です。

今回は2社の導入事例をとおして、ペアプログラミングがどのように実践されているかを紹介しました。
ほかのシステムの開発手法についても今後詳しく紹介していきますので、楽しみにしていてください。

S-Collection株式会社では 、これからもシステム開発に関する有益な情報を発信していきます。

スピーディーなシステム開発を実現!XP(エクストリームプログラミング)についてお話します

アジャイル開発の一種、XPはプログラマー主体の開発手法


以前「アジャイル開発とは~①生まれた時代背景~」、「アジャイル開発とは~②内容・成功事例~」でアジャイル開発の特徴や導入事例について書きました。アジャイル開発の特徴は、スピーディーなシステム開発を実現できることや仕様変更に柔軟に対応しながらシステム開発できることです。

今回はアジャイル開発の手法のひとつである「XP(エクストリームプログラミング)」について紹介します。

XP(エクストリームプログラミング)とはなにか?

XP(エクストリームプログラミング)とは、アジャイル開発手法の先駆けとなったもので、1999年にアメリカのプログラマケント・ベック(Kent Beck)氏らが提唱した開発手法です。
ウォーターフォール開発のように、最初にシステムの仕様やプログラムの設計を決めてからプログラミングを行う従来の手法とは異なり、XPでは小規模な設計、実装、テストを何回も繰り返して段階的に完成度を高めていきます。
XPは10人くらいの小規模な開発チームに適した手法で、開発スピードや変化への素早い対応が求められるベンチャー企業の自社製品開発や、オンラインサービス開発でよく使われます。
プログラミングをはじめたあとに仕様変更が行われる前提なので、設計やプログラミングなどの技術面を重視した開発手法です。

XPが重要視している5つの価値

XPには、重要視している5つの価値があります。それぞれについて、1つずつ見ていきましょう。

1つ目はコミュニケーションです。プロジェクトがうまくいかない原因の1つとして、コミュニケーション不足が挙げられることが多いため、XPでは特にコミュニケーションを重視しています。
プロジェクトではクライアントはもちろん、開発チームのメンバーとも、積極的にコミュニケーションをとることで、大事なことを共有することができます。

2つ目はシンプルにすることです。システム開発の現場では将来を見越して過度な実装を行うことがあります。当初は役に立つと思って実装した機能が最終的には使われず、時間や労力が無駄に終わってしまうのです。
そういった無駄な労力を省くためにもXPではシンプルさを重視していて、最初はできるだけ単純な実装で済ませるようにしています。そのあとに、本当に機能を追加する必要がある場合は、そのたびに実装するようにしています。

3つ目はフィードバックです。XPでは、クライアントやユーザーを巻き込んで一緒にシステムを開発していきます。システムの仕様についても繰り返し確認を行うので、定期的にフィードバックを得ることができ、無駄な機能が開発されることを防ぎます

4つ目は勇気です。XPはウォーターフォール型とは、開発手法が大きく異なります。そのため、上述した4つの価値を実現するためには、かなりの勇気が必要です。

5つ目は尊重です。システム開発は1人で行うのではなく、チームで行うことがほとんどです。XPがいかに優れた手法でも、チームのメンバー同士がお互いに尊重しあうことが必要不可欠です。

以上が、XPで重要視している5つの価値です。

XPを構成する手法を紹介

次にXPを構成する手法を紹介します。
XPでは大きく、共同のプラクティス、開発のプラクティス、管理者のプラクティス、顧客のプラクティスと4つのカテゴリに分けられます。
また、そこからさらにこまかく19のプラクティスに分類されます。

◎共同のプラクティス:
 ・反復
 ・共通の用語
 ・オープンな作業空間
 ・回顧

◎開発のプラクティス:
 ・テスト主導型の開発
 ・ペア・プログラミング
 ・リファクタリング
 ・集団的な所有権
 ・継続的インテグレーション
 ・YAGNI

◎管理者のプラクティス:
 ・責任の受け入れ
 ・援護
 ・四半期ごとの見直し
 ・ミラー
 ・持続可能なペース

◎顧客のプラクティス:
 ・ストーリーの作成
 ・リリース計画
 ・受け入れテスト
 ・頻繁なリリース

ここで、もっとも特徴的なプラクティスである、ペア・プログラミングを少し紹介しておきます。

ペア・プログラミングとは、その名のとおり二人一組でプログラミングを行う開発の手法です。ひとりがコードを書いているときに、もうひとりはコードのレビューをしたり、全体の設計などを考えてサポートします。こうすることで、問題の解決を短時間で行うことができ、結果的にプログラミングの効率が上がります。そのほかにも、コードの共有や設計の質の向上などさまざまなメリットがあります。

XPのメリットとデメリット

XPのメリットとデメリットについても触れておきましょう。

一番のメリットは、変化に柔軟な対応が可能で、開発スピードが早いことです。この特徴は、Webやスマートフォンのアプリの開発に適しています。
また、小規模な設計、実装、テストを繰り返し、段階的に完成度を高めていくため、ユーザーからのフィードバックを受け入れやすいことも大きなメリットです。

次にデメリットについてです。まず、計画段階で綿密に仕様を決定しないため、開発の方向性が途中でぶれやすくなります。次に、チームごとに小単位で開発を繰り返すため、全体でのスケジュール管理、進捗管理が難しく、気付いたときには納期が迫っているということも起こり得ます。

また、あまり採用されない開発手法であるため、XPを取り入れてはじめてわかることもあり、当初の想定とギャップが発生することもあります。プロジェクトでXPを採用してメンバーが開発手法に慣れるまでに時間がかかってしまい、システム開発が進まなくなることもあれば、XPを採用してシステム開発が進むケースもあります。

まとめ

これからはシステム開発の現場では、よりスピーディーにシステムをリリースすることが求められます。開発スピードが速い手法であるXPは、今後より多く取り入れられると考えられます。

XPは設計やプログラミングの技術が重視される開発手法です。そのため、XPを採用し、より早くシステムをリリースするためには、設計やプログラミングの技術を向上することが求められます。

次回はここでも少し触れましたが、XPを構成するプラクティスの1つである、ペアプログラミングについて詳しく紹介していきます。
また、ペアプログラミングの説明を通じて、XPが実際に現場でどのように導入されているかも紹介します。

【業務効率化】誰でも簡単に工数削減!今注目のGoogleAppScriptとは?

簡単!便利!Google Apps Scriptとは?

皆さんは、Google Apps Script というプログラム言語をご存知でしょうか?
Google Apps Script は、Google が提供しているプログラミング言語で、頭文字を取ってGAS(ガス)という略称で呼ばれています。

GAS は、Google が提供しているサービスと連携しています。皆さんが使っている Gmailスプレッドシートに、独自の機能を追加することもできます。

また、GAS はプログラム言語のなかでは比較的身につけやすい JavaScript をもとに作られているため、初心者にも扱いやすいプログラム言語です。
しかも GAS は、あらかじめ Google が開発環境をサーバー上に用意しているため、Googleアカウントさえあれば誰でも使うことができます。
つまり、PCさえあれば誰でも簡単に、無料で使うことができるのです。

そんな便利で使いやすい GAS について、本記事では特徴や使い方を皆さんに紹介したいと思います。

たとえばどんなことができる?

冒頭で GAS と Google が提供しているサービスが連携していると書きましたが、具体的にはどんなことができるのでしょうか。
ちなみに、GAS と連携しているサービスをいくつか挙げてみます。

Gmail
Googleスプレッドシート
Googleドキュメント
Googleフォーム
Googleカレンダー
Googleドライブ
Googleスライド
(ほか多数)

いずれも皆さんが、一度は目にしたり、使ったことがあるものではないでしょうか。これらのサービスに GAS を使って、自由に機能を追加することができます。

たとえば、特定の宛先から Gmail に届くメールを Google スプレッドシートに一覧表示したり、Google ドキュメントに記述した内容を Google カレンダーの備考欄に埋め込んだりすることもできます。
面倒な作業がとても簡単になりますね。

Google 以外のアプリケーションやシステムとの連携は?

GASで連携できるのは、Google が提供しているサービスだけではありません。ほかにも、連携できるアプリケーションはたくさんあります。一部、下記に紹介させていただきます。

・Line
Twitter
Instagram
・Slack
・Chatowork
・Trello
・Backlog
Redmine

皆さんが、仕事やプライベートでよく使うツールもあるのではないでしょうか。
これらにも、GAS を使って機能を追加することができます。

たとえば、Twitter のフォロワー数を毎日自動で取得してスプレッドシートに記載したり、毎日決まった時間に Slack でメッセージを送ったりすることもできます。

GAS でプログラムをつくることができれば、色んなシーンで活躍してくれそうですね

まとめ

今回は、GAS について皆さんに紹介させていただきました。
現役のシステムエンジニアのかたは勿論、今までプログラミングを経験したことがないかたにも、オススメなプログラミング言語です。

このブログでは、今後もプログラミング初心者向けの記事を紹介していきます。
なに事も最初の一歩を踏みだすまでは足が重たいと思いますが、ぜひこの機会に一緒に勉強していきましょう。

ヘルプデスクに人の手は必要か

AIの導入で仕事の現場はどのように変化するのか?

ヘルプデスクにおけるAI導入のメリットとは

ヘルプデスクとは、企業の製品やサービスについて、顧客からの問い合わせやトラブルなどに対応する仕事のことを指します。

皆さまも利用しているサービスや購入した製品などについて、一度は利用されたことがあるのではないでしょうか。困っているとき、冷静に素早く対応してくれるヘルプデスクの存在はとても心強いですよね。

そんなわたしたちの生活を助けてくれるヘルプデスク。
最近では、問い合わせ先に電話をかけると、まずは機械の音声による対応が行われ、目的別に専門のオペレーターに振り分けられることがほとんどです。
効率化が進んでいる企業では、問い合わせに対して自動で対応することができるよう、AI を導入しているところもあります。

ヘルプデスクに AI を導入することで、人件費の削減、サポート時間の拡張など様々なメリットが考えられます。

しかし、このようなメリットと現場の声が必ずしも一致するとは限りません。
そこで今回は、ヘルプデスクの今後について考えていきたいと思います。

AIの導入でヘルプデスクの現場に人は不要になるのか?

ひと言でヘルプデスクといっても、仕事の内容は会社やサービスによって変わってきます。
今回、大手 IT 企業のサービス部門で働いてる方に話をお聞きしました。電話での問い合わせ対応だけでなく、お客さまのニーズの発掘、サービス内容の向上など、さまざまな業務を行われています。

こちらの会社でも業務の効率化のため、AI の導入を進めておられます。サービスの内容が細分化され、顧客のニーズが多様化していけば、将来的にオペレーターだけでは対応できなくなることも予想されます。そういった事態に備えるためには、やはり AI が必要になってきます。

そこで心配になってくるのは、ヘルプデスクに AI が普及すれば、人間のオペレーターが必要なくなるのではないかということ。そんなことを考えながら皆さんにヘルプデスクの将来について聞いてみると、意外な答えが返ってきました。

たしかにAIは便利であり、人件費を減らすことができるかもしれない。しかし、人にしかできない仕事もあるそうです。
『問題を解決したい』と思って問い合わせてくるお客さまも多いですが、なかには『悩みを聞いてほしい、共感して欲しい』と思って問い合わせてくるお客さまもいるそうです。たしかに悩みを聞いたり、共感したりすることは人にしかできません。
そうなってくると、お客さまとどれだけ共感できるか、どれだけ気持ちを汲むことができるかが大切になってきますね。

お話を伺った大手 IT 企業でも、一番最初に先輩社員が新入社員に伝えることは、お客さまを大事にする気持ちだそうです。
お客さまと共感することができれば、ほとんどの仕事は完了する。問題が解決しなくても、共感することで満足してくださるお客さまも多い、ということを伝えるそうです。

実際にヘルプデスクで対応を行ったお客さまについて顧客満足度を追跡調査をしたところ、回答の正確さと、ヘルプデスクに対するお客さまからの評価は、必ずしも一致しなかったそうです。

お客さまに寄り添い、心情的なケアをすることで、お客さまにヘルプデスクの存在価値を見出していただくことがヘルプデスクの仕事だ、と言ってくださるかたもいました。

AIと共存することで変わる「人」に求められること

とはいえ前述のとおり、ヘルプデスクの将来には AI が必要になってくるでしょう。
しかし、どうやって AI と共存していくかは今後の課題です。どんどん進化していく AI についていくためには、人も努力し続けることが求められます。

意欲的な社員のかたは会社以外の研修、特にコミュニケーションスキルを伸ばすための研修を、精力的に受講しているそうです。

AI を導入した最新のシステムがあれば、ヘルプデスクの負担は軽減されますが、その分オペレーターには、AI が対応できないような難易度の高い問い合わせが集中します。
これはヘルプデスクだけに限ったことではなく、AI と人間が共存していくための、社会全体の課題でしょう。人は人ができることを見付け、能力を伸ばす努力を惜しまない必要があります。

S-Collection株式会社でも、最新の技術に頼ることなく、常にお客さまの気持ちを汲み取り、お客さまの業務内容を詳細にヒアリングさせていただくことを心がけています。それが、ユーザー満足度を最大限にするソリューションを提供することに繋がっていると確信しています。

今学ぶべきプログラミング言語はこれだ!Pythonが注目される理由

数あるプログラミング言語のなかでも注目されているPythonについてお話します!!


プログラミング言語Pythonをご存じでしょうか?
以前「プログラミングをはじめよう①ーメリットと言語」でプログラミング言語について書きました。


今回はプログラミング言語Pythonを取り上げて、今注目されている理由についてさらに詳しくお話します。


Pythonの言語の特徴

Pythonは1991年にオランダ人のグイド=ヴァン=ロッサム氏によって開発された言語です。従来から海外では人気のある言語ですが、近年では日本でも注目されています。文法がシンプルで書きやすい、読みやすい点と、ライブラリが充実しているのがPythonの大きな特徴です。ウェブアプリ開発にも使われる言語ですが、特に人工知能(AI)やビッグデータ、IoTなどの分野での活用が進んでいます。

Pythonはどんなシステムの開発に使われている?

Pythonはウェブアプリやデスクトップアプリ、人工知能(AI)やビッグデータの分野でも活用が進んでいて、いろいろなシステムの開発で使われています。ライブラリが豊富なことが幅広いシステムの開発に使われている原因のひとつですが、Pythonの汎用性が高いことがうかがえます。

 

特に人工知能(AI)や計算、統計のプログラムで使用できるライブラリも豊富なのでディープラーニングを学びたい人にもPythonは最適だといえます。


ほかにも、わたしたちの生活になじみがあるYouTubeInstagramなどのwebアプリもPythonで開発されています。

 

Pythonのメリットとデメリット

ここでPythonのメリットとデメリットを紹介します。

 

まずPythonのメリットはコードの書きやすさが挙げられます。具体的にはインデント(行頭を下げること)の数にも意味を持っているので、誰がプログラムを書いても同じようにプログラムを書くことができます。誰が書いてもプログラムが同じように書けるということは別の人が自分のコードを読みやすいということでもあります。書きやすくて読みやすい点が、Pythonが勉強しやすい言語である理由となっています。


次に利用分野が広いことがメリットとして挙げられます。デスクトップアプリ、webアプリ、人工知能(AI)、ビッグデータなどの分野でも用いられており、利用される分野が広いことも大きなメリットです。


さらにプログラム開発を行う際のライブラリの豊富さも大きなメリットです。ライブラリをうまく活用することでプログラム開発を速く進めることができます。
Pythonオブジェクト指向言語であることも大きなメリットです。JavaC++などのオブジェクト指向言語と同じように見通しがよく、保守性が高いプログラムを作成することが可能です。さらにプログラムを変更する際に柔軟に対応できます。

 

デメリットは、日本語のサポートが少ないことが挙げられます。世界的に人気があるPythonですが、日本語で書かれた技術的な専門サイトがPython以外のプログラミング言語と比較すると少ないです。


次にコードを書く際に、メソッドの第一引数に必ずselfを加える必要があることを面倒に感じる人は、デメリットだと感じてしまうでしょう(例:Hellosというクラスのhello_nというメソッドを実行するという実装を行う場合、メソッドは「hello_n(self,n):」というように定義する必要があります)。
さらにはインデントが強制されることもデメリットに感じる人がいるかもしれません。インデントで文のブロックを表現しているため、インデントが強制される決まりとなっています。インデントで文のブロックを表現していることはメリットでもありますが、Python以外の言語に慣れた人は面倒に感じてしまうポイントでもあります。
また、同じオブジェクト指向言語JavaC++などに比べると、プログラムを実行する速さが遅く感じてしまうこともデメリットです。

 

Pythonは年収が高い言語としても人気

最後に収入面についても見てみましょう。

Pythonは数あるプログラミング言語のなかでも年収が高い言語としても注目されています。

ある求人検索エンジンによると、平均年収で見ると上から1番目のGoと2番目のscalaは約600万円、3番目のPythonは約580万円です。しかし年収の最大掲示額で見ると約1500万円で、1番目のGoの約1600万円についで2番目に高い金額となっています。求人数で見ても1番目のGoが約2200件、2番目のScalaが約1500件に対して3番目のPythonは約9300件です。年収が高いうえに求人数が多いこともPythonが注目される大きな理由のひとつになっています。


まとめ


Pythonは今注目されるプログラミング言語です。
プログラミングを本格的に学んでみようと考えている人や、すでにプログラマーをしていてスキルアップをしたい人は、この機会にPythonでプログラミングを学んでみてはいかがでしょうか?

 

S-Collection株式会社ではこれからもシステムに関する有益な情報を発信していきます。

【Windows&Macでプログラミング】これからはじめるなら必読!OSによる違いを把握してPCを購入しよう

購入時におさえておきたい!プログラミングの観点から見るWindowsMacの特徴

2020年度から、全国の小学校でプログラミング教育が必修となりました。

この教育施策は、ロジカルシンキング、論理的思考力を育てるための一貫ですが、プログラミングへの感心の高まりを表しているといえます。

実際にプログラミングする際に重要なポイントは、プログラミング環境の構築およびOS(オペレーションシステム)の選択です。

以前、「これだけ知っておけば大丈夫!WindowsとMacの違いとつかいどころ!①」と「これだけ知っておけば大丈夫!WindowsとMacの違いとつかいどころ!②」で、WindowsMacの違いをお伝えしました。


今回はさらに踏みこみ、これからプログラミングについて勉強しようかなと考えている方や少しでも興味がある方、小学生のお子さまがいる方向けに「プログラミングをおこなう前提」でふたつのOS、WindowsMacの違いと特徴を紹介します。


WindowsMacの特徴は?メリットだけではなく注意点も知ろう

WindowsMacにはそれぞれ以下のような特徴があります。製品仕様だけではなく、実際に購入した際に注意すべきポイントについても理解することが大切です。

Windowsの特徴

  • PCメーカーの数が多い。耐衝撃性能など、さまざまな特徴を持った機種が登場している
  • 価格帯の幅が広い
  • 低予算でも開発環境を整備できる
  • ハードウェアのサポートは、基本的に購入店舗へ依存することになる
  • Apple製品をはじめ、一部使用できないアプリケーションがある

 

Macの特徴

  • 本体が薄く、コンパクトである。そのため持ち運びも容易である
  • インタフェースが洗練されていて、非常に高い人気を誇る
  • Windowsより値段が高くなる事が多い
  • 基本的に自分でカスタマイズすることはできない
  • Windows環境を使用できるものの、Mac OS上では利用できないソフトウェアも多い


MRデバイスに搭載されているのはWindows10 OS!ゲーム開発の分野のプログラミングに興味がある方におすすめ

Windows OSでプログラミングをおこなうメリットは複数ありますが、そのなかでもゲーム開発の分野において主流であることです。

今後、ゲーム開発においてで需要が高まると予想されるのがVR(仮想現実 Virtual Reality)やMR(複合現実 Mixed Reality)の技術です。
VRは「Google Earth VR」のようにデジタルの映像をゴーグルやヘッドセットへ投影する技術で、MRは「ポケモンGO」のように現実の情報とデジタルの情報を融合して投影する技術です。
MR分野において、世界初のMRヘッドセット『Microsoft Hololens』が2016年に発売されました。
さらに2019年には次世代機となる『Hololens 2』を発表しました。
Microsoftの製品ですので、この2機種のOSにはWindowsが搭載されています。

一方で、AppleVR/MRデバイス販売開始時期は2023年ごろといわれています。
つまり、WindowsVRとMR開発の分野でMacに大きくリードしていると言ってよいでしょう。
Microsoftは、Xboxが登場した時期からVRのノウハウや技術を蓄えてきました。今後VRやMRの分野へ進みたいと考えている人にとって、Windowsでのプログラミング環境は大きなメリットになるでしょう。

 

Macでのプログラミング!Windowsがつかえることや多数の言語サーバーと同環境で可能

プログラミング用のPCにMacを選ぶ大きなメリットは、Boot Camp というMac 付属のユーティリティを使うことでmacOSWindows OS を切り替えて使うことができることです。
参考:Boot Camp Apple サポート 公式サイト

1台のPCでふたつのOS環境を整えられるということは、費用面でも大きなメリットとなります。
Boot CampによるWindowsのインストールも簡単ですし、それぞれのOSへの切替も非常にスムーズです。


また、スマートフォンアプリの開発においては、Macの方がメリットが大きいといえます。
現在、日本国内においてiOSスマートフォンの約70%のシェアを占めており、IPhoneアプリMacでのみ開発が可能です。
Macではアプリ開発における利便性が高い LinuxUNIXの仮想環境の立ち上げなど、Windowsと比較して優れた開発環境を整えることが可能です。

さらに、Macは日本語以外の言語にも対応する、多言語環境の設定が容易です。

Windows OSでも多言語化は可能ですが、ほとんどの場合ソフトウェアのインストールが必要となるため設定に時間がかかります。
その点、Mac OSには「Language kit」が最初から含まれており、ほとんどの言語を購入後すぐに使用できます。
です。


取り組む分野に合ったOS選びが大切

今回は、プログラミングをおこなうという観点でWindowsMacの特徴を紹介しました。
WindowsMac、どちらのOSを選択すべきかを決める前に、使い方や取り組む分野をはっきり定めることが大切です。
ぜひ今回まとめた特徴を参考に、最適なOSを選んでみてください。

 


※2020年8月25日、内容を更新いたしました。