【前編】プログラミングが苦手でも使える!!? 「軽量プログラミング言語」

【前編】プログラミングが苦手でも使えるといわれる「軽量プログラミング言語」を、これからプログラミングを始めたい方向けに!!代表的な言語のかんたんなまとめ知識と~俗にいう「HelloWorld」という文字列を表示させるためのプロセス数を比較してみました。





【はじめに】

プログラミング授業の必修化などに伴い、非技術職~一般事務職までプログラミングを行わせる企業が増えています

既存のCやC++、FORTRAN、LISP、COBOLといった古くからって、現在までさまざまに形を変えながら使われる高水準言語とよばれる「習得が難しいもの」とは異なり、新たな外国語を覚える感覚で簡単に取り組めるプログラミング言語が増えました。

が、さらに進めて、IT利用がなくても簡単な言葉やドラッグアンドドロップで構築できるプログラム言語も多数登場しました。

ごく初歩的なものでは、非常に簡単で子供から取り組めるものとして有名なのは、文部科学省のプログラミンや、日本人アジア系所属者も多いMITメディアラボのスクラッチなど。

プログラミン◆http://www.mext.go.jp/programin/



スクラッチ◆https://scratch.mit.edu/

こうした技術の普及を受けて、すでに中高生までに更なる別言語を習得。在学しながら技術者としても働く子供たちなども増えています。

もちろん「プログラミン」や、一緒によく比較に上る「scratch」などが即業務として使える汎用性の高いプログラムになるというわけではありません。

ですがこれだけ、お手軽にプログラムが作れる変革期にあるのが現代・・・となれば、手軽に取り組める言語を業務や研修に取り入れれば、社会のムードも後押しして、社内での非技術層の底上げにもつながるかもしれません。

それなら覚えやすさ抜群の、軽量プログラミング言語(英:Lightweight Language 略称:LL)がおすすめです。

【手軽に取り組みやすい軽量プログラミング言語】





軽量プログラミング言語は、行える機能からくる分類ではなく、「習得・学習・使用が容易なプログラミング言語を指す」とされています。

この概念が初めて提示されたのは2001年MITにおける「LL1: 軽量言語ワークショップ」。


軽量プログラミング言語(英: lightweight language)は、2001年にMITで開催されたワークショップ「LL1: Lightweight Languages Workshop」のCFPによれば[1]、何らかの実際の機能によるカテゴライズではなく、習得・学習・使用が容易な(The term "lightweight" refers not to actual functionality, but to the idea that these languages are easy to acquire, learn, and use.)

https://ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
Wikipedia JPより 


「覚えやすいもの」かつ「リソース消費や実行負荷が軽いもの」として、その当時、各国で挙げられているのは

Ruby

https://www.ruby-lang.org/ja/ (日本語)
まつもとゆきひろ(Matz)が開発したオブジェクト指向スクリプト言語。非常に読みやすく、ライブラリやC言語を呼び出す拡張モジュールを組み込むことなどもできる。

Python

https://www.python.org/ (英語)
グイド・ヴァンロッサムが設計した、集約化の進んだ汎用高水準言語。実行速度はやや遅い。

Perl

https://www.perl.org/ (英語)
ラリー・ウォールが開発した、シェルスクリプトやCなどの機能を取り入れた言語で、その後開発されたJavaScript、PHP、Python、Ruby、PowerShellなど、WEBやサーバで用いられることも多い後の言語に影響を与えています。

Scheme

http://www.scheme-reports.org/ (英語)
1975年MIT AIラボ、ガイ・L・スティール・ジュニア、ジェラルド・ジェイ・サスマンにより作られた、Lispの一つ。言語に広く影響を与えた「静的スコープ」に特徴があるもの

Curl

http://groups.csail.mit.edu/cag/curl/ (英語)/ その後http://www.curlap.com/(SCSK)
MITが開発後、現在はSCSKにより開発が続けられているWEBコンテンツ用の対話型プログラミング言語。非常にかっこを多用するもので、HTML、JavaScript、Java をこのフレームワークだけで利用できる構造。

など。

体験してみるとわかりますが、非常に覚えやすく使いこなしまでも速いものから、意外と細部をつめていくと(サーバ関連技術など含)習得困難というものも多数含まれます。


【実は一般的に、日本での「軽量プログラミング言語」の定義は違う!?】



ちなみに現在の日本では、習得などが容易であることは含まれますが、コンパイルが必要な言語などもあります。
日本における現在の軽量プログラミング言語は、

  • ECMAScript(ActionScript、JavaScript、Jscript)
  • PHP
  • Python
  • Ruby
  • VBScript
  • AWK
  • Lua
  • Perl
  • シェルスクリプト(bash、csh等)
  • Tcl
以下のものも、一応軽量とすることがあります。
  • Clojure
  • Curl
  • Groovy
  • Haskell
  • JavaFX Script
  • PowerShell
  • Scala
  • Scheme


基本的には、日本では「軽量プログラミング言語」と呼ぶときは、

  • コンパイルの有無はあまり関係ないものもある(が基本的にはコンパイル不要)
  • 関数オブジェクトを持つ
  • 動的
  • リソース管理不要か、かなり少なくて済む


といったあたりをさして、軽量プログラミングということが多いようです。

記述自体が軽量化されている=1つあたりの語に対しては、行えることや取れる値の範囲なども細部まで設定されています。

複雑な動作をさせたい、その業務にあまり向いているとは言えない言語が他のシステム内機材等の理由で選択されているなんてシステムは、継ぎ足し型に発展した企業内システムなどでよく見かけられます。あるいは安全で、動かせる機材のハード的容量などを考えたプログラミングを行ないたいから、とある言語がすでに決定されている→だけど特定の機材を動かすためには、とある言語を利用しなければならない案件などもありますよね。

このとき、グルー化(多言語を取り込んだりその処理部分で読み込んで使用するためのなにがしかと)するための何かが使えないあるいは存在していないタイプの言語は、逆に記述が長くなります。
良く知られこうした「別言語がかなり自在に組み込める」各種のツールがあるCなどの言語に比較すると、より細かい複雑で、長いスクリプトによる対応が必要なときには、よく言語の移植や、その言語を用いて動かせる別言語とのさらなる組み合わせが模索されます。

「じゃCとか覚えちゃえばいいじゃん」・・・という感じもありますが、初めて覚えるにあたっては、比較的負担が少ないといわれる言語が多いのは大きなメリット。

この中から、とくに覚えやすく、現場でも多く使われているものをご紹介します。

とくに初心者ではなくても、転職などに伴い、習得しやすく扱いやすい言語をマスターしたいと思っているなら、こちらが常識!というセレクション。
俗にいう「HelloWorld」という文字列を表示させるプロセス数を比較してみました。



<後編に続く~>

Additional Images




Comments

Loading…

We use cookies and other technologies to improve your experience on our website and to analyze our traffic. By browsing our website, you consent to our use of cookies and other tracking technologies.

Accept cookies and close this message