HaskellとPureScript【後編】
「PureScript」が「JavaScript」より優れる点、劣る点 開発に役立つのは?
「PureScript」は「JavaScript」に変換されることを目的としたプログラミング言語だ。強力な型システムや型推論といった、PureScriptが備える特徴と、活躍する場面を紹介する。
数学的な関数を組み合わせたプログラミングである「関数型プログラミング」において、不変データ構造(作成時以降は変更できないデータ構造)は重要な要素だ。関数型プログラミングによる変数の不変性が、ソースコード中のバグを減らすことに有効な場合がある。関数型プログラミング言語「Haskell」「PureScript」の主要な特徴を紹介する本連載のうち、本稿はPureScriptを取り上げる。
PureScriptとは何か? JavaScriptより好まれる点は?
併せて読みたいお薦め記事
連載:HaskellとPureScript
さまざまなプログラミング言語
Haskellと概念的に似ているPureScriptは、シンプルなものから複雑なものまでフロントエンド(エンドユーザーとの接点になるシステムの構成要素)アプリケーションを開発できる。インストールやアプリケーションのビルド(実行可能プログラムへの変換)は、簡単な手順で実行できる。動作を変えないまま内部構造を修正する「リファクタリング」やデバッグ(エラー修正)、テストも実施しやすい。
PureScriptは、変数や式が扱う値を特定の型に制限する「強い型付け」の性質を持つ、純粋関数型のプログラミング言語だ。純粋関数型とは、関数型プログラミングのうち、プログラム外部の状態を変更する操作(副作用)を許容しないなどの特徴を持つものを指す。PureScriptのソースコードは、スクリプト(簡易プログラム)言語「JavaScript」のスクリプトにコンパイルされ、再利用可能なソースコードを作成できる「型クラス」を提供する。型クラスは、共通のインタフェースを定義し、それに対して一連の操作を提供する仕組みのことだ。
こうした特徴から、簡単かつ安全にインストールやビルドを実行したい開発者、関数型プログラミングの概念を学びたい開発者がPureScriptを好む傾向にある。PureScriptの型システムはJavaScriptの型システムよりも厳密であるため、より安全かつ再利用性に優れたソースコードを記述する際に有用な場合がある。
ソースコード共有サービス「GitHub」では、PureScriptのパッケージ(拡張機能)とメタデータのリポジトリである「PureScript Registry」が公開されている。PureScript Registryはパッケージの登録、更新、転送、公開解除を実行するAPI(アプリケーションプログラミングインタフェース)も提供している。
特にPureScriptが向いているのは、シングルページのWebアプリケーションのフロントエンド(エンドユーザーとの接点になるシステムの構成要素)開発だ。ただしバックエンド(システムの構成要素のうちエンドユーザーの目に見えない部分)開発においては、特定の開発作業に適したライブラリが欠けている場合があり、手作業が増える可能性がある。
PureScriptにはデータを扱うためのレコード型があり、レコードの作成や更新、アクセス専用の構文を備える。PureScriptのレコードには多相性(ポリモーフィズム:同じ操作を複数の異なる型に適用できる能力)があり、開発者はレコード取得/アクセスのための関数を記述可能だ。PureScriptのコンパイラは型を推測し、ソースコードにエラーが生じるのを防ぐ。
多相性や型推論などの特徴を備えたPureScriptの型システムは、冗長なソースコードや抽象化機能の欠如など、関数型プログラミングの複雑さを軽減する。表現力のある型と型推論により、型注釈(型情報を明示的に指定する操作)の機会も削減可能だ。一方で実行速度についてはJavaScriptの方が優れている場合もある。そのため、PureScriptで関数型プログラミングの恩恵を受けつつ、JavaScriptで速度を重視するといったバランスを取ることは有用だ。
「Pursuit」は、PureScriptのAPIドキュメントを公開しているWebページだ。開発者はPursuitでPureScriptライブラリの機能を調べ、さまざまなアプリケーション開発に活用できる。ただしHaskellからPureScriptにライブラリを移植すると、型の不一致、データや変数に関連するパフォーマンス低下が発生する可能性があることに注意しなければならない。
Haskellは型に焦点を置いた言語であるため、Haskellを学ぶことは、洗練された複雑なソースコードを書くスキルを育てる。PureScriptは再利用可能なソースコードやレコード、多相性に対するアプローチが分かりやすいため、フロントエンド開発で効力を発揮する。
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
“攻撃者優位”なサイバーセキュリティ、全ての「穴」をふさぐ方法とは? -
製品資料
実際に悪用される脆弱性は4%前後 優先的に対処すべき脆弱性を把握するには? -
製品資料
HubSpotの機能を拡張する法人データ活用法 -
製品資料
面倒で非生産的な「名寄せ」作業 高精度&高効率に実施するには? -
製品資料
名刺管理には「その先」がある 成果のでない営業活動から脱却する秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
Netflixのバックエンドは「ほぼJava」 3000超のアプリを支える開発基盤の裏側
-
2
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
3
「WSUS」終了の時限爆弾 “本命”移行先ツールとMicrosoft提唱の新管理手法
-
4
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
5
アラート47%削減 オープンハウスが捨てた「全部メール通知」の監視体制
-
6
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
7
IT製品の導入に関するアンケート「サーバ&ストレージ」編
-
8
DX導入企業の3割超がむしろ「負担増」 9割が陥る“内製化のわな”
-
9
継続利用は4割どまり M365 Copilotが「効く業務」と期待外れの境界
-
10
ベッドでの使用が「PC騒音」を悪化させる? Dellが推奨する冷却ファンの鎮め方
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
3
財務・会計はAI活用でどう変わる? 調査で見えた変革の道筋
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
「結局、一部の人しか使わない」 AI活用が業務に定着しない根本的な理由
-
7
コスト分析で見る「デバイス復旧」の代償 損失額から導きだされた投資戦略とは
-
8
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
9
ゼロトラストにおける「IDaaSの課題」と補完すべき重要機能とは?
-
10
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー