各プログラミング言語の解説する改 : IT速報

1: 名無しさん@おーぷん 2015/04/18(土)18:06:50 ID:uO0

http://hayabusa.open2ch.net/test/read.cgi/news4vip/1429229808/
このスレがクソ適当なので本当のことを伝えたい

各プログラミング言語の解説する


3: 名無しさん@おーぷん 2015/04/18(土)18:09:11 ID:Xsi

イヤッォウw

4: 名無しさん@おーぷん 2015/04/18(土)18:09:37 ID:C1o

期待

12: 名無しさん@おーぷん 2015/04/18(土)18:20:51 ID:uO0

じゃあC++とJavaから

C++:


Cの拡張言語
Cにオブジェクト指向プログラミング支援機能をつけた言語と一般的に認識されているけど、
この「C++のオブジェクト指向プログラミング」が曲者で、アラン・ケイが提唱した「オブジェクト指向」とはかなり異なる
速度はC並で表現力が高いが、学習コストもかなり高いうえに現場の知識がC++98という古い規格で止まっていることが多い
(最新の標準化された規格はC++14)

Java:


「C++のオブジェクト指向プログラミング」が可能な言語
最大の特徴はJVMと呼ばれる仮想機械(バーチャルマシン)上で動作するため、
(理論上は)CPUに依存しないプログラミングが可能なことだが、そのせいで動作速度はどうしてもC/C++に劣る
まあよっぽどクリティカルでなければ気にするほどではない

6: ◆Eefzw8GqBpVo 2015/04/18(土)18:10:25 ID:Vq1

javascript勉強したいので期待

14: 名無しさん@おーぷん 2015/04/18(土)18:26:36 ID:uO0

とりあえず名前が挙がった順に解説してく

JavaScript:


基本的にはブラウザ上で動作する言語
もともとNetscape Navigator(Firefoxのご先祖様)が独自に実装したクソ言語扱いだったが、
webページに動きを加えられる=自由度が格段に増すため急激に普及した
ただしブラウザごとに細かい実装が異なるためECMAScriptとして標準化されている
オブジェクト指向プログラミング機能がプロトタイプベースというそこそこめずらしい(C++やJavaはクラスベースと呼ばれる)

16: 名無しさん@おーぷん 2015/04/18(土)18:32:18 ID:uO0

Python:
もう中堅の部類に入るスクリプト言語
インデント(ソースコードを読みやすくするための空白)でブロック(処理のまとまり)を制御するため、
初心者が書いてもそこそこ読みやすいコードになる
読みやすさは生産性の高さにつながり、フォルダ内のファイル名をパターンにそってリネームするといった小規模なものから、
webアプリといった大規模なものまでそつなくこなせる

15: 名無しさん@おーぷん 2015/04/18(土)18:29:02 ID:Q9w

C#とLispの解説も頼む

18: 名無しさん@おーぷん 2015/04/18(土)18:36:49 ID:uO0

C#:
マイクロソフト製の言語
一応C/C++/Javaといった言語の系譜に連なる言語だが、
実体はDelphiという別の言語をC/C++/Java「っぽく」書けるようにした言語
個人的にはWindowsでプログラミングをしたいならC#が最強だと思っている
Javaと同じように仮想機械上で動作し、一応はマイクロソフト製だからといってWindowsだけがターゲットではない

19: 名無しさん@おーぷん 2015/04/18(土)18:41:40 ID:uO0

LISP:
歴史的にはかなり古く、シンプルな言語
プログラムをリスト(数字やデータの並び)で捉えて処理していくため、CやC++などとはかなり異なる雰囲気をもつ
見た目が括弧ばっかりになるので慣れないと読みにくいが、複雑な処理をシンプルに表現する喜びを覚えると病みつきになってしまう
はやりの関数型プログラミング言語の祖のような存在

20: 名無しさん@おーぷん 2015/04/18(土)18:42:17 ID:YyQ

ためになる

17: ◆Eefzw8GqBpVo 2015/04/18(土)18:33:24 ID:Vq1

PHPもくらさい

26: 名無しさん@おーぷん 2015/04/18(土)18:49:29 ID:uO0

PHP:
もともとはHTML生成に特化した言語
現在ではwebプログラマにとってJavaScriptと並んで必須の言語で、こちらはサーバサイドを担当する
見た目の雰囲気はC/C++によく似ているが、型システムや配列の扱いなどに独特な部分も多く、
どちらかというとJavaScriptに近い

21: 名無しさん@おーぷん 2015/04/18(土)18:43:14 ID:UkO

Objective-CとSwiftについても希望

31: 名無しさん@おーぷん 2015/04/18(土)18:59:26 ID:uO0

Objective-C:
C++とは異なる哲学でCにオブジェクト指向プログラミング機能を追加した言語
Smalltalkという「本来のオブジェクト指向プログラミング」を体現した言語にも連なり、
個人的にはC++よりもこちらのほうが「オブジェクト指向とはなにか」を説明しやすい
後述のSwiftが登場するまでは、ほぼ唯一のOS X/iOS向けアプリ開発言語だった

Swift:


2014年登場のかなり新しい言語
発表の際に「Objective-C without the C」(Cを取り除いたObjective-C)と題されたように、
Objective-Cにあった冗長性や古臭さをできるだけ取り除いて、最新のトレンド(関数型プログラミングなど)も追加した言語になっている
ただし(今のところ)オープンソース化されていないのでコンパイルも動作もOS X/iOSのみ

24: 名無しさん@おーぷん 2015/04/18(土)18:44:48 ID:yYU

VBAも言語だよな。

28: 名無しさん@おーぷん 2015/04/18(土)18:54:07 ID:D2z

rubyもおね

36: 名無しさん@おーぷん 2015/04/18(土)19:08:15 ID:uO0

VBAは汎用プログラミング言語じゃないので軽く触れる程度にしておく

VBA:


Visual Basic for Applications
Visual Basicという(一応)BASIC言語の派生言語でマイクロソフト製のアプリを操作するための言語
基本的にエクセルでしか使わない

Ruby:


日本製のスクリプト言語
日本製ということで日本語のドキュメントやコミュニティ数が豊富、国際標準化もされたので、
現在はPythonと二大スクリプト言語となった
Perlの後継言語的な用途が多いが、見た目や使用感はかなり異なる

37: 煉獄のちくわパフェ◆zTu6/Mt3jg 2015/04/18(土)19:10:09 ID:FAE

ブレインフ○○クおなしゃ

38: 名無しさん@おーぷん 2015/04/18(土)19:10:58 ID:y5C

>>1 1がプログラムできる言語を、全部列挙せよ。 

43: 名無しさん@おーぷん 2015/04/18(土)19:24:17 ID:uO0

Brainfuck:
名前のとおり書いていると脳が犯されるような感覚に陥る言語
<>+-.,[]の8文字だけでプログラムを記述する
やっていることはメモリの操作そのもので、brainfuckを完璧に理解するには、
コンピュータの物理的・理論的なしくみに対しての深い理解が必要

>>38


C
C++
C#
Java
Scala
Haskell
Objective-C
Swift
Kotlin
Python
Ruby
Rust

42: 名無しさん@おーぷん 2015/04/18(土)19:18:33 ID:uO0

Forth:
スタック指向、逆ポーランド記法を採用した一見すると一発ギャグのような言語
その実、ハードウェアの仕組みに近いシンプルな記述が可能なため、組み込みシステムに一定の需要がある
まあ日本でプログラマをやっているとまずお目にかからない

BASIC:


名前に「初心者向け」と入るほどわかりやすくシンプルに作られた言語
初心者向けだが汎用言語なので一応はどんなプログラムも書ける
その昔、「パソコン」といえば「BASICでプログラムが書けるコンピュータ」を意味したほど普及していた
古い言語だけあって方言が多く、最初期のBASICと最新のVisual Basicでは見た目も機能もかなり異なる

44: 名無しさん@おーぷん 2015/04/18(土)19:29:27 ID:uO0

Perl飛ばしてた

Perl:


一昔前はスクリプト言語でもっとも人気があった
CGI(webページのアクセスカウンタや掲示板を作るしくみ)といえばPerlだったし、
ファイル内の文字列を処理するのにもPerlを書いていた
しかしいつの間にかPHPやPython, Rubyにとって変わられ、今ではあまり学習者もいない
Perl 6という規格があるが、こちらは5.xまでとはまったく互換性がない別物

45: 名無しさん@おーぷん 2015/04/18(土)19:29:47 ID:LN6

>>1
いや、お前の知識もかなり偏ってて怪しいよw

47: 名無しさん@おーぷん 2015/04/18(土)19:33:03 ID:uO0

>>45
書いててわかったけど、簡単に説明しようとするとどうしても足りない部分が出てきてしまう

58: 名無しさん@おーぷん 2015/04/18(土)19:55:07 ID:lzk

>>1にあるスレに比べたらよっぽど正確だよ

41: 名無しさん@おーぷん 2015/04/18(土)19:16:24 ID:qvd

オブジェクト指向ってのがそもそもわからんのだが・・・

52: 名無しさん@おーぷん 2015/04/18(土)19:37:55 ID:y5C

>>1

C++ を例題に使って、OOPについて、具体的に実例を使って解説してくれ。

57: 名無しさん@おーぷん 2015/04/18(土)19:48:53 ID:uO0

>>52
「最初のOOP」の核となる概念は「オブジェクト同士がメッセージを送りあう」の一言で、
上で書いてる「C++のOOP」とはかなり異なるのを前提として具体例を挙げると

#include <iostream>

struct Foo { // Foo型のオブジェクト

void say(std::string message) { 
std::cout << message << std::endl;
}

}

int main() {
Foo foo; // オブジェクトの実体(インスタンス)をつくる
foo.say("hello"); // sayというメッセージを"hello"という文字列と共に送る
}

OOPのキーワードにはカプセル化や多態性などがあるけども、これが一番シンプルなOOPのコード

元スレ:http://hayabusa.open2ch.net/test/read.cgi/news4vip/1429348010/