はてなキーワード: 都市伝説とは
プログラミング未経験者から「プログラミングを勉強してみたい、でもどのプログラミング言語をやればいいのかわからない」というような悩みを聞くことがあるので、https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/ に載っている人気の言語TOP 20について、未経験者が最初に学ぶのはどの言語が良いかという観点で簡単に解説してみます。
対象読者はプログラミング未経験者なので、なるべく難しい言葉を使わないようにしたつもりです。また、正確性よりもわかりやすさを重視しているので何かしら間違っているかもしれません。ご留意ください。
Webブラウザの上で動くプログラミング言語。元々ただの文書しかなかったインターネットの世界に、グリグリ動くページを作りたいという欲求により生まれた。JavaScriptのおかげで今のWebページはグリグリ動きまくりである。
元々HTMLをちょちょっといじる為だけのものだったが、どんどん進化を続けて今は一つの超人気プログラミング言語である。今ではブラウザ上でなくても普通に動かせる(Node.jsという)ので様々な用途で使われている。
ブラウザ上で動くプログラミング言語は基本的にJavaScriptしかないので、JavaScriptはすべてのWebプログラマが学ぶ必要があると言っても過言ではない。
ちょっとしたプログラムを書いてすぐブラウザ上で動かせるので楽しい。そういう点ではプログラミング入門に適していると言えるかもしれない。
機械学習を始めとしたデータサイエンスの分野で激烈に人気のある言語。理由としてはNumPyとかTensorFlowのようなライブラリが充実しているというのが大きく、資産がたくさんあるのでこれからも使われ続けるであろう。
言語としては、誰が書いても簡潔で読みやすいコードになる傾向にあり、小さいプログラムを書くにはいい感じである。米国ではプログラミング教育にPythonがよく使われているという話も聞くし、初心者がプログラミングを始めるのにはいいのかもしれない。
将来AIやデータサイエンスをやってみたいと思うのであればPythonから始めましょう。
ランキングでは常に一位に近い順位をつける言語。Javaができた当時は色々と革新的だったらしく、組み込み業界からWebまで流行りまくっていた。今でもその名残か使っているところは多い。過去の資産やプログラマの数が多いのが一番の理由だと思う。AndroidアプリもJavaで書く(もしくはKotlin)。
実行速度が速く、また下位互換性がしっかりしているので過去に書かれたコードが新しいマシン上でも動きやすいのが長所。短所としては、歴史ある言語で下位互換性を保っているため文法が古い感じがする。タイプ量も多くなるし、学習コストはJavaScriptやPHP, Ruby, Pythonあたりに比べると高い。
正しく使えば強力な言語だが、日本のクソSEもどきは全員(自称)JavaエンジニアであることがJavaが毛嫌いされる理由の一つになっている[要出典]。いわゆるGAFAもJavaをかなりヘビーに使っているので要は玉石混交ということである。
Androidアプリを作ってみたいというならJavaからはじめるのはアリ。
Webページを作るためだけに生み出された言語。プログラマの数が非常に多い。日本で求人が一番多いのはJavaかPHPであろう。
初心者でもとっつきやすく、すぐに動くプログラムを作れるので入門に使われることも多い。学習コストの低さはトップレベルである。しかし基本的には古くてダメな言語とみなされており、PHPで作られたWebサービスは脆弱性が多いという都市伝説もある。真実は闇の中である。
近年のバージョンアップで比較的良い方向に向かっている(と個人的には思う)ので、選択肢としては意外と悪くないかもしれない。
Microsoftが生み出した言語で、.NETというプラットフォームを使ってWebサービスを、Unityというゲームエンジンを使ってゲームを作ることができる。
最近有名なのはUnityで、今やほとんどの3Dソーシャルゲーム(の一部分)はUnityで作られている。そう考えるとC#のプログラマは結構いそうだし将来もある程度安泰かもしれない。もちろん.NETも広く使われている。
ただし.NETもUnityも触らない人にとっては基本的に縁のない言語である。
なんかゲーム作ってみたいかもなーと思う人はC#から始めてもいいんじゃないでしょうか。
C言語に色々な機能を足しまくってできた巨大な迷宮のような言語。言語仕様は複雑怪奇だが実行速度は全プログラミング言語中でも最速レベルなので、パフォーマンスが重要な開発において使われる。アプリやサービスというよりは、それらを作るためのライブラリ、プラットフォームなどを作るときに使われることが多い。Web系の会社でいうとGoogleなどは主にC++を使っている。
基本的には初心者が触る必要はない。競技プログラミングを極めたいとかならC++からはじめてもいいかもしれない。
このランキングの中で唯一、日本人によって作られた言語。作者のまつもとさんは世界的有名人である。ちなみに島根県出身、在住。
プログラミングを楽しくすることがモットーらしく、確かに書き味は良い。また作者が日本人なこともあってか日本語情報が多く、情報収集という点ではとてもやりやすい。
Ruby on RailsというWebサービスを作るためのフレームワークが世界的に大ヒットしたため、必然的にRubyの知名度も上昇した。少し前まで日本のWeb系スタートアップは猫も杓子もRuby on Railsといった様相であった。今は少し落ち着いたようだが今も人気は根強く、Web系プログラミングスクール等ではだいたいRuby on Railsを教えているとかいないとか。
Webに興味があるのならRubyから始めるのが一番無難な選択肢と言える…のか?まあ悪くはないと思う。今でも需要は多い。スクールに行きたいのであれば黙ってスクールのカリキュラムに従いRailsをやりましょう。
これは他の言語とは毛色の違う言語である。というかCSSはプログラミング言語と呼んでいいのだろうか?
CSSはHTMLを装飾するためのものである。字に色をつけたり、背景を変えたり、レイアウトやサイズを変えたりするのは基本的にCSSの役割である。
すごく大雑把にいうと、HTMLで表示する内容(文章や画像)を定義し、CSSでその見た目を整え、JavaScriptで動きをつける。というのがWebサービスの”見た目”を作るやり方である。
なので、Webに興味があるのであればある程度はCSSの知識が必要である。が、これ単独で学ぶようなものではない。Webサービスを作る時についでに調べて少しずつ覚えていけば良い。
TypeScriptは比較的新しい言語で、JavaScriptをさらに拡張したものである。Microsoftによって開発されている。
プログラムにはデータの型(Type)というものがある。例えば「1」や「2」は数値型、「あいうえお」は文字列型といった具合である。大まかに言うと、この「型」に対して厳しい言語は型チェックによりバグの混入を防ぎやすいがプログラムを書くのが大変、というかコード量が多くなる。型が緩い言語はサクサクかけるし短く書けるがバグを生みやすくプログラマの力量が問われる。ランキングの中だとJavaScript, Python, PHP, Ruby, Perlあたりは緩く、Java, C++, C, Swift, Go, Kotlinあたりは厳しい。
そんな中、世で広く使われているJavaScriptの型チェックが緩すぎるのでもっとちゃんと型をつけたい、そんな要望を叶えるのがTypeScriptである。基本的にJavaScriptを理解している人間が使うべき上級者向け言語というのが現状なので、初心者が始めるには適していない。
ただしこの先主流になっていく可能性は大いにあるので、どこかのタイミングで勉強してみても損はしないと思う。
C言語は基本的にOSを作るための言語である。OSというのはWindowsとかmacOSとかLinuxといったもので、マシンを動かすための基盤となるソフトウェアである。AndroidスマホにはAndroid(という名のOS), iPhoneにはiOSが載っている。コンピュータは基本的にOSがあって初めて動かすことができ、OSが提供する機能を使ってブラウザやスマホアプリなどを動かせるのである。
というわけで、初心者が学んで実用的なものではない。ただしC言語というのは世の中の様々なものの基盤になっており、他言語の文法もC言語から拝借しているものが多い。例えばC言語をある程度勉強していればJavaやPHPなどはなんとなく雰囲気で書けてしまったりする。
そういうわけで、コンピュータサイエンスをこれからちゃんと学んでいきたいという人(大学生とか)はC言語から始めるのもいいと思う。ちなみに筆者は初めて書いた言語はCであるが、意味が理解できるまでに2年かかった。才能がないとこうなるので注意。
SwiftはAppleによって作られたAppleのための言語である。iOSアプリ(iPhoneアプリと言い換えても良い)を作るためだけに存在している。
言語自体は他と比べて新しいため文法や機能がイケてる雰囲気があるので基本的にはいいのだが、iOSアプリ以外で使っている人は多分世界で5人くらいしかいないと思う。なのでiOSアプリに興味がない人はやめておきましょう。iOSアプリを作りたいあなたは他に選択肢はない。Swiftをやりなさい。
Swiftが生まれる前はiOSアプリを書くためにObjective-Cが必要だったため、多くの人がこの言語を使っていた。が、今はSwiftがあるので、古くからあるObjective-C製アプリをメンテナンスする時以外に使う機会はない。名前すら覚える必要がないので存在を忘れてしまって構わないが、これだけ順位が高いということは多くの企業がいまだにObjective-Cで開発し続けているということであり、ニッチな需要はこれからも残るのかもしれない。
Scalaは関数型言語と呼ばれる言語の一つ。Javaの親戚みたいなものなのでJavaとの連携が容易であり、上手く使えば性能も出るしコード量も少ないしバグも少なくて最高、な感じらしい。が、その分難易度が非常に高いので初心者が手を出すものでは絶対にない。どんなに早くても他に二つは言語を覚えてから勉強しましょう。Javaを覚えてからやるのがベター。
正直ほとんど書いたことがないのでよくわからないが、ビッグデータというワードが流行りだした頃はデータ解析用途でかなり流行っていた。その後機械学習やAIブームが来て、今でも現役で使われてはいるがPythonがどんどん勢力を拡大しているので少し目立たなくなってきた、というのが個人的な印象である。まあプログラミング初心者が最初にやるようなものではないことだけは確かである。
Go言語は比較的新しいGoogle製のプログラミング言語で、Googleのように巨大なシステムでの使用を目的に作られたものである。しかし実際には様々な企業が利用しており今一番勢いのある言語と言ってもかもしれない。
他のプログラミング言語の良い点や悪い点を参考に設計されており、実行速度の速さと生産性(プログラムの書きやすさ、読みやすさ)を両立できるような言語になっている。ただし、機能を増やすのではなく本当に重要な機能だけに絞るという思想があるようで、他の言語に慣れていると機能の少なさに不便を感じるかもしれない。
学習コストが低いという点では最初に学ぶ言語として適しているかもしれないが、GoだけでWebサービス等をサクッと作れるのかというと微妙なので、アウトプットを出しにくいというのはあるかもしれない。
シェルというのはテレビなんかでハッカー的な人間がPCを開いて謎の黒い画面に白い文字を打ち込んだりするアレである。説明としては正確ではないがまあ大体そんなもんである。何が言いたいかというと初心者が最初に学ぶとかそういうものではない。しかし実際に開発の仕事をやるとシェルの知識はあったほうがいいし、シェルに多少詳しくなるとPC上でテキスト操作をしたりファイルをいじったりというのが便利にできるようになる。ただし(通常は)極める必要はない。
Shellと言っても実際にはbash, csh, tcsh, zshなど色々あるのだがそれらをひとまとめにしてShellとなっているようだ。
PowerShellは上のShellの親戚みたいなもので、ShellがMacやLinuxで動くのに対しPowerShellはWindowsで動く。そんだけである。あと正直あまり知らない。
ランキングの中ではかなり昔からある言語で、サーバーと呼ばれるマシンには大体Perlが入っている。そのくらい市民権を得た超有名言語で、C言語やC++で書くほどでもない小さなプログラムはとりあえずPerlで書く、というくらいには広く使われていた。インターネット初期はほとんどのWebサイトはPerlで書かれていたとかいないとか。PHPなどの登場はその後である。
今でも広く使われてはいるが、RubyやPythonがPerlの後継的な位置付けであるため、初心者が新しくPerlを学ぶメリットというのはあまり思い浮かばない。何か特定の目的があるのであればいいと思う。
Kotlinは簡単に言えばBetter Javaである。Javaをもうちょっといい感じに書きたいという気持ちで作られた言語で、Scalaと同じくJavaの親戚のようなものである。
ランキングの中ではSwiftと並んでかなり新しい部類。AndroidアプリをKotlinで書けるようになったことがきっかけで人気が爆発的に上昇、今ではWebの開発にも使われていたりする。
とは言えまだまだ新参者といった感じで、ドキュメントなどの情報も他の言語に比べると物足りないので初心者には厳しいかもしれない。
言語自体はとてもいい感じなので、もう少しコミュニティが成熟してくれば最初に学ぶ言語の選択肢として有力になるかもしれない。
HaskellはScalaと同じく関数型言語である。ScalaがJava的な書き方でも動くの対し、Haskellは「純粋関数型言語」と呼ばれ、ランキング中の他の言語とは一線を画した書き方になる。どう考えても初心者にはオススメしない。少なくとも他に二つは言語をマスターしてからやりましょう。
なんとなくWebに興味がありそうならJavaScriptかRubyもしくはPHP、Androidアプリに興味があればJava、iPhoneアプリに興味があればSwift、AIやデータ分析に興味があればPython、3Dゲーム開発に興味があればC#。この辺りをやりましょう。
特に目的がないのであればフィーリングで選んで大丈夫ですが、やめておくべき言語というのはあるのでその辺だけ参考にしてもらえれば。
なお筆者はただのヘボプログラマであり、大好きな記事(http://www.mwsoft.jp/column/program_top10.html) の現代版かつより初心者向けなものを書いてみたいと思ってこの記事を書きなぐった次第である。あまり真に受けないよーに。
昔ハンバーガーがあんなに安いのはミミズの肉を使っているからだという都市伝説が流布したことがあった。
どんな話題でも湧いて出る後知恵野郎が「ミミズなんてつかったらかえって高価になる。すこし考えたらわかるだろう(ドヤ」とか得意げに語ってた。
俺も都市伝説を信じてたわけじゃなかったけど、ミミズが高コストというのはないだろって思ってた。
中国やらオーストラリアやら、広大な土地のあるところで、企業が本気で生産したらすぐ牛肉より安くなるはずって言っても、後知恵野郎どもはバカだから理解できないのな。
もう何十年もまえだと思う。日本で「セクハラ」と言うものが認知され始めた頃の話。まだ当時の俺は小学生か中学生だった。
アメリカでは同僚の女性に「あ、髪切ったんだ」と言ったらセクハラで解雇された、と言う話がまかり通っていた。
今ではあんなのは都市伝説、嘘の話だ、いくらなんでもそんなのがセクハラになるわけない、女を馬鹿にしている!と言っている人がいる気がするが、当時は「欧米ではそれくらい深刻なんだ」という文脈でわりと使われていた気がする。
さて、当時の論点は「どこからがセクハラなのか」と言う線引きが必要なのと、それは果たして可能なのか?だった。
そりゃそうだ、話しかけただけでセクハラとか言われたらたまったものではない。
いろんな番組で男女交えて話していたのを覚えている。
そんな中で特に印象的だったのは、女性側(今となっては彼女らが何者かすらわからないが)の意見は「何がセクハラかは女性が決める!」と言う線引きだけを強硬に主張していたと言う点だ。
要は何かあった時にそれをセクハラと言って良いかの権限を女性に持たせるべき、と言う話だ。
どうやらこの主張は通ったと思う。社会人になってセクハラの線引きというのはついぞみたことがなく、セクハラは禁止、とだけ言われているからだし、今の社会でセクハラがどう問題になってるか見れば明らかだ。
こうして女性の好みや気分でセクハラと言える特権が誕生した。例えば女性弁護士が「福山雅治なら同じことしても許す」とかテレビで公言しても問題ない、お笑いで済ませられる位のものになった。
記憶ベースなのであれだが、おそらくあの時点で今の日本の男女の関係は始まったと思う。
何でこんなこと書いたかと言うと、最近恒例の女性が当時我慢しすぎた、もっと戦うべきだった、と謝罪してるのをちらほら見かけたからだ。
ある人がピカソに絵を描いてもらったら30秒で描いた絵が、値段は1万ドルだと言われ驚いた。ピカソは「ただの30秒ではなく30年と30秒だ」と言ったという、いわゆる「ピカソの30年と30秒」という話があるのだが、これの詳細を知りたいと思ったらどこにも見つからない。数字も40年、40秒、100万ドルなどぶれがある。このシチュエーションで結局絵は購入したのか、どういう絵なのか、昭和のおっちゃんあるあるのお釣り500万円的な意味なのか、などが気になってしょうがない。出典が相当怪しい話なのは間違いなくこれもネットで拡大されたたぐいの話で都市伝説ですらないようだが、こんな怪しい話が未だに自分の都合がいいように語られているのに呆れてしまう。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1253961492
https://www.sankei.com/column/news/160420/clm1604200004-n1.html
似たような話ですぎやまこういちのドラクエ序曲は54年と5分で作られたという話があるが、これは少なくとも本人のソースがある。ピカソじゃなくてすぎやまこういちを心おきなく引用しろ!
お客様が配布行為の直接の主体となる場合。すなわち、イベント等での対面販売、もしくは通信販売であっても自身のHP等、小規模な案内のもと、自ら受注を確認し、配布物を梱包し、発送の手続きを行うようなものは直接販売とみなします。委託販売やオークション等、第三者を仲介し、または不特定多数に向けることを目的とし、継続的かつ反復的に販売を行う行為は、認められません。
なお、上記例は例示的記載であり、たとえば内容や対象等が特殊な範囲内において、特定可能性が高い対象に対して、結果的にその活動が小規模となりうると推測しうる範囲での行為であれば表面上委託販売であっても、直接販売と判断しうるような場合もございます。
種類、内容、契約期間によらず、販売する数量は同一の商品について総累計200個までと制限させていただきます。なお無体創作物についても同様です。また名称や価格の変更等、商品本体の変更を伴わない変更があったとしても、これは同一の商品とみなし、総累計数にカウントしてお考えください。
売上予定額とは、「生産数×販売価格(税抜)」を意味します。実際の販売数ではなく、生産数によりますのでご注意ください。なお売上予定額が10万円を超えるような場合には、小規模行為ではないと判断させていただきますが、別途ご申請および版権利用料(ロイヤリティ)のお支払いをいただければ、例外的かつ部分的に許諾可能です(アマチュア版権窓口までご相談ください)。
ほかのところも、小規模で直接販売だから許す(目こぼす)であって、
電子書籍で無尽蔵に販売するって言ったら、無視は出来ねぇんじゃねぇかな・・・
多くのところがガイドラインは出していない
公式でなんでもOK!のゆるゆるのガイドライン出してるビッグタイトルは
もちろん二次創作の電子書籍を扱ってる会社があり、ガイドラインのない電子書籍同人誌が販売されていることを認識しているが、
そういう会社はお目溢しするんじゃない?
kiyo_hiko 仕事で顧客や上司に合わせてく努力して、まれに自己主張するようにしたら心理的に楽になって仕事も速く終わって評価もあがって時間余らすようになったけどな…性愛は経験無いからわからん
まれに自己主張する、仕事の場面で上司とかに合わせる努力するのは健全な範囲ではないのかな。合わせない合わせられないとかなり干される危険と隣り合わせというか契約が切れる時期に来たら切られる可能性限りなく高いでしょ。中小はね。
自己主張するととたんに敵対視とか仕事で合わせるくらいならともかく、プライベートな時間もプライベートな身体の事情や身体そのものも犯される危険と隣り合わせで薄氷踏んでいかなきゃならんのが女性の場合都市伝説とか希な状況ではなかった、現在ですら場所により当たり前の現状なわけでね。仕事やコミュニティにより若い男性でもそういうのはあるんじゃないの?