前スレより
790 1 名前:デフォルトの名無しさん Mail:sage 投稿日:2020/08/18(火) 17:43:05.80 ID:HR/M/dGq
>>765
対話的なプログラミング環境、いわゆるREPLは大事だよね
たとえば「0から9までの数字で偶数のものを2乗した配列」が欲しいとする
もしもこうした環境が提供されている言語であれば:
$ irb
irb(main):001:0> (0..9)
=> 0..9
irb(main):002:0> (0..9).select {|n| n % 2 == 0}
=> [0, 2, 4, 6, 8]
irb(main):003:0> (0..9).select {|n| n % 2 == 0}.map {|n| n * n}
=> [0, 4, 16, 36, 64]
irb(main):004:0>
その場で、手軽に計算を学習できる、あたかも電卓のように
こうしたメソッドチェーン(あるいは関数型言語におけるパイプライン演算子)は、
スレタイにある「ぶっちゃけ始めるのにいい言語」には必須じゃないかと思われ
https://qiita.com/subaru-shoji/items/110529c2c1824633d79c 日本語や英語などの自然言語ができるのなら、それよりはずっと簡単なんだから何でもいいから始めればいい
逆に本とかで勉強するだけでは身につかず実際に日常で使っていくのが一番の勉強になる
これは義務教育で英語やった人なら分かるはず。よってここはただの雑談スレ
個人的にはCで始めることができたのは運が良かったと思ってる。
もう30年くらい前だが(w)、あのときFORTLANとかCOBOLだったら
今の言語見たら目が滑りまくると思う。
今ならC#かjavaから入っとけば潰しが効く気がする。パラダイムシフト
起こったら知らんけどw
>>2
selectやmapだの仮変数nだのをいちいち書かなければならなくて冗長。
ベクトル演算できる言語だとすっきり書けて小気味良い。
R: seq(0, 9, 2) ^ 2
Julia, Octave: (0:2:9) .^ 2 C# 一択でしょ。Windows、Mac、iOS、Android、ウェブアプリ、何でも作れる。型を指定してオブジェクトを宣言するから、自動補完もばっちり。
>>2
irb とか、そんな面倒なものは使わない
VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる
p range = ( 0..4 )
p ary = range.select { |n| n % 2 == 0 }
p ary2 = ary.map { |n| n * n }
出力
0..4
[0, 2, 4]
[0, 4, 16] pythonは人気あるけど、括弧が無いっていう他の言語との違いが気になる。
C#とかTypeScriptが良いと思う。
・・・どうしてマキマはパワーを殺めてもうたん?(´;ω;`)ブワッ
javascriptかな。htmlとcssを一緒に覚えるとブラウザで遊べて楽しい。コード例もゴロゴロ転がってる。
何をやりたいかにもよらない?
例えばWeb系やりたいならJavaScriptとか
複合文の波括弧がないということでしょ。個人的にはオフサイドルールは大好きだけど、嫌いという人がいるのも分かる。
>>17
どこまで実用を見越すかってことだろうけどね。
ついでに人気度ランキングも。
だったら、Typescriptかな。 波カッコがないとブロックを終わるときにエディタが助けてくれないのかちょっといや
>>2 のお題であれば、波カッコを使えば左から右へ流れるようなコードが書ける
(0..9).select {|n| n % 2 == 0}.map {|n| n * n}
ところがだ、波カッコを無くしたまでは良かったけど、代わりに丸カッコを三重に入れ子にした
コードを書かざるを得ないのが Python といふ言語
list(map(lambda i:i**2 , range(0,10,2)) )
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」より引用
http://2chb.net/r/tech/1594883518/808/
インデントを強制することによってコードを簡潔にして可読性を高める、
と言うアイデアは決して間違いではなかったけれど、Pythonが言語設計の比較対象にしていたのは
FORTRAN/COBOL/PASCALそしてPerlといった手続き型言語とそのプログラミングパラダイムだった
確かにWHILE-ENDやFOR-ENDでループ処理をゴリゴリ回すコードが比較対象であれば美しかった
けれども時代はオブジェクト指向(メソッドチェーン)や関数型(パイプライン演算子 or 関数合成)といった
より洗練されたプログラミング表現へと進化している
たとえば古典的な関数型言語のLISPはS式と呼ばれる丸カッコの入れ子が代名詞だけれど、
最初からインデントの強制を前提に設計された関数型言語Haskellであればパイプライン演算子や関数合成は使えるし、
それどころかHaskellは型システムを前提にしたソフトウェア設計論やプログラミンングにおける圏論といった、
未来へと続く次世代プログラミングヘのパラダイムシフトへの影響をもたらしている
当初は手続き型言語として設計された(Perlと比較すれば)簡潔で美しいスクリプト言語 Python、
けれども新宿界隈の雑居ビルのごとく行き当たりばったりに中途半端なオブジェクト指向や関数型が導入された >>23
偶数のみを処理するのとイテレート時に1個飛ばしで処理するのは意味が違うから混同しちゃだめ
Ruby
(0..9).filter(&:even?).map{|x| x ** 2}
Python
[x ** 2 for x in range(0, 10) if x % 2 == 0]
or
list(map(lambda x:x ** 2, filter(lambda x: x % 2 == 0, range(0,10)))) # 醜いので普通は使わない >>24
> 偶数のみを処理するのとイテレート時に1個飛ばしで処理するのは意味が違うから混同しちゃだめ
前スレ808氏が苦し紛れに書いたコードでしたので、私はあえてツッコまなかったのですが。。。鬼ですね
> [x ** 2 for x in range(0, 10) if x % 2 == 0]
こちらの内包表記を用いたコードであれば「醜さ」は改善されていますね
もっともHaskellのように、あたかも数式であるかのように書ければ、
より「美しい」と共感する人は多かったのでは無いかと思われますが
[x ** 2 | x <- 0..10, x % 2 == 0]
> { x ^ 2 | x ∈ S, x > 3 } みたいな数学の集合の表現が元ネタなのかもね
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」から引用
http://2chb.net/r/tech/1594883518/811/
では、続きまして前スレから次のお題です
・ある配列を、昇順に並べて、反転して、文字列化して、間を”-“で繋ぐ
[1,4,3,2].sort.reverse.map(&:to_s).join('-')
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」から引用
http://2chb.net/r/tech/1594883518/791-792/
このように波カッコを使えば、先のお題と同様に左から右へと流れるようなコードが書けます
たいして難しいどころか日常的に見られる簡単なお題ですから、もちろん内包表記でも書けますよね? >>25
>このように波カッコを使えば
コードブロックの表現に波括弧やキーワードを使うのか
それともインデントを使うのかとは関係なくない?
Pythonが複数行のlambdaを書けないのはPython特有の問題だし
PythonのAPI設計がオブジェクト指向的じゃないのもPython特有の問題でインデントとは関係ない 単なる癖づけの問題で、多数派の方が楽だよねって思うが。
>>26
そもそも>>25のコードでは波カッコを使っていない、というオチは置いといて(苦笑
[1,4,3,2].sort.reverse.map(&:to_s).join('-')
>>25で書いたように、Pythonが誕生した手続き型プログラミングが主流の時代には、
> コードブロックの表現に波括弧やキーワードを使うのか
> それともインデントを使うのかとは
大いに関係がありました(過去形)
Pascal の begin..end を使うのかCの{..}を使うのか、いやそもそもブロック表現は
具象構文にインデントを取り込めば..といった論争です(Occamといふ言語をしていますか?)
今となっては当時を知らない若手か老害しか興味を持たないようなつまらない話題です
おっしゃるように問題は、元々は1980年代の設計思想(手続き型パラダイム)で設計されて誕生し、
時代時代の流行を追いかけて後方互換性を断絶するような改変(Python2->3)を強行してもなお、
中途半端な関数型プログラミンングやオブジェクト指向プログラミングしか
書けないPythonの現状にあるわけです
で、あなたはこの現状を正確に認識した上で、そんな言語を「ぶっちゃけ始めるのにいい言語」として
他人にお薦めしますか?
もちろん実世界の閉じた世界で何も知らない初心者を相手にして、優越感に浸る手段とはなるのでしょうけれど 評価軸の1つとしてそういうことを気にする人もいるというのはわからないでもないけど、Pythonは普通に「ぶっちゃけ始めるのにいい言語」としては上位の方でしょ。
お勧めリストとして、RubyをPytnonより上位に位置付ける人よりも、その逆の人の方が圧倒的に多いと思うけど。
インデントしてりゃそれが制御の範囲を示すんだって頭が
できちゃうのは副作用でかくないか?
>>28
>大いに関係がありました(過去形)
何と何が関係あるって言ってるの?
左から右へ流れるようにコードが書けるということと
コードブロックの表現に何を使うかということは関係ないってのが>>26の指摘
普通はやらないけどPythonでも左から右に書けないわけじゃない
pipe([1,4,3,2], sorted, reversed, map(str), '-'.join)
上の話と初心者にPython勧めるかどうかは全く別の話 >>30
そこまで頭の悪い人はいないでしょ。
「VBAから入ると変数宣言はDimでやるんだという頭ができちゃうから副作用がでかい」とか考えるならそうかもしれないが。
両方やった上でインデントが強制されるのは窮屈だから御免被りたいという意見は十分ありうるとは思うが。 インデントはデメリットに比べてメリットが小さすぎるから採用言語が少ない
行数が減るメリットは小さくないと思うが。閉じ括弧やendが不要なのでまず1行分減るし、開き括弧やbeginで1行使う流儀ならさらにもう1行分減らすことができる。
オフサイドルールを採用する言語が今のところ少ない理由は、メリットの少なさというよりも、インデントを強制されるのは窮屈に感じるという気質の人が、プログラマには少なくないからではないかと思う。
Pythonの人気でそれが今後変わるのか変わらないのかは分からないが……。
字下げスタイルはどれが好き?
C#はオールマンスタイル、Javaはカーネルスタイルが主流だけど
オールマンが見易くて好きだな
行はその分増えちゃうけど現代では困ることもないでしょう
>>36
実際は閉じ括弧の代わりに空行入れるから、ネストしたブロックから一気に抜ける場合以外に行数は減らない
特にPythonだと逆に行数増えるからメリットにはなってない >>36
インデントを強制されるのは窮屈に感じるのは気質の問題じゃなく合理的な理由があるから
間違ってたらバグる、閉じ括弧に比べて間違いを見つけるのが面倒、オートフォーマットできない、改行を入れて読みやすくする自由度が低い
自由度が低いと制約を常に頭の片隅に置きながらコードを書く必要があって脳を活用できる度合いが下がる。
理由をうまく言語化出来ないことを気質の問題にしてるとロクなことないよ >>39-40
そんなに拘るつもりもないんだけど、閉じ括弧やendを使う言語でも普通はその後空行を入れるでしょ。行数が減らないというのはさすがに無理筋無批判だと思うなぁ……。
インデントミスでバグるというのは具体的にどういうケースを想定しているのかよく分からないけれど、ブロックの範囲についてプログラマの勘違い・書き誤りがあるケースなら、早めに検出してくれるほうがありがたいと思うが。
閉じ括弧と比べて間違いを見つけるのが面倒というのもあまりピンとこないような。インデント幅が違っていたら警告が出るわけだし、その後、正しいブロックの範囲を示すように直す作業はどちらでも同じでしょ。ぶら下がりelseみたいな問題が生じないのはインデント強制の言語(あるいは括弧を省略できない言語)のメリットだと思うけど。
オートフォーマットの必要性が高いのは、そもそも括弧を書く位置がバラバラだと読みづらいという問題が大きいからでは?
読みやすさのために空行を入れることはインデント強制の言語でも普通にできるし、文の途中で改行を入れるときに行継続が必要になるというのは、物理改行を文の終わりにする言語共通の特徴だろう。行継続なしで書ける方がスッキリしていて良いという感覚はありうるけれど、それはまさに気質の問題だと思うが。
インデント強制が好きではないという人が多くいるのもわかるので、あまり拘る気持ちもないのだけど、個人的には>>39-40の挙げる理由はあまり「合理的な理由」とは思えなかったかな。 インデントでネスティングの深さを判断するのに、それをユーザ任せにすると言うのはよくないと思うけどな、人が作った奴なんてインデントを合わせるのに一苦労する。
最初からインデントをチェックしてくれるPython の方がマシ。
Pythonのインデントの関係で引っかかったことがあるのは、ヒアドキュメントとしての三連クォート文字列くらいかな。
最初、/* 〜 */コメントと同じ感覚で書いてしまったんだけど、実際には単なる文字列リテラルで式文だから、インデントルールが適用されるんだよね。考えてみれば当然のことなんだが。
引っかかったことがあるのはそれくらいで、あとは波括弧を使う言語と変わりない感覚で書けていると思う。
行数が減るのがメリットとかプログラムまともに書けない人っぽいなw
Pythonのようなインデントに意味を持たず言語もデメリットを理解した上で使うならいいと思うが、全く理解してないんだね
単なる経験不足ならいいけど数年以上やってるようなら言語の弊害と言えそう
デメリットの話なら、具体的な点を挙げた方が有益だと思うが。もっともな理由なら「ふーん、なるほど」となるだろうし、大したことのない理由なら「うーん、そうか?」となるだろうし。
いずれにせよ、この手のスレで>>47のように勿体ぶるクズの気持ちは正直よくわからん。 アセンブラなら
インデントなんてあまり気にしなくてもいいんだけどなぁ
アセンブラーの書いたC++とか全然OOしてないよな
v? bでした、、
プログラマーの老化とメンテナンス性能について
なんてスレが欲しい
まあ、80486が新進気鋭だった時代のC++だね。
レジストリで計算させてヒープメモリを使わず、
スタック変数さえスピードのネックになった時代っす。
一時キャッシュはあったが二時キャッシとヒープキャッシュメモリとか無かったんじゃ
で、本題に戻る。
Visual C# 2019パーフェクトマスターって3200円の書籍かいましたが、
これGUIアプリ作るゴールとして、勉強した方がよき?
JavaSwingみたいな今からは時間の無駄ってことにはならん?
入りたかった会社の募集みたらC C++って書いてありましたわ、
また戻るのか私は
では、、
レジストリワロタwww
C#でGUIはWindowsなら色々あるけど
それ以外はUnityかXamarinしかないんじゃないかな
クロスプラットフォームならElectronが良いとは思うけど
GUIアプリならJAVAでも悪くは無いけど今更感はあるかな
アセンブラならレジストリで計算しなくても済むんだけどなぁ
Pythonってどうやって支持者集めたんだろうね
言語そのものよりコミュニティの中心人物が天才だった?
アセンブラの入門サイトで笑ったよ。
誰も信用できない人向けだってさ。
でも、コンピューターとは?ってところから学ぶのも良いかもな。
プログラミングやるのに言語なんかいらん
紙と鉛筆あればできる
>>66 教育用言語にはインタプリタ言語が適している。
古くはBASIC 、Microsoft BASIC が一世を風靡した。
その後釜に座ったのがPython 今やほとんどの大学で教えているから、学生、研究者が高度なツールとして使うために膨大なライブラリ群が集まり今や押しも押されぬ位置を占めた。
高度な処理になればなるほどPython 一択。 例えば AI
Mucro:bits は小学生用からの勉強用コンピュータ(2000円位)だが、Micro Pyhon が動く。
エディタでブロックプログラミングするとPython コードが吐き出される。 それをMicrobit にダウンなロードするとLチカやブザー、音楽、Bluetooth 、温度計、、、、などで遊べる。
イギリスでは小学生4〜5年生全員に無料配布している。
日本の検定教科書でもPythonを扱い始めた。 教育用コンピュータとして、raspberry pi が生まれた。
数千円でLinux が動く。これもPython で動かすのが基本となっている。
色んなセンサーを追加する事で機械学習とか高度な事もできる。
>>69
プログラムとは目的があってそれを実現するための手順
ピタゴラスイッチはプログラムだけど紙にコード書きこむのはプログラムじゃない >>72
>69じゃないけど、手続き型言語じゃ簡単なのしか紙面では追えない(基本情報の試験とか、コードから実行結果を予想する事自体は不可能じゃない)けど、
Haskellなら多少複雑になっても計算を進めるみたいにして実行結果を求められるよ。 Pythonは昔「こんにちはマイコン」とか本出してたゲームセンターあらしの作者のすがやみつるって人が、
「こんにちはPython」って本最近出したけど、あの人もうおじいちゃんの筈だから
基本的なことはおじいちゃんでも教えることが出来るくらい簡単なのかもしれないね。
>>70
そういう御託やら薀蓄じゃなくて「Pythonってどうやって支持者集めたんだろうね」を
求めてる質問なんだが? パソコンでライブラリAPI使うのはプログラミングじゃないので〜
>>77 プログラミングって問題を解決するためのツールだぞ、利用できるものは何でも使って早く安く解決するのがプロだよ。
1から手作りしてるのはただのプログラミングのお勉強。 逆にわざわざフルスクラッチでゼロから作るメリットってなんかある?
>>66
ブームとなったAI絡みにのれた、というのが大きかったのでは
それを扱う言語の中では汎用性が高かった
昔は日本だとR言語>>Pythonだったが >>1
質問させてください。
質問内容は初心者はどのプログラミング言語からはじめたらいいのか?です。
色々ググってみると、
1 求人や受託案件から逆算して○○か□□パターン。
2 自然言語のおいてのラテン語にあたるC言語、C言語をものにすれば将来的にもつぶしがきく
3 初心者だから簡単な言語、とにかく簡単な言語△△か××パターン。
4 小学生もプログラミング教育がはじまったから小学生向け教材の◎◎か●●パターン。
5 コンピューターは機械語しか理解しない、機械語から勉強すればコンピューターの動作原理から理解でき真のプログラマーになれるパターン。
こんな感じでした。
1は今のところIT系の業界に就職転職する予定はないのでパス。
2も今の段階ではイージーに始めたいのでパス。
4は簡単に見ましたがプログラム学習が主目的で実際に使えるプログラムができるのか?が不明なのでなるべく避けたい。
5はディープな世界なので後回し。
という感じで3だと思います。
やりたいこと(ゲームを作りたいなど)は特になく単純に作って動かして修正してまた動かしての中で日々の役に立つものができたらいいなくらいの気持ちです。
おすすめ言語を数個教えてください。 >>83
実行する環境も書かずやりたいことも無いのにオススメ教えてって無理
プログラムは誰にでもできるけど、やりたいことや目的に沿ってやっていくことが勉強になるから
それがなければモチベーションが続かないので上達しないし止めといた方がいい >>83
五択がよくまとまってて好感がもてる
どういう言語がいいかは「日々の役に立つもの」のイメージ次第 >>83
Pythonでいいんじゃね?
私の真似をすると、工業高校生が使うポケコンBASICとかあるけど。
※Visual Basicとは全く違う
今の時代ならPythonにするかな。
簡単だし。実用面もあるし。
Pythonで簡単な計算スクリプトを作成し、スマホに忍ばせておくという簡単なことから始めればいい気がする。
興味が湧いたらガチな開発に切り替えられるし。 >>83
言語というよりプログラミング環境を整え触れることから始めた方がいい
N予備校の入門Webアプリコースお薦め
https://www.nnn.ed.nico/pages/programming/
この中で近年メジャーエディタなVisual Studio Codeの扱いを学べる
言語としてはJavascript/html/cssで、
どうWebがコントロールされているか知れる
VS Code分かったら、PythonやC#なり気になる言語の環境作ってそっち学ぶといい
なおWebアプリに興味あればそのまま進めると仮想サーバー構築まで学べる スマホでも使える言語が良いと思うよ。
Pythonならスマホでも使える。
いつでもどこでも勉強できる。
沢山の回答ありがとうございます。
>>84
> 実行する環境も書かずやりたいことも無いのにオススメ教えてって無理
> プログラムは誰にでもできるけど、やりたいことや目的に沿ってやっていくことが勉強になるから
> それがなければモチベーションが続かないので上達しないし止めといた方がいい
>>85
> どういう言語がいいかは「日々の役に立つもの」のイメージ次第
おっしゃる通りです。作りたいことやりたいことが決まらないと進む道もわからない。
しかしながらイメージするにも地図すらなくイメージすら難しいという悩みがループしている状態です。
>>86
> Pythonでいいんじゃね?
> 今の時代ならPythonにするかな。
> 簡単だし。実用面もあるし。
> Pythonで簡単な計算スクリプトを作成し、スマホに忍ばせておくという簡単なことから始めればいい気がする。
>>88
> スマホでも使える言語が良いと思うよ。
> Pythonならスマホでも使える。
> いつでもどこでも勉強できる。
プログラム言語難易度でPythonは★★、C言語やC++は★★★カテゴリーに入っているので選択肢から除外していました。
初心者向きでもあるわけですね。
とりあえず、Pythonではじめてみます
>>87
こんな便利なネット学習環境があるのですね、月1000円と安い。
自分は本で学習してみることから開始してみます。
みなさん、色々おしえていただきありがとうございます。 >>89 Python なら無料の教材がネットに山のようにある。
電子教材ならサンプルを試すのにもコピペで試せるから効率的。
公式ドキュメントもネットにあるが、全くの初心者だと少し難しく感じるだろうから入門用教材から始めた方が良い。 >>89
1ヶ月後くらいに進捗報告してくれ
この板の平均的住民より日本語能力が高いので期待してる >>89
JavaScriptならパソコン開いてすぐ出来るよ
メモ帳で書いて動かして見ようさ
半角で書いて拡張子HTAで保存後ダブルクリックだけ
<script>
var str = “ HELLO WORLD<br>”; var num =0;
for(var i=0; i<10; i++){
num=i*i;
document.writeln(“[“, num, “]”, str);
}
</script>
超簡単! 未経験なら、Ruby 一択!
他の言語は、挫折確率が非常に高い。
だから、全ての学校は、Rubyばかり教える
そして、ベンチャー企業は、Ruby on Rails ばかり採用する
>>95
rails6がrails5に勝ってる点を教えてくれ webpacker が、デフォルトになった。
Coffee Script が無くなった
AWS に合わせて、DB のリードレプリカ機能。
並列テスト、Credentials, Action Text, Action MailBox
以下に、Rails 6 の本をまとめた
レールは続く】 Ruby on Rails Part21 【これからも
http://2chb.net/r/php/1545146635/117 >>94 javascript はあくまでもscript だから、初心者が最初に学ぶ言語には適していない。 >>97
変更点じゃなくて勝ってる点聞いてるんだけど? ほとんどの言語はCの応用
それとほとんどのアルゴリズム(ループとか)は特定の言語とはほぼ無関係だから言語の学習でそれらを学ぶのは時間の無駄
>>98
ほんとに初心者は環境構築からこけるんさね
PHPやPythonもスクリプトっしょ?で
スクリプト言語の中ではJSが1番取っ掛かりやすいっしょ JavascriptはTypescriptから変換かけたり、
の方が実践的ではと思う
(とか考え始めるとどう学ばせるか悩ましい)
そもそもjavascriptだけ勉強したところでという感じがする
webデザイナーとかならそれでもいいけど
バックエンドも確かにnodeでexpressなど使えば全てjavascriptに統一出来るけど
PHPなどを勉強してからフロントの制御でjavascriptも覚える方が現実的だと思う
変数、配列、繰り返し、条件分岐、関数、クラス、ファイル操作、例外
くらいまではどこぞの言語もほとんど同じなんだから
始めの一歩は書いて動かす体験が出来ればいい
言語選びよりプログラミングで何がやりたいかのほうが先かもしれんね
重要なのは実現できることの違いではなく学びやすさの違い
>>106
CでできるからCがお勧めとはならないよな。その理屈突き詰めれば
アセンブラ読めってなるw
なので遡って >>104 の意見もどうだかなあ。
Cって文字列も char の配列で\0ターミネイトされてますって前提なので
ハードル高いと思う。 全ての学校は、Rubyばかり教える
他の言語は、挫折確率が非常に高いから、
苦情ばかりになって、学校の評判が下がるから、ダメ
そして、ベンチャー企業は、AWS, Ruby on Rails ばかり採用する。
Rails 以外を学んでも、無駄
[53選]国内注目のWebサービス・アプリを大調査!
プログラミング言語、フレームワーク、アーキテクチャの一覧【2017年】
https://employment.en-japan.com/engineerhub/entry/2017/04/07/110000
だから、YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つの言語以外を言わない。
特に、PHP・Java を言わない >>101 スクリプトとインタプリタは違うんじゃないか? >>111
初心者ならわざわざ月1000円でPythonを勉強しなくたって
この御時世Webは避けて通れないんだしJavaScriptで良いのにって話しの流れであって
なんならPythonとJavaScript同時進行で良いし
インタプリタがどうのこうのいうのはプログラムの一種でしょ?的な?
既にあるのものをあえて使わずに
ぶっちゃけインタプリタを作り始めるのにいい言語て何
ってんならC言語やるしかないだろうさ
PythonはLinuxの勉強にもなるから良いけど
APIとライブラリの組み合わせ最適解だけを求めるような
MITのSICPの嘆きと紆余曲折もわからなくは無いよ。
小学生は日本語を習うのに平仮名からやるようなもん
だけどスクラッチよりスクリプトの方がよかないか?
VSやらUnityやらのポトペタ系ビジュアルプログラミングの弊害の方が気になるので
だから始めの基本パターンくらいはスクリプト言語で良いんじゃないかな?と言いたかったんだ。 >>108
ほとんどの言語はCの応用なので
あとアセンブリ言語やるのも悪くない 真面目に習得考えたらやることはやらないといけない
というかハードウェアの知識すっ飛ばして初心者向きだなんだのいう傾向って何なん?
オートマや自動運転ならエンジンやら内燃機関やらモーターの知識は不要という風潮
新人研修なんて無駄は省きたいから即戦力で動かせれば良いよね
APIとライブラリの使い方さえ覚えれば良いのでブラックボックスのおまじないも気にしてはいけません
>>108
いや、Cはおすすめだがアセンブラはおすすめではない
Cは他のモダンな言語に似ているが、アセンブラはどんな制御系でもまるで違う C#やJavaまではCに似てる言語が多かったけど、GoもRustもPythonもSwiftもCと似ても似つかないよね。
流石にCの影響も近年は薄れて来た気がする。
>>113
> ほとんどの言語はCの応用なので
そんなことはない >>112 1000円って何やねん。 無料だぞ。
javascript は、HTML , CSS 込みのWeb制作なしでは語れない。
Webを作るならさらなる高級言語で作り、javascript はおまけみたいな物。
普通は元となる高級言語を覚えた後でWeb制作に入れば簡単。スクラッチって何やねん。
Python は、
1+2 と入力するだけで
3と言う答えが出てくるんだぞ。 インタラクティブ シェルが使えるってだけならPerlもRubyもHaskell(ghci)も使える。
runghcでスクリプトとして動くし、ソースコード見られたく無いから実行ファイルで配布したいならghcでコンパイルすれば良い。
PureScript使えば、ほぼHaskellな文法で書いてコンパイルすればJavaScriptのコードを吐く。
Haskellのキラーアプリはプログラミング言語のPerl。
5か6だったと思うけど、Perl本家より早く最新のPerlの処理系完成させた事で2006年当時は注目された。
何故・・・。
大規模開発に向く静的型言語と、手軽な動的型言語(LL)の良いとこ採りなのに・・・。
速度こそコンパイルしてやっとLLと同程度か少し速い程度だが、定数に出来るところは定数にする様な最適化(CやC++で多い)が実装されれば劇的に速くなるはず。
(式に対して効く最適化だから、式と文に別れてる言語より最適化の効果が大きい)
Haskellは理論だけが先行していたマルチスレッドと最適化の内、マルチスレッドはほぼ理論に追い付いた。
後は最適化が論理に追い付くのを待つだけ。
>>123
ほんとに良いとこ採りなのか?
単に実用性を後回しにした理論先行の言語設計なだけでないの? 5chで曖昧に質問された前提で答えるならJS
おま環を避けつつGUI可のお試しプレイ(jsfiddleとか)を紹介出来るので後が楽
勧めるだけの無責任野郎にはなりたくないが
かといってネット越で環境構築のフォローとかストレスしかない
>>124
速度以外は言語としては良いとこ採りで間違いない。
注目集めた当時、モナディウスと言うシューティングゲーム作られたりと実用面も問題は無い。
Haskell信者がGUIライブラリが関数型っぽくないとか言って作っては飽きてを繰り返すのでライブラリやフレームワークが揃わないのが問題。
そう言う仕様の普通の言語として普通に使えば良いだけ何だけど・・・。
鯖アプリとかHTMLを加工して返す様なのは得意だからWeb系に本来は強くて、Haskellで仕事してるプログラマーの記事を読んだ事あるけど、
何から何まで自分で作る覚悟があれば作ってしまえばすごく使い易い言語との事。
言語ではなく、コミュニティの問題なのよね・・・。 >>126
これまで見てきたhaskellを推す人の論調って、下手な営業のセールストークみたいに勢いと雰囲気だけで自分の論を押してくるだけで、相手の疑問を解消して良さを理解してもらおうと言う視点が欠けてる人ばかりだったから、未だに理解しがたいなと思う。
良いとこ採りというけれど、具体的にどこがいいのだろうか。都合のいいところだけを見て良いとこ採りできてると思い込み、その裏では多くのデメリットもあるんでないの?そして一般の人にとってはそちらこそ無視できない重要な差異なのではないだろうか。思うぞ。
普通の言語として普通に使えばというが、その普通が困難なことだと言うことに気づいてみなやめてしまうのではないの?けして飽きっぽいからやめてしまうと言う訳ではないと思う。
確かにhaskellで書きやすいパターンの利用例はあるだろうが、別のケースでは他の言語で簡単に書けるのに何でhaskellではこんな面倒なことしなければならないのと言う場面も頻繁にあるのではないの?
ダラダラかいてきたけど、言いたいことは、安易に良いとこ採りだなんて言えるような代物ではないのではないか、ということ。 >>113
カッコの開きと閉じとかセミコロンとかダブルクォートを
似せてるだけじゃね?
俺程度の頭じゃよくわからんけど、perl なんか言語に
詳しい人が見ると LISP そっくりらしいし、たぶん見た目を
Cに似せてるだけで、中身は違うと思う。 >>123
Haskellって結構速いという話だったような気がするけど、LL言語よりちょっと速い程度なのか。
最適化が最大限利いたらどこら辺までいけるのかな。
C/C++並は無理にしても、Rustに迫るくらいのパフォーマンスは出るん? 関数型なら、Ruby 風のElixir で良いだろ。
パイプラインで、メソッドチェーンできる
処理A
|> 処理B
|> 処理C
今までメソッドチェーン出来なかったの?
え?できてた?
じゃあ出来てるものを何故パイプラインでやるの?
え?流行りだから?
あっ、そうやって意味もなく無節操になんでもかんでも流行りを適当に取り入れてって収拾つかなくなる文化の言語でしたねwww
>>130
exlixirのは関数型言語のパイプラインと違って、シンタックス的にはUFCSと同じ
「メソッドチェーン」でしかないよな。
パイプライン演算子じゃなくて普通にドットにしておけばよかったのに。 c言語の動きはその後どんな言語使っても結局意識する部分多いし、やって損にはならんもんだと思うがな。
>>134
プログラマになるならどこかでやるべき言語なのは間違いないけど
入門向けではないと思う >>132
Ruby君といつもの粘着君だからスルーしとけ
特に粘着君は知ったかバレしてすぐ荒らすから >>127
うーん・・・。
言語としてのデメリットはコンパイラ言語にしては遅いくらいなんだけど、
純粋関数型言語って言うのに拘り過ぎてライブラリを既存のGtk2hsやWinAPIを使いたがらないとか、
フレームワークを関数型言語に相応しく!ってなかなか開発が進まない事かな。
純粋関数型言語ってネーミングに振り回されなければ、バグを良く洗い出してくれるしテストし易い、コンパイラ言語なのにLL並に型を書かなくて良い、良い言語だよ。
まあ、遅いのと周辺ツールが揃ってないってだけで致命的だけど・・・。
実用重視のユーザー(プログラマー)が増えれば変わると思うんだが・・・。
確かにまだ理論先行な言語ではある。
でも、言語としては後は最適化だけだから使わなくとも気にはしてて欲しい。
>>129
マルチスレッドし易い(容易にシングルスレッドのコードをマルチスレッドに書き換えられる)から、同じコード量でって意味なら速い。
(昔はここも遅延評価が邪魔してたけど、ライブラリ側で解決)
ハードに近い処理もライブラリ駆使すれば出来なくは無いから、シングルスレッドでも本気出せば嘘では無い。
ただシングルスレッドの場合、HaskellでそこまでするならCで良い。
シングルスレッドの最適化が解決すれば、高級言語最強になれるし、理論上はそれが出来るから追いかけてる。 >>116
そのくせ新入社員には何の意味もない雑用や営業からやらせる
使い捨ての営業はそれはそれで別口で雇う こんなスレでガチで布教しようとしても無駄なんだけどな
やる気のある人は自分で調べて始めるし、やる気も調べる気もない人は何見ても始めたところで続かない
そんなところで「これは素晴らしい言語」とか「初心者に最適」って言っても受けとる側から見たらみんな詐欺みたいなもの
>>140
そうは言っても初心者向け=学習用だろう。
覚える概念が少ないHaskellはその点では評価出来る。
高級言語の目指すべき姿に一番近いと思う。
(高級言語が登場して何十年も経つのに、何故、未だに人間様がコンピュータの仕組みを気にせにゃならんのだ?)
ぶっちゃけ、スクリプトが初心者向けって言われてるけど、型を書かないで良いとか、リストみたいな構造を持った値を直接表示出来ないとか、
後はメモリのある限り大きな数を扱える多倍長整数は自分でライブラリ用意(自作orどっかから持って来る)しないと使えないとか、
コンパイラ言語とスクリプト言語の違いってその程度。
(Haskellはコンパイラ言語なのに、これらの問題は無い)
その程度で使い方自体はコンパイラ言語でも変わらんし。
だったら、やりたい事に向いた言語に始めから取り組めよって思う。 そう言う意味じゃ、上で出たC#が安杯じゃないか?
Pythonでもpipやらanacondaでライブラリ入れようとして失敗します。どうしたら良いでしょう?的な質問良く見るし、
ライブラリ全部入りのC#は文法は初心者向けじゃ無いけど、バランス良い。
>141じゃ無いけど一票入れよう。
windowsならC#が一番環境構築が楽かもな。次にjavascript
pipに失敗するのはプロキシとかじゃない?
学校や職場でやると失敗するやつ。
C#は様々なパラダイムを内包しているから、プログラマーにはオススメしたいけど、初心者には難しい気がする。
いきなり、クラスとオブジェクト指向の本質を理解できるか疑問。
C言語やPythonみたいにクラスを使わずに手続きを記述できないという点が気になる。
俺らだったら難なく覚えられるだろうけどさ。
pipは成功したけどimportして使おうとしたらエラーになりますってのもかなり頻繁に見かける
他の言語ではなかなか見られない現象
>>145
初心者には環境の構築とか、すぐ動くものを作れる方が重要だろ
その点、C#だとVSにしろunityにしろ、インストールするだけでビルドやデバッグの環境ができるし
プロジェクトを作るだけでビルドできる雛形が出来る ファイルひとつではできずプロジェクト作らないといけないの?
ビルドしないと動かない?
インストールも必要なの?
javaみたいにブラウザでF12押してすぐ動かせないの?
F12押せばすぐJavaを実行できるブラウザがあるのか
珍しいブラウザだな
>>147
俺のC#だとクラスを使わないとコンパイルエラーになるんですが。
C#Scriptでもない限り、文法的に無理じゃね?
>>151
Java11で廃止されてるからオススメできぬ。 htmlファイルひとつで動くJavaScriptの間違いじや
>>154
C#Scriptを動かすためにはC#Scriptを動かすためのプログラムをC#で書かないといけないんですが。
そもそも、C#Scriptって有名か?
自分の製品に組み込む用途以外で見かけないのだが...俺が知らないだけで何らかの業界で使われている可能性は否めないけどさ。 Unityググってみたけど、なるほど。
そこで使われているのか。
自分はフリーのゲーム開発フレームワークが充実していなかった時代に同人ゲーム作ってたが...良い時代になったな...。
自分はゲーム開発に興味を持って、その流れでアプリ開発技術者になったけど、やっぱり始まりはそこなのかな?
そういう意味ではゲーム開発に強い言語を教えるのも手なのかもな。
Azure Functionsでもサポートされてるよ
まったく初心者向けではないけど
>>157
ゲームを作るにはプログラミングの総合力が要るからやるべきなんだけど
今やスマホゲームなんて美麗で機能テンコ盛りで無料でダウンロードして遊べてしまうので
個人でのゲーム開発はモチベーションが続かない >>109
にも書いたけど、
ただし、Unity は、AWS でも採用しているように、スマホアプリで使う。
今後、iOS, Android のネイティブ開発と、Unity のシェアがどうなるか?
まあでも、初心者向けではない Unityは初心者向けだと思うがなぁ
Youtubeとかに上がってるのを単純に真似するだけで、簡単なゲームができてしまう
俺はこれより簡単な開発環境を知らん
>>161 それはプログラミング言語ではなくツールじゃないの? そうだな。Unityの分はC#に合算しとけばいいだろう。
>>145
クラスやオブジェクト指向の本質は、ライブラリ使ってる内にライブラリ設計者の思想を読み取って自然と身につくと思うんだけど、
入門書が猫クラスと犬クラス、その共通の親クラスとして動物クラスとか書くから変なのが量産されるのがね・・・。
オブジェクト指向に限らず、機能毎に分類するものなんだけど。
Haskellの型クラスはオブジェクト指向のクラスと違う概念だけど、機能で分けるのは共通で、犬猫クラスみたいな変な例がないからクラス設計の参考になるよ。
あと、C#やJavaがmain(またはMain)をクラスで包むのはオブジェクト指向言語として、よりオブジェクト指向プログラミングを取り入れた結果。
C++みたいにどんなにオブジェクト指向で作ってもmainだけはクラスに属さないのは再利用性に限界がある。
C#やJavaはmainを含む完成したプログラムもクラスとして再利用出来る。
(新しいプログラムのmainを起動させて、クラスとして利用するプログラムのmainは起動させないと言う使い方)
とは言え、main起動させないならC++とどう再利用性で違いが有るのよ?って言う、思想的な拘り先行で終わった感は否めない。
そう言えばC#6でCのHello Worldより長いのが許せないって短い書き方出来る様になってなかったっけ? Haskellの型クラスに近いC#/Javaの概念はインターフェースだろ?
そのインターフェースも分類はクラスとやり方は一緒でしょ?
でも、Haskellの型クラスはインターフェースとも違う。想像だけど、群論や圏論の同型とかの概念使って
メソッド(関数や演算子)の書き方もこの型クラスのインスタンスはこう言う書き方って決まってるのか、自動化出来る。
(こういうのはオブジェクト指向でみた事ない。Lispのマクロとかでは有るみたいだけど、オブジェクト指向じゃない)
また、インターフェースと違ってメソッドにデフォルトの定義があって、例えばEq型クラスは==か/=のどちらかを定義し直せば他の(Eqが提供する)メソッドは書かなくても動く。
(どうしても自力で書く場合でも、全部は書かなくて済む。こう言うのってオブジェクト指向だと抽象クラスとかだよね)
Haskellの型クラスはオブジェクト指向のクラスやインターフェースと違って、自作の型にderivingで既存の型クラスが備えるメソッドを自動で作ってくれる。
オブジェクト指向のtoStringに相当するshow関数をいちいち書かなくて良い。
data List a = Empty | Cons a (List a) deriving (Show)
main = (putStrLn.show) (Cons 1 (Cons 2 Empty))
out:
(Cons 1 (Cons 2 Empty))
derivingしない場合はオブジェクト指向言語と同様、自分で書く。
例はShow型クラスと同じ機能のMyShow型クラスを自作して、Bool型に関数を書いてる。
(自作リストみたいな構造を自力で文字列にするとかだと大変だよね・・・)
class MyShow a where
myshow :: a -> String
instance MyShow Bool where
myshow True = "True"
myshow False = "False"
こういう難しい所は言語にお任せ出来るから、Haskellは周辺環境はともかく、言語としては初心者向け。
>>161のレスでUnity+C#ならゲームが簡単に作れるってのが言及されているが他の言語は具体的に何ができるか書けないの?
「自分の紹介する言語は機能的に優れている」とかより「言語ですぐに何ができるか」の方が理由づけとしてはるかに大きいのに 初心者はWindowsだろ。WindowsはC++製だろ。Windowsでなんでも出来るから、C++最強!
Unityバカが言ってるのはこういうこと〜
>>109
に書いた
YouTube で有名な雑食系エンジニア・KENTA が、初心者はRuby から始めろって言ってる。
それで、全ての学校は、Ruby on Rails ばっかり
マコなりの所が80万円とか、
1週間のイナズマコースは、20万円とか
東京フリーランスのとだこうきが、デイトラで10万円とか、価格破壊を起こした HTML5でJavaScriptするならインストール不要。
ローカルストレージでデータベースや
canvasタグを使ってお絵描きから3Dゲームまで
書こうと思えばメモ帳でも始められます。
>>171
メモ帳で3Dゲームをすぐ作れる初心者なんていないと思うが (ソロバンやろうと思う)ぶっちゃけ始めるのにいい言語て何?
(ピアノ演奏させてみたい)ぶっちゃけ始めるのにいい言語て何?
(webアプリ作ろうとしたら)ぶっちゃけ始めるのにいい言語て何?
(お絵描きしたいんだけど)ぶっちゃけ始めるのにいい言語て何?
(3Dゲームで遊びたいんだが)ぶっちゃけ始めるのにいい言語て何?
なんだって当て嵌まるだろう?
>>176
言語よりライブラリだな。
もしくはプログラマーがデータ(構造)の規格書に金払えるか。(8-10万超)
または自力で解析するハッキング能力があるか。
プログラミング能力とは別種の能力。(人脈だったり検索能力だったりの、必要な情報に辿り着く能力)
ビットマップでの画像処理は入門書にもあるが、jpegやgifで画像処理する入門書はほぼ無い。
表示するだけなら出来るが。 承認欲求じゃねえよ
「意見が違う人同士と対話する能力」がこうも軟弱な人間ばかりで
ウンザリしてんだわ
日本オワッテル
俺もこの辺にしとく
板で見かけるほとんどの言語はいずれ使われなくなる。
しかし、C/C++はそうではない。
ISOだから。
ISOのサザエをアチチチッペンっ
パっナッポーアッポーぺっ・・ワイルドだろお
>>183
そうそうModula-2やBASICもISOだから使われなくなったりしてないもんねー 残念ながらそういう嫌味は素で通じない連中しかここにはおらん。
>>183
C/C++が使われ続けるのは同意だけど、ISOだからじゃ無いよ^^;
言語とライブラリがはっきりと分離されてて、言語単体でメモリ弄れるから。
OS作る時とか、printfも使えなくなる。
でもRAMやVRAMに直で書き込めるから、ハード知ってれば問題無い。
他の言語と違って、ライブラリ無いと何も出来ませんって言語じゃ無いから廃れない。 メンテしていく意思もないならISO規格になんてするなよな、ruby。
実装と規格の乖離が大きすぎて役に立たない。
JavaScriptはISOじゃなくてECMAだから全然使われてないよな!
どの言語をやるべきかは何をやりたいかによるって言われても、
今の段階ではそれは決められないしなぁ
だから、何すれば分からないならHaskellだって。
データ構造やアルゴリズムの勉強にこれ以上分かり易い言語は無い。
Haskell でクイックソート
qsort [] = []
qsort [x] = [x]
qsort (x:xs) = qsort [s | s <- xs, s < x] ++ [x] ++ qsort [b | b <- xs, x <= b]
例:
qsort [3,5,1,4,2]
= qsort [1,2] ++ [3] ++ qsort [5,4]
= qsort [1] ++ [2] ++ qsort [] ++ [3] ++ qsort [4] ++ [5] ++ qsort []
= [1] ++ [2] ++ [] ++ [3] ++ [4] ++ [5] ++ []
= [1,2,3,4,5]
アルゴリズムの動きが分かりさえすれば、その上で普通の言語は配列だから・・・と、
考えて行く方がいきなり普通の言語でアルゴリズム学ぶより挫折し難い。
>>195
世の中の実用的なプログラミング言語のほとんどが手続き型、オブジェクト指向なことを考えたら、プログラマを目指す初心者がhaskellから入っても「変な癖」を身に付けるか、早々に挫折するだけだと思うぞ。
変な癖というのはhaskellが悪いものだといってるのではなく、現実で直面する手続き型でのプログラミングで大きなギャップに苦労するだろうということ。
現時点ではhaskellは、数学的論理的思考をする際の道具か、好事家のオモチャの側面が強いと思うぞ。
世の中に初心者向けの情報や身近な教えてくれる人がほとんどないhaskellが、初心者に適切だということは現時点ではあり得ないと思う。
ただ、数学好きの人の論理的思考のオモチャとしては向いていると思う。実用的な目的でプログラミングを習得したいという一般人に向けて勧めるようなものではない。 Pythonが首位維持--IEEE Spectrumプログラミング言語ランキング
2019-09-13
https://japan.zdnet.com/article/35142590/
IEEE Spectrumが発表した最新のプログラミング言語人気ランキング2019年版では、Pythonが引き続き首位となり、その座を盤石のものにした。
こうしたランキングは、ほかのプログラマーがどんな言語を使っているのかを知ることが難しい中、開発者が各言語の人気について理解するのを手助けすることを目的としたものだ。
略
米国時間9月10日に発表されたIEEE Spectrumの年次ランキングでは、Pythonの100のスコアに対して、2位のJavaのスコアは96.3で、その差は広がっていた。3位のCは94.4だった。C++は87.5のスコアで4位にランクダウンし、5位にスコア81.5で統計処理用の言語である「R」が入った。 >>194
何をやりたいか決められないなら
なぜプログラミングを学びたいのか?という問いに答えられればいいよ 中国雑技団に対抗できる日本の団体って、じつはチアリーディングなんですよね。
アメリカの競技のような印象もあるのですが、日本の女子高生が熱を入れすぎ捻じ曲げた結果、もはや往年の面影は有りません。
近年では、成人競技に自衛隊が関わることもあり、格闘技の様相を呈しています。
スタンツと呼ばれる人間ロケットでは10Mを超えて上空にぶっ飛ばすこともあるそうです。
この競技にもはや芸術性は無く、技と力の応酬です。
そういうわけなんで、私はあえてC++をお勧めしたいですね。
て、C++やるくらいならJavaでいいってなる
C++はWindowsのフレーム操作が難しすぎる
女子高生が空に打ち上げられる様は、まさに忍者と言えます。
C++は面白いので、飽きっぽい僕でも、50年続いています。
>>196
アルゴリズムなんて論理的思考そのものだが・・・。
むしろアルゴリズムと普通の言語のギャップを埋める緩衝材になるんだが・・・。
関数型言語にかぶれるのは危険だが、言語各々の文化を尊重する様にすれば変な癖は付かないよ。
むしろ正しい手続き型言語のプログラムは数式に置き換えられるのを実感出来る。
(チューリング等価だから当たり前と言えば当たり前なんだが、動かせる数学と言って良いHaskellに変換出来るなら、数式にも変換出来る)
変換出来ないという事はバグがある。 最強言語ランキング
Python>C♯>JavaScript>C/C++>>>TypeScript
こんな感じだろ
他の言語はゴミ
マシン語は他言語と比較にならないくらい偉大なので、
敢えて書かなかったのだろう
webassembly が普及してくればJava の存在価値は無くなるだろうな。
>>208 高級マシン語 WebAssembly
多分どんなコンパイラからもWebassemblyのバイナリを吐き出せるようになる。
実行すればJavascriptやJavaよりも早くなる。
ブラウザさえあれば、クライアントのマシン環境に依存しないで全てブラウザが吸収する。
PythonインタプリタですらWebAssembly で動いてる。 クライアント環境に何もインストールすることはない。
Intel , Arm ... どんなCPUでも動く。 レールは続く】 Ruby on Rails Part21 【これからも
http://2chb.net/r/php/1545146635/118
米国の平均年収では、
Ruby on Rails が、125,000 ドルでトップ!
Node.js が、90,000ドルで最下位
ただし、Railsの求人は、Node.jsの半分しかない。
Railsは、GitHub, Airbnb, Shopify など、巨大企業が多いから、年収が高いのかも
>>194
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則
Pythonから始めても、初心者は仕事が取れないから無意味 PythonがJavaに迫る--TIOBE最新プログラミング言語ランキング
2020-10-13
https://japan.zdnet.com/article/35160679/
TIOBEの最新のプログラミング言語人気ランキングによれば、Javaの人気は10月も引き続き低下し、世界で2番目に人気があるプログラミング言語の座をPythonに奪われそうになっている。
もしPythonがJavaを抜けば、2001年にTIOBEがプログラミング言語人気インデックスの発表をから始めてから、初めてJavaが3位以下に落ちることになる。
TIOBEの最高経営責任者(CEO)Paul Jansen氏が述べているように、このランキングの1位と2位は、20年に渡って常にC言語とJavaが占めてきた。しかし、生まれてから25年になるJavaの人気は「過去最低」に近づいており、2019年10月に比べ評価が4.32パーセントポイント下落している。
Jansen氏は9月にも、Javaの人気は前年比で3.81%下落しており、「大きな問題」にぶつかっていると述べている。Pythonが生まれたのは1991年だが、最近では、データサイエンティストによる利用が増えたことや、機械学習の普及によって人気が上昇している。
TIOBEの人気インデックスは、複数の種類の検索エンジンで、各言語に関して検索したときのヒット数を元に算出されている。
プログラミング言語の人気ランキングは、IEEE Spectrum、RedMonk、GitHub、Stack Overflowなどからも発表されており、TIOBEのランキングはその中の1つだ。インデックスの算出方法はそれぞれ異なっているため、ランキングの結果も必ずしも一致しているわけではない。 PythonってAIなんかの豊富なライブラリが強みなんだよな
でも実行速度は超遅いし記述スタイルは癖が強すぎるし、あまりこういうのに普及してもらいたくない
もうJavaやC#にAIライブラリを補強して再浮上してもらいたい
・Pythonには永続的なスコープの混乱があります。
私の知る限り、これはvan Rossumが最初は字句スコープを理解していなかったため、間違っていたためです。(これはPythonに固有の問題ではありません。初期バージョンのスクリプト言語ではかなり一般的なようです。)
元々、Pythonは動的にスコープされていましたが、RMS以外の誰もが間違っていることに同意します。
その後、動的スコープを廃止しましたが、内部スコープが外部スコープからの変数を認識できないようにしました。
これは、おそらくブロック構造化言語では奇妙なことです。
これで、内部スコープは外部スコープを見ることができますが、それらを変更することはできません。
これは、おそらくオブジェクト指向言語では奇妙なことです。
これは機能であると主張する人もいるかもしれませんが、それは実装の偶然です。
彼がそれを修正するとき、彼は何か他のものを壊すだろうと私は確信しています。
・David Parnasは、30年以上前に情報隠蔽を発明しましたが、それは「非Pythonic」であるため、PythonはおそらくFORTRAN2以降のプログラミングにおける最大の進歩を欠いています。
・eval アルファ等価性を破ります—つまり、変数の名前を任意に変更することはできません。
これは、一部の変数の出現が文字列に隠れて、Pythonのバインディング構造が決定不能になる可能性があるためです。
・Pythonは型指定されていません。
つまり、事前に簡単に検出できる大量のエラーは、発生するまでPythonでは検出されません。
一部の人々はそのやり方を好み—そして多くの労力を注ぎますが—
しかし、それが特定のアプリケーションにとって誤った機能であるかどうかを常に検討する価値があります。
・構文上の空白は便利ですが、コード生成が必要以上に難しくなります。
これは解決するのが難しい問題ではありません。
Haskellでは、構文上の空白、または中括弧とセミコロンを含む同等の構文を使用できます。
1つは人に、もう1つはメタプログラミングに適していますが、両方をサポートしない理由はありません。
人々がこれを要求したとき、Pythonの実装者がそれについて本当に気が狂っていたのは助けにはなりません。
(from __future__ import braces を試してみてください)
・lambdaの本体をステートメントではなく式に制限することは恣意的で面倒です。
変数の宣言と割り当てが式ではなくステートメントであるということは、恣意的で煩わしいことです。
ステートメント/式の区別は恣意的で煩わしいものです。
・「[ハッシュテーブル]は完全なデータ構造です。」
Pythonは、他のテーブルベースの言語と同様に、積和(代数的)データ型がより適切である多くのことに「マッピング」を使用することを勧めています。
これは非効率的ですが、さらに重要なことに、エラーが発生しやすくなります。
冒頭のPerlisの引用を続けると、「プログラマーは、彼らの創意工夫と論理によってではなく、彼らの事例分析の完全性によって評価されるべきです。」
Pythonが適切なデータ構造をサポートしていないため、ケース分析を隠すプログラム構造が促進されます。
訂正:Andrew Cookeは、名前付きタプル(http://docs.python.org/library/collections.html#namedtuple-factory-function-for-tuples-with-named-fields)がこの問題の一部に対処していると指摘しています。
そうは言っても、私はまだPHPよりもPythonを使用したいと思っています。
しかし、それは私がマクドナルドよりもジャック・イン・ザ・ボックスを食べたいと言っているようなものです。
少し味が良いかもしれませんが、それでもかなり悪いです。 >>221
lambda問題に関しては、対案出したけど潰されちゃったんだよね
>>220
>>・lambdaの本体をステートメントではなく式に制限することは恣意的で面倒です。
>>変数の宣言と割り当てが式ではなくステートメントであるということは、恣意的で煩わしいことです。
>>ステートメント/式の区別は恣意的で煩わしいものです。
「クロージャって何がいいの?」スレから引用するよ
http://2chb.net/r/tech/1415419907/197
>そして、この問題を解決すべく数多くの提案が出された
>それら提案の中には、Ruby のブロックを真似しよう(similar to Ruby's blocks)、というものまであった
>しかし残念ながら、これ以上続けても収束しそうもないから議論は打ち切り、とGuido氏が宣言(強権発動?)して終わった
>この顛末をGuido氏は「複数行のラムダは解けないパズル(unsolvable puzzle)」と語っている
なぁに、これら問題(>>218-220)はすべて次世代の Python4 で解決されるから、心配する必要はない
え、後方互換性?、他の言語ならいざ知らず、こと Python に限れば Python3 で「後方互換性の断絶」を経験してる
優秀なPythonコミュニティであれば乗り越えられるよ、全然問題ナッシンんぐ!! Pythonはレガシーでも役に立つからそれでいいんだよ
モダンな言語だと勘違いしさえしなければいい
シェルスクリプトやVBA、Vim Scriptみたいなもの
>>217 Python はプロトタイピング用の言語だと割り切るんだよ。
プログラムが決まってスピードが必要になったら、必要な部分だけCで書き直したりすれば良い。 Jit も使えるし。
しかし、研究用では日常的に実験の連続だから簡単に書き換えてテストできる言語が最適。 だからこそPythonが普及した。
事務の現場でも同じだろ、しょっちゅう法律は変わるし会社内の制度も変わる。 その都度書き換えるのは簡単に越したことはない。
アメリカでは採用条件にPythonができることという会社が増えてきてるらしい。 >>224 Python を社内言語としているモノタロウは、Pythonは開発スピードにメリットを感じ、スピードの遅さはクラウドでスピードの速いコンピュータを使う事で完全に解決できてるという。 クラウドでスピードの速いコンピュータを使うってところを詳しく
>>226 AWSとかを使ってるんだろ。 自社でサーバを使ってた時より早くなってる。 これだけAWSが普及すると、アマゾンに何かあった時怖いな…
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
もし、Goが簡単だったら、最初から勧めるはずw
どう考えても無理だから、Rubyから始める
後の動画でKENTAは、Ruby・PHP・Javaはオワコンって言ってんだが
ミナ、ハスケル!!
ちゃっちゃっちゃっちゃ
ちゃちゃっちゃちゃっちゃ
ちゃっちゃっちゃっちゃ
ちゃちゃっちゃちゃっちゃ♪
goなんて流行らんよ
速いだけとか時代を逆行しすぎやし
文法も気持ちが悪すぎる
何なの?swiftとかもそうだけどこういう普通じゃない書き方って頭おかしいのかと思うわw
いや、もうGoは人気言語だよ
気持ちが悪いとかただのあんたの主観じゃん
goなんて流行らんよ(客先常駐メモリ4GBPC使用のEclipse・Java底辺PG)
うわキチガイが発狂しているw
どこが流行っているのか教えて欲しいわw
需要がそもそも無いやろ
新しい技術ガーwwwとか言っているバカが使ってはみるが生産性が低すぎて
遅れに遅れまくりとかだろwwwwwwwwwww
低能が使うなよ
>>242
こういう新しいものを受け入れられないおじいちゃんがコボラーとかになるんだろうね
早く転職した方がいいよ…… >>242
多勢に無勢みたいになってしまっているのは気の毒だと思うが、
落ち着いて現実を見て頂きたい むしろAI以外がなんでプログラミング板に居るんだよ
PythonのAIに全部任せてるわ