X



【IT】「最も嫌いなプログラミング言語は何?」栄えある1位に輝いたのはあの言語
■ このスレッドは過去ログ倉庫に格納されています
0001ノチラ ★
垢版 |
2017/11/03(金) 19:35:56.37ID:CAP_USER
プログラマが最も嫌うプログラミング言語に関する調査が行われ、かつてウェブ上で高いシェアを誇ったあの言語が堂々の1位に輝いた。

 これはStack Overflowが実施したもので、結果は「Perl」がダントツの1位、次いで二番手グループが「Delphi」「VBA」、三番手グループが「PHP」「Objective-C」「Coffeescript」「Ruby」という結果になっている。調査方法はやや特殊で、同サイトのDeveloper Storyという求職ページに登録しているプログラマが「扱いたい」と回答している言語に加点、「扱いたくない」と回答している言語を減点するという方式によるもので、投票などによる選出よりもある意味で信頼できる結果と言える。同調査ではこのほか「嫌いな技術」についても同じ方法で調査を行っており、そちらはIEやFlashなどが上位に挙げられている。
https://internet.watch.impress.co.jp/docs/yajiuma/1089747.html
0438名刺は切らしておりまして
垢版 |
2017/11/11(土) 02:40:35.72ID:PGzEARVA
Perlで、use strictプラグマが出てから、
javascriptでもstrictモードが出てきたんだよな。
正規表現とか、ヒアドキュメントとか、最初の頃に主にPerlで作られたり発達した機能は、
結構 他にも真似されて移植されてるな
0442名刺は切らしておりまして
垢版 |
2017/11/11(土) 11:07:16.61ID:4MM2J0jR
>>438
最新のJavaScriptはPerlの便利で良い部分だけをほとんど引き継いだよ
例えばPerlの便利な特徴である配列とリストの取り扱いも
JavaScriptではスプレッド演算子と分割代入の対応という形で明瞭かつ高度に対応してPerlより便利
0443名刺は切らしておりまして
垢版 |
2017/11/11(土) 11:38:18.54ID:RqoPlkQV
>>438
正規表現はed辺りが最初だし、ヒアドキュメントもshの方が早いだろ
そもそも30年ぐらいの歴史しかないperlが起源とかあり得んわ
0444名刺は切らしておりまして
垢版 |
2017/11/11(土) 12:45:21.74ID:4MM2J0jR
>>443
元祖の正規表現はed(正確にはその前のQED)が最初だけど
現在広く使われている拡張された強力な正規表現はPerlが最初で合ってるよ
これがPCRE(Perl Compatible Regular Expressions)という名前のライブラリになっており
Apache, Safari, nginx, flash, MySQL, PHPなど多くで用いられている
0447名刺は切らしておりまして
垢版 |
2017/11/11(土) 20:52:29.48ID:PGzEARVA
殆どのスクリプトは最終的にはparrot仮想マシン専用にコンパイルされたものを
実行する形になるだろうから速度的にはどれも変わらないような結果となるだろうな。
javascriotもJITコンパイルされたものはネイティブのマシン語実行と変わらない速度だろうから
どれを選ぶかはユーザー次第だな
0449名刺は切らしておりまして
垢版 |
2017/11/11(土) 23:46:21.94ID:4MM2J0jR
parrotよりWebAssemblyが現実的な状況になるかもしれない
Google、Mozilla、Microsoft、Appleが合意して全てのブラウザが対応しつつある
0450名刺は切らしておりまして
垢版 |
2017/11/12(日) 17:13:25.32ID:oPpCBWMw
>>324
現在のJavaScriptはfunctionを使わずに
アロー関数で (arg1, arg2) => { return arg1+arg2;} と書くことも可能

>>328
現在のJavaScriptにはブロックスコープ変数もある
従来のvarは使われなくなってブロックスコープも可能なletを変数宣言に用いる
constも使える

>>434
現在のJavaScriptの言語仕様で困る人はいないと思う
従来の問題点は何もかも解決されている
0451名刺は切らしておりまして
垢版 |
2017/11/12(日) 17:32:20.59ID:msiGgikw
JavaScriptは型が曖昧だからメンテしにくいんだよ
ひとりで開発するならなんとかなるけどさ
0452名刺は切らしておりまして
垢版 |
2017/11/12(日) 18:50:20.21ID:oPpCBWMw
型キチガイ向けにはTypeScriptがある
現在のJavaScriptもしくはTypeScriptの言語仕様で困る人はいないと思う
もし不満がある人は具体的に述べてくれ
0455名刺は切らしておりまして
垢版 |
2017/11/13(月) 00:58:51.61ID:wGKo7MHA
>>454
パイプライン演算子「|>」は単なる関数合成だから
  arg|>func1|>func2|>func3

  func3(func2(func1(arg)))
は同じ
JavaScriptはメソッドチェーンも使えるので
  arg.func1.func2.func3
と書くことも可能
0456名刺は切らしておりまして
垢版 |
2017/11/13(月) 15:23:24.02ID:Vs/jlIxj
>>451
そんな時のためにstrictがあるんだろう。
でも、strictプラグマってPerlなら需要があるだろうけど、
javascriptでは殆どstrictを実装しようとは思わないな。
他人と共同開発するなら記述を厳格にする必要があるだろうから必要だろうけど
0458名刺は切らしておりまして
垢版 |
2017/11/13(月) 18:08:24.56ID:WK3VuqgR
>>455
関数合成は分かってるんだが、関数のマトリョーシカみたいな記述になるのがキモくてね

メソッドチェーンのその記法、prototype汚さずにマジで動くのか?
後で試してみるが
0460名刺は切らしておりまして
垢版 |
2017/11/14(火) 19:35:14.99ID:BN+NWC/J
>>459
ほとんどobject型って言われるだけじゃね?
0461名刺は切らしておりまして
垢版 |
2017/11/14(火) 21:30:52.33ID:d4/+FhXw
そこでstrictモード
判別できるようになる

function not_strict() {
 console.log(typeof this);
}

function use_strict() {
 'use strict';
 console.log(typeof this);
}

not_strict(123); // => object
use_strict(123); // => number
0463名刺は切らしておりまして
垢版 |
2017/11/15(水) 10:07:56.17ID:7d5IJcdM
主流の言語のほとんどはいずれも型宣言をしない言語
型宣言がないと保守しにくいと言ってるのはよっぽどの馬鹿だけ
もちろんいずれも型を調べることは可能

Python 「type(var)」
Perl 「ref($var)」
PHP 「gettype($var)」
Ruby 「var.class」
JavaScript 「typeof(var)」
0465名刺は切らしておりまして
垢版 |
2017/11/15(水) 13:26:11.58ID:7d5IJcdM
型キャストを常に明示的に指定しなければいけない窮屈な言語はダメだね
0466名刺は切らしておりまして
垢版 |
2017/11/15(水) 14:01:27.38ID:+HsJMNoX
>>463
主流の言語である
C C++ Java C# Kotolin Swift 等無視してワロタ
いずれも型宣言が必要


型宣言のない言語は保守しにくしチーム開発にも向いてないね
他人が作ったコードとか自分が数ヶ月前に書いたコードとか追いかけるのが難しくなってくるからな
0467名刺は切らしておりまして
垢版 |
2017/11/15(水) 14:13:32.24ID:5tUnvYXa
型を意識したくないとか昔のVBerみたいなこと言ってんな
あいつら糞コード量産してたわ
0468名刺は切らしておりまして
垢版 |
2017/11/15(水) 14:24:25.60ID:V437cLJ8
>>463
あなたは、テストは人力でやった方が力がつくと信じてる人ですね。
0469名刺は切らしておりまして
垢版 |
2017/11/15(水) 14:59:51.19ID:7d5IJcdM
現実を見ろよ
Python, Perl, PHP, Ruby, JavaScriptは実際に多くのサイトで用いられている
型宣言なんか無くても実用的な運用が可能である決定的な証拠だ
0471名刺は切らしておりまして
垢版 |
2017/11/15(水) 15:18:40.03ID:7d5IJcdM
むしろ開発効率が良いからPython, Perl, PHP, Ruby, JavaScriptなどが多くの現場で使われている
0472名刺は切らしておりまして
垢版 |
2017/11/15(水) 15:49:03.78ID:DcxGYTZq
型宣無しで運用できるものはいいと思うけどな。
型宣で特に問題になるのは、数字か数値か少数の扱いが主だろう。
型宣必要でも無しの言語でも大した問題じゃない。
むしろ、スクリプトの方が効率はいいとおもう
0473名刺は切らしておりまして
垢版 |
2017/11/15(水) 17:37:04.73ID:gksnXprT
静的型付け主義を唱えてる民の半数は
動的型付けを旧VBのバリアント型のような感覚で考えてそう
0474名刺は切らしておりまして
垢版 |
2017/11/15(水) 19:06:44.78ID:V437cLJ8
>>469
DBとブラウザとの間で値のやり取りするだけのシステムばかり。
0477名刺は切らしておりまして
垢版 |
2017/11/15(水) 20:43:49.23ID:W+FVgU82
pythonの公式の勉強サイトが有能すぎて、今までの教材不足による逃げが通用しなくなった
0478名刺は切らしておりまして
垢版 |
2017/11/15(水) 22:09:15.45ID:7d5IJcdM
>>474
うちの界隈はツール類・データ収集&処理・サーバーサイド・ブラウザ上・アプリ全てJavaScript
0480名刺は切らしておりまして
垢版 |
2017/11/15(水) 23:32:34.39ID:7d5IJcdM
>>479
表記の違い程度は大した問題じゃない
PerlやRubyのelsifを嫌っているならば
Pythonのelifについて感想をどうぞw
0481名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:02:48.42ID:ohz972dw
>>5
VBAが嫌われるのは古い設計のシステムで更新する仕事が多いから。
トラブルの原因の多くは古い設計だが、古い設計だから新しくするという仕事がもらえているのに、現場は元のシステムが古いことを目の敵にする。

1位から3位グループ全部そう。
0482名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:04:26.19ID:ohz972dw
>>6
スクリプトかどうかなんてのは嫌われるかどうかには関係ない。
ストロングタイプな言語とは使い道が違う。
ましてJavaScriptはラン環境が特殊だからな。
0486名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:06:34.13ID:ohz972dw
>>12
スクリプト言語とマネージドコード言語の区別がついていないようだね。

まだ人にコメントするのは早いな。
0487名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:07:49.74ID:ohz972dw
>>13
現在のオブジェクト指向言語のほとんどは手続き言語であって、宣言型の言語はSQL以外ほとんどないのだが?
0488名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:08:46.78ID:ohz972dw
>>12
スクリプト言語が中間コード吐く言語なら、C#も中間コード吐くからスクリプト言語になるだろう間抜け。
0489名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:11:52.14ID:ohz972dw
>>16
CとかJAVAはストロングタイプな言語で、例えて言えばプロの大工が使う工具のようなもの。

使いにくいし取っつきにくいし、扱いも大変で、整備もしないとすぐダメになる。

でも、DIYの店で買ってきた2x4の材料を安い工具でくっつけてハイ出来上がりでは出来ないものが作れる。
0490名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:14:11.51ID:ohz972dw
>>20
VMとDLLは異なる。
君の言い方を借りればVMは静的なライブラリ結合とは比較にならないオーバーヘッドが発生する。

だからダッカーみたいな技術が出てくる。

まあ、でもあんたのセンスは悪くないより
0492名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:23:01.95ID:ohz972dw
>>30
普通の言語は表記法の大元を辿るとだいたいAlgolに行き着く。
だから、だいたいの書き方は似てくる。

他方Perl はAlgolの影響を受けたCなどから強い影響を受けているものの、文法自体はawkというテキスト処理に特化したツールの影響を強く受けている。
AwKはsedなどのストリームエディタの派生ツールで、要するに基本は文章を置換したり、整形するためのもの。

perlのそもそもの目的がそっち方向だったから、その分野のほとんど唯一の普及したツールであるawkを意識するのは突然だった。

だから全く異なる文法にならざるを得ない。
0493名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:24:13.05ID:ohz972dw
>>44
初見で、Rubyが何やってるかわからないというのは、百人一首は外国語だと思ってましたと同じくらいのヤバさ。
0494名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:26:19.30ID:ohz972dw
>>32
結局C++が次世代の主力と万人に思われながらフェードアウトしつつあるのはその表記があまりに複雑すぎるから。

それなら、メインの仕事以外ではpythonで良いじゃないのとなる。
0495名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:27:38.09ID:ohz972dw
>>38
なんでこんな程度の駆け出しにもならないアマチュアが俺語りを始めるのか?

お馬鹿なお前が大半の言語が合わないのは当たり前だろ。
0496名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:32:52.98ID:ohz972dw
>>58
ダメじゃないさ。文字列操作なら今でもトップレベルだろう。

でも、大昔のAlgolから始まった手続き型の言語の表記法は構造化、オブジェクト指向などを取り入れながら成熟し普及している。

Perlはその言語表記とは全く系統が異なるので、表記法から学習しなくてはいけなくなって、多くのプログラム作成者に負担になっているのだ。

Lispやprologのような人工知能言語やその拡張もそうだが、そっちは利用者が限られている,
SQLもかなり違っているが、あれはデータベース操作限定で、かつ面倒いことは隠蔽されることが多くなってる。
0497名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:37:10.77ID:ohz972dw
>>67
なんで君は、データストリームのオーダーとcompileの速度のような比較できないことを比較するの?

レーシングカーは1秒間に100m近く動くから、オートマチックじゃ間に合わないとか言ってるみたいな話だな。
0498名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:37:55.87ID:ohz972dw
>>66
そもそも言語仕様や言語のデザインで解決すべき問題ではない。

システム説明のレベルで解決すべき問題。
0500名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:46:05.55ID:ohz972dw
>>114
そんな話は10年前に終わってる。

今はそんな風に作られたシステムの更新しなきゃいけなくなって、それでプログラマーのヘイトを集めてる。
0501名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:47:10.69ID:ohz972dw
>>119
まあ、製作者の中心は海軍の将校様だからな。

タイプ量が増えるように設計しているという今とは全く逆の設計だ。
0503名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:49:04.50ID:ohz972dw
>>126
そんなのいくらでも回避可能だろう?
とか思うような人はPerl使いでなくてもPerlをけなしたりしないか。
0504名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:49:07.29ID:JvkXIDOL
perlは最強の言語なのになぁ。
保守性が悪いって言うけどそんなことはないぞ。
アホが作ったコードがすぐわかるし、書き直すべきかの判断に困らない。
pythonとかrubyって、コーダーのレベルがわかるまで時間かかりすぎ。
0505名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:50:18.90ID:ohz972dw
>>131
Cだってstdioインクルードするし、なんだったらCOBOLなら使用者組織からターゲットのハード仕様まで書かせるぞ。
0506名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:57:50.06ID:ohz972dw
>>135
今は二つの方面からの攻撃がある。

昔からある攻撃は、簡便なwebページの処理に特化しているので、本格的に使用する際にはセキュリティ上やその他諸々の配慮が必要なのに雑誌やネットのサンプルのコピペと切り貼りで作ったようなプログラムが多くて、悲惨だというもの。

特にメンテ役になると頭を抱えることになる。
できれば諸々配慮したシステムにして欲しいが、依頼主からすると、動いているから問題ないとなる。

最近のphpプログラマー自身からの攻撃は、言語仕様が高度になりすぎて、わからなくなつているというもの。

これは前者のクレームに対応したということもあるが、php自体の使用範囲が拡大して汎用の言語として使われるようになり、それに対応出来るような言語となることが求められたという側面もある。
ただ、最新のバージョン7は普及が始まった3からの表記法とは全く異なるだけに、以前からの仕事を普通にこなしたいweb関係の業者から怨みの声が出ている。
0507名刺は切らしておりまして
垢版 |
2017/11/16(木) 00:59:17.13ID:ohz972dw
>>140
すでに利用はPerlをはるかに凌いでいる。
UNIXの世界では標準になっている。
Windowsの世界でも開発者界隈では標準的なものになってるね。
0509名刺は切らしておりまして
垢版 |
2017/11/16(木) 01:01:01.85ID:ohz972dw
>>142
没落したかはわからない。

暁光が作られる前の日本一のスパコンはIntelCPUで大規模なAIの基盤となるもの。

なんかネットの片手間記事の受け売りしかできない連中が多いね。
0510名刺は切らしておりまして
垢版 |
2017/11/16(木) 01:02:36.34ID:ohz972dw
>>147
金になっても面倒臭いなというのは嫌につながるだろう。

新しい技術でサクッと進みたいのに、以降元がこれだからサクッと進まないって感じのランキングに見えるが。
0513名刺は切らしておりまして
垢版 |
2017/11/16(木) 01:06:50.78ID:ohz972dw
>>174
なんでphoがwebで圧倒的と思ったの?
現実はJavaにシェアで勝ったことは一度もない。

だって大規模なweb開発ではJavaが圧倒的に多いから。
0514名刺は切らしておりまして
垢版 |
2017/11/16(木) 01:11:47.15ID:ohz972dw
>>176
嫌われることは少ない言語じゃないの?

Cでスクラッチから開発したなら現場主導ではないことが多いからドキュメント類が残ってるだろうし、そうでなくてもプロの開発者ならコメントはしっかり残してる。

で、プログラムの構造もMakefileとかで最低限のところはわかるし、プロジェクトファイルがあればもっと色々分かる。

headerファイルに変数の情報は最低限あるし、構造体とかはどっかで必ず宣言されてる。

以降元としては充分だよね。
0517名刺は切らしておりまして
垢版 |
2017/11/16(木) 01:21:29.48ID:ohz972dw
>>199
作れるのが嫌われるのではない。

あなたがいなくなったり、全社的なシステムの導入をするときにあなたの作ったそのシステムを解析して、同一の挙動をするプログラムを作るのが苦痛で恨まれるのだ。

同じようなとか、仕事に便利なようになら良いのだけど。

実際の仕事してたあなたが作った時とは違って、システム開発業者はあなたの作ったものと全く同じものを作ることが求められる。

プログラムの詳しい説明もないVBプログラムのリスト見ながら、変数名に一喜一憂し、do until とdo whileの使い分けに悶絶し、数字だった変数が文字として処理されてる部分の仕様確認で時間を浪費する。
0521名刺は切らしておりまして
垢版 |
2017/11/16(木) 01:30:11.86ID:ohz972dw
>>225
何も知らない素人乙。

自然言語なら津軽弁でも京都言葉でも良いし、多少の間違いはいつでも修正できるがプログラムはそうはいかない。

かっこの位置が一つズレただけで全く動かなくなるし、最悪の時は動いても絶妙のタイミングで悲劇をもたらす。
0522 
垢版 |
2017/11/16(木) 02:55:04.57ID:ceL8JzwL
わけわからないジジイ降臨ですまない
パールやらアセンブラやら、みんながしらない言語でやってたのよ。
皆はしらないかも、だが、
ほかのやり方が良いとおもったら、
ちゃんと、温故知新しろよ。
0523>521
垢版 |
2017/11/16(木) 03:04:33.76ID:ceL8JzwL
彼に対してそう言い方や、
本当に自分が正しいとしっかりしないかぎり
ダメだと思うのは俺は変ですか?
0525>>524
垢版 |
2017/11/16(木) 03:10:11.49ID:ceL8JzwL
>>524

皆より先にネンネ行こう、
恥ずかしながら、35である。
皆が若い民であると思うが、
本当によろしくね。
0526名刺は切らしておりまして
垢版 |
2017/11/16(木) 03:15:32.34ID:8B131sXp
>>525
なんだよ、35歳なら、はなたれ小僧にもいかない
おっぱいおいしいの年代だ。
(続けるつもりならだが) 大変だがガンバレ!
0527名刺は切らしておりまして
垢版 |
2017/11/16(木) 03:24:40.53ID:JYJUvbsG
ID:ohz972dwのように文句をつけたり否定したりするだけなら誰でもできる行為
文句以外にも少し情報を出してくれてはいるがプログラミング言語スレの話題としては少し物足りない
否定するなら正解や別案や改善方法または興味深い話題を振ってくれるとよい
0528名刺は切らしておりまして
垢版 |
2017/11/16(木) 03:24:53.45ID:ceL8JzwL
>嫁、ファーストレディーに似てます。
0530名刺は切らしておりまして
垢版 |
2017/11/16(木) 03:40:10.00ID:ceL8JzwL
526さん、すまんけど、おっぱいあんまり好きではないっす。。。
母さんができる、できないことを、自らに嫁にゴタゴタ言うのは、
と。。。

鼻たれですが、自らの心と判断なさって。
0532名刺は切らしておりまして
垢版 |
2017/11/16(木) 03:43:38.02ID:PH5h60O7
COBOLは扱いがどうのうこうのよりも、もう、話題になる事が無くなったって事やろ

まあ、まだ動いている所はありそうだけど、クローズなシステムでバグさえでなければ
そのまま死ぬまで動いてもらえば良いって感じな所も多そうだし
0533名刺は切らしておりまして
垢版 |
2017/11/16(木) 03:46:21.65ID:JYJUvbsG
>>480
"else if"を合成でelseif・elsif・elifと書くのはSyntax Sugar(糖衣構文)に過ぎないとみなせる
つまりelse ifへと置き換えてコーディングすることも可能

例えばその中でもPerlは一番自然にelsifを単純にelse ifに置き換えても動く(C言語と同じ表記になる)
if (cond1) {
} else if (cond2) {
} else if (cond3) {
} else {
}

ところがRubyはend方式ので同様にelse ifに置き換えると末尾にendが3つと不自然になる
if cond1
else if cond2
else if cond3
else
end end end

さらにPythonはインデント方式なので同様にelifをelse ifに置き換えるとインデント地獄で読みにくい書きにくい
if cond1:
else:
  if cond2:
  else:
    if cond3:
    else:

このように3者が全く異なる結果となってしまう
0534名刺は切らしておりまして
垢版 |
2017/11/16(木) 03:49:42.82ID:YMglnno9
簡単なTool程度ならPerlでも問題ないだろ
0535>533
垢版 |
2017/11/16(木) 03:52:41.43ID:ceL8JzwL
いいお、ごめん。
あんまり考えても、今、CGI系ないからさ、
一緒にいたら友達になりたいタイプお。
■ このスレッドは過去ログ倉庫に格納されています

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