「R言語」を含む日記 RSS

はてなキーワード: R言語とは

2020-05-21

初心者向け】プログラミング言語人気TOP20簡易解説

概要

プログラミング経験からプログラミング勉強してみたい、でもどのプログラミング言語をやればいいのかわからない」というような悩みを聞くことがあるので、https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/ に載っている人気の言語TOP 20について、未経験者が最初に学ぶのはどの言語が良いかという観点簡単解説してみます

対象読者はプログラミング経験者なので、なるべく難しい言葉を使わないようにしたつもりです。また、正確性よりもわかりやすさを重視しているので何かしら間違っているかもしれません。ご留意ください。


ランキング

1位 JavaScript

Webブラウザの上で動くプログラミング言語。元々ただの文書しかなかったインターネット世界に、グリグリ動くページを作りたいという欲求により生まれた。JavaScriptのおかげで今のWebページグリグリ動きまくりである

元々HTMLちょちょっといじる為だけのものだったが、どんどん進化を続けて今は一つの超人プログラミング言語である。今ではブラウザ上でなくても普通に動かせる(Node.jsという)ので様々な用途で使われている。

ブラウザ上で動くプログラミング言語基本的JavaScriptしかないので、JavaScriptはすべてのWebプログラマが学ぶ必要があると言っても過言ではない。

ちょっとしたプログラムを書いてすぐブラウザ上で動かせるので楽しい。そういう点ではプログラミング入門に適していると言えるかもしれない。


2位タイ Python

機械学習を始めとしたデータサイエンスの分野で激烈に人気のある言語理由としてはNumPyとかTensorFlowのようなライブラリが充実しているというのが大きく、資産がたくさんあるのでこれからも使われ続けるであろう。

Webも作れるが、日本ではWeb系の求人は少ない気がする。

言語としては、誰が書いても簡潔で読みやすコードになる傾向にあり、小さいプログラムを書くにはいい感じである米国ではプログラミング教育Pythonがよく使われているという話も聞くし、初心者プログラミングを始めるのにはいいのかもしれない。

将来AIデータサイエンスをやってみたいと思うのであればPythonから始めましょう。


2位タイ Java

ランキングでは常に一位に近い順位をつける言語Javaができた当時は色々と革新的だったらしく、組み込み業界からWebまで流行りまくっていた。今でもその名残か使っているところは多い。過去資産プログラマの数が多いのが一番の理由だと思う。AndroidアプリJavaで書く(もしくはKotlin)。

実行速度が速く、また下位互換性がしっかりしているので過去に書かれたコードが新しいマシン上でも動きやすいのが長所短所としては、歴史ある言語下位互換性を保っているため文法が古い感じがする。タイプ量も多くなるし、学習コストJavaScriptPHP, Ruby, Pythonあたりに比べると高い。

正しく使えば強力な言語だが、日本のクソSEもどきは全員(自称JavaエンジニアであることがJavaが毛嫌いされる理由の一つになっている[要出典]。いわゆるGAFAJavaをかなりヘビーに使っているので要は玉石混交ということである

Androidアプリ作ってみたいというならJavaからはじめるのはアリ。


4位 PHP

Webページを作るためだけに生み出された言語プログラマの数が非常に多い。日本求人が一番多いのはJavaPHPであろう。

初心者でもとっつきやすく、すぐに動くプログラムを作れるので入門に使われることも多い。学習コストの低さはトップレベルであるしか基本的には古くてダメ言語とみなされており、PHPで作られたWebサービス脆弱性が多いという都市伝説もある。真実は闇の中である

近年のバージョンアップ比較的良い方向に向かっている(と個人的には思う)ので、選択肢としては意外と悪くないかもしれない。


5位 C#

Microsoftが生み出した言語で、.NETというプラットフォームを使ってWebサービスを、Unityというゲームエンジンを使ってゲームを作ることができる。

最近有名なのはUnityで、今やほとんどの3Dソーシャルゲーム(の一部分)はUnityで作られている。そう考えるとC#プログラマ結構いそうだし将来もある程度安泰かもしれない。もちろん.NETも広く使われている。

ただし.NETUnityも触らない人にとっては基本的に縁のない言語である

なんかゲーム作ってみたいかもなーと思う人はC#から始めてもいいんじゃないでしょうか。


6位 C++

C言語に色々な機能を足しまくってできた巨大な迷宮のような言語言語仕様は複雑怪奇だが実行速度は全プログラミング言語中でも最速レベルなので、パフォーマンス重要な開発において使われる。アプリサービスというよりは、それらを作るためのライブラリプラットフォームなどを作るときに使われることが多い。Web系の会社でいうとGoogleなどは主にC++を使っている。

基本的には初心者が触る必要はない。競技プログラミングを極めたいとかならC++からはじめてもいいかもしれない。


7位タイ Ruby

このランキングの中で唯一、日本人によって作られた言語。作者のまつもとさんは世界有名人である。ちなみに島根県出身、在住。

プログラミングを楽しくすることがモットーらしく、確かに書き味は良い。また作者が日本人なこともあってか日本情報が多く、情報収集という点ではとてもやりやすい。

Ruby on RailsというWebサービスを作るためのフレームワーク世界的に大ヒットしたため、必然的Ruby知名度も上昇した。少し前まで日本Webスタートアップは猫も杓子もRuby on Railsといった様相であった。今は少し落ち着いたようだが今も人気は根強く、Webプログラミングスクール等ではだいたいRuby on Railsを教えているとかいないとか。

Webに興味があるのならRubyから始めるのが一番無難選択肢と言える…のか?まあ悪くはないと思う。今でも需要は多い。スクールに行きたいのであれば黙ってスクールカリキュラムに従いRailsをやりましょう。


7位タイ CSS

これは他の言語とは毛色の違う言語である。というかCSSプログラミング言語と呼んでいいのだろうか?

CSSHTMLを装飾するためのものである。字に色をつけたり、背景を変えたり、レイアウトサイズを変えたりするのは基本的CSS役割である

すごく大雑把にいうと、HTMLで表示する内容(文章画像)を定義し、CSSでその見た目を整え、JavaScriptで動きをつける。というのがWebサービスの”見た目”を作るやり方である

なので、Webに興味があるのであればある程度はCSS知識必要である。が、これ単独で学ぶようなものではない。Webサービスを作る時についでに調べて少しずつ覚えていけば良い。


9位タイ TypeScript

TypeScript比較的新しい言語で、JavaScriptさら拡張したものであるMicrosoftによって開発されている。

プログラムにはデータの型(Type)というものがある。例えば「1」や「2」は数値型、「あいうえお」は文字列型といった具合である。大まかに言うと、この「型」に対して厳しい言語は型チェックによりバグの混入を防ぎやすいがプログラムを書くのが大変、というかコード量が多くなる。型が緩い言語サクサクかけるし短く書けるがバグを生みやすプログラマの力量が問われる。ランキングの中だとJavaScript, Python, PHP, Ruby, Perlあたりは緩く、Java, C++, C, Swift, Go, Kotlinあたりは厳しい。

そんな中、世で広く使われているJavaScriptの型チェックが緩すぎるのでもっとちゃんと型をつけたい、そんな要望を叶えるのがTypeScriptである基本的JavaScript理解している人間が使うべき上級者向け言語というのが現状なので、初心者が始めるには適していない。

ただしこの先主流になっていく可能性は大いにあるので、どこかのタイミングで勉強してみても損はしないと思う。


9位タイ C

C言語基本的OSを作るための言語であるOSというのはWindowsとかmacOSとかLinuxといったもので、マシンを動かすための基盤となるソフトウェアであるAndroidスマホにはAndroid(という名のOS), iPhoneにはiOSが載っている。コンピュータ基本的OSがあって初めて動かすことができ、OS提供する機能を使ってブラウザスマホアプリなどを動かせるのである

というわけで、初心者が学んで実用的なものではない。ただしC言語というのは世の中の様々なものの基盤になっており、他言語文法C言語から拝借しているものが多い。例えばC言語をある程度勉強していればJavaPHPなどはなんとなく雰囲気で書けてしまったりする。

そういうわけで、コンピュータサイエンスをこれからちゃんと学んでいきたいという人(大学生とか)はC言語から始めるのもいいと思う。ちなみに筆者は初めて書いた言語はCであるが、意味理解できるまでに2年かかった。才能がないとこうなるので注意。


11Swift

SwiftAppleによって作られたAppleのための言語であるiOSアプリiPhoneアプリと言い換えても良い)を作るためだけに存在している。

言語自体は他と比べて新しいため文法機能イケてる雰囲気があるので基本的はいいのだが、iOSアプリ以外で使っている人は多分世界で5人くらいしかいないと思う。なのでiOSアプリに興味がない人はやめておきましょう。iOSアプリを作りたいあなたは他に選択肢はない。Swiftをやりなさい。


12Objective-C

Swiftが生まれる前はiOSアプリを書くためにObjective-C必要だったため、多くの人がこの言語を使っていた。が、今はSwiftがあるので、古くからあるObjective-Cアプリメンテナンスする時以外に使う機会はない。名前すら覚える必要がないので存在を忘れてしまって構わないが、これだけ順位が高いということは多くの企業がいまだにObjective-Cで開発し続けているということであり、ニッチ需要はこれからも残るのかもしれない。


13位タイ Scala

Scala関数型言語と呼ばれる言語の一つ。Javaの親戚みたいなものなのでJavaとの連携が容易であり、上手く使えば性能も出るしコード量も少ないしバグも少なくて最高、な感じらしい。が、その分難易度が非常に高いので初心者が手を出すものでは絶対にない。どんなに早くても他に二つは言語を覚えてから勉強しましょう。Javaを覚えてからやるのがベター


13位タイ R

R言語データ解析用のプログラミング言語である

正直ほとんど書いたことがないのでよくわからないが、ビッグデータというワード流行りだした頃はデータ解析用途でかなり流行っていた。その後機械学習AIブームが来て、今でも現役で使われてはいるがPythonがどんどん勢力を拡大しているので少し目立たなくなってきた、というのが個人的な印象である。まあプログラミング初心者最初にやるようなものではないことだけは確かである


15位タイ Go

Go言語比較的新しいGoogle製のプログラミング言語で、Googleのように巨大なシステムでの使用目的に作られたものであるしかし実際には様々な企業が利用しており今一番勢いのある言語と言ってもかもしれない。

他のプログラミング言語の良い点や悪い点を参考に設計されており、実行速度の速さと生産性プログラムの書きやすさ、読みやすさ)を両立できるような言語になっている。ただし、機能を増やすのではなく本当に重要機能だけに絞るという思想があるようで、他の言語に慣れていると機能の少なさに不便を感じるかもしれない。

学習コストが低いという点では最初に学ぶ言語として適しているかもしれないが、GoだけでWebサービス等をサクッと作れるのかというと微妙なので、アウトプットを出しにくいというのはあるかもしれない。

二番目や三番目に学ぶ言語としてはオススメ


15位タイ Shell

シェルというのはテレビなんかでハッカー的な人間PCを開いて謎の黒い画面に白い文字を打ち込んだりするアレである説明としては正確ではないがまあ大体そんなもんである。何が言いたいかというと初心者最初に学ぶとかそういうものではない。しかし実際に開発の仕事をやるとシェル知識はあったほうがいいし、シェルに多少詳しくなるとPC上でテキスト操作をしたりファイルをいじったりというのが便利にできるようになる。ただし(通常は)極める必要はない。

Shellと言っても実際にはbash, csh, tcsh, zshなど色々あるのだがそれらをひとまとめにしてShellとなっているようだ。


17PowerShell

PowerShellは上のShellの親戚みたいなもので、ShellがMacLinuxで動くのに対しPowerShellWindowsで動く。そんだけである。あと正直あまり知らない。


18位 Perl

ランキングの中ではかなり昔からある言語で、サーバーと呼ばれるマシンには大体Perlが入っている。そのくらい市民権を得た超有名言語で、C言語C++で書くほどでもない小さなプログラムはとりあえずPerlで書く、というくらいには広く使われていた。インターネット初期はほとんどのWebサイトはPerlで書かれていたとかいないとか。PHPなどの登場はその後である

今でも広く使われてはいるが、RubyPythonPerlの後継的な位置付けであるため、初心者が新しくPerlを学ぶメリットというのはあまり思い浮かばない。何か特定目的があるのであればいいと思う。


19位 Kotlin

Kotlin簡単に言えばBetter JavaであるJavaをもうちょっといい感じに書きたいという気持ちで作られた言語で、Scalaと同じくJavaの親戚のようなものである

ランキングの中ではSwiftと並んでかなり新しい部類。AndroidアプリKotlinで書けるようになったことがきっかけで人気が爆発的に上昇、今ではWebの開発にも使われていたりする。

とは言えまだまだ新参者といった感じで、ドキュメントなどの情報も他の言語に比べると物足りないので初心者には厳しいかもしれない。

言語自体はとてもいい感じなので、もう少しコミュニティ成熟してくれば最初に学ぶ言語選択肢として有力になるかもしれない。


20Haskell

HaskellScalaと同じく関数型言語であるScalaJava的な書き方でも動くの対し、Haskellは「純粋関数型言語」と呼ばれ、ランキング中の他の言語とは一線を画した書き方になる。どう考えても初心者にはオススメしない。少なくとも他に二つは言語マスターしてからやりましょう。


総評

なんとなくWebに興味がありそうならJavaScriptRubyもしくはPHPAndroidアプリに興味があればJavaiPhoneアプリに興味があればSwiftAIデータ分析に興味があればPython3Dゲーム開発に興味があればC#。この辺りをやりましょう。

特に目的がないのであればフィーリングで選んで大丈夫ですが、やめておくべき言語というのはあるのでその辺だけ参考にしてもらえれば。

なお筆者はただのヘボプログラマであり、大好きな記事http://www.mwsoft.jp/column/program_top10.html) の現代版かつより初心者向けなものを書いてみたいと思ってこの記事を書きなぐった次第である。あまり真に受けないよーに。

2020-04-03

anond:20200403005936

アラが出ないのは同意だが、

本業経済なのに、その問題解決したいならR言語が良いですよ、と当時出たてのR言語を紹介したら、翌日にはR言語の本を買って勉強を始めてた。

地頭良いやつも中にはいる。売り上げレベルに比例する。

2020-02-22

再現可能レポート執筆

1. これからレポートとしてまとめたい課題について列挙

1. ノート手書きされている。これをMarkdownに記入。

1. 再現可能レポート執筆図書館で借りる(週明け)

この本にはGitを用いたレポート執筆については書かれてないのか?単に統計解析や実験計画R言語で行おうってだけ?

# ディレクトリを作れ!


# レポート本文(テキスト)は、

Markdownで書く。

# 図面はどうする?

Rstudioのプロット機能でもGnuPlotでもいい。スクリプトバージョン管理。結果としての

pdf(eps)も一応保存。

# 共著者がイラつき始めたら

Git repositoryのURLを教えて、「あとはお任せします」ってメールする

<https://www.kyoritsu-pub.co.jp/bookdetail/9784320112445>

2019-11-23

Julia (プログラミング言語)なぜ僕らはJuliaを作ったか

それでも、pythonは非明示的な動的型付き言語であり、記述時のチェックも少ないので、文法さえ合っていれば、結構自由に書ける。クラスインスタンスや、数値などではなく、(その場の変数値込みの)関数なんかもただのオブジェクトに見えるので、どんどん関数引数変数に入れられる。戻り値しかり。演算子オーバーロードなどもできて、直感的な記述可能。ということで、使う側の直感に合うような運用可能になっているがゆえに、受け入れられているのだろう。

しかし、それは運用単体テストに支えられているものであって、ひとたびその集中力が途切れたりうっかり見落としていたりすると、それがどこにあるのか、というのは、それなりにレアなケースだと、発覚するのがだいぶ先になって、その解析、分析も大変になるという恐怖は常に隣り合わせである

もしかして、そういう状況がいやだったから、掲題のコンピュータ言語を開発しようとしたのか。

http://marui.hatenablog.com/entry/20120221/1329823079

ここに、原作者ブログの日本語意訳がのっていた。もう6年も前になっている。

(原文:Why We Created Julia)

2012年2月14日(火) | Viral Shah, Jeff Bezanson, Stefan Karpinski, Alan Edelman

端的に言えば、僕らは欲張りだからだ。

僕らはMatlabのパワーユーザーだ。LispハッカーPython使いやRuby使いもPythonハッカーもいる。髭が生える前からMathematicaを使っていたのもいるし、未だに髭が生えてない仲間もいる。常識的な人にはオススメしないくらい多くのグラフR言語で描いてきた。そしてC言語は僕らのユートピアだ。

いま挙げた言語は大好きだ。どれも素晴らしいしパワフルだけど、科学計算機械学習データマイニング、大規模な線形代数演算分散・並行コンピューティング、といった僕らがやるようなものにはどれも一長一短で、仕事完璧にはまる機能もあれば何とも使い物にならないものもある。どれもトレードオフなんだ。

僕らは欲張りだ。これじゃ十分じゃない。

僕らが欲しい言語はこんな感じだ。まず、ゆるいライセンスオープンソースで、Cの速度とRubyの動的さが欲しい。Lispのような真のマクロが使える同図象性のある言語で、Matlabのように分かりやす数学記述をしたい。Pythonのように汎用的に使いたいし、Rの統計処理Perl文字列処理、Matlab線形代数計算も要る。シェルのように簡単にいくつかのパーツをつなぎ合わせたい。チョー簡単に習えて、超上級ハッカーも満足する言語インタラクティブに使えて、かつコンパイルできる言語が欲しい。

(そういえば、C言語の実行速度が必要だってのは言ったっけ?)

こんなにもワガママを言った上だけど、Hadoopみたいな大規模分散コンピューティングもやりたい。もちろん、JavaXMLで何キロバイト常套句を書きたくないし、数千台のマシン分散した何ギガバイトものログファイルを読んでデバッグするなんて論外だ。幾層にも重なった複雑さを押しつけられるようなことなく、純粋なパワーが欲しい。単純なスカラーループを書いたら、一台のCPUレジスターだけをブン回す機械語コードが生成されて欲しい。A*Bと書くだけで千の計算をそれぞれ千のマシン分散して実行して、巨大な行列の積をポンと計算してもらいたい。

だって必要ないなら指定したくない。もしポリモーフィック関数必要な時には、ジェネリックプログラミングを使ってアルゴリズムを一度だけ書いて、あとは全ての型に使いたい。引数の型とかから自動的メソッド選択してくれる多重ディスパッチがあって、共通機能がまったく違った型にも提供できるようにして欲しい。これだけのパワーがありながらも、言語としてシンプルクリーンものがいい。

これって、多くを望みすぎてるとは思わないよね?

僕らがごまかしようのないほど欲張りなのは分かってるけど、それでもぜんぶ欲しいんだ。二年半ほど前、この欲にまみれた言語を作り始めた。まだ完成してないけど、そろそろ1.0のリリースの時期だ。僕らが作った言語名前はJulia。すでに僕らの無礼要求に9割方は応えてくれてるけど、ちゃんとした形になるためには僕ら以外の要求も聞かないといけない。だから、君がもし欲張りで理不尽わがままプログラマなら、ちょいとこいつを試してもらいたいんだ。

我儘な開発者を満足させるための原語、というのはなんとも意欲的な目標だろう。

そして、その我儘を言う開発者が、今はやりの機械学習でも使いやすいだろう mathematica や R の行列演算統計計算世界を使いまくった連中が入っているところが今風の要求となっているようにも思う。

ちょろっと名前を聞いただけなので、これからなのだが、開発者としては、品質生産の加速がpython の一歩先を行くような世界であればそれは大歓迎だろう。

julia 何て名前を付けているから、検索すると AV女優の方が目立って出てきてしまうのである

https://qiita.com/sadayuki-matsuno/items/fc5e9ec3894a4b7bfbfb

ここからプログラムコードの断片をもってこようかとおもったが、

そのままコピーしても、今一歩な感じ。

ほらほら、

数式が数学で習った感じで書けるよね。

行列もほいほいかけるよね。

とかそういう小技が書かれているような気がした。

このあたりは、python限界を超えているので、見栄えはよいかもしれない。

2018-10-21

anond:20180624224045

その発言した増田ではないが、その発言は少し無責任な気がするので補足。

まずRはやめるべき。

R言語という統計などの計算に強いプログラミング言語がある。

逆に統計くらいでしか使わないので、貴方算術処理をバリバリやるのでなければ使用するべきではないだろう。

Python言語だが、Rに比べると汎用的であり、かつ機械学習(scikit-learn、NumPyやPandas等の統計ライブラリ主体だけど)などでも使われていてホット言語である

ホット言語だと、書籍ネット情報豊富にあるので、学ぶ分には困らないのでもしプログラミング言語をやりたいのであればPythonお勧めする。

そして、Excelマクロも一応Visual Basic for ApplicationというVBを下敷きにした言語なので、その言語を今から学ぶのであればPythonを学べばいいのではないかというのが先の発言趣旨ではないかと推察する。

しかしながら、言うまでもなく、Excelセルに書かれたデータをあれこれしたい(主に業務活用したい)という要件ならVBAが最適である

プログラム言語って得意/不得意があるから、やりたいことに合わせて使う言語を変えたほうが幸せになれます。(本格的なプロジェクトだと選択余地はなかったりするけど)

なお、おうちで触りたいというレベルなら私もPythonお勧めします。

MacでもWindowsでも同じ書き方で、Excelに囚われず色々な処理ができる。AIIoTなどで需要が高まっているので覚えておいて損はないし。

「これだけ凄いから導入許可をください」と情シスに掛け合えるレベルまで成長したら会社でも使えばいい。

ただ、対象者ちょっとしたプログラミング言語を覚えて、手間がかかることを自動処理とかしてみたいなぁと考えられる人。Excel効率よく使えれば十分って考えの人にまでお勧めするものではないので、その辺は誤解がないように。

2016-04-24

http://anond.hatelabo.jp/20160424180734

誰のどの記事を指摘しているのか分からないけれど、id:sisyaさんが4月16日ホットエントリーと互助会を巡るあれこれへの1はてブ民の個人的見解を書かれたのを見て、私も明らかに違うカテゴリに振り分けられた記事を、手動で変更してます

そこで気になって見てみたのだけれど、自分の前に既にカテゴリを変更している人とか、いるんですよね。

しかしそれが、「ブログ主やその関係者」なのか、それとも自分同類の「適切なエントリカテゴリに分類しようとしている勢」か、「はてな運営関係者」かは分からないです。

いちおう自分は既に他人カテゴリ変更をした痕跡がある記事は、変更しないでおいてます

 

だいたいエントリごとのカテゴリって、ブログ管理人任意で決められるわけじゃなくて、はてな側で判断してるんだよな?

YES. おそらく仕組みはブログの中身を全文なめて、それを辞書キーワードと当てはめ、最適と思われるカテゴリに分類しているのでしょう。

そのため、時折微妙カテゴリに分類されてしまうし、精度は高くない。

例えば「写真展に行ってきたよ〜」って感想エントリが「写真カメラ」を認識し、テクノロジーに分類されたり。

例えば「保育園で起きた笑える話」ってネタエントリが「保育園落ちた」と同類の、社会に分類されたり。

あるいは、「食事と家庭環境についての考察エントリ」なんだけれど、ちゃんと論文から数字を持ってきていたり、その統計手法(R言語など)にも触れている場合、「社会」なのか「暮らし」なのか「学び」なのか「テクノロジー」なのか、迷う。まあ、そういう場合カテゴリ変更に手を付けないのだけれども。

 

ただでさえ、お礼ブクマ互助会ブログが多いところに、そんなスパムされたらたまらんのだが。

冒頭にも書いた通り、誰が何の目的カテゴリを変更しているのか分からないので、この増田だけではなんとも言えないです。

もし私のような「適切なカテゴリに分類する勢」が、誤ったカテゴリに分類した結果、顰蹙を買っているのならば、申し訳ない。それは悪意がないけれど、ミスです。

まり変更勢が「この記事は『おもしろ』だな」と思ったのに対し、他の誰かが「いや、この記事は『暮らし』でしょう」と考えているという事を意味します。

そうじゃない場合は、よく状況を見る必要があるし、恣意的アクセスアップの為の目的があるならば、注視すべきじゃないかと思います

 
ログイン ユーザー登録
ようこそ ゲスト さん