😱

Python, JS, PHP, Cを同時期に学習することは難しい。

2021/01/12に公開

はじめに

初心者です。趣味でJavaScript、仕事でPHP、大学講義でPython、C言語を触ってます。
これら4つの言語を1年後期という同時期に学習中ということでかなり頭がこんがらがっています。

皆さん大好きHello Worldを出力する関数の時点から仕様が違ってるんです。その点についてコードと共に述べます。文法的に間違っているコードではないですが、最適解ではないかもしれません。
この記事は初心者の たわごと を綴ってますので温かい目で御覧ください。

JavaScript, PHP, Python, C言語の4言語で
変数も使いながらすらまっぱぎーやっはろーと出力してみます。

今回はやっはろーを変数に入れます。


まずは JavaScript

const i="やっはろー"
console.log("すらまっぱぎー"+i)
//すらまっぱぎーやっはろー

変数には定数か変数かを決めるconst,letなどがつきます。
そしてconsole.logで出力です。
文字と変数の結合が + です。分かりやすい。
コメントアウトは // です。
最近主にJavaScriptを触っていることもあって、すごく手に馴染む書き心地です。


次に PHP

$i ="やっはろー";
echo "すらまっぱぎー".$i;
//すらまっぱぎーやっはろー

変数には最初に $ がつきます。
そして echoで出力です。なんで急にechoなんでしょうか!!
そして文字と変数の結合が . なんです。え…
さらに () で囲わなくても大丈夫なんです。
………



その優しさがあるなら文字の結合を + にして欲しかったです。
コメントアウトはJSと同じで // です。


そして Python

i="やっはろー"
print("すらまっぱぎー",i)
#すらまっぱぎー やっはろー

変数はそのまま変数名=値で大丈夫なんです。
逆に違和感です。「これだけでいいんだっけ…?」と毎回不安になります。
printは比較的多くの言語で使われていて、馴染みやすいですよね。

そして文字と変数の結合が , なんです。ぱっとみ . じゃないですか……
そもそも + じゃないんですか…
コメントアウトは # です。珍しい。


最後にラスボス C言語 です。

#include <stdio.h>
int main(void){
    char i[]="やっはろー";
    printf("にゃんぱすー%s",i);
    //にゃんぱすーやっはろー
}

出力するためのライブラリを読み込むための記述#include <stdio.h>が要ります。
さっきPythonでコメントアウトの役割してた # 違う役割となって登場してきました。

そしてint main(void){}の中に記述します。「なんだこれは…」と思っていると大学の先生は「これはおまじないです」とおっしゃってました。
最初の段階から初心者殺しです…

そしてやっと変数ですが、C言語は変数の型を定義しないといけません…文字列なので char です。
これまでの3言語は動的型付け言語という言語で型をあまり気にしなくて済んだので、ぬるま湯から熱湯に放り投げられた気分です。

そして出力はprintfです。printじゃないんです。printf です。
そして文字と変数の結合は文字列の中に変換指定子%cを入れて、変数名を後述するスタイルです。この変数指定子も型によって違います…初心者に優しくない……


編集後記

とこんな感じで言語によって 絶妙 に書き方が違って大変こんがらがっています……
Hello Worldで使う基本的な文字出力のみ取り上げましたが、条件分岐など他の箇所でも もちろん 書き方が違います。
世知辛いプログラミングの世界と痛感しております。




Why Japanese people!

という言葉をどこかで聞いたことがあります。それをもじって

Why Programming language creators!

と叫びたいです。

Discussion