お役立ちコンテンツ | フリーランスエンジニアの案件・求人なら【テクフリ】

お役立ちコンテンツ

フリーランスの抱える税金や確定申告、社会保険や経費に関するお悩みを解決いたします。そもそもフリーランスになるためにはどうすればよいのか、現在正社員で働いているが、フリーランスになりたいと考えている方々にも必見です。役立つコンテンツ満載でお届けいたします。

該当コンテンツ数296件中241~252件を表示
Kotlin

Google formとKotlinを使って、無料のハッカソン・アンケートフォームを作っていきましょう

先日、私たちは半年期のハッカソン:Carrot Wars 2018 をインスタカートで開催しました。 イベントを通してある事実、大きなギャップを知りました。今のネット上でハッカソンイベントの結果を簡単に(そして無料で)集計するサービスはありません。素敵な選択肢はありますが、料金はかなり高いです。しかも、ほとんど単一のイベントでしか対応できません。また月額課金制度も基本です。そして他の制限もあります。 最近人気のあるハカトンがどのようなものかを考えると、そこには少なくともいくつかの選択肢があると思います。もちろん私たちはリサーチをしましたが、ニーズを満たすオプションを残念ながら見つけられませんでした。 この点に対して、私の共催者は私より現実を認識していました。「今はもうイベントの2日前です! もう直前です。一からアンケート用フォームを作る場合ではありません。もっと重要なことに集中するべきです」彼はそう言いました。 彼の言う通り、私は下記の方法でやってみました。 Kotlinの案件を探してみる ソリューションの選択 Google Forms 個人的に一からアンケート用サイトを作るのが好きではありません。だから私はGoogle フォームの力をちょっと借りたいと思います。もし一気に大量の応募者に対応しなければならない場合、Google フォームはかなり役に立つと思います。Googleは良いUIを提供していますし、作る方法も驚くほど簡単です。 Kotlin script (kscript) 私が興味を持つのは”集計結果”です。私はおそらく、Googleシートに結果を出力するためにGoogleフォームを取得している可能性があります。しかし、私のExcel /シートは、私が望んだ結果を得るために必要な数学的表現を調整するのに十分強くはありませんでした。 それについて、私は数学的シート表現の代わりに単純にKotlinでスクリプトを書きました。それは私にとって自然な行為でした。さらにアンケートの結果を綺麗にプリントできました。 Kotlinを選んだ理由は二つ:私はAndroid開発者です、そしてInstacartでみんなさんはKotlinを愛用者です。面白いことにこのハッカソンを行う時ちょうどKotlinが新いバージョンをリリースした頃でした(Kotlin 1.2.50 )。 あなたがbashのようにターミナル・プロンプトでスクリプトを実行することについては非常に満足のいくものがあります。 bash syntaxの不快さと、Kotlin言語のすべての心地よさがなくてはなりません。 アンケートの流れ: ・参加者は五つのカテゴリーに参加できます。 ・イベント当日は参加者にプロジェクトのリストを送ります。そして、参加者は各カテゴリーのベストスリーを選びます。 ・Googleフォームはかなり使いやすいです。アンケートの結果を簡単にCVSフォーマットに移行できます。 ・このKotlinスクリプトはCSVを取り込み、計算も行います。それぞれのカテゴリの結果をプリントします。 ハッカソンに対するこのフォームの使い方 1.フォームを作る 私が1押しのアドオンはformRangerというアドオンです。理由は一つ、このアドオンは自動的に資料の追加ができます。 これは私たちにとって役に立ちます。ハッカソンはいつもイベント直前に応募する方々が多くいます。そのためプロジェクトリストはいつも変動が多く、それに対し、アンケート用のフォームも連動しないといけません。(Instacartのハッカソンは五つのカテゴリーがあって、各カテゴリーは30件のプレゼンテーションがあります。それは合計150件のエントリーです。)どのようにして150件のエントリーを管理するのかがとても大事なこととなります。答えはformRanger です。たった一つのGoogleシートで全ての資料を管理できます。 そしてマッチング方法はこのようになります。プロジェクトは行で、順位は列になります(多肢選択法のグリッッドのようです)。あと一つとても重要なポイントは順位に対してレスポンスは一つしかできないという事です。そうでないと一つ以上のベストスリーが発生する場合もあります。 2. Kotlin scriptのインストール こちらのハイパーリンクから、Kotlin scriptの設定方法がわかります。 # install sdkman (if you haven’t already)curl -s “https://get.sdkman.io” | bashsdk install mavensdk install kotlinsdk install kscript # alternatively with homebrewbrew install mavenbrew install holgerbrandl/tap/kscript 3. CVSフォームを作る(出力する) Googleフォームであるレスポンスボタンを押すと、綺麗なCVSフォームを自動作成しますので、簡単にダンロードできます。Googleフォームはだいたい十分ですが、私はもう少し洗練された要素を付け加えたいです。例えば、各カテゴリー(結果)についてのweightingとfiltering です。こういうプログラムを使うと本当にいろんな可能性がでてきます。 4. commandを動かす 流れは下記のようになります: kscript carrot-wars-tabulate.kts ~/Downloads/star-wars-demo-results.csv 初回(スクリプトを初めて実行すると必要な依存関係を作成するので)は少し時間がかかりますが、ご了承ください。 実際はこうなります: 気に入らない人もいますが、でもこれは私のチョイスです 4. リソース ・ Demo Google voting form(自分の好きな選択肢を選んでください!) ・Sample CSV responses file (CSV 結果ファイルの見本です) ・Google sheetused topopulate above form (内容追加のためです) ・Source repofor Kotlin scriptthat tabulates and prints out the results (Kotlin script用、フォーム作りと結果を出力する) タイトル:Free hackathon vote tabulation using Google Forms & Kotlin 作者:Kaushik Gopal 原文URL:https://tech.instacart.com/free-hackathon-vote-tabulation-using-google-forms-kotlin-3c7b7080ea Kotlinの案件を探してみる
Swift

Swift:人気のプログラミング言語13位【2019】

Swiftとは 今回は、作成したプログラミングコードをITエンジニアのコミュニティーであるGitHubにオープンライセンスで公開するとともに、世界中のプログラマーレビューしてもらう仕組みである「GitHubPullRequest」のシェア率で2019年1月~3月統計で第13位にエントリーされたSwiftについて見ていきます。 SwiftはAppleが開発したプログラミング言語です。 毎年、Appleが開催している開発者向けのカンファレンスである、“Worldwide Developers Conference”(ワールドワイド デベロッパーズ カンファレンス、略称:WWDC)にて、2014年に発表されました。 Appleが開発したプログラミング言語ということもあり、現在、iOSを搭載したiPhoneやiPad向けアプリ開発において利用頻度の高い、主要プログラミング言語となっています。 Swift案件を探す C系の開発言語 Swift Swiftを言語的に分類するとC言語から始まるC系言語の系譜に連なります。 いままで使われてきたObjective-C、そして、Objective-Cのご先祖であるC言語と共存(混在)できるようになっています。 ただし、SwiftとObjective-Cの共存はまったくのフラットでボーダーレスというわけではありません。 詳しくはObjective-Cの記事を参考にしていただきたいのですが、Objective-Cの記述方法が、数あるプログラミング言語の中でも相当、特殊なものというのもありますが、世代が異なるため設計思想にズレがあるのです。 また、Swiftは2014年に発表された若い言語であるため、まだまだ“こなれていないプログラミング言語”という批判もあります。 そういった理由から、古参プログラマーの中には敢えてSwiftを使わない、という選択する方もいるそうです。 そのため、2019年で公表されてから5年になりますが、思ったよりもObjective-CからSwiftへの移行が進んでいない、という評価を下す方が多いです。 Swiftは人気言語? 昨年の順位と比較して考察 2019年1月~3月統計で第13位だったSwiftですが、一年前の2018年1月~3月の統計でも第13位でした。 ただし、シェア率では2018年1月~3月の統計では 0.896% なのに対して、2019年1月~3月の統計だと 0.779% に下がっています。 実は同じ期間で比較すると、同じくiOSアプリ開発に利用されてきたObjective-Cも順位、利用率共に引き下がっています。 これにはいくつかの理由が考えられます。 Swiftのシェアが下がった理由① 理由の一つ目としては、iOS搭載機器、つまりはiPhoneやiPadの新機種の販売台数が伸びず、結果、iOS向けアプリ開発自体、減っている、という点です。 世界的にみると、2019年現在、スマートフォン市場におけるiPhoneのシェアは15%もないと言われています。 つまり、スマートフォンユーザーのうちiPhoneユーザーは10人のうち1人、2人、ということです。 iPhoneのシェアが高いと言われてきた日本でも、2018年に、androidにシェア率トップの座を明け渡しています。 2019年3月のデータによると、日本国内のスマートフォン市場におけるiPhoneのシェアは約4割だそうです。 みなさんが思っている以上に、最近のiPhoneは売れていないのです。 そして、このようなiPhoneの販売不振がIT業界にも波及した、ということが考えられます。 つまり、androidアプリの開発がより重視されるようになったのに対して、iOSアプリの開発が軽視されるようになった、ということです。 10人のうち7人か8人使ってくれるかもしれないアプリの開発と、1人、2人しか使ってくれないアプリの開発、どちらを重視するかと訊かれたら、迷わず7、8人使ってくれるアプリを選ぶでしょう。 Swiftのシェアが下がった理由② 理由の二つ目としては、テクノロジーの発達により、iOSアプリの開発にSwiftやObjective-Cが必ずしも必須ではなくなった、という点です。 「Appleの標準開発言語であるSwiftやObjective-Cを使わなければ、iOSアプリの開発って無理じゃないの?」と思っていた方も多いでしょう。 しかし、実はそうではありません。 Microsoftが2016年に買収しましたXamarin(ザマリン)という、クロスプラットフォーム開発環境の開発を行っていた企業の技術を使えば、SwiftやObjective-Cを使う必要はないのです。 そもそも、クロスプラットフォーム開発環境とは、簡単に言えば、プラットフォーム(ここではOSと同じ意味です)を超えた開発が可能にする環境です。 もっと具体的に言えば、いままでは、androidアプリはandroid用の開発環境と開発言語で開発し、iOSアプリはiOS用の開発環境と開発言語で開発していました。 しかし、Xamarinを使えば、一つのプログラムをandroidアプリとしてもiOSアプリとしても利用できる夢のような技術なのです。 このXamarinはMicrosoftの統合開発環境であるVisual Studioに実装されており、Visual Studioの対応プログラミング言語を使ってiOSアプリを開発することができるようになったのです。 なお、Visual Studio対応プログラミング言語としては、PythonやC#、C++などが挙げられます。 むしろ、SwiftやObjective-Cは含まれていません。 この結果として、半ばiOSアプリ開発専用プログラミング言語となっているSwiftやObjective-Cに見切りをつけて、Pythonや他のC系言語に移行するiOSアプリ開発者が増えた、という訳です。 2017年くらいから、SwiftやObjective-C離れがじわじわと起きている、という噂がありましたが、その傾向が目に見える形になってきた、と言えるのかもしれません。 Swiftは転職に強い言語か 求人という意味では、Swiftを扱える人材の募集は転職サイトでもフリーランス向けサイトでも、一定数が掲載されていました。 日本ではiPhoneのシェアが高いということもあり、海外に比べて求人が多いのかもしれません。 ただし、他の主要言語、例えばJavaやPythonは汎用言語として様々な分野にて利用されているのに対して、SwiftはiPhoneアプリ開発案件しか基本的にはないので、“潰しが効かない”、もっというと“あまり求人先を選べない”という印象はあります。 はっきり言ってしまうと、数年前までならば、日本国内におけるiPhoneのシェア率の高さと、iOSアプリ開発の標準開発言語という特別な立ち位置から、間違いなく、Swiftは転職活動で有利になるプログラミング言語でした。 しかし、昨今は、Swiftがもっていた強みが薄れてきており、他のプログラミング言語に比べて転職活動で不利になるプログラミング言語とまでは言えないものの、他のプログラミング言語より有利になる、というものではなくなりつつあります。 なお、同じくAppleの標準開発言語であるObjective-Cの知識を求められることも多いです(Swift/Objective-Cとまとめた求人案内にしているところも多い)。 Swiftエンジニアが活躍できる業種と年収 すでにお伝えした通り、Swiftの利用が減っているようですが、転職者向け求人サイトでの提示年収は概ね、年収400万円~1200万円と実は年収は他のプログラミング言語と比べて安い、ということはありません。 むしろ、Javaなどと比べると下限が高いくらいです。 フリーランス向け案件紹介サイトでも、50万円~180万円と、やはり他のプログラミング言語よりやや高いです。 理由としては、登場して約5年と短いため、Swiftの経験者がニーズに対して求人市場に足りていないことが挙げられます。 そういう意味ではSwift経験者が転職を考えているのであれば、「今がチャンス」と言えるのかもしれません。 業界ですが、基本的にはiOSアプリを開発しているIT業界、ゲーム業界がメインです。 ただし、iOSアプリを自社開発している非IT業界からの案件紹介なども僅かながらあります。 Swiftには逆風が吹いている⁉【まとめ】 すでに何度も書いた通り、Appleが開発したAppleの標準開発言語のSwiftですが、iPhoneの出荷台数の伸び悩みと、標準開発言語を使わずともiOSアプリの開発が可能になったことが、その先行きに暗い影を落としています。 Swiftを悪い言語だとは思いませんが、初めてプログラミング言語を学ぶのであれば、Swiftよりも、PythonやJavaScriptなどをおすすめしたいです。 すでにSwiftを身に着けている方も、今後のことを考えて他の言語、例えばPythonやC#などの習得を進めておくことをおすすめします。 Swiftの案件を探してみる 今だけ!登録で最大1,500円相当もらえるお仕事探しサービス「テクスカ」 「テクスカ」は、報酬をもらいながらお仕事探しができる新体験のスカウトサービスです。 【テクスカの4つの特徴】 1.面談するだけで、3,500円相当のAmazonギフトカードを獲得できます 2.優秀な貴方に仲間になってほしいと真に願うとっておきのスカウトが企業から届きます 3.貴方の経歴・スキルを見て正社員のオファーだけでなく副業オファーも届きます 4.転職意欲がなくとも自分のスキルが通用するか各社のCTOに評価してもらうチャンスがあります 忙しさのあまり、企業との新たな出会いを逃している… スパムのように届くスカウトメールにうんざりしている… 自分の市場価値がわからない… 社外の人からの評価が気になる… 副業の仕事が見つからない… そんなあなたにおすすめです!
Cobol

COBOLの歴史から現在を解説!

Cobol(コボル)が誕生したきっかけは? Cobol(コボル)はアメリカ国防総省の提案によって誕生しました。 アメリカ国防総省は事務処理用のプログラミング言語を全て一致させたいということで、新しくCobol(コボル)の開発に乗り出しました。実際にアメリカ合衆国政府のシステムはCobol(コボル)誕生以後、全てにCobol(コボル)が使われています。Cobol(コボル)が使えないコンピューターは導入しないという時期があった程です。 Cobol(コボル)は誰が開発したの?と気になる方もいると思いますが、グレース・ホッパーという当時53歳の女性プログラマーの手によってCobol(コボル)は開発されました。彼女は名門イェール大学の大学院に進み、数学と数理物理学を専門に勉強をしていました。 卒業後は母校で教授をしていましたが、第二次世界大戦と同時に軍隊へ入隊することになりました。彼女はもちろん最前線で戦うこと無く、ハーバード大学が行っていた船舶計算プロジェクトに配属されました。 その際に最新鋭のコンピューターシステムに触れて以来、プログラマーとして活躍し、民間企業に入社した後にCobol(コボル)の開発を行いました。 ペンシルベニア大学とアメリカ国防総省が開いた標準化委員会にて、Cobol(コボル)が特定のコンピューターに依存しない言語として公式に認められ、その後にアメリカ国防総省のシステムに使われることになりました。 彼女はプログラマーとして活躍するのみならず、生涯軍人として軍人の仕事を全うしました。最終的には准将になり、プログラマーとしても軍人としてもプロフェッショナルであり続けました。 こうしてCobol(コボル)が誕生し、その後はアメリカから世界にも広がっていき、全世界に普及しました。 日本では1963年からCobol(コボル)が使われ始め、特に金融機関や製造業のシステムを中心に使われ、現在でもCobol(コボル)が使われている企業も多くあります。 COBOL案件を探してみる Cobol(コボル)の黎明期・成長期について Cobol(コボル)は誕生した後は実際にどのように使われていたのでしょうか? Cobol(コボル)の黎明期や成長期についても気になる方は多いと思うのでご紹介していきます。 Cobol(コボル)は誕生した後に世界中に広がり、日本でも多くの企業が現在も使っていますが、時代を経るにつれて、仕様拡張や変更がなされています。 特に日本では1965年に富士通が最初のコンパイラを発表し、Cobol(コボル)のコンパイラはほぼ全てのコンピューターに搭載されていきます。 この時代では今のように個人がコンピューターを持つことは一般的ではなかったですが、オフコンと呼ばれる中・小型機が普及し、Cobol(コボル)がメイン言語として使われ、Cobol(コボル)を使ったシステムが普及していくようになりました。 第1次規格「ANSI68,ISO72,JIS72」、第2次規格「ANSI74,ISO78,JIS80」、第3次規格「ISO85,ANSI85,JIS88,JIS92」、第4次規格「ISO/IEC 1989:2002」、第5次規格「ISO/IEC 1989:2014」といったように規格の改定がなされました。 それぞれの規格はアメリカ規格(ANS)、国際規格(ISO)、日本工業規格(JIS)となります。 これらの規格があるため、Cobol(コボル)はあまりコンピューターのOSに依存しないようになっています。あるOSで書いたコードをそのまま他のOS内でペーストしても動くようになっています。 最新の国際規格である第5次規格「ISO/IEC 1989:2014」は2014年に行われたため、Cobol(コボル)は今でも日々日々成長しています。 そして、最初は事務処理用としてビジネス向けに使われていましたが、汎用プログラミングにも広がるようになりました。 Cobol(コボル)は現在どのように使われている? Cobol(コボル)は企業の基幹システム、行政システムに使われていることが多いです。特に金融・証券のシステムはCobol(コボル)で書かれていることが多いです。 IPAソフトウエア開発データ白書(2016-2017)によると、対象プロジェクト3895件のうちCobol(コボル)は2位である15%を獲得しています。 一位はJavaの32%ですが、開発規模が1Mstep以上のプロジェクトでは100%Cobol(コボル)が使われています。このようにCobol(コボル)は大規模プロジェクトにおいて使われる傾向があります。 ただ、小・中規模のプロジェクトでCobol(コボル)が使われることはそこまで多くはなく、Ruby,C,Javaなどの他のプログラミング言語が出てきたことによって、今までCobol(コボル)で構成されていたシステムが他の言語で改めて構成されることもしばしばあります。 また、それに伴いCobol(コボル)をメインで書いているプログラマーが少なくなっています。Cobol(コボル)をメインで使っていたプログラマーが高齢化し、現役引退をするケースも珍しくないです。そのため、Cobol(コボル)を使える人間が少なくなっており問題視されています。 とはいえ、Cobol(コボル)を使う人や仕事が完全に無くなったわけではありません。現在も金融・証券会社を中心に使われている言語なので学んでおいて損はないと思います。 まとめ:Cobolには50年以上もの歴史がある 今回はプログラミング言語であるCobol(コボル)の歴史について見てきました。 Cobol(コボル)が誕生した背景やその後の歴史についてなかなか興味深い話が多かったでしょう。 今回の内容をまとめると Cobol(コボル)は事務処理用に作られた英語に近い書き方ができる言語 Cobol(コボル)は50年以上もの歴史がある Cobol(コボル)は現在も大規模プロジェクトを中心に使われている となります。 プログラミング言語の歴史については様々な話があり、常に人々の手によって進化しています。Cobol(コボル)もその言語の一つで変化をしながらも従来の信頼度の高さは変わらずに、不動の地位になっています。 今回でCobol(コボル)に興味を持った方はまずCobol(コボル)を使ってみてください! フリーランス案件を探してみる
Visual Basic .NET

VB.NETの歴史(プログラミング言語)

VB.NETとは? VB.NET(Visual Basic .NET)とはマイクロソフト社が開発したプログラミング言語で、これを用いてWindowsで動作するプログラムを作ることができます。VB.NETと略されることが多いです。 JavaやC言語のような他のプログラミング言語と比較すると、我々が日常的に使用している言語に文法が近いため、初心者でも習得しやすいプログラミング言語と言われています。 初心者でも習得しやすいとなると、簡単なアプリケーションしか作れないのではないか?と思う方がいるかもしれません。 しかし、学習コストが低いが高性能のアプリケーションを開発することができるのがVB.NETの大きな特徴です。そのため、初心者から上級者まで幅広い層がVB.NETを好んで使用しています。 実際に、アプリケーションの開発において、マウスでボタンなどのGUIパーツを配置できるため、初心者からすると直感的な操作で開発ができるため、開発がしやすいはずです。 VB.NETの案件を探す VB.NETが誕生したきっかけは? VB.NETは2002年に誕生したプログラミング言語です。 実は同じマイクロソフト社がVB.NETの前身となるVisual Basic1.0を1991年に発表しています。オブジェクト指向の基本的な部分を実装しているものですが、日本では発売されませんでした。 一方、翌年の1992年に発表されたVisual Basic for MS-DOSは、日本語版も出たため、日本国内でも普及しました。 マイクロソフト社は長年BASIC言語という1964年(昭和39年)5月1日に開発がされたプログラミング言語の開発に努めていました。 このBASIC言語は世界で初めて命令に成功したプログラミング言語であり、BASIC言語のさらなる発展のためにマイクロソフト社はBASIC言語の開発に乗り出しました。 その後、Windows OS内で使えるアプリケーションを開発するためのプログラミング言語としてBASIC言語に代わり、Visual Basicを発表しました。実際にオペレーションシステムであるWindows3.0の発表などオペレーションシステムの進化に伴い、Visual Basicが発表され、Visual Basic自体も次々とバージョンアップを繰り返しました。 VB.NETの黎明期/成長期について Visual Basic .NETとは数あるVisual Basicシリーズの中で2002年以降のものを指します。1999年にはVisual Basic6.0が、そして2002年にVisual Basic .NET2002、2003年にVisual Basic .NET2003が登場しました。 その後は2007年にVisual Basic2008が、2010年にVisual Basic2010、2012年Visual Basic2012、2013年にVisual Basic2013が登場しました。この2007年に登場したものの名前はVisual Basicとなっていますが、全て一括りでVisual Basic .NETと呼ばれています。 なぜ今後もこのようにVisual Basic .NETという呼び方で統一されているかというと、2002年に出たVisual Basic .NET2002が1999年に出たVisual Basic6.0から大きな進化を遂げ、比較すると機能面や使いやすさでグレードアップしたことで、その後のVisual BasicについてはVisual Basic .NETと一括りにされているためです。 現在、Visual Basic .NETは他のプログラミング言語に比べて改善やバージョンアップが進んでおらず、マイクロソフト社もVisual Basic .NETの更なる開発に関しては積極的ではないです。そのため、Visual Basic .NETは黎明期・成長期を超え、現在は成熟期と言えるかもしれません。 VB.NETは現在どのように使われている? Visual Basic .NETを使うことでWindowsで動くアプリケーションを作れると共に、モバイル上で動作するアプリケーションも開発することができます。ちょっとしたアプリケーションからゲームまで作ることができ、3D機能を搭載することもできます。Visual Basic .NETはかなり万能なプログラミング言語であることがわかると思います。 Visual Basic .NETは現在システム会社や企業の情報部門にて使用されています。TIOBE Softwareによる2018年12月のTIOBE Programming Community Index (PCI)という調査では、12月時点での人気プログラミング言語ランキングを公開していますが、Visual Basic .NETは5位となっています。 これはTIOBE Programming Community Index (PCI)が調査始めてからVisual Basic .NETのランキングとして最も高い順位に位置しているとのことです。 Visual Basic .NETはこうしてトレンドとして上昇中ですが、Visual Basic .NETの手軽さや開発の高速性から中小企業を中心に開発に使われているとのことです。Visual Basic .NETの求人に関して日本国内で見ると、新しい事にチャレンジしていくベンチャー企業よりも歴史のある中小企業の求人が多いです。 主に情報処理サービス業界が多く、エンジニアとしてシステム開発をし、お客様に納品するという形の仕事が多いです。 将来性に関しては、マイクロソフト社がVisual Basic .NETの開発にもうそこまで積極的ではないことから今後はこのトレンドが下落傾向になるのではないかと発表しています。今後の動向に注目が集まります。 まとめ:VB.NETは今後衰退が予想される言語 今回はプログラミング言語であるVisual Basic .NETの歴史について見てきました。 Visual Basic .NETが誕生した背景やその後の歴史についてなかなか興味深い話が多かったでしょう。 今回の内容をまとめると Visual Basic .NETはWindowsとモバイルで動作するアプリケーションを開発するためのプログラミング言語 Visual Basic .NETは直感的な操作と自然言語に近い表現方法のため、初心者でも開発がしやすい Visual Basic .NETは現在トレンドとして人気が高いが、今後は衰退していくと予想されている となります。 プログラミング言語の歴史については様々な話があり、常に人々の手によって進化しています。Visual Basic .NETもその言語の一つで変化をしながらも従来の信頼度の高さは変わらずに、不動の地位になっています。 Visual Basic .NETの場合は衰退傾向にありますが、初心者に優しいプログラミング言語なので、Visual Basic .NETに興味を持った方はまずVisual Basic .NETを使ってみてください! フリーランス案件を探す
SQL

SQL(エスキューエル)の歴史

SQL(エスキューエル)とは? SQL(エスキューエル)とはデータベースを操作・定義するためのプログラミング言語です。SQL(エスキューエル)を使えると、データの取得・更新・削除・追加などをすることができ、データベースにあるデータを簡単に処理できるようになります。 他のプログラミング言語と併用して使う場面が多く、ほとんどのアプリケーションがデータベースとやり取りをすることでデータを表示しているので、皆さんがお使いのスマートフォンアプリやWebサービスの裏ではSQL(エスキューエル)が利用されています。 例えば、何かECサイトで物を買うときに氏名や住所などを入力すると思いますが、そういった情報が企業のデータベースに保存され、企業側は個人情報としてそのデータを取り扱います。このようにSQL(エスキューエル)は日々皆さんが使っているシステムの裏で使われています。 SQL(エスキューエル)の中で一番使われているものがMYSQLです。様々なSQL(エスキューエル)アプリケーションの中でも高速で大量のデータを処理してくれ、オープンソースなので皆さん無料で使えるため多くの企業・個人が利用しています。最近ではビッグデータ処理に適しているNoSQLが流行るなどSQL(エスキューエル)は日々進化しています。 SQLの案件を探す SQL(エスキューエル)が誕生したきっかけは? SQL(エスキューエル)が誕生したきっかけについて見ていきましょう。SQL(エスキューエル)のきっかけとなった出来事が1970年代にあります。 この頃に、IBMのSanJose 研究所 (現 Almaden 研究所)がSystem Rという世界初となるRDBMS(リレーショナルデータベース管理システム)を開発しました。そこで、リレーショナルデータベースを管理するためのプログラミング言語SEQUEL(Structured English Query Language)が登場しました。 SQL(エスキューエル)の前身となったSEQUEL(Structured English Query Language)はSQL(エスキューエル)と同じくデータベースを操作・定義するためのプログラミング言語ですが、この後改良が何度もされ、今のSQL(エスキューエル)になっています。 SQL(エスキューエル)はシークェルと呼びますが、この呼び方もSEQUEL(Structured English Query Language)の呼び方から来ています。名前自体は何度も変わり、最終的にSQLになりましたが、呼び方は変わっていません。SQL(エスキューエル)という名前が何の略なのか気になる方もいらっしゃると思いますが、国際基準ではSQL(エスキューエル)が何かの略語ではないとされています。 SEQUEL(Structured English Query Language)という名前からコードを書いてQuery(問い合わせ)をリレーショナルデータベースにできる言語だとわかります。実際のQuery(問い合わせ)の結果はモニターに表示され、ここはSQL(エスキューエル)と変わりません。 この画期的なSEQUEL(Structured English Query Language)の登場からSQL(エスキューエル)が黎明期・成長期となり有名になっていきます。 SQL(エスキューエル)の黎明期・成長期について 続いてSQL(エスキューエル)の黎明期・成長期についてです。画期的なSEQUEL(Structured English Query Language)の登場からその後どのようにして多くの人々に使われるようになったのか見ていきます。 SEQUEL(Structured English Query Language)は1976年にSEQUEL2として新しいバージョンがリリースされることになりますが、SEQUEL2で商標登録をしている企業が他にあったため、SQL(エスキューエル)と改名されました。これが現在のSQL(エスキューエル)と同じものです。 このリレーショナルデータベースの操作・定義ができるSQL(エスキューエル)は操作性が非常に優れていると評価を受け、リレーショナルデータベースを操作するための言語として標準になりました。実際にSQL(エスキューエル)の仕様に合わせた製品が様々な企業から発売されることになりました。 その後にISO(International Organization for Standardization)やJIS(Japanese Industrial Standards)に規格化され、その後からSQL(エスキューエル)はかなり普及することになります。実際に、リレーショナルデータベースが使われている製品が多く登場することになりました。 SQL87,SQL89, SQL92, SQL99といったように1980年代から90年代にかけてバージョンアップしたSQL(エスキューエル)が次々とリリースされました。 SQL87は既に製品化されていた多くのリレーショナルデータベースを操作するためのSQL(エスキューエル)の中でも共通する最小限の部分を取り出したシンプルなSQL(エスキューエル)となっています。その後のSQL89では外部のキーリレーションシップを適用するためのメカニズムが実装されました。 SQL92では動的SQL(エスキューエル)や埋め込みSQL(エスキューエル)などの機能がリリースされ、より柔軟性と機能性が増しました。SQL99ではオブジェクト指向やJavaを取り入れたものとなり、SQL(エスキューエル)でのプログラミングがより拡張されました。 2000年代に入ると、SQL2003,SQL2008,SQL2011,SQL2016が新しくリリースされ、日々SQL(エスキューエル)の改善とバージョンアップがなされています。現在もデータベースとのやり取りと言えばSQL(エスキューエル)というように、SQL(エスキューエル)はリレーショナルデータベースとの’やり取りができるプログラミング言語と不動の地位を築いています。 SQL(エスキューエル)は現在どのように使われている? SQL(エスキューエル)についてとSQL(エスキューエル)の歴史について見てきました。現在もSQL(エスキューエル)は不動の地位を築いているとのことですが、具体的にどのように使われているか見ていきます。 SQL(エスキューエル)は今までと変わらずにデータベースとのやり取りに使えますが、近年ビッグデータというキーワードがトレンドとなっているようにビジネスにおいてデータを使う機会が多くなっています。そこで、SQL(エスキューエル)を用いてデータの分析や加工を行う企業が増えています。 また、転職に関して言うとSQL(エスキューエル)の募集はデータベースエンジニアとしての募集が多く、データ分析基盤開発の案件が多くあります。SQL(エスキューエル)のみできれば採用するという求人は少なく、ほとんどがSQL(エスキューエル)以外にも他のプログラミング言語ができる必要があるとしています。 また、データサイエンティストとしての募集も多く、この場合に関してもPythonやRを触れるエンジニアでないと採用がされない場合がほとんどです。 データベースエンジニアやデータサイエンティストは今のトレンドとしてはホットなので多くの企業が募集しており、転職を一度考えて見ても良いかもしれません。 まとめ:比較的歴史の古い言語 今回はプログラミング言語であるSQL(エスキューエル)の歴史について見てきました。 SQL(エスキューエル)が誕生した背景やその後の歴史についてなかなか興味深い話が多かったでしょう。 今回の内容をまとめると SQL(エスキューエル)はデータベースの操作・定義などのやり取りができるプログラミング言語SQL(エスキューエル)は1970年代からある比較的歴史の古い言語であり、今もバージョンアップが続いているSQL(エスキューエル)はデータベースエンジニアの求人が多い となります。 プログラミング言語の歴史については様々な話があり、常に人々の手によって進化しています。SQL(エスキューエル)もその言語の一つで変化をしながらも従来の信頼度の高さは変わらずに、不動の地位になっています。 今回でSQL(エスキューエル)に興味を持った方はまずSQL(エスキューエル)を使ってみてください! SQLについてよくある質問 SQLについて良くある質問を3つまとめました。 SQL(エスキューエル)とは? SQL(エスキューエル)とはデータベースを操作・定義するためのプログラミング言語です。SQL(エスキューエル)を使えると、データの取得・更新・削除・追加などをすることができ、データベースにあるデータを簡単に処理できるようになります。 他のプログラミング言語と併用して使う場面が多く、ほとんどのアプリケーションがデータベースとやり取りをすることでデータを表示しているので、皆さんがお使いのスマートフォンアプリやWebサービスの裏ではSQL(エスキューエル)が利用されています。 SQL(エスキューエル)は現在どのように使われている? SQL(エスキューエル)は今までと変わらずにデータベースとのやり取りに使われていますが、近年ではSQL(エスキューエル)を用いてビッグデータのようなデータの分析や加工を行う企業が増えています。 SQL(エスキューエル)の転職状況は? SQL(エスキューエル)の募集はデータベースエンジニアとしての募集が多く、データ分析基盤開発の案件が多くあります。SQL(エスキューエル)のみできれば採用するという求人は少なく、他のプログラミング言語ができる必要があるとされています。 また、データサイエンティストとしての募集も多く、この場合に関してもPythonやRを触れるエンジニアでないと採用がされない場合がほとんどです。 フリーランス案件を探す 今だけ!登録で最大1,500円相当もらえるお仕事探しサービス「テクスカ」 「テクスカ」は、報酬をもらいながらお仕事探しができる新体験のスカウトサービスです。 【テクスカの4つの特徴】 1.面談するだけで、3,500円相当のAmazonギフトカードを獲得できます 2.優秀な貴方に仲間になってほしいと真に願うとっておきのスカウトが企業から届きます 3.貴方の経歴・スキルを見て正社員のオファーだけでなく副業オファーも届きます 4.転職意欲がなくとも自分のスキルが通用するか各社のCTOに評価してもらうチャンスがあります 忙しさのあまり、企業との新たな出会いを逃している… スパムのように届くスカウトメールにうんざりしている… 自分の市場価値がわからない… 社外の人からの評価が気になる… 副業の仕事が見つからない… そんなあなたにおすすめです!
Swift

Swiftの将来性について現状から踏まえて検証してみた

Swiftとは? SwiftとはLinuxやMacOS、iOSで動作するアプリ開発に用いられているプログラミング言語。 国内ではiPhoneなApple製品で動作するアプリ開発で特に需要があります。 そんなSwiftが開発、発表されたのは2014年。 当初は開発者に対するベータ版の提供からスタートしました。 2017年からは日本語への対応も発表されて2019年現在では多くの開発現場で用いられています。 Swift案件を探す Swiftの特徴 SwiftはiPhoneアプリなどApple関連製品のアプリ開発には欠かせない言語ですが、安全でインタラクティブなどいくつかの特徴があります。ではここからは、Swiftの特徴について見ていきましょう。 直観的な開発が可能 SwiftはApple製品の開発のためにAppleによって作成されたプログラミング言語です。 そのためAppleの代名詞でもある直観的な操作が、Swiftにも取り入れられています。 Xcodeを活用することでスムーズに、直観的なプログラミングの記述でアプリ開発に取り組むことができます。 コーディングをシンプルにできる Apple製品やMacOSのアプリ開発にはObjective-Cが多く活用されてきました。 SwiftはObjective-Cと比較するとセミコロンが不要であること、そして高速なコンパイラが採用されているという違いがあります。そのため、Objective-Cによるアプリ開発よりも、シンプルにコーディングできるという特徴があります。 開発環境の準備が簡単 他のプログラミング言語はテキストエディタなど開発環境の準備のためにインストールしなければいけないアプリケーションが複数ある場合が少なくありません。 しかし、SwiftはXcodeがあればすぐに開発をはじめることができます。 XcodeのダウンロードはMac App Soreから無料で実施できます。 初心者でも学びやすい環境(アプリ)が提供されている Swiftは初心者でも学びやすい学習環境が提供されています。 プログラミングの記述がシンプルという特徴もあり、他のプログラミング言語と比べても習得のハードルは高くはありません。 Swift学習用のアプリとしては、iPad用アプリであるSwift Playgroundsがあります。 Swift Playgroundsは、ゲーム形式でSwiftのコードの基本を学ぶことができます。 Appleが開発したアプリのため、学習内容も信頼性が高くSwiftの初学者には有用なアプリだといえるでしょう。 Swiftの現状~給与と業界の動向について~ Swiftは比較的新しいプログラミング言語ではありますが、iPhoneやiPad、MacOSの開発に特化していることもあり多くの企業が活用しています。 またSwiftはAppleが開発したプログラミング言語であり、ロボットやドローンへの指示を出す際にも利用することができます。 シンプルで使いやすいという特徴もあるため、Swiftの需要は現状で充分にあり、今後もその需要は続くことが期待できるといえるでしょう。 また、Swiftの技術を習得してからフリーランスエンジニアとして独立できれば月収は60万円~110万円程度が見込めます。 この報酬は弊社が提供しているマッチング案件提供サイトテクフリに掲載されているSwiftのスキルが求められるエンジニアの月額報酬です。 仮に月収が60万円であったとしても、年収としては720万円を稼ぐことができるからです。 案件によって提示されている報酬には幅がありますが、エンジニアの月額報酬としては決して低い金額ではありません。 参考として経済産業省が公表している「IT関連産業の給与等に関する実態調査」では、Swift の技術を含むと考えられる、SE・プログラマ(ソフトウェア製品の開発・実装)の平均年収は603.9万円です。 Swiftの技術を身につけてフリーランスとして独立することができれば、平均以上の給与を稼ぐことができる可能性は充分にあるといえるでしょう。 Swiftの将来性~業界の動向について~ Swiftはシンプルにコードを記述できるだけでなく、書きやすいという特徴があり多くのエンジニアから指示されているプログラミング言語の一つです。 しかしGithubの公開ページに掲載されている「Top languages over time」には含まれていないプログラミング言語となるため、JavaScriptやPython、Javaと比べると人気は劣るといえるでしょう。 Top languages over timeではMacOSのアプリ開発で主要であったObjective-Cが2016年までランクインしていましたが、2017年からは10位以降のランク圏外となっていることが分かります。 2017年以降は徐々にObjective-CからSwiftへの切り替えを進めている企業があると仮定すれば、Swift の需要は今後伸びていく可能性は充分にあります。 またSwiftの技術の需要はiOS、MacOSのアプリ開発の需要ともある程度関係してくることが予想できます。 Appleは日本国内でも絶大な人気がありますが、世界中からの一定の需要を獲得することに成功しています。 Apple製品の人気が今後も長期的に続く可能性について考慮すれば、Swiftの将来性は充分にあるといえるでしょう。 Swiftの将来性~給与について~ Swiftの将来性は充分にありますが、給与について相場が今以上に高騰することは期待できません。 なぜなら現在のIT業界はエンジニアが不足しており、他の業界と比較しても比較的高い水準の報酬が既に用意されているからです。 実際にフリーランスとして独立すれば月額報酬が100万円を超えてくる案件を狙うことができます。 高い報酬を獲得するためにはそれなりのスキルと実績が必要ですが、ある程度Swiftの実務経験を重ねることができれば高い報酬を目指せる可能性は充分にあります。 このような給与面から見てもSwiftは将来性があると考えることができます。 また比較対象として経済産業省の「IT関連産業の給与等に関する実態調査」では、IT業界の職種別の平均年収が公開されています。 Swiftの技術が関連する職種だと考えられる盤設計担当/基盤アーキテクチャの年収は778.2万円。 SE/プログラマの年収は603.9万円です。 これらの年収からSwiftの技術を習得してフリーランスとして独立できれば、平均年収を上回る年収を目指せることが分かります。 まとめ:Swiftは将来性があるがAppleの動向に注意が必要 Swiftは将来性があるプログラミング言語であることに間違いはありませんが、Appleの動向への注意は必要です。 Swiftが普及してきたことで、Objective-Cの需要が下がったように新たなプログラミング言語が今後開発される可能性はゼロではないからです。 そのためSwiftのスキルを習得してエンジニアとして活躍する場合、ある程度Appleの動向に注意することが欠かせないといえるでしょう。 しかしプログラミング言語はある程度の基本を覚えてしまえば、同系統のプログラミング言語の習得のハードルはそこまで高いものではありません。 スマートフォンアプリ開発やiOSの開発経験をある程度重ねることができれば、仮にSwiftの需要が下がることがあったとしてもエンジニアとして活躍できる可能性は充分にあります。 Swiftの技術を身につけてエンジニアとして高い報酬を目指す場合は、ただ技術を磨くだけでなく市場の動向に合わせて必要なスキルを身につける、柔軟な視点も必要だといえるでしょう。 フリーランス案件を探す
フロントエンドエンジニア

Reactの単価相場は? 6つのフロントエンド言語/FWで比較

フロントエンドエンジニアのフリーランス案件の単価・相場 弊社調べのフロントエンドエンジニアの平均単価は73万円です。単価の幅は下限で40万円、上限が110万円となっています。共に案件数が5以下です。一方、案件数が最多で230件の単価は80万円です。フロントエンドエンジニアの案件数はトップクラスのため、仕事に困ることも少ないでしょう。 React案件を探してみる テクフリ調べ(2020年2月15日) フロントエンドエンジニアの案件数推移 続いてはフロントエンドエンジニアの求人掲載数の推移をみてみましょう。2017年7月の案件数235件からスタートし2年半後の2020年1月には累積で847件に達しています。なんと増加率は3.6倍です。今後も案件数の増加が期待されます。 テクフリ調べ(2020年2月15日) フロントエンドエンジニアのスキル別求人数と平均単価 それではスキル別で平均単価と求人数をみてみましょう。一番高額なのは月収75.2万円でReact.jsです。React.jsはユーザインターフェスを構築するJavaScriptライブラリの1つです。案件数は57件ですが、FacebookやYahooなど大企業で採用されています。 続くVue.jsの平均単価は75.0万円です。Vue.jsはJavaScriptによるフロントエンド開発を効率的にするフレームワークです。求人数は36求人ですが、導入のしやすさ、開発効率の良さから今後多くの企業で導入されると期待されています。さらにAngular.jsやReact.jsに比べると、フレームワークの規模が小さく、習得しやすいといえるでしょう。 3番目の JavaScriptはプログラミング言語で月収76.1万円です。動的Webページを作成する際に使われます。求人数は最多の120件です。習得の難易度は低くCSSやHTMLなどの言語と一緒に学習することで、スキルアップが望めます。 これらのスキル別求人数と平均単価を一つの参考に技術習得に励んでみてはいかがでしょうか。 言語別 スキル JavaScript HTML5 CSS3 求人数 120 38 37 平均月収 73.5 69.1 67.1 フレームワーク別 スキル React.js Vue.js Angular 求人数 57 36 11 平均月収 75.2 75.0 70.5 フリーランス案件を探してみる
Scala

Scala言語とは?【注目される理由やできることを徹底解説】

Scalaというプログラミング言語を聞いたことはありますか? Scalaは比較的新しい言語で、最近では、急速にシェアを拡大しています。 Javaの伝統的なエコシステムを持ち、オブジェクト指向と関数型の両方を扱えるプログラミング言語です。 近年国際的に注目を集めており、大手IT企業からの後押しもあります。 Webサイトやアプリ開発で使われる言語なので、覚えておきましょう。 この記事では、Scalaの特徴からデメリット、さらには将来性までを詳しく説明していきます。 実際の案件情報についても紹介しますので、Scala関連の案件情報が気になる人はぜひ確認してみてください。 Scalaの案件を探してみる Scalaとは Scalaは、複雑な条件分岐を簡潔に記載することができる革新的なプログラミング言語として、世界中の多くの開発者から支持を受けています。 その名前である「Scalable Language」は、言語の中核的な特徴である高いスケーラビリティを示していると言えるでしょう。 このスケーラビリティにより、小さなスタートアップの初期フェーズから大手企業の大規模プロジェクトまで、さまざまなステージでの開発が可能となります。 Javaの欠点を補うように開発されたScalaは、Javaの堅牢で信頼性の高いインフラやライブラリ群を活用しつつ、さらに柔軟でモダンなプログラミングの特性を併せ持つ言語です。 これにより、Javaの経験がある開発者の場合は特に、Scalaにスムーズに移行することができ、既存のJavaアプリケーションとの連携や移行も効率的に行えます。 加えて、オブジェクト指向言語と関数型言語の両方の特性を併せ持つScalaは、開発の多様なシチュエーションでその真価を発揮します。 これが、経験豊富なプロフェッショナルが高度なシステムを構築する際の強力なツールとして、選ばれている理由です。 大規模なデータ処理からモバイルアプリケーション、業務システムの開発まで、Scalaはあらゆるシーンで使われています。 Scalaの特徴 Scalaは、現代の開発ニーズに応えるユニークな特性を持ち合わせたプログラミング言語として、多くの技術者たちの注目を集めています。 ここでは、Scalaが持っている代表的な特徴を3つみていきましょう。 オブジェクト指向と関数型の特性がある Scalaはオブジェクト指向の堅牢さと、関数型プログラミングの効率を持ち合わせています。 この特性により、開発者は複雑なシステムをモジュラーに構築するとともに、効率的な並列処理や非同期処理の利点を最大限に活かすことが可能となるでしょう。 関数型プログラミングが強調する不変性や純粋関数は、並行処理の際の競合やデータの不整合を大幅に減少させ、高いパフォーマンスを実現します。 Javaとの互換性が高い ScalaがJavaのJVM上で動作するというのは、かなり大きなメリットと言えるでしょう。 既存のJavaライブラリやフレームワークとの統合はスムーズで、それにより、Scalaプロジェクトの開始時には、膨大なリソースやツールを利用することができます。 このシームレスな統合性は、組織の移行コストを抑えるだけでなく、JavaとScalaを同時に使用するようなプロジェクトを実現することも可能です。 コードがシンプルである Scalaは、Javaと比べても、さまざまな面において、コードをシンプルに書くことが可能です。 特に、パターンマッチングやトレイトのような機能により、複雑なロジックや状態をわかりやすく表現することができます。 これにより、エンジニアは短いコードで高い生産性を実現しつつ、そのコードの品質や可読性を犠牲にすることなく、安定したシステムを構築することができるでしょう。 Scalaのデメリット 多くのメリットがある一方で、Scalaにはデメリットといえる部分もあります。 デメリットを把握しておくことで、よりこの言語を有効活用することができるでしょう。 習得における難易度が高い Scalaの独自性と多機能性は、新しいアプローチや思考法を学ぶ必要があるため、学習難易度が高いと感じることがあるかもしれません。 特に、オブジェクト指向プログラミングと関数型プログラミングのハイブリッドな性質は、それぞれの思考法を習得する必要があります。 これにより、特に初学者や他の言語からの移行者は、Scalaに慣れるまではある程度の時間がかかるでしょう。 また、関数型プログラミングが他の主流の言語とは異なる特性を持っているため、その理解と習得するためには、ある程度の努力が必要となります。 統合開発環境(IDE)が発展途上である ScalaをサポートするIDEは増えつつありますが、まだその発展途上にあります。 JavaやPythonといったプログラミング言語と比べると、Scalaは高度な機能やツールがそれほど充実しているわけではありません。 そのため、コードのリファクタリングやデバッグ作業において、一部の機能が不足していると感じることがあります。 また、IDEの更新に伴い、新しいScalaの機能への追従が遅れる場合もあるため、最新の機能を使う際には手動での調整が求められることもあるでしょう。 Scalaでできること Scalaでできる代表的な2つのことについて、詳しくみていきましょう。 アプリ開発 Scalaを使用すると、スマートフォン向けのネイティブアプリの開発はもちろん、ウェブアプリケーションやデスクトップ向けのアプリケーションも開発することができます。 そのシンプルかつ強力なコードベースにより、高いパフォーマンスを持つアプリケーションを効率的に構築することが可能です。 特に、非同期処理を効果的に取り入れることで、ユーザー体験の向上を実現するアプリを作成することができるでしょう。 加えて、Scalaで開発されたアプリは、省エネで効率的な動きをするため、利用者にとっても快適に利用することができます。 業務システム開発 企業の核となる業務システムの構築においても、Scalaは高いパフォーマンスとスケーラビリティを武器に、多くの企業で利用されている言語となっています。 特に、データの取り扱いが多いシステムや、多数のユーザーからのアクセスを迅速に処理する必要があるシステムで、Scalaの能力が際立つでしょう。 分散システムの設計やリアルタイムデータ処理、さらには大量のデータを効率的に処理するバッチ処理など、さまざまなシナリオでScalaの持つ特性やライブラリが最大限に活かされています。 このような背景から、多くの大手企業やスタートアップがScalaを採用しており、ビジネスの成長に貢献していると言えるでしょう。 Scalaの将来性 Scalaは革新的な特性と高い柔軟性から、国際的なプログラミングコミュニティ内での注目度が急速に高まっています。 特に、大手IT企業によって後押しされており、これらの企業がScalaのプロジェクトに投資をしていることを考えれば、非常に将来性のある言語といえるでしょう。 このようにScalaが注目されている理由のひとつに、ScalaがJavaとの高い互換性を持つことで、大規模なシステムのリプレースを行わずに済むことが挙げられます。 それに加えて、バグの少なさや機能改善の簡単さ、開発納期を短縮できることなどからも、変化の激しい昨今のIT業界に最適な言語ということになります。 一方で、国内で広く用いられている主要な言語と比べれば、まだ実績が豊富とは言えません。 しかし、Scalaの特性をうまく活かすことによって、長年管理が杜撰になっていたサービスのソースコードを移行して、運用をシンプルにできる可能性が高まります。 これらを考えるとScalaの将来性は高く、今後も引き続きシェアは伸び続けるでしょう。 また、Scalaを扱えるエンジニアへの需要が高いことは年収データにも表れています。 求人エンジンによると、2018年の段階で、ScalaはPythonよりも高い平均年収を得ることができるという、データが確認できます。 Scalaを扱えるエンジニアが少ないということもあり、今後さらにシェアが広がればエンジニアとしての希少価値が高まり、より高年収を目指すことも可能になるかもしれません。 Scalaの案件情報 近年では、Scalaの人気にともなって、Scalaを使用する案件情報も増加しています。 有名な大手IT企業ではもちろん、スタートアップや中堅企業でも、Scalaの高いパフォーマンスを活かしたプロジェクトが増えているためです。 特に、分散システムやリアルタイムでの実行を要するアプリケーションの開発においては、Scalaの特性がおおいに活かされていると言えるでしょう。 また、オープンソースコミュニティの活発な動きとともに、新しいライブラリやツールも続々と開発されており、それらの導入を伴う案件も見受けられます。 実際の案件情報を確認して、Scalaを扱う業務に関するイメージを固めていきましょう。 Scalaの案件を探してみる まとめ 本記事を通して、Scalaが、近年注目されていることがわかっていただけたのではないでしょうか。 Scalaは、Javaのエコシステムを引き継ぎながら、オブジェクト指向と関数型プログラミングを結合したプログラミング言語です。 高いスケーラビリティを備え、小規模から大規模プロジェクトに適しています。 しかし、関連する言語の経験がない場合は学習難易度が高いということや、IDEが発展途上であるというデメリットも把握しておく必要があります。 最近では、アプリ開発や業務システム開発などで幅広く使用され、大手IT企業の支援を受けていることから、将来性は高く、Scalaエンジニアの活躍の場が広まっています。 今後に大きな期待が持てる言語であるため、初心者、未経験でも興味のあるエンジニアの方は今のうちから学習を始めてみるのもいいのではないでしょうか。
インフラエンジニア

Linuxエンジニアの需要は? おすすめできる6つの理由を紹介

Linuxとは? Linuxは、UNIX互換のOSです。 1991年にフィンランドのリーナス・トーバルズ氏によって開発され、公開されました。 もともとはPC AT互換機向けに開発されたOSですが、各種サーバーや業務システム、組み込みシステム(スマホや家電など)へと利用範囲が拡大しています。 利用拡大の理由としては、GPL(General Public License)というライセンス体系を採用して自由に改変と再配布を行えるようにしたことが大きいです。OSS(Open Source Software)としたことで、世界中の開発者によって日々改良や機能拡張などが行われるようになったからです。 Linux案件を探す Linuxは基本無料で利用できる もうひとつ、基本的に使用が無料であることもあります(サポートは有償のものが多いです)。従来のサーバーソフトに比べ、運用コストを大幅に減らせることから、Webサーバーやクラウドなどにおいて飛躍的に普及しています。 今後、LinuxがサーバーOSの主流となることはほぼ間違いないでしょう。 インフラエンジニアはLinuxを利用することが多い Linuxの知識が必要とされるシーンはいくつかありますが、なかでもインフラエンジニアにとってLinuxに関するスキルは非常に重要です。インフラエンジニアは、基本的にサーバーやネットワークの運用保守を行う役割を担っています。 このサーバーやネットワークの運用保守のためには、Linuxの知識が必ず必要になってくるんですね。 「インフラエンジニアを目指して勉強を始めたい」という場合にはぜひLinuxを学習しておきたいところですし、「Linuxの知識を活かしてエンジニアになりたい」と考えるなら、インフラエンジニアを目標に掲げてみるのがおすすめです。 Linuxディストリビューションとは Linuxとは、厳密にはLinuxカーネルと呼ばれるOSの中核部分だけを指します。 Linuxカーネルにアプリケーションやライブラリ等を加えてパッケージとしてまとめたものを「Linuxディストリビューション」と呼びます。 一般的にはLinuxディストリビューションがLinuxと呼ばれています。 代表的なLinuxディストリビューションには、以下の3系統があります。 Debian系(UbuntuやKnoppixなどを含む) slackware系(SuSEなどを含む) RedHat系(FedoraやCentOSを含む) Linuxの利用は基本的に無料ですが、サポートは有料の場合が多いです。 Linuxの利用分野 アプリケーション開発 Linux上で様々なプログラミング言語を動かすことができます。Windows上で動くプログラミング言語は、Linux上でもほぼ動きます。 また、Linux用の統合開発環境も多数揃っています。 これらを利用して、業務用やスマホ用などのアプリケーションを開発することができます。 電化製品や自動車などの組み込みシステム あらゆるモノがインターネットにつながるIoT(Internet of Things)の時代になりました。ネットにつながって動作できるのは、モノの中に組み込みシステムが入っているからです。 組み込みシステムは、そのモノがある特定の機能を実現するためのシステムです。 例えばテレビやエアコンや冷蔵庫などの家庭用電化製品の中に組み込みシステムが入っており、これらにはLinuxが使われています。 サーバー構築 Linuxには、ユーザー端末でクライアントOSとして利用できるものも、サーバーでサーバーOSとしても利用できるものもあります。 各サーバーに導入されたサーバーOSにより、ファイル共有やメール送受信などのサーバー機能を実現できます。 Linuxは無料で利用可能で、サーバーの開発コストや運用コストを抑えられるため、従来利用されたきたUnixやWindowsに代わってサーバーOSに採用されることが多くなりました。 これが、インフラエンジニアにLinuxのスキルが要求されるようになった理由です。inuxを使えるエンジニアは、現状では不足気味です。 Linuxを使えるインフラエンジニアの需要が高い理由 インフラ(Infrastructure)とは、基礎構造、土台、基礎施設、社会的生産基盤という意味で、一般的には水道・電気・ガスなどのことです。 IT業界のインフラとは ITの世界においては、何らかの情報システムを正常に稼動させるための基盤という意味で、インフラという言葉が使われています。これは、情報システムの動作基盤となる、サーバーやネットワークのことを指しています。 IT業界のインフラエンジニアとは インフラエンジニアは、ITインフラの設計や構築、および運用保守を専門に担うエンジニアです。 サーバーエンジニアとネットワークエンジニアの総称として使用されることもあります。 ここで、サーバーやネットワークには、前述したLinuxが使われているケースが多いです。そのため、インフラエンジニアは何らかのLinuxディストリビューションに通じていることが事実上必須条件となっています。 裏を返せば、いくつものITエンジニア職種の中で、Linuxのスキルを最も活用できる職種のひとつと言えるかもしれません。 インフラエンジニアの業務内容 インフラエンジニアは、ITインフラを設計・構築し、さらにそれらのITインフラの運用・保守を行います。 設計 クライアントの要望をヒアリングするなどの後、要件定義を行います。次に、それらを実現するための性能や容量、予算や開発期間などをシミュレーションし、数値に落とし込みます。 具体的な構成と、使用するハードウェアやソフトウェアも決めます。設定値や運用方針も決めておきます。 これらを設計書(企画書、提案書)にまとめ、クライアントに提案します。 構築 設計書を元に、実際にITインフラを構築していきます。 現場でサーバーや通信機器などの設置をし、サーバーの導入やネットワークの設定などを行います。ここで使用するOSは、Linuxのものが多くなります。 導入・設定後には各種のテストを行い、構築したインフラがきちんと想定された機能や性能を満たしているかを確認します。 ここで構築したITインフラが、企業活動や社会生活を支えています。 運用・保守・監視 構築までで仕事が完了したわけではありません。ITインフラを安定的に稼動させ続けることが、インフラエンジニアにとって最も重要な任務です。 日常業務としては、システムの起動・停止やバックアップ取得などの運用業務のほか、正常に動作しているかを監視したり、各部を点検したりといったことがあります。必要に応じて、部分的にアップデートするなどの変更を行うこともあるかもしれません。 障害が発生したときには、すぐに緊急対応を行います。インフラエンジニアの仕事の中で、一番プレッシャーのかかる場面です。 ハードウェアの故障、設定ミス、操作ミス、アクセス集中、または不正侵入など、さまざまな原因が考えられます。障害や故障の原因を特定し、復旧作業を行います。その後、再発防止策を考え、システムや運用の改善をします。 インフラエンジニアにおすすめの資格 インフラエンジニアが取得しておきたい資格として、3種類が挙げられます。担当職務に関連するものから取得しておくとよいでしょう。 ネットワーク系の資格「Cisco」 Cisco Systems社が認定するベンダー資格です。 難易度は、CCIE(エキスパート)、CCNP(プロフェッショナル)、CCNA(アソシエイト)、CCENT(エントリー)の順になっています。 まずはCCNAレベルを目指しましょう。 サーバー系の資格「LPIC」 LPIが認定するLinux技術者認定資格です。 LPICを取得した社員に一時報奨金を支給する企業があり、転職の際にも有利になります。 LPICレベル1~3、またはLinuCレベル1~3があります。インフラエンジニアとしてはレベル1は取得しておきたいところです。 データベース系の資格「Oracle Master」 Oracle社がオラクル社製品の知識を認定する資格です。 難易度は4段階で、Platinum、Gold、Silver、Bronzeの順になっています。 未経験の人はBronzeから挑戦し、Silverを目指しましょう。 Linuxが使えるインフラエンジニアの年収 2017年9月から2018年8月の期間にdodaが行った調査によりますと、エンジニアの年収は以下のような結果となりました。 技術系(IT/通信)全体 456万円 サーバーエンジニア 469万円 ネットワークエンジニア 449万円 ITエンジニア全体の年収と比べると、サーバー系のインフラエンジニアは高め、ネットワーク系は少し低めのようです。 ネットワークエンジニアよりも、よりLinuxスキルなどを求められるサーバーエンジニアのほうが、需要に対して不足気味であることを反映しているものと考えられます。 ほかにもインフラエンジニアの年収が低く出る原因として、単にサーバー監視を行っているだけのエンジニアの年収もカウントされていることが考えられます。サーバー監視の仕事はマニュアル通りに監視作業を行うだけであり、報酬額が低めに出てしまいます。 これが計算対象に含まれているため、サーバーエンジニアやネットワークエンジニアの年収が押し下げられ、平均がやや低めの数字になっていると判断できます。 *参考 平均年収ランキング 最新版|転職・求人doda インフラエンジニアの需要 ITやインターネットが広く社会に普及し、日々利用されるようになりました。 これらは、企業活動や日常生活など、さまざまな場面でなくてはならないものになりつつあります。 しかし、便利で必要不可欠なITサービスも、ITインフラが正常に機能していなければ使うことができません。 インフラエンジニアには、ITサービスを24時間365日稼動させるために必要なITインフラを担う「ITの縁の下の力持ち」という役割があります。 このようにITへの需要や必要性が高まっている現在ですが、エンジニアは慢性的な人手不足の状況にあり、その人手不足は今後もさらに拡大していくと見られています。 IT業界のインフラエンジニアの需要はこれからさらに高くなる ITインフラを支えるインフラエンジニアへの需要もますます高まっていくことが予想されます。 ただ、AI(人工知能)の発達により、現在エンジニアが行っている業務のうち、定型業務などから次第にAIに代替されていく可能性が考えられます。 とはいえ、仮にそうなったとしても、そもそもエンジニア自体が人手不足なのですから、インフラエンジニアの需要が短期間で急減する確率は低いでしょう。 まとめ:インフラエンジニアはIT業界未経験からでも始められる可能性のある職種 インフラエンジニアについて見てきました。 LinuxはサーバーOSとしての利用が拡大している ITインフラとは情報システムの稼動基盤となるサーバーやネットワークを指す Linuxが使える、がインフラエンジニアのMUST インフラエンジニアの仕事は、設計・構築、運用・保守 インフラエンジニアの年収はやや高め インフラエンジニアの需要は今後も継続する見込み インフラエンジニアは、IT業界未経験からでも始められる可能性のある職種です。 まずはインフラの運用保守から入って、次第にインフラの設計や構築などへと進んでいく、というようにステップアップしていくのが一般的です。 その後のキャリアパスとしては、サーバーエンジニアやネットワークエンジニアなどのテクニカル系か、プロジェクトマネージャーや管理職などのマネジメント系か、大きく分けて2つが考えられます。 その他には、ITコンサルタントになる方もおられるかもしれません。 「ITに関する専門スキルを身につけ、そのスキルを生かして長期的に安定したキャリアを築いていきたい」とお考えの方におすすめできる職種です。 Linux案件を探す
Scala

Scala(スカラ)プログラミング言語の歴史

Scala(スカラ)とは? Scala(スカラ)はオブジェクト指向言語と関数型言語の特徴を合わせて作られたプログラミング言語です。スイス・ローザンヌにあるスイス連邦工科大学 (EPFL)の教授であるMartin Odersky氏によって2001年に設計され、2003年にリリースされた比較的新しいプログラミング言語となっています。 オブジェクト指向言語はクラスという概念を用いて、仕様の変更に柔軟に対応できる言語となっています。代表的なオブジェクト指向言語はJavaやC++、関数型言語はHaskellやF#となっています。これらの良さを組み合わせて作られた言語がこのScala(スカラ)です。 Scala(スカラ)にはJavaの良さを受け継ぎながらも、Javaにはない新しい仕組みがあるので多くの企業・エンジニアに注目されています。 特に関数型言語の特徴も合わさっているので、記述が簡単でコード量が少なく済みます。実際にJavaだと20行も記述しなければならないコードが1行に短縮することもできます。 コードが短い分、修正もしやすくなっているため長期間に渡って使うシステムの開発に向いています。開発スピードと性能品質にこだわりたい方はScala(スカラ)はかなりオススメのプログラミング言語です。 Scala案件を探す Scala(スカラ)が誕生したきっかけは? Scala(スカラ)はスイス・ローザンヌにあるスイス連邦工科大学 (EPFL)の教授であるMartin Odersky氏によって2001年に設計され、2003年にリリースされたものですが、どういうきっかけで設計がなされるようになったのでしょうか? 原点はMartin Odersky氏が携わっていた他のプロジェクトにあります。 Martin Odersky氏はGJプロジェクトというJavaにジェネリックスを実装するプロジェクトに参加しました。Integer型やString型などのデータの型が様々ありますが、これらを同じように処理することができる機能をジェネリックスといいます。 このプロジェクトではPizzaというJavaに高階関数やデータ型、ジェネリックスなどの機能を実装した新しい言語を開発しており、そこにジェネリックスも実装したという形で進み、実際に成功を収めました。 ただ、この新しい言語であるPizzaにJavaの互換性を持たせると共に、ジェネリックスを実装するということは限界があるとMartin Odersky氏は感じており、Funnelというシンプルな表記で実装できる言語を開発しましたが、実用性が無かったために評判はよくありませんでした。 そこで、GJプロジェクトの成功とFunnel言語の失敗から、実用性とシンプルさを掛け合わせた新たな言語Scala(スカラ)が生まれました。実際にScala(スカラ)はオブジェクト指向言語と関数型言語の特徴を合わせて作られたプログラミング言語となっており、実用性がかなり高いものになっています。 Scala(スカラ)の黎明期・成長期について ここからはScala(スカラ)の黎明期・成長期について見ていきましょう。Scala(スカラ)はリリースされた2003年は企業においてプログラムの実装に使えるほど実用化できる言語ではなかったのですが、2006年のScala2.0のリリースではコンパイラがScala(スカラ)で書き直され、またJava仮想マシン(JVM)で動作するようになったため少しずつ実用化に向けて動き出しました。 Scala2.7ほどから注目がなされるようになり、このバージョンアップではJavaのライブラリを読み込める機能の安全性が増し、ジェネリックスに関しても改善がなされました。ここからScala(スカラ)が開発に使いやすくなり、Javaとの互換性や実用性を更に高める機能が実装されることになりました。 実際にTwitter社がRuby on RailsからScala(スカラ)に開発言語を移行することになった際は大きな注目を浴び、この頃にScala(スカラ)の知名度と人気度が共にアップしました。 Scala(スカラ)は世界中の企業に使われており、2014年以降には日本国内でScala(スカラ)に関する書籍も増え、多くの企業に採用され始めました。海外に比べると、日本国内でのScala(スカラ)の採用や移行はまだまだなので、Scala(スカラ)は成長期だと言えそうです。 実際にScala(スカラ)は様々な企業に使われているため、開発においての実用性を更に高めるべく日々改善がなされています。 Scala(スカラ)は現在どのように使われている? Scala(スカラ)が現在どのように使われているかということについて見ていきますが、Scala(スカラ)は比較的新しい言語であり、Javaの後釜として将来性が高いと言われているため、多くの企業の開発に採用されている言語です。 Githubではどの言語でプルリクエストがどれくらい行われているかということを公開しているのですが、Scala(スカラ)は12位となっていてトレンドとして上昇しています。このように現在かなり人気のプログラミング言語となっています。 海外だと皆さんもお馴染みのTwitterやLinkedinが開発言語としてScala(スカラ)を採用しています。世界中で使われているWebサービスにScala(スカラ)が使われており、多くの企業がこぞってScala(スカラ)に目をつけています。 国内だとインターネット・Web業界にてWebサービスやソーシャルゲームの開発にScala(スカラ)が使われています。代表的な企業はドワンゴ・GMOメディア・NTTデータ先端技術となります。 Scala(スカラ)はJavaの後釜と言われていますが、Javaとの互換性を第一に考えられて設計されたプログラミング言語です。そのため、JavaからScala(スカラ)への移行は容易にでき、Javaコードとの連携も容易できます。 開発にJavaを使用しているが、今後はScala(スカラ)に移行しようとしている企業も数多くあります。 今見てきたように、海外の有名IT企業や国内のベンチャー企業を中心にScala(スカラ)は使われており今後もこの傾向は続きそうです。転職の面で見ても、実際にScala(スカラ)エンジニアを求めている企業は増えているのですが、日本でScala(スカラ)を使いこなせるエンジニアが少なく、希少価値が高くなっている現状があります。 Scala(スカラ)を使いこなせるエンジニアの需要は高いので、待遇面では好条件で転職ができ、求人検索エンジンスタンバイが発表したプログラミング言語別年収ランキング2017では、Scala(スカラ)が1位となる626万円に輝いています。 Scala(スカラ)は学習コストが高いので学習が大変と言われていますが、今見てきたように高待遇の求人が多いというリターンが大きさが大きな魅力となっているので転職についても一度考えてみてはいかがでしょうか。 まとめ 今回はプログラミング言語であるScala(スカラ)の歴史について見てきました。 Scala(スカラ)が誕生した背景やその後の歴史についてなかなか興味深い話が多かったでしょう。 今回の内容をまとめると Scala(スカラ)は実用性とシンプルさを追求したプログラミング言語Scala(スカラ)はTwitter社やLinkedin社が使用しており、トレンドになっているScala(スカラ)エンジニアは希少価値が高く、転職の条件が良い となります。 プログラミング言語の歴史については様々な話があり、常に人々の手によって進化しています。Scala(スカラ)もその言語の一つで、変化をしながらも従来の信頼度の高さは変わらずに、不動の地位になっています。 今回でScala(スカラ)に興味を持った方はまずScala(スカラ)を使ってみてください! フリーランス案件を探す
BEM
freelance

BEMとは?なぜBEMを使うべきなのか

大きいチームでプロジェクトを進めていく際、CSSをメンテナンスすることは困難がつきまとうものです。その困難を解決すべく、この記事ではBEM (Block Element Modifier) について述べていきたいと思います。 フリーランス案件を探す BEMとは BEMはBlocks-Elements-Modifiersの略で、HTMLおよびCSSのクラスに名前を付ける方法です。BEMは Yandexで開発されました。 BEMを使うと、プロジェクトコードが読みやすく、理解がしやすくなり、CSSを操作するときに拡張および保守が容易になります。命名基準は、フロントエンド開発者がそのコードの意味と機能を理解できるものとなります。その後他の開発者が、あなたが書いたコードを読むとき、開発者はあなたが何を意図してコードを書いたのかを理解できるので、後の分析・変更・管理が簡単になります。 なぜBEMを使うべきなのか 小さなプロジェクトではBEMは使用されないかもしれませんが、大きなプロジェクトやチームではBEMは非常に重要になります。その理由は以下になります。 チーム全体が簡単に連携できる チームでプロジェクトを進めて行くと、全員が独自のクラス名を持ち、互いに競合することがあります。そこでBEMを使用することで、構造が明確になり、使用時に簡単に追跡できるため、この問題が解消されます。 モジュール 各ブロックのクラスは他の要因の影響を受けないため、あるクラスのCSSが別のクラスに影響を与えることを心配する必要がなくなります。 再利用できる ブロックを互いに独立して作成し、それらを使いやすく再利用することで、CSSコードの量を減らすことができます。 BEMの基本的な構成 ・Blockブロックは、新しい要素の主要なクラス名です。ブロックの主な機能は、ページ上のどこでも再利用できることです。また、これらのブロックは他のブロックに配置されている場合があります。ブロック名は要素に応じて明確に設定されています。・Elements(要素)ブロックのコンポーネントであり、ブロック内に配置され、その親ブロックに依存しているため、ブロックなしでは独立して存在しません。 BEMでは、要素は二重下線「__」で示されます。・Modifierモディファイアは、ブロックまたは要素の表示タイプを変更するために使用されます。モディファイアは個別のコンポーネントとして使用されます。モディファイア名はブロック名または要素名で構成され、「-」で区切られます。 /* Block (ブロック) */ .btn { } /* Element (要素),上のブロックによって異なります*/ .btn__price { } /* Modifier (モディファイア)はブロックの状態を変更します*/ .btn--orange { } .btn--big { } このクラスの命名により、コンポーネントを表すブロックがあり、この例では.btnがあります。ブロックは、1つ以上の子要素が関与する親としても機能します。 Elementのクラス名とそのBlockとの関係は、Blockの名前、2つの下線、最後にElement .btn__priceの名前で表されます。 BEMの3番目のコンポーネントは、ブロック/要素の状態またはその他の派生物の調整に役立つ修飾子です。修飾子の名前は、前のブロック/要素の名前と2つのダッシュ .btn--orangeで結合されます。 結論 BEMはCSSのクラス命名規則であり、多くの利点がありますが、開発者が適切で未使用の名前を考えないようにすることが重要です。これにより、クリーンで保守しやすいコードを記述できます。クラス名が長くなるためにBEMを嫌う人や、BEMを置き換える他の方法がを利用する人はたくさんいます。 参照リンク http://getbem.com/ https://css-tricks.com/bem-101 https://webuild.envato.com/blog/chainable-bem-modifiers/ https://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/0
Ada
freelance

Ada(プログラミング言語)の歴史を紐解く

ご存知のことかと思いますが、世の中には様々なプログラミング言語が存在します。そして、それぞれのプログラミング言語には、誕生の経緯や発展の過程など、歴史があります。 プログラミングの歴史には、IT業界やシステム開発がどのように進化していきたのか、更には、これからの技術トレンドや流行り、廃りを推測するヒントがたくさん詰まっています。 そこで今回は、業務でもプライベートでも触ったことのあるエンジニアは、非常に少数派だとは思いますが、プログラミング言語の歴史に燦然と輝く『Ada』についてご紹介いたします。 フリーランス案件を探す Adaの概要 まずは、プログラミング言語Adaについて簡単にご説明いたします。 Adaは“エダ”ではなく、“エイダ”と呼びます。この名前は、ラブレース伯爵夫人オーガスタ・エイダ・キング(通称、エイダ・ラブレス)という19世紀のイギリス貴族から取られています。 この女性は、世界で初めてプログラミング可能な計算機を設計したことから「コンピューターの父」と言われるチャールズ・バベッジと親交があり、オリジナルのプログラムを書簡に書き残したため、「世界初のプログラマー」と言われることあります。 ちなみに、アメリカにはエイダ・ラブレス賞というものがあり、この賞の受賞者にはコンピューターの不具合のことを「バグ」と呼ぶきかっけを作ったグレース・ホッパー氏やYahoo!の元CEOであるキャロル・アン・バーツ氏など、層々たる顔ぶれが並んでいます。 さて、話をプログラミング言語Adaに戻しましょう。 詳しくは後述しますが、Adaは開発経緯からみても、相当に特殊なプログラミング言語であり、日本では特定のシステム(より厳密に言えば、ある種の組み込み系システム)以外では、まず使われることのないレアなプログラミング言語です。 特定のシステムとは、ずばり“兵器”です。世界最強と言われ、日本でも導入するかどうか話題となった、アメリカ製戦闘機F-22“ラプター”や三菱重工業が製造し海上自衛隊に装備されている97式魚雷はAdaでプログラミングされていることが明らかになっています。 こうした事情もあってか、日本においては教育機関でもAdaの教育・利用はあまり見られません。業務ではもちろん、プライベートでも触ったことのあるエンジニアは少数派となっています。 Adaの誕生 1970年代にアメリカ国防総省が主に組み込み系システムに使える、信頼性と保守性に優れたプログラミング言語を求めて、国際入札を行ったところからAdaの歴史は始まります。この国際入札では最終的に4つの案が提示され、最も優れていると考えられたフランスチームの案(当時はGREENと呼ばれていた)がAdaとして整備されていくことになります。 なお、アメリカ国防層省が入札を行うにあたって各チームに与えられた要件の中には、「開発効率よりも可読性を重視すること」や「プリプロセッサを使わないこと(※)」といったものがあり、いかに保守性を重視していたのかがうかがい知ることができます。 ※プリプロセッサとは、ソースコードに書かれた処理を行う前に、データの入力や整形などの前処理する仕組みのこと。つまり、プリプロセッサがあると、ソースコードには表現されきれていない処理がシステム的に走ってしまう、ということになります。このプリプロセッサが、バグの元になることもあります。 また、大規模なシステム開発に耐えられるように、という観点から、言語仕様としてマルチパラダイムな汎用言語(この時点で、手続き型以外にも関数型に対応)を目指しており、例外処理や並行プログラミングなど、当時としては相当に先進的なものとなっていました。そのため、言語仕様をまとめるのに難航し、5段階ものドラフトが作られたそうです。 Adaの黎明期 Adaの仕様は最終的に1983年にMIL規格(MIL-STD-1815)として規格化されました。国際標準規格と言えばANSIやISOなどが有名ですが、MIL規格は、あまり聞きなれないものかと思います。 それもそのはずで、このMIL規格はアメリカ国防総省が定める調達のための規格であり、あまり一般人が意識するような規格ではありません。なお、規格番号の1815はエイダ・ラブレスの生まれた年(1815年)にちなんだものだそうです。 このように、アメリカ国防総省が積極的にAdaの利用を推奨したものの、Adaには当時のコンピューターにとっては“重い”プログラミング言語である、という欠点もありました。80年代当時、IBM PCやNEC PC-9800シリーズなど16ビットパソコンが広まっていましたが、Adaの実装例はほとんどないとされています。 兵器は採算度外視で製造されるため、比較的高性能なハードウェアを用意できます。それでも、Adaを十分に利用できるほどのハードウェア性能を搭載するのは難しく、利用は現実的ではない、という批判的な意見も根強かったようです。 また、先進的というのは、裏を返せば“冒険的でリスクがあるかもしれない”と言えます。その点についても、Adaの兵器システムへの採用を疑問視する向きがありました。 例えば、ALGOLというプログラミング開発に関わったことなどで知られるアントニー・ホーア氏が1980年にチューリング賞を受賞した際、Adaへの批判の意味も込めて、以下のように演説したのは有名です。 「ソフトウェアを設計するには、2通りの方法がある。1つは、とてもシンプルに設計して、明らかに欠陥がないようにすること。もう1つは、とても複雑に設計して明らかな欠陥がないようにすることだ。前者の方がはるかに困難である」 Adaの成長期 大企業がワークステーションなどの大型コンピューター上で走らせていた、業務上重要なシステムか、あるいは、アメリカ国防総省向けのシステムや兵器の組み込み系システムくらいにしか使われてこなかったAdaでしたが、1980年代後半になってくると、登場からそれなりの月日が経ち、機器の性能向上もあり、「先進的で危ない」「仕様が重いから、ダメ」という批判は聞かれなくなりました。 1990年からは新たなパラダイム、オブジェクト指向に対応するために仕様の改定が行われ、1995年には、世界で初めてISOで標準化されたオブジェクト指向プログラミング言語となりました。 では、Adaはパソコンでも実装され、民間でも広まったかと聞かれると、答えはノーです。1980年代後半から1990年代にかけて、Perl やPHP、 Javaなど、より世代の新しいプログラミング言語が登場し広まっていたため、むしろAdaは民間では使われなくなっていきました(まったくなくなった訳ではなく、アメリカのボーイング社の旅客機など、他の言語に置き換えるのは難しいと考えられたシステムでは、今なおAdaが使われています)。 その一方で、アメリカを中心とする西側諸国での兵器開発の現場ではAdaはスタンダードとなり、確かな地位を築くことになりました。 Adaの現在 現在、Adaは2012年に制定された、ISO/IEC 8652:2012が最新版です。このように、今なお、プログラミング言語としての進化は続けられています。しかし、その一方で、80年代に整備されたプログラミング言語であるため、当時としては進歩的だったものの、いまとなっては陳腐化しているという意見も出ています。 実際、F-22“ラプター”の後に開発され、日本の航空自衛隊でも運用されている戦闘機F-35“ライトニング II”では、Adaは不採用となっています。Adaの代わりにC++でシステム開発が行われたようです。 今後、Adaは暫時、利用が減っていく可能性が指摘されています。 まとめ:Adaの歴史で学ぶこと Adaの歴史は「野心的なプログラミング言語が、誕生してから広まっていくまでの、一連の流れ」を知る良い材料だと言えます。 実際に業務で使うことはないプログラミング言語であっても、どういった特徴があり、これまで、どんな歴史を刻んできたのを知ることは、非常に意味があることです。 ぜひ、他の言語の記事もチェックしてみてください。 ご支援実績8,000人以上!フリーランスエンジニア・クリエイター専門の案件情報サイト「テクフリ」 テクフリでは、10年以上の業界経験を活かし、ただのお仕事紹介ではなくバリューアップをコンセプトに手厚いサポートでご支援しております。 正社員からフリーランスになろうと考えている方は、開業手続きから税金のご相談を親身に対応。 逆にフリーランスから正社員になろうと考えている方は、マッチした企業・求人をご紹介。 親身にご要望に耳を傾け、あなたにピッタリの案件をご提案いたします。 ・フリーランスで挑戦したい! ・より単価の高い案件に入りたい! ・スキルアップしたい! ・安定稼働したい! そんな方におすすめです。 チャットでの無料相談も受け付けております!
<span class="translation_missing" title="translation missing: ja.layouts.footer.icon_back_to_top">Icon Back To Top</span>
TOP