X



スレ立てるまでもない質問はここで 149匹目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/06/17(日) 10:31:28.00
質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
ワッチョイは住人が離れスレが寂れます導入禁止。

前スレ
スレ立てるまでもない質問はここで 148匹目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1495618637/
0794デフォルトの名無しさん
垢版 |
2019/10/06(日) 00:01:47.99ID:knSoAAQ3
Cは全く意味なくて新たにHTML習わないとダメってことですかね?
解答ありがとうございました。
0795デフォルトの名無しさん
垢版 |
2019/10/06(日) 00:44:08.75ID:sy828SFu
ようは整形してコピペできればなんでもいいんだろう?
ならCは全く意味ないなんてことはない
VC++使ってWindows向けのデスクトップアプリ作るもよし
その気になればコンソールアプリでもどうにかなるだろう
ただC/C++は糞大変なのでおすすめしない
Windows向けならC#やVB.NETでやったほうがいいね
まあHTML+JavaScriptのほうがもっと簡単だと思うけど
この場合HTMLはユーザーインターフェースなので別に気合いれて覚える必要もない
マウス操作でほど完結するHTMLエディタもあるだろう(ある程度わかってないと使えないけど)
0797デフォルトの名無しさん
垢版 |
2019/10/06(日) 13:41:04.25ID:Fbc1b1He
スマホで楽天ペイをインストールしたんだけどログインできません
なんでですか?
一応ブラウザからは楽天にログインできるみたいです
0802デフォルトの名無しさん
垢版 |
2019/10/12(土) 01:39:08.12ID:q8E6eyrs
MITライセンスでGitHubに無料公開されてるプログラムを、数行だけ書き換えて有料で販売しようと思っているのですが、これって著作権料を取られたりしませんか?

他の方の意見を調べた感じだと、著作権表示とかURL情報をXcodeに含むだけで良いみたいなことが書いてあるんですが、本当ですかね?
https://teratail.com/questions/6672
0803デフォルトの名無しさん
垢版 |
2019/10/12(土) 01:50:12.85ID:q8E6eyrs
MITライセンスでコードを公開する側には何のメリットがあるんでしょうか
0804デフォルトの名無しさん
垢版 |
2019/10/12(土) 02:05:28.62ID:M2MM4lKm
ライセンス的なことよりもそんなもので商売になると思ってんのか
タダで配布しているものを誰が金出して買うんだよ
サポートしなきゃならないとか他の人がもっと安く売るとかそのくらいのリスクすぐわかるだろ
だから大抵の人は売るんじゃなく寄付を募る
0805デフォルトの名無しさん
垢版 |
2019/10/12(土) 06:49:43.09ID:q8E6eyrs
>>804
やり方次第で商売になりますよ
0806デフォルトの名無しさん
垢版 |
2019/10/12(土) 07:31:34.46ID:zNYc1jm8
GPLがでるまでは普通にライセンス付けて儲けるやつらいたから不思議じゃない
0807デフォルトの名無しさん
垢版 |
2019/10/12(土) 09:28:39.77ID:zNqyKEfv
モラルの問題はあるが法律的にはなんの問題もない
それが嫌ならMITライセンスをやめるしかない
0809デフォルトの名無しさん
垢版 |
2019/10/12(土) 09:39:55.43ID:zNqyKEfv
MITライセンスを適用する側のメリットは、自分の作ったものを広く使ってもらえること
あとライセンスについて細かく考える手間を省けること
0810デフォルトの名無しさん
垢版 |
2019/10/12(土) 17:13:19.76ID:TXtjhlnX
なん種類かのMITのソースをforkして取り込んでほんの少しのグルーコード書いて、
サブスクモデルで金とってるアプリ知ってるけど、
作者が頭イッてる。
0811デフォルトの名無しさん
垢版 |
2019/10/12(土) 21:22:49.51ID:tVakKO/V
RubyとPythonについて質問です。

私はノンプログラマーですが、学生時代にC言語とJavaを習ったことが有り、VBAについてはちょくちょくいじって使っています。

そんな私が、業務効率化のためにスクリプト言語を覚えようと思っています。

その際、RubyとPythonという2つの言語が良さそうだと思いました。
どちらがおすすめですか?おすすめな理由を添えて教えていただけると嬉しいです。
より、オススメな言語がある場合はそちらの紹介をお願い申し上げます。
0812デフォルトの名無しさん
垢版 |
2019/10/12(土) 21:50:50.01ID:zNYc1jm8
python3
流行に載っているためにコミュニティの活性化状態で
書籍の数などが大差
0813デフォルトの名無しさん
垢版 |
2019/10/13(日) 00:07:33.21ID:Gu1oNPJo
ツール作りでは、Ruby 一択!
Web 系の仕事では、Python, Java の10倍!

例えば、Python のDjango の本は、掌田津耶乃の1冊だけだが、
Ruby on Rails の本は、10冊ぐらい出てる

勉強の順序として、Ruby から始めないと失敗する!
他の言語は難しすぎる。初心者向けではない

YouTube の雑食系エンジニア・KENTA の動画を参照!

Railsでポートフォリオを作るまでの学習順序と具体的な教材について
https://www.youtube.com/watch?v=8UtQPtxbXF0

Javaの方がRubyよりも求人が多いという勘違いについて
https://www.youtube.com/watch?v=GLfvnHQ5v-0

「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則】
https://www.youtube.com/watch?v=dRSsdsw0-r8
0814813
垢版 |
2019/10/13(日) 00:41:17.47ID:Gu1oNPJo
例えば、CSV 処理で、4列目内のカンマを、読点に変換する

require 'csv'

# 引数は入力ファイル名
CSV.filter( File.open( ARGV[ 0 ] ) ) do |row| # 1行ずつ処理する
p row[ 3 ] #=> "あ,い,う"
row[ 3 ].tr!( ",", "、" ) # 列4
end

入力ファイル
a,b,c,"あ,い,う",d

出力
a,b,c,あ、い、う,d

この3冊を読めば、ほとんどのツールは作れるし、中級プログラマーになれる!

たのしいRuby 第6版、2019/3/19
Effective Ruby、2015
改訂2版 Ruby逆引きハンドブック、2018/8/28
0815デフォルトの名無しさん
垢版 |
2019/10/13(日) 01:12:59.74ID:5y3mzviq
>>811
業務効率化って具体的にどういうことを想定してるかによる

MSOfficeのアドオンならC#かTypeScript
WebのカスタマイズならJavaScript
スクリプト言語からExcel操作したいならPython+xlwingsとか
目的によって候補が違ってくる

RubyかPythonかの2択なら断然Ruby
表現力が高くて標準で便利機能が多く用意されてるのでつまずきにくい
公式チュートリアルをサクッとやってみて比べると良いと思う
https://www.ruby-lang.org/ja/documentation/quickstart/
https://docs.python.org/ja/3/tutorial/index.html
0816デフォルトの名無しさん
垢版 |
2019/10/13(日) 01:24:07.45ID:kaSZg9r2
Windowsで業務効率化ならそのままVBAを極めるかC#かな
効率化だけならPowershellも悪くない

PythonかRubyを学ぶ目的があって業務効率化は副産物という話なら感性に任せるのがいい

Rubyは落ち目でPythonは流行ってるけど、ウェブ系ではまだ食べまだRubyのがはるかに強くて、機械学習ならPythonしかない
0817811
垢版 |
2019/10/13(日) 13:09:10.38ID:5AXSetjs
皆さん、ご回答ありがとうございます。

C#やTypeScriptは事前コンパイルが要るのであまり食指が動いていません。
ダブルクリック即実行がとても嬉しいです。ただ、VBSはWSHによるダブルクリック即実行&InputBox標準搭載がとても魅力的ですが、やれることが少ないのとコードが長くなり過ぎることと将来性がゼロなことからやる気は有りません。
PowerShellはダブルクリック実行のためにセキュリティ解除したシェバンを書いたり、色々面倒なのでやはり食指が動きません。
最近Rubyを始めてみたのですが、以下のコードを先頭にシェバンしたバッチを書けばダブルクリック実行できるのでとてもありがたく思っています。

@echo off
@ruby -x "%~f0" 2>%~n0.err
@for %%i in ("%~n0.err") do if %%~zi == 0 (del /s /q "%~n0.err") >NUL
@exit /b


こういった観点を踏まえてアドバイスを頂けるととても嬉しいです。
0818デフォルトの名無しさん
垢版 |
2019/10/13(日) 13:56:54.07ID:D2+OyZ4Y
なんだこれは

・Rubyを使い続けましょう というお墨付き
・Pythonは使わなくてもいいですよ というお墨付き

どちらが欲しいんだ?

お前の心情に合わせていくらでも作文するぞ
納得や満足を満たす他人からの追従文が欲しいんだろ?
どっちかと聞かれてんのに実はすでにRuby使ってましたとか、高度な話法すぎて一般人には理解不可能だ
0819デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:39:46.30ID:5y3mzviq
>>817
コンパイルは嫌ってのはわかったけど
実際どういう類の処理をスクリプトで書きたいの?

もしバッチファイルはもう嫌だって話なら
CygwinとかUnix likeな環境いれてbashやzshって選択もある
rubyなら簡単に書けるといっても
例えばcurlとgrepとちょっとしたファイル操作で済むような処理なら
シェルのほうが書くほうがずっと楽だよ
0820デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:57:53.75ID:kaSZg9r2
まぁRubyでいいんじゃないかな
俺も長いことRuby使っててPythonに移ったけど、特に不満があって辞めたわけじゃない
0821デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:59:21.41ID:5y3mzviq
ファイル操作系が主だけどシェルじゃなくRubyかPythonが良いんだって話なら
1つ2つ簡単な処理を両方で作ってみて比べるのが一番いい

ディレクトリを引数で渡して、その中にある.txtのファイルに連番を振っていく処理とか
振った連番を_1.txtじゃなく_001.txtに変更する処理とかそういうやつ
それやるとファイル操作・コレクション処理・テキスト操作・正規表現みたいな基礎的なところで
言語の違いが感覚的にわかる

https://realpython.com/working-with-files-in-python/
https://www.rubyguides.com/2015/05/working-with-files-ruby/
0822デフォルトの名無しさん
垢版 |
2019/10/13(日) 16:36:22.71ID:qvZE9Y7m
仕事で何か制約があるわけでもないのに「勉強する言語を決めたい」って
ここでごちゃごちゃ聞かずにできること全部やっとけよ
使い分けだろうが何だろうがその後からついてくる
0823811,817
垢版 |
2019/10/13(日) 17:43:39.23ID:5AXSetjs
私の状況をしっかり伝えていなかったため混乱が生じてすみません。

私は総務部門のIT係をしています。後輩が一人いて彼もメンテナーをする必要があります。
前任者から引き継いだバッチが汚くていじりにくいのと、無駄な部員の無駄な手作業が多いのを何とかするため、色々策を練っている最中です。

RubyとPythonのどちらがいいか聞いていおいて、先にRubyを始めているというのは混乱させるもので、すみませんでした。
Rubyも始めたばかりで、これから続けていいものかがよくわからないため、他の選択肢とフラットに考えたくてこのように質問しました。

部門のIT音痴のメンバにも操作させることが肝要なので、ダブルクリックで実行できることは必須です。部員のPCにRubyやPythonの環境をインストールする程度は良いですが、それ以上にローカルPC環境を大きく変更しないとまずいのも避けたいです。

コンパイル言語が嫌なのは、ソースと実行ファイルの二重管理をしたくないからです。
朝の一括バッチで部員全員に更新プログラムを反映するなどを考えているので、なるたけメンテファイル数を減らしたいと思っています。

こういった条件で再度、ご教授いただけると大変嬉しいです。
0824デフォルトの名無しさん
垢版 |
2019/10/13(日) 17:48:44.30ID:I8cQof7f
お仕事の話で食指がどうこう言われても
何がお気に召すのかさっぱり分からん

今んとこrubyで上手く行ってるならrubyで良いじゃない
0825デフォルトの名無しさん
垢版 |
2019/10/13(日) 17:52:16.24ID:5AXSetjs
>>824
食指という表現は質問者として不適切だったと思います。
失礼いたしました。
0826蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/10/13(日) 17:59:09.50ID:w8oKE2gz
オフィスソフトのファイル操作ならVBA。
テキストファイルやバッチ処理ならRuby。
データベース管理ならSQL。
どちらも変数名や関数名に日本語が使える。
0828デフォルトの名無しさん
垢版 |
2019/10/13(日) 18:31:48.06ID:5y3mzviq
>>823
配布有りなのかぁ
記述の容易さを考えるとRubyが良いと思うが配布有りだとそこの部分の手間はかかる

RubyでもPythonでもちょっと気の利いたことをやろうと思えば
外部のパッケージをダウンロードして使うことになるんだけど
その場合ソース以外に依存パッケージを記述したファイルも必要。
でユーザーがスクリプト実行する時にそれらの依存パッケージがダウンロードされる

RubyやPython自体の環境の管理やアップデートも必要
だいたい1ヶ月~3ヶ月に1回は更新がある

あとはRubyやPythonの環境含めて1つのexeにしてくれるようなツールもあるけど
それやるとソースと実行ファイルの二重管理と同じことが必要になるから
環境管理の手間と実行ファイル管理の手間とのバランス次第
0829811,817,823,825
垢版 |
2019/10/13(日) 18:32:12.13ID:5AXSetjs
>>826
VBAは今までもちょくちょく使って来ましたが、最近RubyでWIN32OLEを使うようになって、特にRubyでやってもかなり同様のことが出来るなと感じています。
SQLってADOとかで接続する時にこれまでも使ってきましたが、単独で使うイメージが有りません。
0830デフォルトの名無しさん
垢版 |
2019/10/13(日) 18:38:12.75ID:NI2mjh97
>>817
次前コンパイルという手順をコンピューター側で自動にしておけば、
スクリプト言語とかわらないんだがな。
0832デフォルトの名無しさん
垢版 |
2019/10/13(日) 19:01:29.79ID:5AXSetjs
>>830
これって簡単なんですか?
オペレーター側のローカルPCのの環境セットアップが簡単ならやりたいです。
0833デフォルトの名無しさん
垢版 |
2019/10/13(日) 19:05:32.14ID:j3fG3YC6
ユーザーにスクリプトをいじらせる必要がなくてダブルクリックで実行できればいいなら
配布はC#が一番楽だな。
0834デフォルトの名無しさん
垢版 |
2019/10/13(日) 19:40:27.57ID:qg/TNtNV
スキル上げしてたら、極悪扱いされた。。。
ペット虐待ではあるが・・・。
0836デフォルトの名無しさん
垢版 |
2019/10/13(日) 21:12:34.96ID:5y3mzviq
>>832
ts-node とか deno

配布に関してはrubyと同じ問題抱えるから
部員のリテラシーも考慮して自分でトレードオフ見極めるしかない
0837デフォルトの名無しさん
垢版 |
2019/10/13(日) 23:47:02.71ID:Gu1oNPJo
>>817
例えば、Ruby で、以下のコードを、script.rb に書く

そして、ダブルクリックで起動できるように、
script.bat ファイルに、ruby .\script.rb と書く。
または、script.vbs ファイルに、CreateObject("WScript.Shell").Run "ruby .\script.rb", 0
(各ファイルが、同じフォルダ内にある場合)

クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end

他にも、FileUtils::DryRun も便利。
ファイル操作を実際にしないで、どういう処理が行われるかだけを確かめる。
PowerShell の、-WhatIf と同じ

他には、VSCode, Node.js もインストールしておけばよい
0838837
垢版 |
2019/10/14(月) 00:00:45.66ID:qXl8FtHN
>>817
PowerShell スクリプトも、同様に、bat, vbs から、ダブルクリックで起動できるだろ

クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

例えば、script.vbs ファイルに、
CreateObject("WScript.Shell").Run "powershell ""gcb | % trim | scb""", 0

同様に、script.bat ファイルにも、
powershell .\script.ps1 と書けば、ダブルクリックで起動できるだろ
0839デフォルトの名無しさん
垢版 |
2019/10/14(月) 01:17:48.63ID:+IIeKy6A
>>838
色々ありがとうございます。

私が、batでrubyのシェバンをする理由は、ファイルが一つで済むようにという意図が大きいです。
そちらの観点だとなにかオススメはありますでしょうか。
0840デフォルトの名無しさん
垢版 |
2019/10/14(月) 02:31:49.80ID:NXmV97Dm
operatorを大量に使う時、
+ A
+ B
+ C
と、、
A +
B +
C +
のどっちが普通でしょうか?A/B/Cは変数名が入るので結構長かったりもします。
0842デフォルトの名無しさん
垢版 |
2019/10/14(月) 03:59:56.33ID:NXmV97Dm
>>841
画面内に配置した大量(数は状況次第で、最小120、最大でたぶん1000以上)のオブジェクトの座標から、
次に配置するオブジェクトの座標を決める必要があるので・・・
0843837
垢版 |
2019/10/14(月) 04:43:58.44ID:qXl8FtHN
>>817
@echo off
@ruby -x "%~f0" 2>%~n0.err
@for %%i in ("%~n0.err") do if %%~zi == 0 (del /s /q "%~n0.err") >NUL
@exit /b

こういうのは、Perl 並みに、可読性が悪くて、意味がわからないw
こんな暗号みたいなコードを、誰も保守できないだろ

VBS, PowerShell でも、Ruby よりは可読性が悪いから、保守しづらい

やっぱり、Rubyで、script.rb に、コードを書いたら、
端末から、ruby script.rb で実行もできるし、

それをダブルクリックで起動したいのなら、
script.bat, script.vbs ファイルに、起動部分だけを書く方がよい

まさに、アプリのショートカットも、同じ仕組み。
アプリと起動部分を分けてる

それと名前欄に、811 と入れて投稿してください。
投稿者が、誰か分からないので
0844デフォルトの名無しさん
垢版 |
2019/10/14(月) 09:41:04.02ID:CmkGXuzV
>>843
.rbの拡張子をrubyに関連付けすればscript.rbのダブルクリックでスクリプト実行できるよ
-xオプション付きにしたければそういう関連付けも可能

そのバッチは引数で渡されたrubyのコードを含むファイルを-xオプション付きで実行して
標準エラーをファイルに書いてサイズが0なら削除するっていう内容だけど
rubyでエラーハンドリングしてログファイルに書き出せば基本的にいらないと思う
0845デフォルトの名無しさん
垢版 |
2019/10/14(月) 09:55:03.21ID:CmkGXuzV
>>842
処理の目的は理解できたんだけど
オペランドが1つの"+"オペレータってどういうものなの?

改行が式や文の区切りではなくて
A + B + C + と +A + B + C ?

いずれにしろ使ってる言語のスタイルガイドを参考にして決めればいいと思う
処理的にはループやコレクションで抽象化して
オペレータを大量に書かなくてもいい仕組みを考えたほうが良さげ
0846デフォルトの名無しさん
垢版 |
2019/10/14(月) 10:40:43.00ID:6AvUVRYN
>>842
オペレーターが大量か少量かによらず、改行が必要なとき、二項演算子の前と後ろどちらに改行を入れるのかをコーディングルールで定めるべき
可読性の面で演算子が先に来る方が俺は好きだ
0848蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/10/14(月) 12:11:48.32ID:/dRG0sEv
画面に似たようなオブジェクトが100個もあるなら普通は配列かstd::vectorなどを使うだろ。
0849840
垢版 |
2019/10/14(月) 12:27:01.83ID:NXmV97Dm
みあんさんありがとうございます。
仰る通りコレクション化してしまえば、
2Dゲームの「衝突判定 → 判定結果によって移動させる」やり方がほぼそのまま使えそうです。
くだらない質問ですみませんでした。
0850デフォルトの名無しさん
垢版 |
2019/10/14(月) 13:21:26.11ID:CmkGXuzV
昔「弾幕」って本買ったけど積読したまま押入れの肥やしにしてるのを思い出した
0852デフォルトの名無しさん
垢版 |
2019/10/14(月) 14:31:07.73ID:/43KYLEN
ここ3日間くらいの「RubyとPythonどっち」っていうやりとりに便乗させてください。

だいぶ前ですが、質問者さんと同様に自分もスクリプト言語を習得したくなって、
ネット上で調べたり聞いたりしたことがありました。
「WindowsでRubyを使うと罠にハマることが多い。地雷原を歩くようなもの」
といったご意見が複数あり、Rubyは候補から外しました。

今回のやりとりでRubyを勧められてる方が多いので少し驚きました。
テキスト処理程度ならWindowsで利用するのも問題ないのでしょうか。
自分は結局、どのWindows PCにも入っていてるという利点に惹かれてPowerShellを
使うようになったのですが、入門書/入門サイトで少しだけ触った好感度でいうと
Ruby>Python≧PowerShell でした。
すぐにPowerShellから乗り換えようとまでは思わないのですが、今後の参考のために
教えてください。
0853デフォルトの名無しさん
垢版 |
2019/10/14(月) 14:42:08.78ID:FdPLXAab
これだけ長文で質問がかかれてなくて句点付きか…
なかなかの才能の持ち主だと思った
0854デフォルトの名無しさん
垢版 |
2019/10/14(月) 14:49:13.33ID:/43KYLEN
>>853
すみません、回りくどかったです。質問は下記のとおりです。
テキスト処理程度ならWindowsで利用するのも問題ないのでしょうか。
0855デフォルトの名無しさん
垢版 |
2019/10/14(月) 18:07:12.04ID:CmkGXuzV
>>851
すまんが元ネタわからない

>>852
Unix系に比べると
- 最初の環境セットアップのハードルがやや高い
- 文字コードでつまづく可能性あり(これはPythonでも同じ)
- RubyのWindowsユーザーが少ないので情報量が少ない

10年近く前に数年間CygwinでRuby使ってたけどRubyが直接の原因で困った記憶はない
文字コード関連の問題と使いたいUnixツールが使えないってのはよくあった
ってことで俺は全く問題ないと思うがそこは自分で試して見るほかないと思う
0856811
垢版 |
2019/10/14(月) 19:03:22.84ID:+IIeKy6A
皆さんの意見を総合するとRubyが一番良さげですね。
加えて、C#&EXE化も検討します。

ありがとうございました。
0858デフォルトの名無しさん
垢版 |
2019/10/14(月) 20:05:06.37ID:ZHVtioYP
正直テキスト処理程度で最強を争ってもしょうがない
テキスト処理はソフトウェア開発に置いて
一分野でしか無い
0859デフォルトの名無しさん
垢版 |
2019/10/14(月) 20:42:48.24ID:/43KYLEN
>>855
詳しくありがとうございます。
過度に心配することはないみたいですね。
機会があれば試してみようと思います。
0860デフォルトの名無しさん
垢版 |
2019/10/14(月) 21:20:06.03ID:/43KYLEN
>>857
Perlは私には難しかったです・・・。
PowerShellをやるまえにPerlの入門書を読んで、
簡単なスクリプトを書いて使うことはできたのですが
1〜2年プログラミングから離れたあと書こうとするとすっかり忘れてしまって
3回入門しなおして、あきらめました。
VBAやPowerShellでもある程度忘れるのですが
Perlのほうが記号のたぐいが多くて、暗記力のない私にとっては忘却度が深刻でした。
0864837
垢版 |
2019/10/15(火) 00:12:09.35ID:2TGG4eyN
>>852

>>813-814
に書いてある。
Windows でも、CSV・テキスト処理程度なら問題ない

1つ前のバージョンを使えばよい。
Mac/Linux ならRuby 2.6 で、WindowsならRuby2.5

Windowsでは、irb, pry のようなREPL は、日本語でバグるから、ダメ!
漏れは、ユーザー環境変数、RUBYOPT に、--encoding=UTF-8 を設定しているから、irb は使えない。
Windows とのやり取りを、UTF-8だけに限定しているから、CP932 では動かない

代わりに、VSCode で、Code Runner という拡張機能で、
右クリックメニューから、選択したコードを実行する

他には、1-liner で、クォーテーションの解釈でバグるから、%Q( ) で、囲む必要がある。
-p オプションにバグがあるから、代わりに、-n を使う

Linux では、
ls | ruby -ne 'puts $_.center(20, "-")'

Windows では、
ls -name | ruby -ne 'puts $_.center(20, %Q("-"))'
0865837
垢版 |
2019/10/15(火) 00:19:51.79ID:2TGG4eyN
Perl は、暗号みたいで可読性が低い。
PowerShell, VBS は、あまり複雑なものは無理

結局、CSV・テキスト処理は、Ruby になる
0867デフォルトの名無しさん
垢版 |
2019/10/15(火) 01:03:55.75ID:QM8G0kj4
最初Perlを覚えようとして数分でギブアップしてRubyにしたな
必要があればPythonやLua、JScriptも書くが基本Rubyだわ。コード効率が全然違う

そういやRubyってWindowsのコマンドライン引数をUnicodeで取れるようになったのか?
ちょっと前のバージョンだとダメだった記憶があるが
0868837
垢版 |
2019/10/15(火) 02:17:50.48ID:2TGG4eyN
Windowsでは、irb, pry のようなREPL は、日本語でバグるから、ダメ!

漏れはWindowsで、ユーザー環境変数、RUBYOPT に、--encoding=UTF-8 を設定しているから、
irb, pry のような、CP932 でやり取りする、REPL は使えない。
Windows とのやり取りを、UTF-8だけに限定しているから、CP932 では動かない

VSCode で作って、PowerShell から実行する
「ruby オプション script.rb 引数」の形

それをダブルクリックで起動したいのなら、
script.bat, script.vbs ファイルに、起動部分だけを書く

.rb の拡張子を、ダブルクリックに紐づけると、不注意で起動されてしまうので危険!
0870デフォルトの名無しさん
垢版 |
2019/10/15(火) 08:26:42.36ID:f1lycctY
>>866
いやいやRubyくんは知識が中途半端だから
問題の本質がわかってないだけだよw

話は単純で、RubyやPerlなどUnixやLinuxに最適化されてるものは
ファイルの文字コードにはUTF-8を使うようにしましょうと言うだけの話。
(ファイルの文字コードは元からUnicodeなので問題は起きない)

Windowsもコマンドプロンプトはデフォルトこそ(日本語設定では)ShiftJISだが
UTF-8対応してるし、WSLはUTF-8が基本。

スクリプトファイルをUTF-8で記述するようにし(メモ帳ですらUTF-8対応してる)、
そこから読み込むデータファイルをUTF-8にすることで、LinuxでもWindowsでも
文字コードの問題は一切発生しなくなる。

UTF-8を使うだけで文字コードの問題はすべて解決するというわけ

もしスクリプトファイルからShiftJISのファイルを扱いたければ、
スクリプト外のiconvやnkfを使って変換すればよい。もうUTF-8に統一しよう。
0871867
垢版 |
2019/10/15(火) 10:57:31.55ID:Nw/k9czi
2.5に--encoding=UTF-8を付けるとARGVはUnicode対応になるようだ

>>870
昔のWindows版RubyはARGVがCP932決め打ちだったと記憶している
そのためCP932に含まれない文字列を含む引数の扱いに難があった
0872デフォルトの名無しさん
垢版 |
2019/10/15(火) 12:41:30.07ID:qvzCc57+
_ismbsleadや_ismbstrailって、Shift-JISのような2バイト文字のときはわかるけど、
UTF-8のような3バイト以上の文字のときは、どのような動作になるのでしょうか。
それとも、2バイト文字専用の関数ですか?
0873デフォルトの名無しさん
垢版 |
2019/10/15(火) 12:48:31.55ID:MIRz+4X1
javascriptのデータ型の質問です

var num = [10,20,30,];

var num2 =num;

num[1] =50;

console.log(num2);//結果10,50,30

配列は参照型なのでこの結果には納得できますが

var num = [10,20,30,];

var num2 =num;

num =[40,50,60];

console.log(num2);//結果10,20,30
console.log(num)//結果40,50,60

この場合なぜnum2の値は変わらないのですか?
配列を全て入れ替えると、num2に入れたnumとは別物(参照先が別)扱いになるのですか?
0874デフォルトの名無しさん
垢版 |
2019/10/15(火) 14:28:04.07ID:81YUYh7D
num = [40,50,60];

num[0] = 40; num[1] = 50; num[2] = 60;
ではなくて
num = new Array(40,50,60);
だから
添字のブラケットとブラケット構文は別物です
0875デフォルトの名無しさん
垢版 |
2019/10/15(火) 14:34:21.71ID:17EAacqo
JSの[N,M]は配列リテラルなので、それそのものが配列として機能したと思う。
0876デフォルトの名無しさん
垢版 |
2019/10/15(火) 15:10:31.40ID:LCoHwxWt
>>873
num2 = num;
は箱の場所(住所みたいなもの)を num と同じにしろ、という意味。
だから、num[1] =50; とすると、num2[1] も 50 になる。
一方、
num =[40,50,60];
とすると、「今までの num の場所に右辺をコピーして上書きしろ」
という「意味ではなく(!!)」、
「num という変数の『指している』対象を右辺の置いてある場所(先頭)に変えろ」
という意味。だから、num2には全く影響を与えず、num2は依然として
昔の箱の場所を指し続けている。
0877852
垢版 |
2019/10/15(火) 17:49:49.01ID:xlc04VK+
皆さんいろいろ教えていただいてありがとうございました。
近いうちにRubyを導入してみようと思います。
0878デフォルトの名無しさん
垢版 |
2019/10/15(火) 20:33:26.95ID:rgut+G6x
>>871
それはコマンドプロンプトの問題だったんじゃないかなぁ
Cygwinだと1.9時代でも問題なかったよ


>>868
>Windowsでは、irb, pry のようなREPL は、日本語でバグるから、ダメ!

「バグる」で思考停止せずに問題を切り分けよう
https://github.com/pry/pry/wiki/Windows-support


>.rb の拡張子を、ダブルクリックに紐づけると、不注意で起動されてしまうので危険!
これはその通りだけど、.batでも.vbsでも同じようなものじゃないの?
セキュリティも考えるなら署名付きPowerShellとかのほうが安全ではあるよね
0879デフォルトの名無しさん
垢版 |
2019/10/15(火) 20:41:27.51ID:rgut+G6x
>>872
どういう動作になるかはわからないけど
MBCS用の関数だからUnicodeには対応してないんじゃない?
VC系のスレで聞いたほうがいいかも
0881デフォルトの名無しさん
垢版 |
2019/10/16(水) 00:53:20.11ID:BcOpz+1/
ココまでの流れを見ると、PythonはAIやらない限りRubyに劣るという認識でよろしいですか?
文法やライブラリで勝るところって何か無いのでしょうか?
0882デフォルトの名無しさん
垢版 |
2019/10/16(水) 01:39:47.59ID:J5r9S3ID
>>881
全然認識が違う

Pythonが劣っている訳ではなくて、Python使えますというと数学力や機械学習を期待されてしまい、それがない人は辛くなる

なおPythonが文法で勝るところは余りないように思うが、別に負けているとも感じない
Rubyのメソッドチェーンは素直に羨ましい
Pythonのimport/from importの仕様やジェネレータの仕様はなんだかなぁ状態
Rubyはメソッド周りがわけわかめ、def、proc、porc.new、->はなんとかならんかったのか

強力なライブラリはRubyよりもPythonのが多い
pandasやnumpyがめっちゃ強力、matplotlib,seaborn,plotlyでグラフもOK
JupyterがあるのもPythonの利点だったけど、最近はRubyも使える

画像処理は外部ライブラリを使うだけなので似たり寄ったり
C言語とのバインドはRubyでswig使うよりはPythonのが簡単に思う

Python2の頃は日本語処理が酷かったが、pytjon3になってからはそうでもない

バージョンアップごとの対応はどっちも辛かった
Ruby 1.8 -> 1.9 -> 2.0で都度キレた
Pythonは2.7から3系になったときに同じくキレた
4系でも多分キレると思う
0883デフォルトの名無しさん
垢版 |
2019/10/16(水) 19:03:43.52ID:sUcGSwhO
>>881
Rubyの標準クラスライブラリのリッチさは上位組だと思うけど
素の状態で勝負したらPythonに勝ち目はないね
0884デフォルトの名無しさん
垢版 |
2019/10/17(木) 00:12:04.35ID:nmwrV9Kg
Python は東大数学科・大学院など、数学・統計学などの重要度が高いから、あまりプログラミングと関係ない。
プログラマーのキャリアパス上からは、仕事が得られない

学歴・大学院などの要素が大きい。
MBA など、文系の修士号から来る人も多い

プログラミングは、手を動かすものだけど、
低学歴プログラマーが頑張っても、なんともならない領域

YouTube で、KENTA が言ってる通り、
初心者が1年勉強して、仕事を取れることがない。
周りが高学歴ばっかりだから

一方、Ruby は、Web 系サーバー側に限定されているから、プログラマーのキャリアパス上にある。
Ruby → JavaScript, Go, Elixir, Kotlin。
サーバー側の正統派のキャリアパス

最先端の自社サービス、GitHub, Airbnb, Kickstarter、
Cookpad、食べログ、Gunosy など

Rubyは、Java みたいな、5大SIer・多重下請け構造・階層ピラミッド・土方系とは異なる。
階層に入ると、1社経由する度に、3割抜かれる(システムの請負料金・保証料金)
0885デフォルトの名無しさん
垢版 |
2019/10/17(木) 06:45:24.35ID:gq3I2ckq
Rubyは作者が日本人だけあって言語が一時しのぎの感情論で作られていて論理性が全く感じられず
使うだけで洗脳されて馬鹿になるからやめた方がいい
pythonはその反対
0886デフォルトの名無しさん
垢版 |
2019/10/17(木) 10:27:02.49ID:tq7j3RVK
↑などという論理性が全く感じられない感情論を吐くのが
洗脳されて馬鹿になってる証拠
0887デフォルトの名無しさん
垢版 |
2019/10/17(木) 11:27:44.59ID:huR1Dm0j
Rubyは作者が日本人だけあって言語が一時しのぎの感情論で作られていて論理性が全く感じられない。
ちょっと使ってみただけでも、そんな感じになってるのが感覚的にわかるだろ
その雰囲気を肌で感じることが出来ないやつは、論理性がなく感情論で話をしてる
0890デフォルトの名無しさん
垢版 |
2019/10/17(木) 12:00:43.15ID:GTpPRCCe
PC用のソフトウェアが、スマホアプリのように気軽に課金される日は来ると思う?
PCから割れの被害がなくなる日は来ると思う?
■ このスレッドは過去ログ倉庫に格納されています