幾つかの言語を扱った感想
最近Web言語以外また、やっていないWeb系言語について軽く広く勉強しておりました。
そこで今までやってきた言語も含めてそれぞれの難易度や個人的な意見を添えつつ
今後新しい言語をやってみたいや、新しい言語を取得してみたいなどの手助けになれば幸いです。
幾つか個人的説明も兼ねておきます。
- 記述言語:マークアップ式のみの言語で計算等は出来ない
- スクリプト言語:プログラミング言語よりかは小さい用途で使われる言語
- プログラミング言語:大きな開発に用いる事が主軸でコンパイル式のものが主流
- 手続き型言語:主にALGOLやFORTRAN系の言語
- 問い合わせ言語:データの処理のために使われる言語をさす
また紹介する言語については
HTML
- 記述言語
- 難易度:★☆☆☆☆
- 用途:Web
Webサイトのページに使われるマークアップ式の言語
難しい構文は無く目印となる部分にタグと呼ばれるものをつけてWebの構成を作るために使われる。
Sample
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Sample</title>
</head>
<body>
<h1>見出し1</h1>
<img src="sample1">
</body>
</html>
- 記述言語
- 難易度:★☆☆☆☆
- 用途:Web
HTMLに比べて独自にタグを作りマークアップする事が出来る。
XMLはPHPやJavaScriptを通して利用される。
Sample
<?xml version="1.0" encoding="UTF-8"?>
<root>
<userA>
<name>○○</name>
<age>40</age>
</userA>
<userB>
<name>□□</name>
<age>38</age>
</userB>
</root>
</root>
- 記述言語
- 難易度:★☆☆☆☆
- 用途:Web
スタイルシートと呼ばれHTMLでマークアップした言語にデザインをつけるためにある。
そのためHTMLだけでデザインをとるのは間違いとなる(<table>でWebの構築をしたり<font>を使う等)
Sample
body{
background: #F00;
color: #00F;
font-weight: bold;
margin: 0;
padding: 10px;
}
h1{
border: solid #000 3px;
background: #DDD;
}
- スクリプト言語
- 難易度:★★★☆☆
- 用途:Web
HTMLとCSSと合わせてDHTMLと呼ばれる。主にWebに動的な効果をもたらす。
JavaScriptはPHPと違い、ユーザーが許可しない場合があるためJavaScriptが使えなくても、通常に使用出来るサイトになるよう考慮しなければならない。
Sample
<script type="text/JavaScript">
window.addEventListener(function(){
alert("Hello!World");
document.title = "タイトル";
});
</script>
- 記述言語
- 難易度:★☆☆☆☆
- 用途:Web
HTMLの最新のバージョンで現在はまだ完全な規定がされておらず草案状態までとなっている。
タグによって対応していないブラウザがまちまちあるためクロスブラウザを免れるのは難しい(特にIE)
canvasやaudioなど比較的に視野に変化をもたらすタグが追加された。
articleやsectionなどの文章定義を厳密にするタグも追加されている。
Sample
<!DOCKTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Sample</title>
</head>
<body>
<section>
<h1>最新記録</h1>
<p>魚市場に出回る<mark>マグロの長さ</mark>が更新された模様</p>
</section>
</body>
</html>
CSS3
- 記述言語
- 難易度:★★☆☆☆
- 用途:Web
CSS2の次にあたるバージョンでデザインが強化されている。
主に今までのCSSは静的なものであったが、時間指定などを予め決めておき反映させたり
ユーザーの操作も一部受け付けられるようになり、これだけでゲームが作れるまでとなった。
Sample
h1{
border: solid #000 2px;
border-radius: 3px;
background: #F00;
transion: background 2s linear;
-moz-transion: background 2s linear;
-webkit-transion: background 2s linear;
-o-transion: background 2s linear;
}
h1:hover{
background: #500;
}
- スクリプト言語
- 難易度:★★★☆☆
- 用途:Web
ユーザーの入力した情報等を自由自在に扱うことが出来る。サーバーで稼働しているため
この言語を扱うときはセキュリティに関しても勉強する必要性がある。(JavaScriptによるXSSやSQLインジェクション攻撃など)
予め用意された関数が多いのも特徴的である。
フォームに値が入力されていない時、JavaScriptで注意を促す事ができるが、ユーザーが拒否した時のことも考えて
PHPでも値が入力されていないとき、処理を行わないように設定する連携も多々ある。
またHTMLの文章内に直接記述出来る便利な一面もある。
Sample
<html>
<head></head><body>
<?php
print "Hello!World";
if(isset($_POST["name"])){
echo("ようこそ" . htmlspecialchars($_POST["name"],3) . "さん");
}
?>
<form action="this.html" method="post">
<input type="text" name="name">
<input type="submit">
</form>
</body></html>
- 問い合わせ言語
- 難易度:★★☆☆☆
- 用途:Web
PHPと連携して用いられる事が多い、言語自体ではただの表組を生成して
必要に応じてソートやデータの抽出を行うことがある。
XMLやJSONとは違い厳密な所から大量で膨大なデータを扱うのに適している。
Sample
CREATE TABLE tabledata (id INT , name TEXT , age INT);
INSERT INTO tabledata SET id = 1 , name = "○○" , age = 40;
INSERT INTO tabledata SET id = 2 , name = "□□" , age = 38;
UPDATE tabledata SET name = "△△" WHERE id = 1;
SELECT * FROM tabledata WHERE age > 39;
- スクリプト言語
- 難易度:★★★☆☆
- 用途:ゲーム、アプリ、ブラウザ
本来はゲームを作るために簡易に作られている。
そのため他の言語をやっていると、その簡単さに唖然とする事があるが逆に書き方が大幅に簡易化するため間違えることがある(if文の同じを示す記号は == ではなくて = であるなど、while文やforが存在していない)
Sample
title "Sample";
color 0,0,0 : boxf;
color 255,255,255;
font msgothic,30,1;
mes "Hello!World";
button "クリックすると終る" , *thend;
stop;
*thend
end;
- プログラミング言語
- 難易度:★★★★★
- 用途:Web、ソフト、モバイル関係
プログラミングにおいてはかなり奥が深くてやりごたえがある言語
ハローワールドを記述するだけでもかなりの行をとるため普通は専用のソフトを使いながら基礎的な文法は飛ばして記述するのが主流
sample
public class Message { public static void main (String[] args) { System.out.println("文字を表示する"); } }
- 手続き型言語
- 難易度:★★★★☆
- 用途:膨大な計算に使用される
C言語が存在してから使われる頻度が少なくなったFORTRANですが、旧プログラムとして勉強するのには適している言語です
昔のコンピューターは大文字しか使えないこともあってその名残で記述は大文字でします。
Sample1
INTEGER I,J,a(8)
REAL P,Q
DO 200 0,8
a(J) = J
200 CONTINUE
J = 10
I = 0
P = 20.0
Q = 30.0
CALL DATA(P,Q,I)
WRITE(*,*) "PとQの合計値は" . I
STOP
END
SUBROUTINE DATA(P,Q,I)
I = P+Q;
STOP
その他のライブラリ等
JavaScriptとXMLをかけ合わせた非同期通信の事で単にDOMを扱う時だけでもそう定義されることがある。
またXMLファイルをXMLHttpRequestでオブジェクトとして生成しそこからノード計算で必要なタグを取り出すのが一般的である。
JavaScriptでは難題なソースを予めライブラリとして作成してそれを呼び出す形で使用する。
主に$セレクタと呼ばれるもので値を指定して効果を出す形が多い。
CGI
Perlとよく併用して呼ばれる事があるが、PHPやC言語でも記述は可能である。
用途は様々あるが掲示板の作成で使われることが9割をしめている。Webは閲覧側のみに情報を渡すシステムにみえるがCGIを使うことによってユーザーの情報を得ることが可能である(例:IPアドレス)
Sample
#!usr/bin/perl
print "Content-Type: type/html\n\n";
print 'IPアドレスは $ENV{"REMOTE_ADDR"}です';