φυβλαςのβλογ
บล็อกของ phyblas



ความนิยมของภาษาโปรแกรมในญี่ปุ่นสำรวจจากเว็บ qiita
เขียนเมื่อ 2019/06/27 07:54
เว็บ 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.gca(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.gca(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

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

สารบัญ

รวมคำแปลวลีเด็ดจากญี่ปุ่น
python
-- numpy
-- matplotlib

-- pandas
-- pytorch
maya
การเรียนรู้ของเครื่อง
-- โครงข่าย
     ประสาทเทียม
บันทึกในญี่ปุ่น
บันทึกในจีน
-- บันทึกในปักกิ่ง
บันทึกในไต้หวัน
บันทึกในยุโรปเหนือ
บันทึกในประเทศอื่นๆ
เรียนภาษาจีน
qiita
บทความอื่นๆ

บทความแบ่งตามหมวด



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

  ค้นหาบทความ

  บทความแนะนำ

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

ไทย

日本語

中文