X



ぶっちゃけ始めるのにいい言語て何?

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2020/03/03(火) 17:17:13.89ID:VgWTKanI
ぶっちゃけていいよ
0034デフォルトの名無しさん
垢版 |
2020/03/05(木) 21:58:11.06ID:wTyki8t2
perl,ruby,python比べたらpythonが一番読みやすいだろ。
てかpythonが読めないとか馬鹿としかいいようがねーわ。
いい加減なこと言ってんなよ。
0035デフォルトの名無しさん
垢版 |
2020/03/05(木) 22:00:10.48ID:h922Dn8C
スレタイの答えは
PythonかJavaScriptだろうと思うけど
個人的にはRubyの方が好き
0036デフォルトの名無しさん
垢版 |
2020/03/05(木) 22:01:41.76ID:h922Dn8C
>>33
>for i in range(1, 11): print(i, "even" if i % 2 == 0 else "odd")

こういう行数が少ない程良いみたいな風潮本当にクソ
行数が多少増えても読みやすい方が良いプログラムだ
0037デフォルトの名無しさん
垢版 |
2020/03/05(木) 22:13:28.95ID:xjUGoqkA
Pythonでモダンに宣言的に書こうとすると途端にクソになるのはしょうがない
作者がそういうのにシンパシー感じてないから
0038デフォルトの名無しさん
垢版 |
2020/03/05(木) 23:01:54.00ID:PBcHTAfh
>>33
このデザインパターンは一般的で、Ruby でも使う!

if __FILE__ == $0
# メイン処理
end

$0 は、Ruby起動時の引数に指定した、スクリプトファイル名。
「ruby script.rb」のscript.rb

一方、__FILE__ は、現在評価中のスクリプトファイル名

require 'script.rb'
で呼ばれた場合には、if 内のメイン処理は実行されない

つまり、このデザインパターンにより、メイン処理とrequireの、両方に対応できる!
0039デフォルトの名無しさん
垢版 |
2020/03/05(木) 23:09:22.02ID:2xdYOK8E
>>33
ブロックの終わりを読み違ったことはないなあ
三項演算子も普通の英文に近いからあんまり違和感ない
しかし__main__については同意する、これは聳え立つクソ
0040デフォルトの名無しさん
垢版 |
2020/03/05(木) 23:19:11.64ID:02v2nTqD
プログラミング初心者が初めて言語を学ぶときに最も重要なポイントは

1. プログラミングとはどういうものなのかという形式知を短期間で掴むことと
2. 実際に自分にとって役に立つ小さなプログラムを繰り返し作って形式知を暗黙知化すること

プログラムを学ぶこと自体が目的化してるやつは
上の2つが効率的に実現しやすい言語なのかどうかを
標準の道具立てや公式のチュートリアルやリファレンスを見比べて
自分が気に入った言語を選択するのが一番
0041デフォルトの名無しさん
垢版 |
2020/03/05(木) 23:38:32.34ID:Rgv7/iI/
Python読めないやつはバカですか。

for i in range ...は分かり難いと思ったな、自分は。
index付きの配列の方が素直で理解しやすい。
ranged forのようにindexなしでやれる状況なら、mapとラムダ式(関数)の方がはるかに分かりやすい。

リスト内包表記もPython版はイミフだった。Haskell版(オリジナル)が読みやすい。
が、リスト内包表記なんぞ使わず、map、filterで繋ぐ方が素直かなって思う。
0042デフォルトの名無しさん
垢版 |
2020/03/05(木) 23:59:22.33ID:uRdGlGLB
Haskell。
初心者にこそ分かりやすい。
手続き型言語覚えてからも、バグの少ないコードを書ける。
(Haskellは養成ギブス的な所がある)
0044デフォルトの名無しさん
垢版 |
2020/03/06(金) 08:10:13.53ID:89RQTO1C
コンパイルを通ればバグが無いことを保障される。
マルチプロセッサに自動割り付け。
実行速度がCの8.5倍高速。

欠点が見つからない。
0046デフォルトの名無しさん
垢版 |
2020/03/06(金) 11:05:35.64ID:7d5kGJiP
haskellなんてパッケージ管理でバグって詰むくせにコンパイル通れば大丈夫とかよく大法螺ふけるよな。
0047デフォルトの名無しさん
垢版 |
2020/03/06(金) 11:08:42.08ID:7d5kGJiP
pythonは良くも悪くも言語固有のものは少ないし、とんでもなく平凡だと思うよ。
そういう意味でよいと思うけどね。
イキッた馬鹿はもっとスペシャルなものが欲しいのかもしれんが。
0048デフォルトの名無しさん
垢版 |
2020/03/06(金) 12:20:04.82ID:56NCNxeU
pythonは3になってからなんでもかんでもイテレータ(ジェネレータ)返してきて演算効率的には理にかなってるんだろうけど2ほど直感的ではなくなった
0049デフォルトの名無しさん
垢版 |
2020/03/06(金) 14:02:39.99ID:b1r0EvAr
始めるならバグ対応含め、周りに親切に教えてくれる人がいる言語だろう。

そういう人がいる前提で考えると、Haskellは英才教育っぽくて良いと思うがね。
始めにやっとけば、良い癖がつくし、後で他言語の難しい概念を楽に理解できる気がする。

ただ、実際Haskellから始めました、みたいな人は見たことないから推測の域を出ないけど。

Pythonはその点、教える人もそこから学んだ人も沢山いるんだろうね。
0051デフォルトの名無しさん
垢版 |
2020/03/06(金) 16:45:16.03ID:7d5kGJiP
haskellを親切に教えてくれる奴がどこにいるんですかね?
そんな糞エリート意識持つくらいなら複数言語やりゃいいんだよ。
だいたいhaskellやってることが評価されるってのは構文を理解してるとかそういう点じゃない。
あの評価順序と実際のメモリ上の動作を上手くつなぎ合わせて低レイヤーで最適化できることを
見込まれての評価だぞ。
馬鹿はそういうところをこれっぽっちも理解せずにhaskellを薦めるからタチが悪い。
0052デフォルトの名無しさん
垢版 |
2020/03/06(金) 19:21:17.84ID:myCFvsho
書籍の数とか使える環境とか考えても、やっぱPythonだろうね。
スマホでもキーボード繋いで出来るし、
スマホのちっちゃい画面でも画面分割して、
サイトや電子書籍見ながら写経してたよ。
0053デフォルトの名無しさん
垢版 |
2020/03/06(金) 19:24:55.48ID:56NCNxeU
Pythonは必修ライブラリ辿ってくとほぼCだからなぁw
0054デフォルトの名無しさん
垢版 |
2020/03/06(金) 21:21:01.63ID:n2xpzai7
PythonはRuby/JavaScript/C#/Javaあたりと比べると
リファレンスがどうしようもなく読みにくい

Pythonの質スレ見ても「それくらいリファレンス読めば分かるやろ?」っての質問が多いけど
実際にリファレンスを見ると、初心者には該当箇所を見つけるのがまず難しくて
書き方も初心者には難しいかもなってことが多いんだよね
関数シグニチャに戻り値の型を書いてないのもPythonくらい

例えば配列(Pythonのlist)のところとか各言語に共通する基本要素で比べてみればよく分かる
https://docs.python.org/ja/3/library/stdtypes.html#sequence-types-list-tuple-range
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array
https://docs.ruby-lang.org/ja/2.7.0/class/Array.html
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/
(https://docs.microsoft.com/ja-jp/dotnet/api/system.array?view=netframework-4.8)
https://www.php.net/manual/ja/book.array.php

他言語出身者には習得がトップレベルで簡単な言語だとは思うけど
四六時中質問に答えてくれる人がいない場合は微妙
0057デフォルトの名無しさん
垢版 |
2020/03/07(土) 05:49:23.43ID:L+9bbGiD
>>54
> 四六時中質問に答えてくれる人がいない場合は微妙
ってのが、プログラミングスクールの売り文句っぽいw
結局、初心者とプロの差が大きすぎるんだろうな。
何から聞いて良いのか、何から教えれば良いのか判らない。
0059デフォルトの名無しさん
垢版 |
2020/03/07(土) 09:33:01.66ID:XLWmxUUx
>四六時中質問に答えてくれる人がいない場合は微妙
こんな状況でプログラムを覚えるやつなんかいねーよ。
0064デフォルトの名無しさん
垢版 |
2020/03/07(土) 19:40:09.11ID:meF2wfp3
>>54
AIブーム以前の昔のPythonは
日本語ドキュメントが少なくて流行らなかったね
昔から日本語情報が多かったRubyを今でも読み書きしてる

けど今はPythonの本がたくさん出てるから買って読めばいい
0065デフォルトの名無しさん
垢版 |
2020/03/08(日) 02:16:06.39ID:6M8suKHC
マイナー言語だとドキュメントは英語のやつしかないので
英語のいい勉強になる
0066デフォルトの名無しさん
垢版 |
2020/03/08(日) 02:23:32.74ID:q3PBpoad
マイナー言語を使うメリットは英語上達だな
デメリットは作りたい物をサクッと作れない
0067デフォルトの名無しさん
垢版 |
2020/03/08(日) 02:24:00.18ID:ZuSBaXSz
まさに本末転倒だな!w
0068デフォルトの名無しさん
垢版 |
2020/03/08(日) 06:05:14.61ID:W4hwWNBv
Juliaの日本語ドキュメントは無いのかね
0071デフォルトの名無しさん
垢版 |
2020/03/08(日) 09:09:37.43ID:FKfh6/PX
Juliaはバージョン1.3と称しているが、実質的にはまだ0.xの公開β版だな。
不安定でパッケージをインストールしようとすると、長長しいエラーが表示されて
強制終了してしまうものがあり、グラフも描けない。ちょっと触ってみるには
面白いかも知れないが、実用には使えない作り込みの粗雑さ。このまま始まらずに
消えそう。
0073デフォルトの名無しさん
垢版 |
2020/03/08(日) 11:14:51.91ID:2fZbJlty
google 翻訳ぐらいでも十分に意味が分かるぞ
どうしてもというところは原文を読むだけ
0074デフォルトの名無しさん
垢版 |
2020/03/08(日) 17:11:35.86ID:q3PBpoad
>>71
新言語は不安定で使いにくいのに
やたら持ち上げられるよな
オレカッケーしたいだけで
0075デフォルトの名無しさん
垢版 |
2020/03/09(月) 03:29:35.16ID:OLeJnLFp
>>43
始めるのに良い言語は実用的である必要があるの?
アルゴリズムの理解し易さはピカイチだと思うが。
0076デフォルトの名無しさん
垢版 |
2020/03/09(月) 03:44:25.14ID:OLeJnLFp
>>46
cabalの話なら、stack使え


>>49,51

Haskellはマイナーなので、プログラミングHaskellとかの優秀な入門書に頼る他無い。
0080デフォルトの名無しさん
垢版 |
2020/03/09(月) 11:42:19.42ID:OgnIoX0o
わかりやすい言語なら古典的には basci か pascal だけど
basci はできれば使ってほしくない言語だし
pascal はほぼ滅びたし
プログラムのフローだけだとわかりやすいかもしれないが
型とかオブジェクト指向とか基本ないし
0082デフォルトの名無しさん
垢版 |
2020/03/09(月) 11:59:26.18ID:KfBbpF5w
いやbasic普通に型(class)あるし、オブジェクト指向できるだろ。(オブジェクト指向がいいとも思わんが)
なんでこんなに堂々と嘘つくんだ?
0083デフォルトの名無しさん
垢版 |
2020/03/09(月) 12:20:50.35ID:/tqCXXxX
>>82
BASIC言語系やBASIC処理系はあってもBASICという名前の特定の言語は無いからそれだと何を指しているのかわからない
0084デフォルトの名無しさん
垢版 |
2020/03/09(月) 16:47:44.44ID:GfY425vw
ruby
javascript
html/css
java
scala

これで行け。でも>>1がもし今まで何の勉強もしてこなかったなら何のプログラムも書けないだろう。
0085デフォルトの名無しさん
垢版 |
2020/03/09(月) 21:18:53.59ID:ajCpPJPb
>>80
>わかりやすい言語なら古典的には basic か pascal
その後継がMSのVB(A)とC#なんだよな
もちろんOOとかいろいろ新要素が入ってるけど
0086デフォルトの名無しさん
垢版 |
2020/03/10(火) 00:47:38.33ID:/8wMzNUm
html/css
C
python
scheme


まずはこの4つを勉強すればいい
それでプログラミングの基礎が固まる
0087デフォルトの名無しさん
垢版 |
2020/03/10(火) 09:35:07.61ID:oaoNXGAz
html/cssってjs始めれば嫌でも身に付くでしょ
そして環境構築から言語自体の難易度までどれをとってもJavaScriptが圧倒的に初心者向きだから入門はjsで良い
その後にGoなりWindowsなら.NET系なりの静的型付け入ればいい
0088デフォルトの名無しさん
垢版 |
2020/03/10(火) 12:04:26.35ID:WuDfOjrv
>>78
まあHaskellは仮にも実用言語ではあるけどね。
マイナーだから、周辺環境が整ってない。
ただ、言語としては他人のコード読みやすいし、他人に何やってるか分かってもらうコード書きやすい。
互いに何やってるか分かるのは重要。

あとは手続き型言語でも正しく動くコードは数式やHaskellのコードに置き換えられる。
(逆に言えば、バグがあったら数学的に正しくない)
手続き型言語をやるにしても、色々得るものがある。

フィボナッチ数を求めるプログラム

Python

def fib(n):
 temp = 0
  a = 0
  b = 1
for i in range(n):
temp = a
a = b
b += temp
return a

Haskell(末尾再帰版)

fib n = fib’ n 0 1  
 where
   fib’ 0 a _ = a
   fib’ n a b = fib’ (n–1) b (b + a)
0089デフォルトの名無しさん
垢版 |
2020/03/10(火) 13:48:32.50ID:eonxFH18
>>88
やっぱりアルゴリズムを学ぶのとプログラミングを学ぶのを混同してるねw
プログラミングは数学ではないし
プログラミング初学者にとって何が大事かも理解してない

def fib(n):
____curr, prev = 0, 1
____for _ in range(n):
________curr, prev = curr + prev, curr
____return curr
0092デフォルトの名無しさん
垢版 |
2020/03/10(火) 15:04:20.06ID:YCA0GKqZ
最適化に期待するのが前提なら最初からループで書けやw
0095デフォルトの名無しさん
垢版 |
2020/03/10(火) 15:57:33.71ID:ed/kU6Ic
フィボナッチ数列を再帰で書くと書きやすいし読みやすい
再帰で書くと処理系が自動的にループに書き直してくれるので
速度は変わらない。いいですか?
0096デフォルトの名無しさん
垢版 |
2020/03/10(火) 16:16:11.01ID:uPXabSQ0
そのままブラックボックスの中身を信じろと。。
あ、これは事故るわ。。関わりたくない種類の輩だ。
0098デフォルトの名無しさん
垢版 |
2020/03/10(火) 19:16:05.31ID:VBOOk+mK
>>89
アルゴリズムを狭く捉えすぎ。
目的を達成する為のコード全般アルゴリズムと言える。
本にもあるだろ?
プログラミング=アルゴリズム+データ構造って。
画像処理のプログラムを作るには、画像処理のアルゴリズムだけでも不足で、処理する画像フォーマットの構造を理解しないといけない。
0099デフォルトの名無しさん
垢版 |
2020/03/10(火) 19:21:10.03ID:3BlP5Izm
>>89
PythonやRubyは
もう十分短く書ける構文あるからな!
関数型かというと微妙な気もするけど

それこそプログラミングとアルゴリズムの違いだな
初学者は快適にプログラミングできればいいからな
0101デフォルトの名無しさん
垢版 |
2020/03/10(火) 21:51:52.74ID:eonxFH18
>>98
プログラミング初心者が最初に理解しなきゃいけないのはそこじゃないんだよね
明確な目的もなく漠然とプログラミングを学びたいと言ってるようなやつは特に

初心者に「プログラミング=アルゴリズム+データ構造」って捉え方を押し付けるのは
将棋にたとえると駒の動かし方やルールすら身についてないのに
特定戦法の定石を教え込もうとするようなもん
0102◆QZaw55cn4c
垢版 |
2020/03/10(火) 22:39:27.22ID:7t0MtDjq
>>101
×特定戦法の定石
◎特定戦法の定跡
0103デフォルトの名無しさん
垢版 |
2020/03/10(火) 23:10:27.66ID:YCA0GKqZ
天下のGoogleがディープラーニングの成果のベンチマークに用いたのは囲碁だから定石。
0106デフォルトの名無しさん
垢版 |
2020/03/10(火) 23:56:38.51ID:3ZOnmqiJ
>>88
Haskellでフィボナッチ数列と言えば、分かりにくくてキモいと言われているこのコードだろ。

fibs = 1:1:zipWith (+) fibs (tail fibs)
main = do print $ take 100 fibs
0108デフォルトの名無しさん
垢版 |
2020/03/11(水) 03:10:13.56ID:cObZd09Z
Rubyでfib
def fib(n)
  a = [0, 1]
  n.times{a = [a.last, a.sum]}
  a.last
end
0110デフォルトの名無しさん
垢版 |
2020/03/11(水) 20:01:24.30ID:vu1i9ieU
鶴翼の陣とかミニ中国流とかいろいろあんだろ
0111◆QZaw55cn4c
垢版 |
2020/03/11(水) 20:50:27.07ID:WxBAX/dn
>>110
私は三連星とかをよく打ちますが、でも戦法って気はしないんですよ…
0112デフォルトの名無しさん
垢版 |
2020/03/11(水) 22:32:30.35ID:vu1i9ieU
そんなこと言ったら将棋だって居飛車や穴熊とかの戦法と定跡は別じゃね?
同じってんならもういいや。
0113◆QZaw55cn4c
垢版 |
2020/03/11(水) 23:10:24.07ID:WxBAX/dn
>>112
>>110-111 とかは、そのものずばり「布石」という別の言葉がありますよね、そして布石と定石とはちょっと違う概念でしょう
であれば、たしかに将棋の戦法と定跡もちょっと違う概念ですね

そして
「特定戦法の定セキ」と書いたときに、これが囲碁のことである可能性よりも将棋である可能性の方が高いのではないでしょうか?
したがって >>102
0114デフォルトの名無しさん
垢版 |
2020/03/11(水) 23:20:52.69ID:vu1i9ieU
特定の布石へのよくある相手の対応から始まる定石はあると思うけど?
それとは違うわけ?
「特定戦法の定セキ」の定義ってどっかにあるの?URL教えてほしい。
0115◆QZaw55cn4c
垢版 |
2020/03/12(木) 00:35:50.68ID:6A84lKNn
>>114
だから「特定戦法の定セキ」という言い回しは囲碁的というよりは将棋的、ということなのでは?
0116デフォルトの名無しさん
垢版 |
2020/03/12(木) 00:58:00.31ID:/YIFSAvr
>>101
見返すとたしかに将棋にたとえてるので
定石は違和感があって定跡の方が自然だ

>>102
しかし囲碁だと定石なので
○×式で片付けるのも違和感がある


で、結論としては別にどうでもいいな?

>>101は喩えで使ってるだけで
レスの主旨はアルゴリズムの学習は
後回しでいいというものだから
0117デフォルトの名無しさん
垢版 |
2020/03/12(木) 04:12:42.99ID:aVRNVO+6
企業でも、戦略・戦術がある。
大小・長短期間・抽象具体的

囲碁の武宮は、中央に大模様を作る、厚み重視の棋風の「宇宙流」は、戦法かな?
一方、ナダレ定石などは、定石

範囲の大小
0118デフォルトの名無しさん
垢版 |
2020/03/12(木) 05:05:54.66ID:tL8L8UhJ
>>101が駒の動かし方〜とか将棋にたとえてるので文脈から定跡のほうが自然という、ただそれだけのことであって、
それがなぜ「特定戦法の定セキ」という言い回しは囲碁的というよりは将棋的である、と一般化されるのか分からない。飛躍に過ぎるのでは。晒されていない前提があるとか…
0119デフォルトの名無しさん
垢版 |
2020/03/12(木) 07:45:50.89ID:m823ByL8
ガチでやるならやっぱCからかな。
プログラムのプだけ分かれば良いならpython一択
0120デフォルトの名無しさん
垢版 |
2020/03/12(木) 09:38:31.40ID:lmegWXlF
凡人はpythonできまりかな できるこはCと同じだしね
難しいことは頭いい人にまかせて、実装にだけ集中できるしね
しかし、みんなこれやっちゃうとライブラリ作る人いなくなっちゃうよな
頭いい人は正直pythonしないでほしい
0125デフォルトの名無しさん
垢版 |
2020/03/12(木) 17:41:00.35ID:cdl9Dqe3
結局スタック領域や関数コールのメモリイメージを持つことが大事だと。
ならやっぱcやるしかないな。
0128デフォルトの名無しさん
垢版 |
2020/03/13(金) 13:14:39.45ID:1BdG/sXQ
C#も継ぎ足しまみれの秘伝の仕様になってるしな…
0132デフォルトの名無しさん
垢版 |
2020/03/13(金) 18:35:24.03ID:SdgZi2lA
フリーランスで月100万稼ぐ人が、初心者は(何でもいいんだけど)文法が簡単だから
とりあえずRubyで、と言ってたからRubyでいいんじゃないかな
要はC++とかじゃなければいいのではないか
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況