φυβλαςのβλογ
phyblas的博客



ความนิยมของภาษาโปรแกรมในญี่ปุ่นสำรวจจากเว็บ qiita
เขียนเมื่อ 2019/06/27 07:54
แก้ไขล่าสุด 2024/02/22 10:46
เว็บ https://qiita.com เป็นเว็บเขียนบล็อกที่มีเนื้อหาเกี่ยวข้องกับคอมพิวเตอร์และการเขียนโปรแกรม มีนักเขียนโปรแกรมมากมายในญี่ปุ่นมาเขียนบทความและตามอ่าน

เว็บนี้มีระบบแท็กซึ่งแยกตามหัวข้อ เช่นภาษาต่างๆที่ใช้

เช่น บทความภาษาไพธอน เข้าไปดูได้ที่ https://qiita.com/tags/python

เนื่องจากเป็นเว็บแหล่งรวมนักเขียนโปรแกรมจากทั่วญี่ปุ่น จำนวนบทความในเว็บนี้จึงสะท้อนความนิยมของแต่ละภาษาในญี่ปุ่นได้เป็นอย่างดี

นอกจากนี้ แท็กสามารถกดตามได้ จำนวนคนกดตามแท็กของภาษาต่างๆก็น่าจะเป็นตัวช่วยวัดความนิยมของภาษาได้อีกส่วนนึง

ดังนั้นจึงลองดึงข้อมูลจำนวนบทความและจำนวนคนตามแท็กของภาษาต่างๆเพื่อมาเทียบดูสักหน่อย

ผลที่ได้ออกมาตามนี้ (ข้อมูลวันที่ 28 มิ.ย. 2019)

  จำนวนบทความ จำนวนคนตาม
C 2632 21745
C++ 5919 24876
C# 7428 23079
cobol 56 45
Clojure 619 550
CoffeeScript 1016 11736
Delphi 347 148
Elm 452 463
Erlang 524 446
Fortran 255 196
golang 2886 2025
Haskell 1904 9497
Java 12165 39527
JavaScript 26385 59736
Julia 570 620
Kotlin 2576 2243
lisp 267 358
Lua 452 320
matlab 369 360
Objective-C 3946 17766
Pascal 82 14
Perl 1469 12189
PHP 16170 37333
Prolog 207 96
Python 28671 55576
R 2727 1912
Ruby 21942 34068
Rust 1298 1527
Scala 2830 10363
Swift 11791 6603
TypeScript 3037 2325
VB.Net 359 322


แผนภูมิแท่ง เรียงตามลำดับ





จะเห็นว่าภาษา python เป็นภาษาที่มีคนเขียนบทความมากที่สุด ในขณะที่ภาษา javascript มีคนตามอ่านมากที่สุด

แต่ไม่ว่าจะมองด้านไหน ๒​ ภาษานี้ก็คะแนนสูสี และนำทิ้งห่างภาษาอื่นไปเยอะ ดังนั้น ๒ ภาษานี้จึงถือว่ายอดนิยมมากที่สุดในญี่ปุ่น

นอกจากนี้ภาษา java, PHP และ ruby ก็ได้รับความนิยมในลำดับต่อๆมา

ruby นั้นเป็นภาษาที่คิดโดยคนญี่ปุ่น จึงมีแนวโน้มได้รับความนิยมเป็นพิเศษที่ญี่ปุ่น

ภาษาในกลุ่ม C อย่าง C, C++, C# ก็ได้รับความนิยมมาก โดยมีคนตามจำนวนมาก แต่มีจำนวนบทความน้อย โดยเฉพาะ C แต่นั่นน่าจะเป็นเพราะคนส่วนใหญ่กดตามทั้ง C และ C++ แต่เวลาเขียนบทความมักจะแท็กแค่ C++ อย่างเดียว

ภาษา swift นั้นตรงกันข้าม คือมีคนตามน้อย แต่กลับมีคนเขียนบทความไว้มาก

นอกจากนั้นก็ตามมาด้วย perl, scala, haskell, golang, kotlin, ฯลฯ



ข้อมูลนี้ได้มาจากการเขียนโปรแกรมดึงข้อมูลอัตโนมัติโดยใช้ api ของ qiita

รายละเอียด https://qiita.com/api/v2/docs#タグ

เมื่อเข้า api ก็จะได้จำนวนคนที่ตามแท็กและจำนวนบทความออกมาเป็น json ดึงข้อมูลของแท็กภาษาต่างๆมาเทียบกันได้

การดึงข้อมูลมาสร้างตารางและเขียนแผนภูมิแท่งทำโดยโค้ดภาษาไพธอน

import requests
import matplotlib.pyplot as plt
import pandas as pd

lis_tagid = '''c c++ csharp cobol clojure coffeescript delphi elm
erlang fortran golang haskell java javascript julia
kotlin lisp lua matlab objective-c pascal perl php prolog
python r ruby rust scala swift typescript vb.net
'''.split()

phasa = []
n_follow = []
n_item = []
for tagid in lis_tagid:
    r = requests.get('https://qiita.com/api/v2/tags/'+tagid)
    r.raise_for_status()
    khomun = r.json()
    phasa.append(khomun['id'])
    n_follow.append(khomun['followers_count'])
    n_item.append(khomun['items_count'])

df = pd.DataFrame(index=phasa)
df['จำนวนบทความ'] = n_item
df['จำนวนคนตาม'] = n_follow
print(df)
y = range(len(phasa))

plt.figure(figsize=[6,6])
plt.axes(ylim=[min(y)-0.5,max(y)+0.5])
df.sort_values('จำนวนคนตาม',inplace=True)
plt.yticks(y,['%s: %6s'%x for x in df['จำนวนคนตาม'].iteritems()])
plt.barh(y,df['จำนวนคนตาม'],color='#882244')
plt.title(u'จำนวนคนตามอ่าน',family='Tahoma')
plt.tight_layout()

plt.figure(figsize=[6,6])
plt.axes(ylim=[min(y)-0.5,max(y)+0.5])
df.sort_values('จำนวนบทความ',inplace=True)
plt.yticks(y,['%s: %6s'%x for x in df['จำนวนบทความ'].iteritems()])
plt.barh(y,df['จำนวนบทความ'],color='#337744')
plt.title(u'จำนวนบทความ',family='Tahoma')
plt.tight_layout()
plt.show()

รายละเอียดเกี่ยวกับมอดูลที่ใช้ในนี้อ่านได้ใน
requests: https://phyblas.hinaboshi.com/20180320
matplotlib: https://phyblas.hinaboshi.com/saraban/numpy_matplotlib
pandas: https://phyblas.hinaboshi.com/saraban/pandas



แถมทิ้งท้าย โค้ดภาษารูบีสำหรับดึงข้อมูลอย่างเดียวกันนี้มา แต่แค่บันทึกเป็นไฟล์ .csv ไว้
require "open-uri"
require "json"
require "csv"

phasa = %w!c c++ csharp cobol clojure coffeescript delphi elm
erlang fortran golang haskell java javascript julia
kotlin lisp lua matlab objective-c pascal perl php prolog
python r ruby rust scala swift typescript vb.net!

col = %w!id items_count followers_count!

CSV.open('phasanaiqiita.csv','w'){|csv|
  phasa.each{|p|
    data = JSON.parse(open('https://qiita.com/api/v2/tags/'+p).read)
    csv << col.map{|c|data[c]}
  }
}

หากเทียบดูโดยรวมแล้วลักษณะการเขียนของรูบีนั้นจะสามารถเขียนได้กระชับกว่าไพธอนอยู่เล็กน้อย


-----------------------------------------

囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

ดูสถิติของหน้านี้

หมวดหมู่

-- คอมพิวเตอร์ >> เขียนโปรแกรม >> python
-- คอมพิวเตอร์ >> เขียนโปรแกรม >> ruby

ไม่อนุญาตให้นำเนื้อหาของบทความไปลงที่อื่นโดยไม่ได้ขออนุญาตโดยเด็ดขาด หากต้องการนำบางส่วนไปลงสามารถทำได้โดยต้องไม่ใช่การก๊อปแปะแต่ให้เปลี่ยนคำพูดเป็นของตัวเอง หรือไม่ก็เขียนในลักษณะการยกข้อความอ้างอิง และไม่ว่ากรณีไหนก็ตาม ต้องให้เครดิตพร้อมใส่ลิงก์ของทุกบทความที่มีการใช้เนื้อหาเสมอ

目录

从日本来的名言
模块
-- numpy
-- matplotlib

-- pandas
-- manim
-- opencv
-- pyqt
-- pytorch
机器学习
-- 神经网络
javascript
蒙古语
语言学
maya
概率论
与日本相关的日记
与中国相关的日记
-- 与北京相关的日记
-- 与香港相关的日记
-- 与澳门相关的日记
与台湾相关的日记
与北欧相关的日记
与其他国家相关的日记
qiita
其他日志

按类别分日志



ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ

  查看日志

  推荐日志

ตัวอักษรกรีกและเปรียบเทียบการใช้งานในภาษากรีกโบราณและกรีกสมัยใหม่
ที่มาของอักษรไทยและความเกี่ยวพันกับอักษรอื่นๆในตระกูลอักษรพราหมี
การสร้างแบบจำลองสามมิติเป็นไฟล์ .obj วิธีการอย่างง่ายที่ไม่ว่าใครก็ลองทำได้ทันที
รวมรายชื่อนักร้องเพลงกวางตุ้ง
ภาษาจีนแบ่งเป็นสำเนียงอะไรบ้าง มีความแตกต่างกันมากแค่ไหน
ทำความเข้าใจระบอบประชาธิปไตยจากประวัติศาสตร์ความเป็นมา
เรียนรู้วิธีการใช้ regular expression (regex)
การใช้ unix shell เบื้องต้น ใน linux และ mac
g ในภาษาญี่ปุ่นออกเสียง "ก" หรือ "ง" กันแน่
ทำความรู้จักกับปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง
ค้นพบระบบดาวเคราะห์ ๘ ดวง เบื้องหลังความสำเร็จคือปัญญาประดิษฐ์ (AI)
หอดูดาวโบราณปักกิ่ง ตอนที่ ๑: แท่นสังเกตการณ์และสวนดอกไม้
พิพิธภัณฑ์สถาปัตยกรรมโบราณปักกิ่ง
เที่ยวเมืองตานตง ล่องเรือในน่านน้ำเกาหลีเหนือ
ตระเวนเที่ยวตามรอยฉากของอนิเมะในญี่ปุ่น
เที่ยวชมหอดูดาวที่ฐานสังเกตการณ์ซิงหลง
ทำไมจึงไม่ควรเขียนวรรณยุกต์เวลาทับศัพท์ภาษาต่างประเทศ