LoginSignup
2
0

More than 1 year has passed since last update.

言語を比べると見えてくるもの

Last updated at Posted at 2022-02-10

この記事はリンク情報システムの「TechConnect!2022年2月」のリレー記事です。
engineer.hanzomon のグループメンバによってリレーされます。
(リンク情報システムのFacebookはこちらから)

TechConnect!2022年2月のインデックスはこちら


はじめに

初めて記事を書くので、何を書くかで悩みましたが、
IT業界に入って一番最初に気になったことにしました。

色々なプログラミング言語があるけれど、実際どの言語が何に適しているのか、
言語ごとの実際の内容の差はどうなのか……
今回は、どこでも聞いたことのある言語4つ程に絞って軽く書いていきます。


言語毎の特徴と、利用されている分野

■Java
よく名前を聞く言語1位と言っても良いのではと言う言語

・特徴
 どんな環境でも使える、応用力が高い。
 需要が高く、教材が多いため勉強しやすい。
 Javaを学んでおくと、別の言語を勉強するときに便利。
・主に利用されている分野
 システム、WEB、アプリ開発と、様々な開発

■Python
最近よく聞くようになった言語、AI開発ならPythonとも聞きます
・特徴
 シンプルな記述で、コードが読みやすい・書きやすい。
 ライブラリが豊富。
・主に利用されている分野
 AI、WEB開発、データ分析

■PHP
WEBアプリ作るならと、聞く言語
・特徴
 需要が高く、教材が多いため勉強しやすい。
 フレームワークが豊富で、開発がしやすい。
・主に利用されている分野
 WEBアプリ開発

■JavaScript
聞いた時にJavaと似ていて混乱した言語、実際にはまったく別のもの
・特徴 
 非同期通信でWEBサイトを更新しなくても表示内容を更新できる動的なWEBサイトが作れる。
 環境構築の必要がない。
・主に利用されている分野
 WEB、アプリ開発

コードから見る違い

特徴と利用される分野については分かったけど、
実際のコードではどのくらい違うか……
変数宣言の違いと、よく使われる条件分岐、知っていると便利な文字列関係の処理について書いていきます。

■変数宣言
[Java]
変数を宣言しないで変数に値を代入すると、エラーとなるため、変数の宣言は必須

//変数の宣言
データ型 変数名;
//同じデータ型の変数を複数宣言
データ型 変数名1,変数名2,...;

[PHP]
宣言は必要なく、変数に値を入れられる

//変数の宣言なしで、変数名に値を代入
$変数名 = ;

[Python]
PHPと同じく宣言は必要なく、変数に値を入れられる

#変数の宣言なしで、変数名に値を代入
変数名 = 

[JavaScript]
変数宣言をしないでも、参照前に値を変数に格納すればエラーとならない

//変数の宣言
var 変数名;

■条件分岐式
書き方に違いはあれど、ほとんど同じです。
Pythonがシンプルで書きやすい印象。

[Java/PHP/JavaScript]

if (条件式A) {
  条件式Aが真の場合に実行される処理
} else if (条件式B) {
  条件式Aが偽で条件式Bが真の場合に実行される処理
} else {
  すべての条件式が偽の場合に実行する処理
}

[Python]

if  条件式A:
     条件式Aが真の場合に実行される処理
elif 条件式B:
     条件式Aが偽で条件式Bが真の場合に実行される処理
else:
     すべての条件式が偽の場合に実行する処理

■文字列関係
基本的には似通った感じだけれども、
PHPはバイト数か文字数かで細かく考えられる。

[Java]

// 文字列の文字数を取得する
対象文字列.length()
// 文字列を置換
対象文字列.replace(置換対象文字列,置換する文字列)
// 文字列を正規表現で置換
対象文字列.replaceAll(正規表現,置換する文字列)
// 文字列を抽出
対象文字列.substring(切り出す開始位置)
// 開始、終了位置を指定して文字列を抽出
対象文字列.substring(切り出す開始位置,終了位置)

[PHP]

// 文字列のバイト数を取得する
strlen(対象文字列)
// 文字列の文字数を取得する
mb_strlen(対象文字列)
// 文字列を置換
str_replace(置換対象文字列,置換する文字列,対象文字列)
// 文字列を正規表現で置換
preg_replace(正規表現,置換する文字列,対象文字列)
// 文字列を抽出
substr(対象文字列,切り出す開始位置)
mb_substr(対象文字列,切り出す開始位置)
// 開始、終了位置を指定して文字列を抽出
substr(対象文字列,切り出す開始位置,終了位置)
mb_substr(対象文字列,切り出す開始位置,切り出す文字数)

[Python]

# 文字列の文字数を取得する
len(対象文字列)
# 文字列を置換
対象文字列.relpace(置換対象文字列,置換する文字列)
# 文字列を正規表現で置換
re.sub(正規表現,置換する文字列,対象文字列)
# 文字列を抽出
対象文字列[切り出す開始位置:]
# 開始、終了位置を指定して文字列を抽出
対象文字列[切り出す開始位置:終了位置]

[JavaScript]

// 文字列の文字数を取得する
対象文字列.length()
// 文字列を置換
対象文字列.relpace(置換対象文字列,置換する文字列)
// 文字列を正規表現で置換
対象文字列.replace(正規表現,置換する文字列)
// 文字列を抽出
対象文字列.substr(切り出す開始位置)
// 開始、終了位置を指定して文字列を抽出
対象文字列.substr(切り出す開始位置,終了位置)

最後に

こうして改めて書き出してみると、共通点が見えてきて中々面白かったです。

基本的には1つの言語を勉強して、他の言語を勉強すると思うので、似たような言語だったら勉強する時間も少なくてすみそうですし、別言語での実装とかも比較的簡単になるのかなと……

今回まとめた内容は少しですし、まだまだ沢山の言語があるので、気になる言語があったら知ってる言語とどう違うのかといった観点で見てみるのも良いかもしれませんね

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0