福野泰介の一日一創 - create every day

IchigoJamからのステップアップ - IchigoJam BASIC / Python3 / JavaScript / Java / C言語 対照表

2018/02/09
#IchigoJam #KidsIT 

よく使われている言語だけでも10以上ある、プログラミング言語ですが、根っこはマシン語。 コンピューターのお作法が分かっていれば、それぞれの違いは方言程度の違いでしかありません。

もちろん、各言語で登場する単語がちょっとずつ違いますが、最初は辞書(リファレンス)に頼ったり、自動翻訳機(変換ソフト)に頼ったりすればOK。 多少時間はかかりますが、たくさんしゃべっている内にすらすらと作れるようになっていきます。

IchigoJam BASIC、Python3、JavaScript、Java、C言語のそれぞれ機能の対照表を作ってみました。 打つ文字数が圧倒的に少ないIchigoJam BASICで、基本(basic)を押さえてしまえば、他言語の習得はサクサク進みます。

1970〜80年代、BASIC言語と共に、世界中の一部の子供たちの間でパソコンが流行。多くのエンジニアや、起業家を生みました。 Windowsとゲーム専用機と共に失われたBASICによるプログラミングはじめのいっぽ文化を、IchigoJamと共に再び!
2018 Developer Skills Report by HackerRank

IchigoJam BASIC Python3 JavaScript Java C
はじめのいっぽ LED1 print("Hello World!") alert("Hello World!"); class A { public static void main(String[] args) { System.out.println("Hello World!"); } } #include "stdio.h" int main() { printf("Hello World\n"); return 0; }
キー押下数
(はじめのいっぽ)
5 22 23 95 72
表示 ?"ABC" print("ABC") console.log("ABC"); System.out.println("ABC"); printf("ABC\n");
変数代入 A=10 a = 10 var a = 10; int a = 10; int a = 10;
計算 S=A*10/B s = a * 10 / b var s = a * 10 / b; int s = a * 10 / b; int s = a * 10 / b;
条件分岐 IF A=10 ?"T" if a == 10: print("T") if (a == 10) console.log("T"); if (a == 10) System.out.println("T"); if (a == 10) printf("T\n");
繰り返し
(ループ)
10 FOR I=0 TO 9 20 ?I:NEXT for i in range(10): print(i) for (var i = 0; i < 10; i++) console.log(i); for (int i = 0; i < 10; i++) System.out.println(i); for (int i = 0; i < 10; i++) printf("%d\n", i);
論理式 A=1 AND B=2 (A=1 && B=2 でもOK) a == 1 and b == 2 a == 1 && b == 2 a == 1 && b == 2 a == 1 && b == 2
ビット演算 A>>4&7 (a >> 4) & 7 (a >> 4) & 7 (a >> 4) & 7 (a >> 4) & 7
16進数 #FFF 0xFFF 0xFFF 0xFFF 0xFFF
2進数 `11010001 0b1101001 0b1101001 0b1101001 0b1101001
サブルーチン
(関数)
(メソッド)
10 ?"SUB":RETURN GOSUB 10 (@SUBなどのラベル対応) def sub(): print("SUB") sub() var sub = function() { console.log("SUB"); }; sub(); // 何かclass内で static void sub() { System.out.println("SUB"); } // 何かメソッド内で sub(); void sub() { printf("SUB\n"); } // 何か関数内で sub();
コメント ' COMMENT REM COMMENT # COMMENT """ COMMENT複数行 """ // COMMENT /* COMMENT複数行 */ // COMMENT /* COMMENT複数行 */ /* COMMENT複数行 */
文字列処理
(左3文字)
(右3文字)
10 S="ABCDE" 20 ?STR$(S,3) 30 ?STR$(S+LEN(S)-3) s = "ABCDE" print(s[0:2]) print(s[-3:]) var s = "ABCDE"; console.log(s.substring(0, 3)); console.log(s.substring(s.length - 3)); String s = "ABCDE"; System.out.println(s.substring(0, 3)); System.out.println(s.substring(s.length() - 3)); const char s[] = "ABCDE"; for (int i = 0; i < 3; i++) putchar(s[i]); putchar('\n'); for (int i = strlen(s) - 3; i < strlen(s); i++) putchar(s[i]); putchar('\n');
配列 10 LET[0],5,3,1 20 N=0 30 FOR I=0 TO 2 40 N=N+[I]:NEXT 50 ?N a = [ 5, 3, 1 ] n = 0 for m in a: n += m print(n) var a = [ 5, 3, 1 ]; var n = 0; for (var m in a) { n += a[m]; } alert(n); int a[] = [ 5, 3, 1 ]; int n = 0; for (int m : a) { n += a[m]; } System.out.println(n); int a[] = { 5, 3, 1 }; int n = 0; for (int i = 0; i < 3; i++) { n += a[i]; } printf("%d\n", n);
特徴 シンプル、格安、省エネ
大規模開発に向かない
インデント大事
ライブラリ豊富
ブラウザだけで作れる
PCもスマホもOK!
なかなか高速
Androidアプリの標準言語
サーバー上でもよく使われる
基本的に最速
マシン語に近い
IchigoJam BASICの開発言語

画像版

どの言語から始めるか?パソコンを持っているなら、作りたいモノが作れる言語を選びましょう。
習得難易度の多少の差は、作りたいモチベーションとできた喜びで消し飛びます。

パソコンを持っていない、プログラミング言語の習得に挫折した人、ひとまず何でもいいからプログラミングをはじめてみたい人、IchigoJamからどうぞ!

links
- IchigoJam

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image