#はじめに
業務はもっぱらCOBOLオンリー。SE二年目文系出身&プログラミング得意ではない、、、
そんな私がjavascriptを初めて3日。既に挫折寸前、、、
これは私が唯一使える言語「COBOL」の現実を叩きつけられ、
新たな扉を叩くモチベーションを作るための記事!
COBOL民の皆さん!心が痛いですがこれが現実です!!!
悪戦苦闘の様子をぜひご覧ください!!(笑)
#方法
QiitaAPIを使って、COBOLをはじめとした記事数、フォロワー数などを調査。
他の言語とCOBOLを比較。
使用QiitaAPI
・GET /api/v2/tags
・GET /api/v2/items
#まずは最新言語ランキングを!
まぁcobolは入っていないでしょう。期待はしません。
const axios = require("axios");
async function main() {
let response = await axios.get("https://qiita.com/api/v2/tags?page=1&per_page=20&sort=count");
for (let i = 0; i < 10; i++) {
console.log('タグ: %s' ,response.data[i].id);
console.log('記事の数: %d' ,response.data[i].items_count);
console.log('フォロワー数: %d' ,response.data[i].followers_count);
console.log('');
}
}
main();
参考: 初心者がQiitaのタグ情報を取得しTOP10を可視化し考察する。
結果は・・・
タグ: Python
記事の数: 58351
フォロワー数: 100913
タグ: JavaScript
記事の数: 44514
フォロワー数: 93239
タグ: Ruby
記事の数: 35714
フォロワー数: 50579
タグ: Rails
記事の数: 33584
フォロワー数: 35346
タグ: AWS
記事の数: 27527
フォロワー数: 10117
タグ: PHP
記事の数: 24630
フォロワー数: 57241
タグ: Docker
記事の数: 19748
フォロワー数: 8630
タグ: 初心者
記事の数: 19230
フォロワー数: 5332
タグ: iOS
記事の数: 18894
フォロワー数: 46678
タグ: Java
記事の数: 18833
フォロワー数: 60906
ふむむ、、、予想通りです、、、
#その2 COBOLの現実
ここまでは予想していた展開と同じです。
では次はCOBOLの記事数・フォロワー数を調べてみよう。
const axios = require('axios');
async function main() {
let response = await axios.get('https://qiita.com/api/v2/tags/cobol');
//タグ名
console.log(response.data.id);
//記事数
console.log(response.data.items_count);
//フォロワー数
console.log(response.data.followers_count);
}
main();
結果は・・・
cobol
112
65
ともかくCOBOLの劣勢具合がわかる。。。
というか上のランキングみたいに見出しみたいなの出したい!!
ということで、何日か前にネット講座で得た知識(超基礎編)の
文字列をくっつけるコーデイングをお試し。
const axios = require('axios');
async function main() {
let response = await axios.get('https://qiita.com/api/v2/tags/cobol');
//タグ名
console.log('タグ:' + response.data.id);
//記事数
console.log('記事の数:' + response.data.items_count);
//フォロワー数
console.log('フォロワー数' + response.data.followers_count);
}
main();
結果は・・・
タグ:cobol
記事の数:112
フォロワー数65
出た!!!!超初期スキルですが何とか出せました(笑)
#COBOLってワードはどのくらい使われているの?
COBOLの劣勢具合はよく分かりました(笑)
でも、タグにするほどではないけど、記事の文章の中に含まれている?なんてことはないか!
(COBOLへの希望は捨てない。)
以下を参考に記事の文に含まれるフレーズ検索にチャレンジ!!
参考: MCUの映画公開とQiitaユーザーの動向の関係について分析してみた!
// axiosモジュールを読み込む
const axios = require('axios');
async function main() {
//COBOLを含む記事を取得
let response = await axios.get("https://qiita.com/api/v2/items?query=" + encodeURIComponent("COBOL"));
//記事数を表示
console.log('cobolが含まれる記事の数:' + response.data.items_count);
}
main();
結果は・・・
cobolが含まれる記事の数:undefined
はにゃ?未定義!どういうことだ!!
どうやら変数に値が入ったことがないとこうなるらしい、、、
どう直せばよいかわからない!
②dataを丸ごと表示してみる。
dataの中にitems_countというデータが入っていることを授業で教わったので、
response.data で丸ごと出してみると何かがわかるかも!?
const axios = require('axios');
async function main() {
//COBOLを含む記事を取得
let response = await axios.get("https://qiita.com/api/v2/items?query=" + encodeURIComponent("COBOL"));
console.log('COBOLが含まれる記事の数:' + response.data);
}
main();
結果は・・・
COBOLが含まれる記事の数:[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
!?!?なんか配列ぽい???
お手上げだったのでスクール生に質問: データ中身は配列みたいになってるらしい
③配列指定して出せば動くか?
response.data[1].items_count こんな風に配列を指定して出すことに。
const axios = require('axios');
async function main() {
//COBOLを含む記事を取得
let response = await axios.get("https://qiita.com/api/v2/items?query=" + encodeURIComponent("COBOL"));
console.log('COBOLが含まれる記事の数:' + response.data[1].items_count);
}
main();
結果は・・・
COBOLが含まれる記事の数:undefined
やっぱり出せず。。。お手上げです。
ともかく配列が関係していることは収穫というポジティブ精神。
#COBOLはやっぱり・・・
Qiitaのタグのフォロワー数と記事数でいうとかなり劣勢、、、!
予想はしていたものの現実を叩きつけられた感!
今後もIT人材として活躍したいなら、ほかの言語にも手を出すべし!と感じました。
#初投稿を終えて・・・
やっぱりjavascriptまだまだ難しい。。。
やりたいことが実現できないもどかしさを強く感じました。
この記事を見て役に立つ方はかなり少数かと思いますが、
赤ちゃんの成長物語を見るような温かい目で見ていただけたらと思います。
ここからの成長に乞うご期待!
(そして解決策あったら教えてください、、、)