2ちゃんねるのLinux板の『Linuxerが好きなプログラミング言語教えれゴルァ』スレで行われてたアンケートをPythonで集計してみた(あくまでもこれくらい?な感じで)
[スクリプト&集計結果を修正]
質問は3つ。
- 1. 常時使用する言語
- 2. 1とは別に好きな言語、本当は仕事で使いたい言語
- 3. 正直、勘弁して欲しい言語(1を含めても可)
[投票数] [言語名]
(LispにCommon Lispと emacs Lisp含めた。面倒&少数なのは一部省いた)
「1. 常時使用する言語」
66 c 43 c++ 33 perl 26 java 23 sh 14 ruby 13 python 8 awk 7 lisp 6 php 5 bash 5 asm 4 pascal 4 fortran 4 delphi 3 vc++ 3 vb 2 zsh 2 xml 2 tk 2 tex 2 sed 2 objective-c 2 matlab 1 z80 1 x86 1 vhdl 1 verilog 1 tcl 1 smalltalk 1 sgml 1 scheme 1 lex 1 latex 1 jython 1 javascript 1 html 1 haskell 1 gtk 1 csh 1 caml 1 c# 1 batchscript 1 basic 1 b-shell 1 68000
「2. 1とは別に好きな言語、本当は仕事で使いたい言語」
26 java 24 ruby 19 c++ 19 c 18 python 17 scheme 15 lisp 13 sh 11 perl 6 haskell 5 smalltalk 5 pascal 4 php 4 caml 4 bash 3 tcl 3 objective-c 3 awk 2 zsh 2 xml 2 vc++ 2 vb 2 tk 2 sed 2 javascript 2 fortran 2 asm 1 z80 1 x86 1 tex 1 hsp 1 gtk 1 delphi 1 c# 1 basic 1 68000
「3. 正直、勘弁して欲しい言語(1を含めても可)」
51 c++ 32 perl 29 java 25 c 16 vb 15 ruby 15 lisp 12 fortran 9 sh 7 python 4 php 4 c# 3 vc++ 3 csh 3 basic 3 asm 2 html 2 bash 2 awk 1 xml 1 visualbasic 1 tk 1 tcl 1 scheme 1 pascal 1 javascript
全結果を見ると思っていた以上にCが上位にきてる感じ。
やっぱり仕事でよく使われてるのはC/C++とJavaなのかな。
Linuxerの解答だからC#とかVBとかは少ないみたい。
C++はかなり勘弁して〜な感じらしい。なぜだろね?
Perlはコアなユーザ多そう、なんとなく。
RubyはRoRの普及の影響が勘弁して〜にでてるのかな?(人気あるからこそみたいな)
PythonはC/C++,Java,Perl,Rubyなどと比較して、書籍が少ないわりになかなか検討してるっぽい(・∀・)
知らない言語もけっこうあるなぁ。言語でない?のもあるし。
次に勉強するのは矢張りC言語かな。書籍選びから始めよう。
(昨日SICPの1章を読み終えたばかり...。面白い本だけど5章まで読破できるかなー(´・ω・`))
2008.1 -> Python(Django) -> Scheme(今ここ)-> 次はC?
以上つぶやき終わり。
Pythonのスクリプト
#!/usr/bin/env python # *-# -*- coding: utf-8 -*- #Linuxerが好きなプログラミング言語教えれゴルァ #http://pc11.2ch.net/test/read.cgi/linux/1004771095/ #2008/04/05までのレスを使用。 # # 1. 常時使用する言語 # 2. 1とは別に好きな言語、本当は仕事で使いたい言語 # 3. 正直、勘弁して欲しい言語(1を含めても可) # #レスにでてきた言語をしぼってリスト作る(手動) # import re import urllib language = ["68000", "asm", "awk", "b-shell", "bash", "(?<!visual)basic", "batchscript", "(?<!-|\w)c(?!\+|\w)", "c#", "c\+\+", "caml", "csh", "delphi", "fortran", "gtk", "guiはruby", "haskell", "hsp","html", "java", "javascript", "jython", "latex", "lex", "lisp", "matlab", "objective-c", "pascal", "perl", "php", "python", "ruby", "scheme", "sed", "sgml", "sh", "smalltalk", "tcl", "tex", "tk", "visualbasic","vb", "vc\+\+", "verilog", "vhdl", "x86", "xml", "z80", "zsh", "アセンブラ", "プログレスII"] def geturldata(): url = "http://pc11.2ch.net/test/read.cgi/linux/1004771095/" htmldata = urllib.urlopen(url).read() data = [] for s in htmldata: try: data.append(unicode(s, "sjis").encode("utf8")) except: pass data_str = "".join(data) rep_li = [["1","1"],["2","2"],["3","3"], [".","."],[",","."],["C","c"],["+","+"]] for s in rep_li: data_str = data_str.replace(s[0], s[1]) return data_str def each_ask(data_str): li = [[] for l in range(3)] for i in range(len(li)): r = re.compile("(%s\. .*?)<" % str(i+1), re.S) li[i] = re.findall(r, data_str) return li def favorite_lang(ask_num): lang_count_list = [] data_str = geturldata() each_li = each_ask(data_str) for lan in language: lang_str = re.compile(lan, re.I) count_lang_str = lang_str.findall("\n".join(each_li[ask_num - 1])) if lan.find("\\"): lan = lan.replace("\\","") if lan.find("\("): lan = re.sub(re.compile("\(.*?\)"), "",lan) len_lang_count_li = len(count_lang_str) if len_lang_count_li: lang_count_list.append([len_lang_count_li,lan]) lang_count_list.sort() lang_count_list.reverse() return "\n".join(["%s\t%s" % (n,s) for n, s in lang_count_list]) if __name__ == "__main__": print "「1. 常時使用する言語」\n", favorite_lang(1) print print "「2. 1とは別に好きな言語、本当は仕事で使いたい言語」\n", favorite_lang(2) print print "「3. 正直、勘弁して欲しい言語(1を含めても可)」\n", favorite_lang(3)
とりあえず簡単に集計してみるという目的を果たしたが...我ながらひどいコードだ(||゚Д゚)
時間できたら書き直すかも。