Rubyに'end'って要らないよな
■ このスレッドは過去ログ倉庫に格納されています
2019/07/14(日) 10:11:47.62ID:aojaqLwq
インデント揃ってればそのままend無くしても読めるし誰かそういうの作ってくれよ
2デフォルトの名無しさん
2019/07/14(日) 10:33:48.36ID:N6Jg+9Qo python
2019/07/14(日) 11:10:09.53ID:gCRXv5+5
インデントを強制するとコードがきれいになると言ってる人がいたら
そいつは素人だと思ったほうが良い
インデントがおかしいのはコードが綺麗かどうか以前の問題。
汚いコードというのは、インデントが正しくてかつ汚いコードだから
インデント程度を正しくした所で、汚いコードが綺麗になるわけがない。
そいつは素人だと思ったほうが良い
インデントがおかしいのはコードが綺麗かどうか以前の問題。
汚いコードというのは、インデントが正しくてかつ汚いコードだから
インデント程度を正しくした所で、汚いコードが綺麗になるわけがない。
2019/07/14(日) 14:57:13.00ID:c03e3aRI
確かにこういうの見るとイラッとする
end
end
end
end
end
end
end
end
end
end
end
end
5デフォルトの名無しさん
2019/07/14(日) 19:07:59.35ID:BEvjoRaR 俺たちのRubyはこれからだ!
end
end
6デフォルトの名無しさん
2019/07/14(日) 21:18:44.46ID:T8EnIfRi ruby並みのオブジェクト指向とpythonのインデントのブロック兼ね備えた言語あればいいのにと思う
2019/07/14(日) 22:50:17.74ID:Og1BOTp4
だから私はPythonです。
2019/07/15(月) 08:08:12.22ID:smxD+vl+
インデント上がればend補完するように最初にテキストを変換すればできるんじゃね?
2019/07/15(月) 11:36:57.10ID:0efQKmCl
python の欠点の一つはブロックの終わりをエディターが
助けてくれない点だ。} があればエディタもそこで終わるのね
とわかって次の行は適切にインデントしてくれるのだが
助けてくれない点だ。} があればエディタもそこで終わるのね
とわかって次の行は適切にインデントしてくれるのだが
2019/07/15(月) 13:49:24.24ID:ZSdcK9vK
>>9
どういう意味?オートインデントするんでしょ?
どういう意味?オートインデントするんでしょ?
2019/07/15(月) 16:52:02.40ID:cUx1XUkY
ブロックを終わらせてインデントを上げたい時にめんどいって意味じゃね
2019/07/15(月) 17:27:21.21ID:5OXgXw2c
まさかbs連打とかしちゃうひと?
2019/07/15(月) 18:08:47.06ID:iDG/5azN
Pythonでウザイ点
1. コードを書く
2. あれ?なんかバグで動かない
3. ちょっと一時的にデバッグプリントいれてみよう
4. ちょっと条件文コメントアウトしてみよう
そういった場合にそこいらのブロックを全部
辻褄が合うようにインデントしなきゃいかん所だ
特にデバッグプリントなんか、あとで消すから
わざと目立つようにインデント壊していれるのに
1. コードを書く
2. あれ?なんかバグで動かない
3. ちょっと一時的にデバッグプリントいれてみよう
4. ちょっと条件文コメントアウトしてみよう
そういった場合にそこいらのブロックを全部
辻褄が合うようにインデントしなきゃいかん所だ
特にデバッグプリントなんか、あとで消すから
わざと目立つようにインデント壊していれるのに
2019/07/15(月) 19:24:55.84ID:ZSdcK9vK
コメントアウトしてフォーマットしたらどうなるのよ?
2019/07/15(月) 19:26:24.83ID:ZSdcK9vK
まぁでもなにはともあれ人によってコードがバラつかない&スッキリして見えるっていうメリットがデカ過ぎてそれ以外のデメリットなんて些細なことになるけどな
2019/07/15(月) 19:49:55.24ID:iDG/5azN
>>14
1. コードを書く
2. あれ?なんかバグで動かない
3. ちょっと一時的にデバッグプリントいれてみよう
4. ちょっと条件文コメントアウトしてみよう
5. くっそインデントが壊れて正しく動かない!
インデント直さなきゃ!
6. よしバグが判明したぞ!また戻さなきゃ!
1. コードを書く
2. あれ?なんかバグで動かない
3. ちょっと一時的にデバッグプリントいれてみよう
4. ちょっと条件文コメントアウトしてみよう
5. くっそインデントが壊れて正しく動かない!
インデント直さなきゃ!
6. よしバグが判明したぞ!また戻さなきゃ!
2019/07/15(月) 19:53:38.49ID:iDG/5azN
>>15
> まぁでもなにはともあれ人によってコードがバラつかない&スッキリして見えるっていうメリットがデカ過ぎて
インデント揃える程度でコードがばらつかないなんてことありえない
それともPythonという言語の矯正がなければ、インデントが
めちゃくちゃになるような人がコードかいてんのか?
> まぁでもなにはともあれ人によってコードがバラつかない&スッキリして見えるっていうメリットがデカ過ぎて
インデント揃える程度でコードがばらつかないなんてことありえない
それともPythonという言語の矯正がなければ、インデントが
めちゃくちゃになるような人がコードかいてんのか?
2019/07/15(月) 20:03:21.96ID:8NxUV1Ol
マジックコメントでこういう事できるならそういう選択肢があってもいいんじゃね?
俺も擬似コード書くときはrubyのendなしバージョンみたいなことしてるわ
俺も擬似コード書くときはrubyのendなしバージョンみたいなことしてるわ
2019/07/15(月) 20:04:23.15ID:8NxUV1Ol
すまん、上の書き込みはコードの矯正云々の意図は全くない
2019/07/15(月) 20:11:18.76ID:8NxUV1Ol
>>16
ちなみにRubyからendだけなくした言語でこの副作用出る?
ちなみにRubyからendだけなくした言語でこの副作用出る?
2019/07/15(月) 20:16:27.28ID:iDG/5azN
フォーマッターが使えないって欠点があるんだよな。
Rubyなど、インデントが崩れていてもブロックの終わりが
わかる言語ではインデントを自動的に直すことが可能だが
Pythonだとそれが不可能
自力でインデントしなくちゃいけない
Rubyなど、インデントが崩れていてもブロックの終わりが
わかる言語ではインデントを自動的に直すことが可能だが
Pythonだとそれが不可能
自力でインデントしなくちゃいけない
2019/07/15(月) 20:37:30.98ID:1T3hWWoF
>>17
みんな様式なんてバラバラだよ
みんな様式なんてバラバラだよ
2019/07/15(月) 20:41:34.92ID:iDG/5azN
>>22
そんなバラバラなものがPythonで矯正ができる?
「Pythonで矯正できる程度」しか揃わんだろうがw
あんたがいるのは初心者の世界なのかもしれんが、
「綺麗なフォームが身につきます」がプロの世界で
大きなメリットになるとでも思ってるの?
そんなバラバラなものがPythonで矯正ができる?
「Pythonで矯正できる程度」しか揃わんだろうがw
あんたがいるのは初心者の世界なのかもしれんが、
「綺麗なフォームが身につきます」がプロの世界で
大きなメリットになるとでも思ってるの?
2019/07/27(土) 23:47:52.42ID:NQ4+UjHL
実績も証拠も無しにプロの世界ハーするのは他板とツイカス底辺だけにしてくれ
25デフォルトの名無しさん
2019/07/28(日) 01:02:47.45ID:hI/w9rrh 二週間も要してそのような感情的な反論しか用意できなかったとは…
あわれだな
あわれだな
2019/07/28(日) 09:55:41.09ID:RdvWWG6J
昨日初見の完全部外者だから詳しいことは分からんよ…
それより学生プログラマっぽい主張並べてないで具体的な事例や実績を聞かせてもらえると嬉しいな
それより学生プログラマっぽい主張並べてないで具体的な事例や実績を聞かせてもらえると嬉しいな
27デフォルトの名無しさん
2019/07/28(日) 10:09:15.81ID:fKd3OMaO 実積ガー事例ガー
具体的な反論が出来ない脳死ww
具体的な反論が出来ない脳死ww
2019/07/28(日) 10:12:04.67ID:fKd3OMaO
> 特にデバッグプリントなんか、あとで消すから
> わざと目立つようにインデント壊していれるのに
アホか デバッグプリントで馬鹿正直にprint直書きする奴があるか
アホと脳死はマジで有害だから死んでくれ
> わざと目立つようにインデント壊していれるのに
アホか デバッグプリントで馬鹿正直にprint直書きする奴があるか
アホと脳死はマジで有害だから死んでくれ
2019/07/28(日) 10:41:21.20ID:RdvWWG6J
2019/07/29(月) 05:27:21.10ID:SgyMtotV
このスレタイに"に'end'"が要らない
=> Rubyって要らないよな
=> Rubyって要らないよな
31デフォルトの名無しさん
2019/07/29(月) 19:16:27.88ID:uvoPAuiT2019/07/29(月) 21:38:12.92ID:CSar0obt
2019/07/30(火) 00:56:48.64ID:ZDjzCSg/
>>32
グロ
グロ
2019/07/31(水) 23:43:12.43ID:5sPzGsnm
せめて } にしとけば良かったのにと思ったけど
あえて end にした理由をRubyの神様が説明してた気もするんだよなあ
どんな理由だったっけ
あえて end にした理由をRubyの神様が説明してた気もするんだよなあ
どんな理由だったっけ
35デフォルトの名無しさん
2019/08/03(土) 01:25:03.21ID:h2usmPVh 忘れた
2019/08/04(日) 04:18:19.87ID:iyBsFCMY
欧米の開発者に完全に見切られた以上
潔いendこそRubyに必要なのでは
潔いendこそRubyに必要なのでは
2019/08/04(日) 09:50:54.42ID:QtBb4WWR
Rubyそのものがいらないよな
2019/08/04(日) 12:31:32.13ID:2O3H5j+1
TypeScript使おうぜ
39デフォルトの名無しさん
2019/08/06(火) 00:20:42.00ID:DJ8Hy2Iw 好みだろ
40デフォルトの名無しさん
2019/08/06(火) 13:25:42.40ID:qXcw9rpr おそらく先がない5つのプログラミング言語
https://insights.dice.com/2019/07/29/5-programming-languages-probably-doomed/
筆頭はRuby
ソースはTIOBEとRedMonkとDiceの求人投稿データ
https://insights.dice.com/2019/07/29/5-programming-languages-probably-doomed/
筆頭はRuby
ソースはTIOBEとRedMonkとDiceの求人投稿データ
41デフォルトの名無しさん
2019/08/06(火) 14:07:51.44ID:O7BMVgZP ネストが深くなるのは自分の設計の問題。
2019/08/06(火) 22:15:45.87ID:pzsqCCUt
Ruby は、アマゾン・Google, Heroku で、採用されてる!
Ruby on Rails 6 (Ruby 2.5 以上)では、GitHub 中心で、
複数データベース(レプリカ)接続の大規模サービスと、
テストの並列実行など、別次元へ行ってしまった!
モジュールバンドラーも、Webpack になりました!
Coffee Script は、無くなった
メール送受信の機能と、
ブラウザの入力フォームが、ドラッグ&ドロップで、ファイルも受け付けるようになった
Ruby on Rails 6 (Ruby 2.5 以上)では、GitHub 中心で、
複数データベース(レプリカ)接続の大規模サービスと、
テストの並列実行など、別次元へ行ってしまった!
モジュールバンドラーも、Webpack になりました!
Coffee Script は、無くなった
メール送受信の機能と、
ブラウザの入力フォームが、ドラッグ&ドロップで、ファイルも受け付けるようになった
2019/08/07(水) 02:41:14.35ID:EMjvOm7K
落ち着いて下さい
44デフォルトの名無しさん
2019/08/07(水) 08:50:14.72ID:+IHOWLDh GitHubのRails離れと、迫りくるMicrosoft
https://yakst.com/ja/posts/5290
> プラットフォーム改造で変わる「Ruby専門店」。今後はGo、Java、Kubernetesへ。
> 昨年始まったアーキテクチャレベルの改革も現在は三分の一ほど進んでいる。
同社はRuby on Railsから離れ、もっと異種混合で使い捨てのきくインフラへとシフトしていっている。
GitHubを「Ruby専門店」と称する同氏によると、GitHubにRubyの居場所はまだあるが、GoやJava、さらにはHaskellの方が多くデプロイされているそうだ。
https://yakst.com/ja/posts/5290
> プラットフォーム改造で変わる「Ruby専門店」。今後はGo、Java、Kubernetesへ。
> 昨年始まったアーキテクチャレベルの改革も現在は三分の一ほど進んでいる。
同社はRuby on Railsから離れ、もっと異種混合で使い捨てのきくインフラへとシフトしていっている。
GitHubを「Ruby専門店」と称する同氏によると、GitHubにRubyの居場所はまだあるが、GoやJava、さらにはHaskellの方が多くデプロイされているそうだ。
45デフォルトの名無しさん
2019/08/07(水) 20:17:07.76ID:BfEFwzQ7 日本では使われてるんだから海外の持ち出してもしょうがないだろ
4642
2019/08/07(水) 23:51:10.54ID:SFXJyJPu Rails の作者、DHH(David Heinemeier Hansson)率いる、Basecamp 社から、
Eileen Uchitelle が、GitHub へ移籍した
そのEileenが、大規模サービス用の、
複数データベース(リードレプリカ)接続を作った
Eileen Uchitelle が、GitHub へ移籍した
そのEileenが、大規模サービス用の、
複数データベース(リードレプリカ)接続を作った
2019/08/08(木) 01:05:05.63ID:l7k6B2kQ
> Eileen Uchitelle が、GitHub へ移籍した
ちゃんとMicrosoft社って書こうよ
ちゃんとMicrosoft社って書こうよ
4842
2019/08/08(木) 01:18:55.90ID:/tBUMiMq Microsoft は、GitHub の一株主って言うだけだろ
2019/08/08(木) 01:54:52.32ID:l7k6B2kQ
かわいそうに、買収されたって知らんのか
2019/08/08(木) 07:24:10.62ID:xQzzg0Ry
MSに買収されても、形の上は別の会社だろ
2019/08/08(木) 09:05:21.68ID:47HmOZq4
>>1
end はとても重要です。
空白だけだと人間にはブロックの位置がとても判読しにくいため、
end や } と空白によるインデントが全部合ってこそ、間違いが防げる
のです。
Pythonのように空白だけで命令文の入っているブロックの位置を識別する設計だと、
命令文を書く位置を間違い、原因不明の不具合に悩まされることに成る確率
が高くなります。正確に書こうと思うと、書くべき位置の割り出しに時間が
かかり、間違っていた場合に原因を見つけ出すのにとても時間がかかります、
end はとても重要です。
空白だけだと人間にはブロックの位置がとても判読しにくいため、
end や } と空白によるインデントが全部合ってこそ、間違いが防げる
のです。
Pythonのように空白だけで命令文の入っているブロックの位置を識別する設計だと、
命令文を書く位置を間違い、原因不明の不具合に悩まされることに成る確率
が高くなります。正確に書こうと思うと、書くべき位置の割り出しに時間が
かかり、間違っていた場合に原因を見つけ出すのにとても時間がかかります、
2019/08/08(木) 13:42:35.75ID:l7k6B2kQ
2019/08/08(木) 15:01:48.71ID:C3YSBiJb
python はインデントを義務付けるなら
{} も義務付けてほしかったな
その方が可読性が高くなるし
エディタも助けやすくなる
{} も義務付けてほしかったな
その方が可読性が高くなるし
エディタも助けやすくなる
2019/08/08(木) 18:25:48.35ID:l7k6B2kQ
if の終わりは fi みたいな
遊び心を持ってほしかった
遊び心を持ってほしかった
55デフォルトの名無しさん
2019/08/08(木) 20:05:58.75ID:D8YkURHf >>40
え、そうなの? 「将来性のないプログラミング言語5選」の内容に各所からツッコミ
https://internet.watch.impress.co.jp/docs/yajiuma/1200/475/index.html
> 海外はともかく日本から見るとやや違和感のある内容ということで、Twitterでは主に日本からのツッコミが入りまくっている。
> 記事が公開されたのは先月末で、海外ではRedditを除けばそこまで注目されていなかったにもかかわらず、思わぬところで火の手が上がった格好だ。
海外からしたら日本なんて知ったことかよwww
まるで韓国みたいな反応www
「世界中の国が日本の輸出規制を非難している!」
→ 韓国が騒いでるだけ。世界は異常な反日パフォーマンスにドン引きw
え、そうなの? 「将来性のないプログラミング言語5選」の内容に各所からツッコミ
https://internet.watch.impress.co.jp/docs/yajiuma/1200/475/index.html
> 海外はともかく日本から見るとやや違和感のある内容ということで、Twitterでは主に日本からのツッコミが入りまくっている。
> 記事が公開されたのは先月末で、海外ではRedditを除けばそこまで注目されていなかったにもかかわらず、思わぬところで火の手が上がった格好だ。
海外からしたら日本なんて知ったことかよwww
まるで韓国みたいな反応www
「世界中の国が日本の輸出規制を非難している!」
→ 韓国が騒いでるだけ。世界は異常な反日パフォーマンスにドン引きw
56デフォルトの名無しさん
2019/08/08(木) 20:07:19.90ID:D8YkURHf 「各所からツッコミ!」
→ 日本のみに生息するRubyキチガイどもが難癖つけてるだけでしたwww
→ 日本のみに生息するRubyキチガイどもが難癖つけてるだけでしたwww
2019/08/08(木) 22:06:50.26ID:/tBUMiMq
そりゃ、Ruby は、アマゾン、Google, Heroku でも採用されているから!
Node.js も、Ruby実装系のコピーだし、
npm, yarn も、Bundler のコピー
元々、Vagrant, Chef, Homebrew, SASS も、Github, twitter, cookpad も、Ruby製
ここ10年、時価総額が大きくなった企業は、皆、Rubyで小さく始めてる。
大きくなったら、Go などへ変える
ビジネスチャンスでは、他の言語よりも、数年速い。
今世紀最大の起業家、vagrant の作者、Mitchell Hashimoto(hashicorp)は、Go へ行ったけどw
仮に、Python で先に実装されても、JavaScript の開発者がPython からコピーしないw
可読性が高い、Rubyで実装されるのを待って、Rubyからコピーするw
机上討論では模擬コードとして、可読性が高い、Rubyが使われる
Pythonには、カッコ・end が無いから、インデント幅だけで決まるから、対応関係がわからない
Node.js も、Ruby実装系のコピーだし、
npm, yarn も、Bundler のコピー
元々、Vagrant, Chef, Homebrew, SASS も、Github, twitter, cookpad も、Ruby製
ここ10年、時価総額が大きくなった企業は、皆、Rubyで小さく始めてる。
大きくなったら、Go などへ変える
ビジネスチャンスでは、他の言語よりも、数年速い。
今世紀最大の起業家、vagrant の作者、Mitchell Hashimoto(hashicorp)は、Go へ行ったけどw
仮に、Python で先に実装されても、JavaScript の開発者がPython からコピーしないw
可読性が高い、Rubyで実装されるのを待って、Rubyからコピーするw
机上討論では模擬コードとして、可読性が高い、Rubyが使われる
Pythonには、カッコ・end が無いから、インデント幅だけで決まるから、対応関係がわからない
58デフォルトの名無しさん
2019/08/08(木) 22:17:59.64ID:eBKobL1L rubyが可読性高いって冗談だろ?
2019/08/08(木) 22:40:24.90ID:QQC8VFJ9
普通に関数の粒度を間違ってるバカがインデント批判してるだけだろ。
2019/08/08(木) 23:48:15.94ID:iUZF9Dwy
>>58
おそらく「ぼくはRubyしかよめない」ということかと。
おそらく「ぼくはRubyしかよめない」ということかと。
61デフォルトの名無しさん
2019/08/09(金) 08:59:58.09ID:OfLBByV9 GitHubのRails離れと、迫りくるMicrosoft
https://yakst.com/ja/posts/5290
> プラットフォーム改造で変わる「Ruby専門店」。今後はGo、Java、Kubernetesへ。
> 昨年始まったアーキテクチャレベルの改革も現在は三分の一ほど進んでいる。
同社はRuby on Railsから離れ、もっと異種混合で使い捨てのきくインフラへとシフトしていっている。
GitHubを「Ruby専門店」と称する同氏によると、GitHubにRubyの居場所はまだあるが、GoやJava、さらにはHaskellの方が多くデプロイされているそうだ。
https://yakst.com/ja/posts/5290
> プラットフォーム改造で変わる「Ruby専門店」。今後はGo、Java、Kubernetesへ。
> 昨年始まったアーキテクチャレベルの改革も現在は三分の一ほど進んでいる。
同社はRuby on Railsから離れ、もっと異種混合で使い捨てのきくインフラへとシフトしていっている。
GitHubを「Ruby専門店」と称する同氏によると、GitHubにRubyの居場所はまだあるが、GoやJava、さらにはHaskellの方が多くデプロイされているそうだ。
62デフォルトの名無しさん
2019/08/09(金) 19:19:03.16ID:REyYkB/9 >>60
わいはjs4年の実の娘と一緒にお風呂に入って対面座位で抱きしめ合ってベロちゅう唾飲みせっくすしてる。つるぺたとつるまんが気持ち良すぎて抜かずで連続3回中出しした。
禁断を犯した事実が興奮をさらに煽りもう近親相姦は当分やめられない。妻にはもちろん内緒。娘がいて本当に良かった。
わいはjs4年の実の娘と一緒にお風呂に入って対面座位で抱きしめ合ってベロちゅう唾飲みせっくすしてる。つるぺたとつるまんが気持ち良すぎて抜かずで連続3回中出しした。
禁断を犯した事実が興奮をさらに煽りもう近親相姦は当分やめられない。妻にはもちろん内緒。娘がいて本当に良かった。
2019/08/09(金) 19:20:16.34ID:xLAwVgGE
わいは猿や
まで読んだ
まで読んだ
64デフォルトの名無しさん
2019/08/09(金) 20:36:20.23ID:BB1Zfm4I js歴4年
まで読んだ
まで読んだ
2019/08/13(火) 13:26:31.63ID:xiri9jbH
>>1
お望みのものなら、既にRing-langがあるんだけど、何か?
まぁ、開発者が燃え尽き症候群と長期休暇で 1.11のリリースが延期に、翻訳者が言語仕様にキレて翻訳が放置されたままなのが難点ではあるが。
お望みのものなら、既にRing-langがあるんだけど、何か?
まぁ、開発者が燃え尽き症候群と長期休暇で 1.11のリリースが延期に、翻訳者が言語仕様にキレて翻訳が放置されたままなのが難点ではあるが。
66デフォルトの名無しさん
2020/01/26(日) 01:42:41.92ID:HPdacZve rubyXLでエクセルいじってるが
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
2020/01/26(日) 05:03:47.08ID:2jcz6vHU
5ch では、マルチポストは禁止です!
同じ質問を、複数のスレで聞いてはいけません!
Ruby のスレの方で、聞いてください!
同じ質問を、複数のスレで聞いてはいけません!
Ruby のスレの方で、聞いてください!
2020/11/17(火) 10:49:42.40ID:xTqR+IkY
endより{}のほうがチェックしやすい
__END__はあったほうがいい
__END__はあったほうがいい
69デフォルトの名無しさん
2021/08/23(月) 04:45:27.20ID:gvxeAXl/ endlessメソッド定義も導入されたし、
インデントでendの代わりは本当に検討してほしいな
endはオプショナルでメソッドチェーンしたいときに使用できる感じで
実際のコードではインデントがミスマッチなことは
ミス以外ではないので、
実現は十分可能と思う
(インデント分endを補完して解釈すればいいだけなので)
とはいいつつも、endを省くだけならまだしも、
{}の閉じカッコが省かれるのは気持ち悪いかもしれないし、
エディタ上でsyntax highlight等で対応が難しい点があるかもしれない
(do endだけ省ける、とかにしたらいいかもしれない)
マジックコメントを書くことでend lessの書式にする、
ということにすると後方互換性も失われない
インデントでendの代わりは本当に検討してほしいな
endはオプショナルでメソッドチェーンしたいときに使用できる感じで
実際のコードではインデントがミスマッチなことは
ミス以外ではないので、
実現は十分可能と思う
(インデント分endを補完して解釈すればいいだけなので)
とはいいつつも、endを省くだけならまだしも、
{}の閉じカッコが省かれるのは気持ち悪いかもしれないし、
エディタ上でsyntax highlight等で対応が難しい点があるかもしれない
(do endだけ省ける、とかにしたらいいかもしれない)
マジックコメントを書くことでend lessの書式にする、
ということにすると後方互換性も失われない
2021/08/23(月) 05:37:20.38ID:qmz4xKEQ
> 実際のコードではインデントがミスマッチなことは
> ミス以外ではないので、
ある
一時的にデバッグコードを入れる時に
わざとインデントをずらしてわかりやすくする
行を移動したりする時にインデントは簡単に変更になりやすい
条件分岐を一つ追加するとその後全部インデントがずれる
インデントがブロックの終わりだとその時に自動で整形できない
人間にとって使いづらい
> ミス以外ではないので、
ある
一時的にデバッグコードを入れる時に
わざとインデントをずらしてわかりやすくする
行を移動したりする時にインデントは簡単に変更になりやすい
条件分岐を一つ追加するとその後全部インデントがずれる
インデントがブロックの終わりだとその時に自動で整形できない
人間にとって使いづらい
71デフォルトの名無しさん
2021/08/23(月) 06:49:58.36ID:gvxeAXl/ Python, Slim, Hamlなんかはインデントで閉じカッコの代わりが完全にできているので、
原理的にRubyでもできるはず
一時的にデバッグコードを入れる時 や、
行を移動したりする時 は、
編集途中なだけで最終的にはインデントも修正されるので問題ではないかと
上述の言語にも当てはまるけれど、全く問題ではないし
まあ、インデントのミスマッチは、ミス以外では、
コードの可読性を上げるために式を複数行にわけて記述する場合があるけど、
これは1つの式だと文法的に判別できるので、問題にはならない
assert_equal expected,
value
みたいな書き方
インタプリタからは1行に見えるので.
原理的にRubyでもできるはず
一時的にデバッグコードを入れる時 や、
行を移動したりする時 は、
編集途中なだけで最終的にはインデントも修正されるので問題ではないかと
上述の言語にも当てはまるけれど、全く問題ではないし
まあ、インデントのミスマッチは、ミス以外では、
コードの可読性を上げるために式を複数行にわけて記述する場合があるけど、
これは1つの式だと文法的に判別できるので、問題にはならない
assert_equal expected,
value
みたいな書き方
インタプリタからは1行に見えるので.
72デフォルトの名無しさん
2021/08/23(月) 07:02:22.79ID:gvxeAXl/ {}の閉じカッコが省略される(人間にとっての)気持ち悪さを解消するために、
:なり何なり(既存の文法と整合性がとれるもの)で{ の代用ができるとよいかもしれない
Pythonのマネだけど
これは、人間のためというよりは、エディタ(Rubyの文法を解さない)が
カッコのマッチでsyntax highlightするのを容易にするため.
まあ、エディタもマジックコメントで判別すればいいだけだけど、
コードのスニペットの場合でも困らなくなる.
(とはいえ、end less 導入以前の書式かどうかの判別は困るかもだけど.)
:なり何なり(既存の文法と整合性がとれるもの)で{ の代用ができるとよいかもしれない
Pythonのマネだけど
これは、人間のためというよりは、エディタ(Rubyの文法を解さない)が
カッコのマッチでsyntax highlightするのを容易にするため.
まあ、エディタもマジックコメントで判別すればいいだけだけど、
コードのスニペットの場合でも困らなくなる.
(とはいえ、end less 導入以前の書式かどうかの判別は困るかもだけど.)
73デフォルトの名無しさん
2021/08/23(月) 07:12:52.75ID:gvxeAXl/ まあ、最初にも書いたように、
{}の場合は省略不可で、end の場合だけ省略可
とするのがシンプルで簡単かもしれない.
(エディタでの対応カッコ検出が簡単かどうかはわからないが.)
これだけの変更なら、自分でプリプロセッサを書いて比較的簡単に実装できるかも.
ソースファイルをload/requireする箇所にフックして、
end less のコードをend 有りに変換
{}の場合は省略不可で、end の場合だけ省略可
とするのがシンプルで簡単かもしれない.
(エディタでの対応カッコ検出が簡単かどうかはわからないが.)
これだけの変更なら、自分でプリプロセッサを書いて比較的簡単に実装できるかも.
ソースファイルをload/requireする箇所にフックして、
end less のコードをend 有りに変換
2021/08/23(月) 09:34:16.96ID:Dqds6CCk
2021/08/23(月) 09:35:18.11ID:Dqds6CCk
{} でも begin end でもどちらでもいいけど
自動整形でインデントを整えることができる
インデントを下げるとか人間がやることじゃない
自動整形でインデントを整えることができる
インデントを下げるとか人間がやることじゃない
76デフォルトの名無しさん
2021/08/26(木) 19:54:53.16ID:4fOoDR4L だれも指摘していないので年寄りがひとこと言っておこう。
FORTRAN の時代は、「END.」でプログラムが終わる
(つまり、最短のプログラムは「END.」だった)という約束があり、
Java もそうだが戻り値が void でも、「return;」を書くのが
作法だった。
まぁ、「いまのところ、そうなっている」というだけで、
将来は省略できるようになるんじゃないか?
FORTRAN の時代は、「END.」でプログラムが終わる
(つまり、最短のプログラムは「END.」だった)という約束があり、
Java もそうだが戻り値が void でも、「return;」を書くのが
作法だった。
まぁ、「いまのところ、そうなっている」というだけで、
将来は省略できるようになるんじゃないか?
2021/08/27(金) 00:29:20.60ID:b4Lxoyu9
>>76
endを省略するだけの話と
endを省略する代わりにインデントを使う
のとでは意味が違う
結局はインデントを使わなければいけないだけ
{} や begin end 方式だとインデントを入力しなくていい
エディタが勝手にやってくれるし整形もしてくれる
インデントに二つの意味、見やすくするのとブロックの終了をもたせると
自動整形ツールが信用できなくなる
endを省略するだけの話と
endを省略する代わりにインデントを使う
のとでは意味が違う
結局はインデントを使わなければいけないだけ
{} や begin end 方式だとインデントを入力しなくていい
エディタが勝手にやってくれるし整形もしてくれる
インデントに二つの意味、見やすくするのとブロックの終了をもたせると
自動整形ツールが信用できなくなる
78デフォルトの名無しさん
2021/08/27(金) 02:49:34.51ID:NGc2JSym Rubyのコードを書いていて、ときどき indent mismatch のエラーになる
そういうときはどこでmismatchが発生しているのか探すのが大変
(一番最後のendでmismatchが検出されるけど、
それ以前のどこかにあることしかわからないから、
コードをすべて読み直すことになる.)
結局、インデントに意味を持たせなくても(現状でも)、
インデントが狂うと(そしてdo end がmismatchになると) syntax errorになるし、
インデントは正しく保つ必要がある.
(ので、人間の手間としては同じだし、
むしろmismatchをしっかり検出して将来のエラーを減らせるので、人間の手間は減る.)
(現状、indent の mismatch の場合は warning が出る. do end の数が mismatch だと当然ながら error.)
まあ、ただ、機能をあとからあれもこれも追加すると
手に負えなくなって言語が死んでしまう原因となる可能性はある.
endless method定義でさえ、少し中途半端には感じるし、
=で終わるmethodには使えないというのも一貫性に欠ける.
(後方互換性がなくなること、より正確には、syntaxが変わることは
スニペットをsyntax highlightしたいときに困りそう. ウェブサイト等で.)
end が省略できるメリットというのは実際、ごく小さいので、
それに比べるとリスクが大きいよなあ、と思う
あと、RubyはPythonよりも純粋なオブジェクト指向言語で、
method chainを多用するので、
end 省略のメリットはさらに小さい.
大きすぎるリスクを考えると、Rubyはこのままで、
将来、別の言語を作るときに採用、というのが妥当かな.
それに、根本問題として、本当に閉じカッコなしの方がよいのか、というところは
もう少し考えたい. Pythonを数年間使ってみてから結論を出そうと思う.
そういうときはどこでmismatchが発生しているのか探すのが大変
(一番最後のendでmismatchが検出されるけど、
それ以前のどこかにあることしかわからないから、
コードをすべて読み直すことになる.)
結局、インデントに意味を持たせなくても(現状でも)、
インデントが狂うと(そしてdo end がmismatchになると) syntax errorになるし、
インデントは正しく保つ必要がある.
(ので、人間の手間としては同じだし、
むしろmismatchをしっかり検出して将来のエラーを減らせるので、人間の手間は減る.)
(現状、indent の mismatch の場合は warning が出る. do end の数が mismatch だと当然ながら error.)
まあ、ただ、機能をあとからあれもこれも追加すると
手に負えなくなって言語が死んでしまう原因となる可能性はある.
endless method定義でさえ、少し中途半端には感じるし、
=で終わるmethodには使えないというのも一貫性に欠ける.
(後方互換性がなくなること、より正確には、syntaxが変わることは
スニペットをsyntax highlightしたいときに困りそう. ウェブサイト等で.)
end が省略できるメリットというのは実際、ごく小さいので、
それに比べるとリスクが大きいよなあ、と思う
あと、RubyはPythonよりも純粋なオブジェクト指向言語で、
method chainを多用するので、
end 省略のメリットはさらに小さい.
大きすぎるリスクを考えると、Rubyはこのままで、
将来、別の言語を作るときに採用、というのが妥当かな.
それに、根本問題として、本当に閉じカッコなしの方がよいのか、というところは
もう少し考えたい. Pythonを数年間使ってみてから結論を出そうと思う.
2021/08/27(金) 04:16:45.56ID:aA7lb4P9
2021/08/27(金) 09:39:59.97ID:NGc2JSym
2021/08/27(金) 10:13:56.72ID:NGc2JSym
Python と Ruby どちらが好きか、という質問への答え
一番上の回答に完全同意
Quoraについての質問: RubyとPythonではどちらが好きですか?
https://jp.quora.com/Ruby-to-Python-deha-dochira-ga-suki-desu-ka
パイソンの方がルビーよりライブラリが充実しているが
それを除くと言語としてパイソンの方がうらやましいところはインデントだけ
(他の人が書いている型チェックは場合によりほしいというのは同意.
最近ルビーでもできるようになったようだが.)
まあしかしよく考えたら、インデント方式にするには行末にコロンなどつける必要があるかもしれず(あるいはないかもしれないが)、
行末のコロンはちょっと美しくない
(昔はdo end なんじゃこれと思ったものだが、完全にルビー脳になったなあ)
まつもとゆきひろさんが書いているように、
https://jp.quora.com/Ruby-ni-deki-te-Python-ni-deki-nai-koto-ha-nani-desu-ka?top_ans=142958781
ルビーでは(ほぼ?)すべてオブジェクトだし、式と文の区別もない
何でも繋げられる
その思想からすると区切る意味を持つコロンは、一貫性がなくなって美しくない
(ruby では } や end の後にも chain できる. :の後はできなくなりそう.)
コロンなしでエンドレスが導入できるなら興味はあるが.
好みの問題ということになるのだろうけど、
Rubyは本当に素晴らしい言語
この言語がなければ私は今ほど幸せではなかっただろう
そしてこの素晴らしい仕様の言語をよくここまで作ってこられたなと思う
携わってこられた方々に感謝. これからも使いやすい言語でありますように.
一番上の回答に完全同意
Quoraについての質問: RubyとPythonではどちらが好きですか?
https://jp.quora.com/Ruby-to-Python-deha-dochira-ga-suki-desu-ka
パイソンの方がルビーよりライブラリが充実しているが
それを除くと言語としてパイソンの方がうらやましいところはインデントだけ
(他の人が書いている型チェックは場合によりほしいというのは同意.
最近ルビーでもできるようになったようだが.)
まあしかしよく考えたら、インデント方式にするには行末にコロンなどつける必要があるかもしれず(あるいはないかもしれないが)、
行末のコロンはちょっと美しくない
(昔はdo end なんじゃこれと思ったものだが、完全にルビー脳になったなあ)
まつもとゆきひろさんが書いているように、
https://jp.quora.com/Ruby-ni-deki-te-Python-ni-deki-nai-koto-ha-nani-desu-ka?top_ans=142958781
ルビーでは(ほぼ?)すべてオブジェクトだし、式と文の区別もない
何でも繋げられる
その思想からすると区切る意味を持つコロンは、一貫性がなくなって美しくない
(ruby では } や end の後にも chain できる. :の後はできなくなりそう.)
コロンなしでエンドレスが導入できるなら興味はあるが.
好みの問題ということになるのだろうけど、
Rubyは本当に素晴らしい言語
この言語がなければ私は今ほど幸せではなかっただろう
そしてこの素晴らしい仕様の言語をよくここまで作ってこられたなと思う
携わってこられた方々に感謝. これからも使いやすい言語でありますように.
2021/08/27(金) 13:12:03.95ID:lxI1gnNr
その昔のlispにはスーパーカッコというのがあって
閉じカッコとして ] を使うとすべてのカッコを閉じて
プログラムの終了を意味するというのがあった
エディタがカッコの対応を示してくれるので
結局、流行らずに忘れ去られてしまった。
閉じカッコとして ] を使うとすべてのカッコを閉じて
プログラムの終了を意味するというのがあった
エディタがカッコの対応を示してくれるので
結局、流行らずに忘れ去られてしまった。
83デフォルトの名無しさん
2021/08/27(金) 14:22:53.16ID:8dQk5Ix1 >>81
>RubyはPerlの文脈を背負っているので、TMTOWTDIといって「同じことをやるのにも複数のやり方がある」という自由主義的なのに対し、
>PythonのほうはZen of Pythonに宣言されているように、反TMTOWTDI主義とでもいうべき
> “There should be one—and preferably only one—obvious way to do it.”
> (同じことをやる唯一の書き方があるべきだ)という教条主義的な思想があります。
こんなこと書いてる時点でこいつPython触ってないだろってのが判る
ただのしったか野郎
別にrubyを否定はしないがデタラメ書くなよとは思う
>RubyはPerlの文脈を背負っているので、TMTOWTDIといって「同じことをやるのにも複数のやり方がある」という自由主義的なのに対し、
>PythonのほうはZen of Pythonに宣言されているように、反TMTOWTDI主義とでもいうべき
> “There should be one—and preferably only one—obvious way to do it.”
> (同じことをやる唯一の書き方があるべきだ)という教条主義的な思想があります。
こんなこと書いてる時点でこいつPython触ってないだろってのが判る
ただのしったか野郎
別にrubyを否定はしないがデタラメ書くなよとは思う
2021/08/27(金) 18:54:27.55ID:aA7lb4P9
だろうなw
Pythonのインデントが羨ましとか言ってるのは使ったことがないか
Pythonしかしらないやつだけ
デバッグのためのインデントをわざとずらすとか
コードブロックをインデントが異なる場所に移動するとか
条件を追加するとか、やったことがないから
インデントの方がいいとか思うんだよ
あれだろ?インデントって意識せずに普通にやることだけど
初心者はインデントする理由すらわからない、そのレベルの人がうじゃうじゃいる場所で
「インデントを強制される」からマシなコードになる(えぇ?その程度で!?)
みたいな話だろ
Pythonのインデントが羨ましとか言ってるのは使ったことがないか
Pythonしかしらないやつだけ
デバッグのためのインデントをわざとずらすとか
コードブロックをインデントが異なる場所に移動するとか
条件を追加するとか、やったことがないから
インデントの方がいいとか思うんだよ
あれだろ?インデントって意識せずに普通にやることだけど
初心者はインデントする理由すらわからない、そのレベルの人がうじゃうじゃいる場所で
「インデントを強制される」からマシなコードになる(えぇ?その程度で!?)
みたいな話だろ
85デフォルトの名無しさん
2021/08/28(土) 05:55:06.93ID:Uz5at9mY >>83
それはPython作成のmajorなcontributor自身が言っていることかと
Python aims to be simple and consistent in the design of its syntax, encapsulated in the mantra "There should be one? and preferably only one ?obvious way to do it", from the Zen of Python.[2]
This mantra is deliberately opposed to the Perl and Ruby mantra, "there's more than one way to do it".
https://en.wikipedia.org/wiki/Python_syntax_and_semantics
>>82
一度だけ使える奥義みたいな感じだね
インデント方式か、括弧方式かについて考えているけれど、
閉じ括弧なし強制、閉じ括弧あり強制、閉じ括弧はoptional の3つで考えた場合、
閉じ括弧はoptionalというのは一見良さそうに思えて、実はバグの温床になりやすいものかもしれない
そのあたりは(紙に書いて)もう少し考えてみないとわからない
もし 閉じ括弧はoptional がよくないアイデアの場合は、
閉じ括弧なし強制 or 閉じ括弧あり強制 の二択になるけど、その場合は後者の方が明確に良い
Method chainが使えるから.
Endless method定義の導入が検討されていたときに、
do end の end を省略可にするアイデアはあるかと聞かれて、ないとMatzが即答していた.
私自身でもう少し検証してみるつもりだけど、Matzは当然end 省略についてよく考えた上で言っているのだろうし、
Matzが言うのならやはり現状がベストなのかもしれない.
それはPython作成のmajorなcontributor自身が言っていることかと
Python aims to be simple and consistent in the design of its syntax, encapsulated in the mantra "There should be one? and preferably only one ?obvious way to do it", from the Zen of Python.[2]
This mantra is deliberately opposed to the Perl and Ruby mantra, "there's more than one way to do it".
https://en.wikipedia.org/wiki/Python_syntax_and_semantics
>>82
一度だけ使える奥義みたいな感じだね
インデント方式か、括弧方式かについて考えているけれど、
閉じ括弧なし強制、閉じ括弧あり強制、閉じ括弧はoptional の3つで考えた場合、
閉じ括弧はoptionalというのは一見良さそうに思えて、実はバグの温床になりやすいものかもしれない
そのあたりは(紙に書いて)もう少し考えてみないとわからない
もし 閉じ括弧はoptional がよくないアイデアの場合は、
閉じ括弧なし強制 or 閉じ括弧あり強制 の二択になるけど、その場合は後者の方が明確に良い
Method chainが使えるから.
Endless method定義の導入が検討されていたときに、
do end の end を省略可にするアイデアはあるかと聞かれて、ないとMatzが即答していた.
私自身でもう少し検証してみるつもりだけど、Matzは当然end 省略についてよく考えた上で言っているのだろうし、
Matzが言うのならやはり現状がベストなのかもしれない.
2021/08/28(土) 06:38:28.25ID:pTyUgQRH
インデントでブロックを作るメリットがないんだよな
どちらにしろRubyでもインデントはするから見やすい
入力の手間も変わらない
意味があるとするなら、メモ帳でプログラミングしてる
矯正されないとインデントできない
超超超低レベルな人ばかりいるところぐらいでは?
どちらにしろRubyでもインデントはするから見やすい
入力の手間も変わらない
意味があるとするなら、メモ帳でプログラミングしてる
矯正されないとインデントできない
超超超低レベルな人ばかりいるところぐらいでは?
2021/08/31(火) 03:49:59.86ID:kXeFL5NO
機能的な意味は皆無で、単にちょっと入力文字数が減るだけですね。
(括弧のmismatchが起こり得なくなるという効能もあるけど、
end 省略をオプションにしてしまうと、85で書いたように、バグの温床になりそうな気もしてきたので検証中。)
>>69-85 で end 省略導入を検討してほしいと書いてきた者だけど、
現在の結論についてアンカー付きで再度書いておこうと思う。
(今後来て読むかもしれない人がレスポップアップですぐ気付けるように。)
閉じ括弧省略には、次の3種類ある:
1. 閉じ括弧なし強制(Python の方式)
2. 閉じ括弧あり強制(Ruby の方式)
3. 閉じ括弧はオプション(Slim の方式)
このうち、1 と 2 なら 2 の方が明確に良い. Method chain が使えるから.
(純粋度の高いオブジェクト指向言語のRubyの場合. Pythonの場合は言語仕様が異なるので結論も異なりうる。)
また、2 と 3 なら 3 の方がよいのだけど、意図的な省略かうっかり忘れかをインタプリタが判別できない場合、
バグの温床となる可能性がある(要検証)。もしそうであるならば 3 は論外。その場合、2 が一番良い。
(括弧のmismatchが起こり得なくなるという効能もあるけど、
end 省略をオプションにしてしまうと、85で書いたように、バグの温床になりそうな気もしてきたので検証中。)
>>69-85 で end 省略導入を検討してほしいと書いてきた者だけど、
現在の結論についてアンカー付きで再度書いておこうと思う。
(今後来て読むかもしれない人がレスポップアップですぐ気付けるように。)
閉じ括弧省略には、次の3種類ある:
1. 閉じ括弧なし強制(Python の方式)
2. 閉じ括弧あり強制(Ruby の方式)
3. 閉じ括弧はオプション(Slim の方式)
このうち、1 と 2 なら 2 の方が明確に良い. Method chain が使えるから.
(純粋度の高いオブジェクト指向言語のRubyの場合. Pythonの場合は言語仕様が異なるので結論も異なりうる。)
また、2 と 3 なら 3 の方がよいのだけど、意図的な省略かうっかり忘れかをインタプリタが判別できない場合、
バグの温床となる可能性がある(要検証)。もしそうであるならば 3 は論外。その場合、2 が一番良い。
2021/08/31(火) 06:58:29.39ID:UqDTQOtm
Pythonのインデントでブロックを作るのがいいって
言ってる人って、どんな人なんだろう?
正直プログラミングの初心者だと思ってるんだが
自転車に補助輪があったほうがいいと言ってるようなもの
言ってる人って、どんな人なんだろう?
正直プログラミングの初心者だと思ってるんだが
自転車に補助輪があったほうがいいと言ってるようなもの
2021/08/31(火) 08:30:03.95ID:+G3EK1zI
自転車に補助輪があったほうがいいと連呼し
理想の補助輪についてアツく語り
ツールドフランス帰りの人間に意見するのがインターネッツ
理想の補助輪についてアツく語り
ツールドフランス帰りの人間に意見するのがインターネッツ
2022/01/27(木) 12:31:54.83ID:zYcyjosR
意味が分からん
波括弧でブロック作るタイプの言語で自由なインデントを決め込んで読み辛いとブチ切れるのがお前らだろうが
それにPythonを使ってて不便に感じた事なんて一度もない
波括弧でブロック作るタイプの言語で自由なインデントを決め込んで読み辛いとブチ切れるのがお前らだろうが
それにPythonを使ってて不便に感じた事なんて一度もない
2022/01/27(木) 21:26:39.43ID:nqLNKhKI
なんとなくどういう人かわかったw
2022/11/30(水) 04:09:07.15ID:DZmWhP6T
そもそも行数の違いで{}とdo end 分けるのが鬱陶しい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 20代の3割が「テレビ見ない」現実…そして静かに広がる「究極のテレビ離れ」とは [muffin★]
