案件評判
F#を理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

F#を理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

最終更新:2020/09/23 投稿:2020/09/19
F#を理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

F#はマイクロソフト社が提供するオープンソースのマルチパラダイム言語です。C#やVB(VisualBasic)などと同様にVisual Studioの標準開発言語であり「.NET Framework」上で動きます。この記事ではF#を理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。

F#とは

F#とはマイクロソフト社のドン・サイム氏によって2002年に開発されたオープンソースのマルチパラダイム言語です。F#がマルチパラダイムと言われる由縁は関数型プログラム、手続き型プログラム、オブジェクト指向プログラムと様々なパラダイムをサポートしていることにあります。そのため同社が開発・提供するC#やVB(VisualBasic)などの.NET言語を置き換える形でF#を使用することもできます。また同社が提供するVisual Studio 2010より標準開発言語として追加されております。F#の特徴として「①マルチパラダイム」「②.NETFrameworh上で動く」「③クロスプラットフォーム」などが挙げられます。2019年時点で最新バージョンは『F# 4.6』がリリースされております。

『F#の基本情報』
誕生時期:2002年
開発者:ドン・サイム氏
開発会社:マイクロソフト社
種別:マルチパラダイム言語
特徴:①マルチパラダイム/②.NETFrameworh上で動く/③クロスプラットフォーム

F#の公式サイトはこちら>>

F#の読み方・名前の由来

F#の読み方は『エフシャープ』が一般的となっております。。名前の由来は『Functional programming language(関数型プログラミング言語)』からきております。また型付きラムダ計算のプログラミング言語としられるSystem Fも由来していると言われております。

F#の誕生と歴史

F#はマイクロソフト社のドン・サイム氏によって2002年に開発が始められました。起源を辿るとその歴史は長く1970年代まで遡ります。というのもF#は関数型プログラミング言語であり、LISPの伝統に基づいて開発されております。F#がマイクロソフト社によって正式にリリース発表されたのは2005年のことです。2010年には同社の提供する『Visual Studio 2010』より標準開発言語として追加され、『F#2.0』のリリースが発表されました。それかから度重なるアップデートを重ねて2019年時点で『F#4.6』が最新バージョンとなっております。
好きなプログラミング言語ランキング「Stack Overflow Developer Survey 2019」
の調査によると第15位を記録しております。ちなみに同メディアが発表する嫌いなプログラミング言語ランキングにおいては13位を記録しておりました。良し悪しはあるもののいずれにせよ注目度を着実に挙げている言語であることは間違いありません。

歴史 出来事
2002年 F#開発開始
(マイクロソフト社のドン・サイム氏)
2005年 F#初版正式リリース
2010年 『Visual Studio 2010』より標準開発言語として追加
『F#2.0』のリリースを発表
2012年 『F#3.0』のリリースを発表
・三重クォート文字列リテラルが導入
2015年 『F#4.0』のリリースを発表
・[nth]が非推奨になり、[item]が追加
2018年 『F#4.5』のリリースを発表
・プリミティブ型のSpan
・新しいキーワードMatch!
2019年 『F#4.6』のリリースを発表
・匿名レコード型の導入

F#は関数型プログラミング言語

F#は関数型プログラミング言語という関数の組み合わせによって課題を解決する仕組みで構成されるプログラミング言語の種類です。宣言型プログラミング言語の一種であり、関数は引数の適用から先行式の評価を後続式の適用につなげて終端の評価を導き出す式のツリー構造として定義されます。代表的な関数型プログラミング言語としてR言語、Scara、Pythonなどが挙げられます。

関数型プログライミング言語の種類や特徴を解説している記事はこちら>>

F#はコンパイラ言語でありインタプリタ言語

F#はコンパイラ言語でありインタプリタ言語でもあります。

『コンパイラ言語とは』
コンパイラ型言語とは、人間が書いたプログラム(ソースコード)をコンピュータが理解できる形式(機械語)に変換するプログラム言語のことです。コンパイラという言葉は英語の『compile』を表し、『編集する』を意味します。代表的なコンパイラ言語としてJava、C言語、C++などが挙げられます。

コンパイラ言語の種類や特徴を解説している記事はこちら>>

『インタプリタ言語とは』
インタプリタ言語とは、人間が書いたプログラム(ソースコード)をコンピュータが実行する際に1行ずつコンピュータが読み取りやすいように機械語に翻訳していきながら、そのプログラムを実行していく方式を持つプログラミング言語です。インタプリタという言葉は英語の『Interpreter』を表し、日本語訳すると『通訳』を意味します。代表的なインタプリタ言語としてPHP、Ruby、Pythonなどが挙げられます。

インタプリタ言語の種類や特徴を解説している記事はこちら>>

F#の特徴

F#の特徴を見ていきましょう。

マルチパラダイム言語

F#はマルチパラダイム言語です。マルチパラダイムとは関数型プログラム、手続き型プログラム、オブジェクト指向プログラムと様々なパラダイムをマルチにサポートとしていることを意味します。F#の他に代表的なマルチパラダイム言語としてC++(手続き型言語、オブジェクト指向プログラミング)、JavaScript(手続き型言語、関数型言語、オブジェクト指向プログラミング)などが挙げられます。

.NETFramework上で動く

F#は.NETFramework上で動作します。同じマイクロソフト系言語である「C#」や「VB(Visual Basic)」と相互運用性があります。C#やVBで作ったライブラリを相互に呼び出し、利用し合うことができます。

『.NETFrameworkとは』
.NET Frameworkとはマイクロソフト社が開発・提供するアプリケーション開発・実行環境用フレームワークです。主にVisual Studioで開発したプログラムをWindows上で動作させる
ためのに使用されます。Windowsアプリケーションのみならず、WebサービスやWebアプリケーションなどの開発をすることが出来ます。.NET Frameworkは『共通言語ランタイム』『基本クラスライブラリ』『フレームワーク』の3つで構成されております。

.NETFrameworkの種類や特徴を解説している記事はこちら>>

クロスプラットフォーム

F#はクロスプラットフォームに対応しております。Linux、Mac OS X、Android、iOS、Windows、GPU、およびブラウザで実行が可能です。

『クロスプラットフォームとは』
クロスプラットフォームとはWindows、Macのように異なるOSやWebアプリ、デスクトップアプリ、スマートフォンアプリなど様々なデバイスの異なるプラットフォームにおいて同じ仕様のアプリケーションを動かすことに対応したプログラムのことです。

クロスプラットフォームのメリットや種類を解説している記事はこちら>>

WIndowsアプリケーションの開発に最高の相性

F#はマイクロソフト社が開発した言語ということもあり同社の手掛ける.NET FrameworkやVisual Studioといった様々なツールとの相性が抜群に良いことからWIndowsアプリケーションの開発に最高の相性といったメリットがあります。また.NET Frameworkと共に誕生した
C#とも相互運用性があることから対応範囲は非常に広いです。WIndowsアプリケーションの開発を行う際にはオールWindows製品の検討もせずにはいられないでしょう。

F#とC#の違い

F#とC#は同じ会社に開発されたもので相互運用性も高いことからそれぞれの違いを明確に発表されている情報はそう多くありません。その理由としてやはり相互運用性が高いことから上手く用途に応じて必要部分を呼び出し合うためこの議論に至らないのでしょう。当然ですが標準ライブラリや実装に使われている型などは違いがあります。C#の方が歴史も長いことがあり情報量・需要共に優勢です。一方でF#の方が安全性・シンプルさにおいて評価されております。他にも様々な観点で比較した内容は以下の表をご覧ください。

F# C#
学習コスト
安全性
シンプルさ(短い記述)
情報量
将来性

C#の基礎知識や種類を解説している記事はこちら>>

F#の基本的な文法

F#の基本的な文法を見ていきましょう。

データ型の種類

F#ではデータ型で使用される基本的な種類は以下の通りです。

データ型の種類 概要
Int16 -32768 から32767までの値
Int32 -2147483648 から2147483647までの値
Int64 -9223372036854775808 ~ 9223372036854775807 の値
UInt16 0 ~ 65535 の値
UInt32 0 ~ 4294967295 の値
UInt64 0 ~ 18446744073709551615 の値
Byte 0 ~ 255 の値
SByte -128 から127までの値
Intptr 符号付き整数としてのネイティブポインター
UIntPtr 符号なし整数としてのネイティブポインター
Single 32ビットの浮動小数点型
Double 64ビットの浮動小数点型
Char Unicode 文字の値
String Unicode テキスト
Decimal 有効桁数が28以上の浮動小数点データ型
Boolean 設定可能な値は true および false

演算子

F#では演算子で使用される基本的な種類は以下の通りです。

演算子の種類 概要
算術演算子 足し算や引き算を実行する
プール演算子(論理演算子) 理論を判定する際に用いる
ビット演算子 中置記法も利用できる関数
Null 許容の演算子 一方または両方で null 許容型の算術演算を使用する二項演算または比較演算子
パイプライン演算子 関数の適用順序を制御したり、関数を合成するのに使う
オブジェクト変換演算子 様々な変換を行う演算子

制御文

制御文では『if文』『switch文』『while…do文』を覚えておく必要があります。

制御文の種類 概要
if文(条件分岐) if文は複数の式を実行し条件にあった文のみを実行
for文(反復処理) for文は反復の制御構文であり、繰り返し行う処理を実行
while…do文 指定されたテスト条件が”true”の間、反復実行 (ループ) を実行するために使用

F#の代表的なフレームワーク

F#の代表的なフレームワークを見ていきましょう。

『F#フレームワークとは』
F#フレームワークとはF#におけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのこと

.NET Framework

.NET Framework(ドットネットフレームワーク)とはC#に活用されるマイクロソフト社によって開発されたアプリケーション開発・実行環境用フレームワークです。.NET Frameworkは業界において度々『.NET(ドットネット)』と略称して呼ばれることがあります。.NET Frameworkは『共通言語ランタイム』『基本クラスライブラリ』『フレームワーク』の3つで構成されております。

.NET Frameworkの公式サイトはこちら>>

.NET Frameworkの特徴・機能などを解説している記事はこちら>>

まとめ

F#を理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。F#を一言で表すと『マイクロソフト社が提供するオープンソースのマルチパラダイム言語』です。特徴として「①マルチパラダイム」「②.NETFrameworh上で動く」「③クロスプラットフォーム」の3点があることは覚えておくと良いです。他にもF#についてこの記事に記載されている最低限の内容は理解しておくようにしましょう。

案件評判
常駐する会社が、実際どんな会社で、どんな案件が動いているか詳しく知りたい。
これは常駐形態で働く方なら誰もが感じていることだと思います。 常駐の働き方をされている方は是非一度「案件評判」で案件についての評判をチェックしてみてください。