次世代言語議論スレ[Rust Kotlin Haskell]第6世代at TECH
次世代言語議論スレ[Rust Kotlin Haskell]第6世代 - 暇つぶし2ch832:デフォルトの名無しさん
17/10/03 19:25:56.04 KmXggyRJ.net
イケてないのに人気がある golang vs イケてるのに人気がない Nim
URLリンク(wolfbash.hateblo.jp)

833:デフォルトの名無しさん
17/10/03 19:31:53.29 upqeSfz9.net
Nim はまだ発展途上過ぎる。
ブロックコメントが入ったのも最近だろう。

834:デフォルトの名無しさん
17/10/03 23:32:56.72 VvnGZhVU.net
Rustはスマポを使うべきところで参照を使うとコンパイルできないね
スマポは1種類ではなくて左辺値みたいなスマポと右辺値みたいなスマポがある

835:デフォルトの名無しさん
17/10/04 00:03:11.19 5eMqfOkE.net
スマートポン?

836:デフォルトの名無しさん
17/10/04 06:05:52.94 I8P8RQcn.net
>>832
否定はできないけどエコシステムを含めて評価して欲しいところ。
nim < Go が世間の評価なんだから自分の感覚がずれているということをわかってもらいたいな。
多分goが色々仕様が足りないようにみえるのは言語の再考だからだと思う
例えばclassって本当にいるのか?って考えてるのはすごいこと。
普通は皆つけちゃうよね。そこでclassを採用しなかった。
ジェネリクスも多分いちばんいい形で実装されると思う。

837:デフォルトの名無しさん
17/10/04 07:02:44.52 VzltHPaW.net
どう見てもガイジなんだからまともに相手する必要ねえだろ
しかも新人かと思えばいい歳したオッサンとか、もう色々と終わっとる

838:デフォルトの名無しさん
17/10/04 08:01:52.09 6fGy+UI9.net
Nim<GOが世間の評価ってことはないだろ。そもそも世間はNimなんて知らないんじゃないか?

839:デフォルトの名無しさん
17/10/04 08:09:59.02 pULpEgLQ.net
世間の評価って本当にいるのか?って考えてるのはすごいこと。
多分いちばんいい形で評価されると思う。

840:デフォルトの名無しさん
17/10/04 12:00:16.50 DiJewy83.net
Nimこれまで避けてたけど、これ結構よくね?

841:デフォルトの名無しさん
17/10/04 14:31:49.82 B2XamLw4.net
書き易く読み易い
動作もそこそこ速い
でも流行らないNim

842:デフォルトの名無しさん
17/10/04 17:38:53.01 LT+9qEc0.net
"Hello,world!"::print
とか書ける言語出ないかな

843:デフォルトの名無しさん
17/10/04 17:44:46.88 eKN2AIaa.net
>>842
C#やKotlinやRubyでStringにメソッド生やせば普通にできる

844:デフォルトの名無しさん
17/10/04 18:15:56.42 l7XMNd9h.net
Nim なら "Hello,world!".echo と書ける

845:デフォルトの名無しさん
17/10/04 19:03:11.59 LT+9qEc0.net
rubyだとprint!ならできたけどprintはダメだった
a 500 :: varset
succ(x) x+1 :: def
みたいにひたすらこの形式のみにしたらどうかな、とか思った

846:デフォルトの名無しさん
17/10/04 21:11:06.92 hjCUawIk.net
Dもいけるぞ"Hello,world!".writeln(うろ覚え)

847:デフォルトの名無しさん
17/10/04 21:22:38.73 ObffTMEn.net
ちなみに Smalltalk は最初の Smalltalk-72 から Smalltalk-78 まではずっと 'Hello,world!' print
だけど Smalltalk-80 以降は最新の Pharo、Squeak を含め Transcript show: 'Hello,world!' に
ただひとつ変わり種の GNU Smalltalk だけが今も変わらず 'Hello,world!' print
URLリンク(ideone.com)

848:デフォルトの名無しさん
17/10/04 21:41:15.01 LT+9qEc0.net
やはりSmalltalkですか
でも今見直したらFactorも "Hello,world!" print だった
より純粋なオブジェクト指向とかスタック指向を目指すなら後置関数にこだわるのも良い気がする

849:デフォルトの名無しさん
17/10/04 23:07:25.22 rikHP6KZ.net
Juliaなら
"Hello, world!" |> println
とか行ける |> は左の引数を右の関数に適用する演算子
多分高階関数を気軽に扱える言語なら大体似たようなことができると思う

850:デフォルトの名無しさん
17/10/04 23:34:13.26 1ZpMsI7I.net
こういうくだらないシンタックスで盛り上がれるっていいよね。

851:デフォルトの名無しさん
17/10/04 23:55:10.27 VzltHPaW.net
もっとくだらなくてゴミみたいな自称次世代言語下痢糞プェチピィについて語ろうゾ

852:デフォルトの名無しさん
17/10/05 00:04:04.93 0B54PbO+.net
Nimのシンタックスが「俺の求めていたものはこれなんだ」って感じでしっくりきている

853:デフォルトの名無しさん
17/10/05 10:00:21.57 6CUoA44/.net
>>840
同意

854:デフォルトの名無しさん
17/10/05 12:08:45.40 2VHNud46.net
発見したんだけれど語だとAさんBさんの間に自分がいると、自分の前にAさんがいて後ろにBさんが
いるってかくけれど、
にほんごだとAさんの後ろに自分がいてその後ろにCさんがいるのように自分中心
に書かないだろ。
これが日本人にオブジェクト指向があわない証拠だとおもうな。

855:デフォルトの名無しさん
17/10/05 12:56:26.82 U9Ub2sS/.net
そういう話じゃないと思うけどね。
単純に実行効率とメンテナンス性のバランスとるのが下手なだけ。

856:デフォルトの名無しさん
17/10/05 13:06:01.46 2VHNud46.net
それは東洋的な発想はプログラムに向かないってことだよね。

857:デフォルトの名無しさん
17/10/05 13:52:09.38 DNu4hyXr.net
島猿は観念論的な思考が苦手だからな

858:デフォルトの名無しさん
17/10/05 17:54:15.12 hq5BCXwT.net
でも英語だと命令形は動詞が先に来るけど、日本語だと後に来るので、
その点ではオブジェクト指向的な気がする

Lispみたいに前置にこだわった感じの関数型は英語的だと思う

859:デフォルトの名無しさん
17/10/05 17:57:02.28 Jc3a3LA7.net
得意なら半年で習得できるとか自分勝手にハードル上げて勝手に挫折して苦手になるのだ
10年かかると最初から思ってたら挫折もしない

860:あ
17/10/05 19:36:48.36 5X6CpPIC.net
ってか習得するもんでも無いんじゃないの?
やりたい事をやりたいように出来ればそれで良い気がする。
自動車整備の達人はレンチの達人かもしれんが、ただのレンチの達人は自動車整備出来んだろ。
新型のレンチ試して習得する前に、どう使うかを考えた方が余程良いかと思う。

861:デフォルトの名無しさん
17/10/05 22:08:07.44 5FiWY82n.net
goはjavaの境界ワイルドカード型が理解できなかった奴らに支持されてるんじゃないの?
javaのパラメトリック多相が複雑だからって後発言語ではin/outになったじゃん。

862:デフォルトの名無しさん
17/10/05 22:25:32.14 DNu4hyXr.net
最初にジェネリックの変性にin, outを使ったのってC#だっけ?
あれ思いついた奴は天才だろ
あれだけ意味不明だったJavaのワイルドカードが一瞬で誰でも一目で理解できるものになってしまった

863:デフォルトの名無しさん
17/10/05 22:27:03.03 jfAiiqib.net
null安全でない言語は、もはやレガシー言語だ
URLリンク(qiita.com)

864:デフォルトの名無しさん
17/10/05 23:53:50.11 9FcQYtba.net
in, outとかはAdaにあったけどあれとは違うの?

865:デフォルトの名無しさん
17/10/06 00:57:54.53 AmbKZ1TQ.net
ええだ、ええだ

866:デフォルトの名無しさん
17/10/06 01:50:35.56 mbAUXPYs.net
gcのときといっしょの浅はかな議論
nullがなくなろうと意味的なnullは必要なんだよ
だから絶対にそこにバグは入り込む
バグり方が変わるだけ
下手に動き続けるよりヌルポの瞬間に潔くクラッシュしてくれた方が
調査しやすいという考え方もある

867:デフォルトの名無しさん
17/10/06 07:22:04.51 Pjx+vQ2Q.net
>>866
意味的なnullを想定しない箇所については型でnull を弾くよう静的検査するべきということなんだが?

868:デフォルトの名無しさん
17/10/06 08:25:43.72 mbAUXPYs.net
意味がないとは言わない
おれもあれば使う
が思うほど効果ない

869:デフォルトの名無しさん
17/10/06 12:24:07.66 28ESsb6Q.net
null安全言語使うとホント幸せだよな。
結果的にここにnullの可能性がある変数が到達しないってことを言語として保証してくれるってすごすぎる。
書いてみると分かるけど返り値がnullの可能性があるかどうかは
内部で使うapiに依存してたりして、外側から見ると予測できない。
だから人間がやろうとしたら、結局使う側で全ての引数にnullチェック入れるしか無い。
まぁ面倒だからnullPointerExceptionを出しちゃうわけですけど。
コンパイラが把握してくれれは必要最低限のチェックで済むから精神衛生上も大変よろしい。
こういう進化はどんどんしていって欲しい。

870:デフォルトの名無しさん
17/10/06 12:36:51.70 nzqIzLrY.net
>>868
必要性を感じるようなコードに出会ったことがないんだね、幸せなやつ

871:デフォルトの名無しさん
17/10/06 12:52:52.70 sp3JMBsg.net
機能としては悪くないと思うけどnull安全とかいう頭悪いワードでバカを勘違いさせるのやめろ
nullで落ちるならnullチェックすればいいというわけじゃない

872:デフォルトの名無しさん
17/10/06 13:13:58.43 W7gYVrEG.net
まあないよりはマシだろうけどくらいの意味合いだな。
レイヤーを下りれば結局人間が判断することになることが多い。

873:デフォルトの名無しさん
17/10/06 15:41:59.82 HTxWyqCb.net
null safety理解してないやつ結構いるのね

874:デフォルトの名無しさん
17/10/06 17:29:24.43 28ESsb6Q.net
>>862
これ詳しく。typeScriptでジェネリクス使うようになった新参だからなんのことかわからん。

875:デフォルトの名無しさん
17/10/06 19:11:52.24 avQrunR/.net
NullPointerExceptionがことさら悪いことのように言われるが
俺にはどーも単に他のバグ(?)と違いが分からない
意図通り書かれてないからバグ(?)るんであって
いつだって、書かれたとおりに動いてるだけのことであって

876:デフォルトの名無しさん
17/10/06 20:00:20.02 VLsCvj8e.net
>>875
ググれ

877:デフォルトの名無しさん
17/10/06 20:21:56.80 Rv6hBe2m.net
nullで初期化して後で代入しようしたら急に例外が来て脱出することがある
その例外を処理する途中でバグるから他のバグよりも深刻
例外を投げない言語なら問題ない

878:デフォルトの名無しさん
17/10/06 20:59:37.31 7QyvSB4A.net
>>874
interface Hoge<TIn, TOut> { convert(val: TIn): TOut; }
class B extends A { ... }
このとき、Hoge<A, B> のオブジェクトを Hoge<B, A> として扱っても理屈上問題ないはずだろ?
それを可能にするのがジェネリックの変性という概念。
ちょっと考えたら分かるはずだが、変性が適用できるのは型パラメータが入力または出力のどちらか一方にしか使われていない場合だけ。
さらに、型引数が入力と出力どちらであるかによって、変化の許される継承の方向が逆になることも分かるだろう。
C#では、interface Hoge<in A, out B> のように型パラメータの方向を限定してやることで変性を与えることができる。
これ Java だとHogeを使う側で Hoge<? extends A, ? super B> と書くんだけど、意味不明だろ?

879:878
17/10/06 21:07:24.53 7QyvSB4A.net
すまんちょっと訂正
C#では、interface Hoge<in TIn, out TOut>のように

880:デフォルトの名無しさん
17/10/07 00:18:08.77 ay0KJt9o.net
>>862
ガビン・キングか誰かが同時期に+-考えて後にceylonに導入されてる。
>>864
あれは入力変数と出力変数と入出力変数
>>878
ムダに長いな。
いちばん重要なのはどの型変数が入力/出力用か定義した側は分かってるから
宣言部だけに書けばいいのにjavaの仕様だと利用する側も利用する型を
書かなきゃいけない無駄が無くなること。
javaも型推論の範囲広げてくれればダイヤモンド演算子で済むんだけど。
話は変わるけど「意味的なnull」の場合はnullable typeとoptionalどっちがいんだろうな。
optionalがモナドかどうかは抜きにして。

881:デフォルトの名無しさん
17/10/07 01:10:07.86 ZhYAfijB.net
>>878
すまんいまいちわからん。
in outの指定がなくても推論できそうな気がするんだけど。
それがどう便利になるのか、、、、
推論のための情報を増せるってことかね。

882:デフォルトの名無しさん
17/10/07 01:14:59.49 ZhYAfijB.net
>>875
コンパイラ側で実行時エラーが減らせるならそれに越したことはないと思うんだが。
特にコード書いてる最中に指摘してくれるから頭がいい人が隣に座ってくれてる感ある

883:デフォルトの名無しさん
17/10/07 01:45:27.02 oYr2GY5l.net
> 頭がいい人が隣に座ってくれてる感ある
この例え、ちょっとワロタ

884:デフォルトの名無しさん
17/10/07 08:15:36.29 Wf+VpSRV.net
>>881
全く違う。推論じゃなくて、Hoge<A, B>をHoge<B, A>にアップキャストできるってこと。

885:デフォルトの名無しさん
17/10/07 08:31:36.09 Wf+VpSRV.net
具体的な例を上げると、
例えば型パラメータに応じたオブジェクトを作成して返すFactory<T>インターフェースがあったとして
Factory<DBConnection>型をパラメータとして要求するメソッドに対して
Factory<OracleDBConnection>オブジェクトを直接渡せるってことだ
型推論じゃなくて型パラメータの互換性までを考慮したアップキャスト

886:デフォルトの名無しさん
17/10/07 09:04:26.26 U1Wl1fD6.net
アップキャストって文字列みてレス内容スキップした

887:デフォルトの名無しさん
17/10/07 09:25:02.60 FzxjfsDf.net
List<object>にList<string>を代入できるってことだろ。

888:デフォルトの名無しさん
17/10/07 09:58:03.30 h9TjUWM8.net
>>885,887
抽象度さがってるんだから、アップキャストじゃなくてダウンキャストじゃねーの?

889:デフォルトの名無しさん
17/10/07 10:27:19.45 fUAr46yo.net
コンパイラやランタイムがキャストする方向

890:デフォルトの名無しさん
17/10/07 11:54:57.90 ODmPff4g.net
>>888
よく考えろ
広げる方向へのキャストだよ

891:デフォルトの名無しさん
17/10/07 14:40:09.93 U1Wl1fD6.net
俺はもう
(単なるType **を)ダブルポインタ
(単なるポインタ型の値渡しを)ポインタ渡し
(謎の用語)アップキャスト
(謎の用語)ダウンキャストの飛び出して来ない世界に旅立ちたい

892:デフォルトの名無しさん
17/10/07 16:36:46.84 7mvjIKWG.net
ポインタ(型の値)渡し
いかんのか?

893:デフォルトの名無しさん
17/10/07 17:33:27.49 ZhYAfijB.net
>>885
やっぱ具体的なコードがないとよくわからんな
<T extends Hoge>XXX のHogeの部分を自由に指定できるようになるってこと?

894:デフォルトの名無しさん
17/10/07 18:36:11.03 3J6O2fHU.net
class ExtendsX a where { toX :: a -> X }
class SuperY a where { fromY :: Y -> a }
Haskellなら単なる関数にするだろ
キャストという謎の用語を使う必要がない

895:デフォルトの名無しさん
17/10/07 18:37:08.45 U1Wl1fD6.net
>>892
い(ちごや、み)かんでしょ
あとJavaしか知らない人が背伸びしようとして?
(参照型変数の値渡しのことを)参照渡し
これもいつまでたっても無くならない

896:デフォルトの名無しさん
17/10/07 19:08:57.97 ODmPff4g.net
>>893
var f1: Factory<OracleDBConnection> = getOracleDBConnectionFactory();
var f2: Factory<DBConnection> = f1;
var conn: DBConnection = f1.create();
こういうこと
いちいち無駄な型パラメータを使う必要がない

897:デフォルトの名無しさん
17/10/07 19:09:53.49 ODmPff4g.net
>>896
訂正
3行目はf2

898:デフォルトの名無しさん
17/10/07 19:45:02.40 3J6O2fHU.net
fmap :: (a -> b) -> Factory a -> Factory b

899:デフォルトの名無しさん
17/10/08 00:02:28.18 CO5NODlU.net
>>885,887
できねーよ。
>Factory<DBConnection>型をパラメータとして要求するメソッドに対して
>Factory<OracleDBConnection>オブジェクトを直接渡せるってことだ
>List<object>にList<string>を代入できる
これが出来るのはFactory<T>/Factory<U>やList<T>/List<U>が共変のときのみ。
それを緩めるのがjavaの上限境界ワイルドカード型。
>>898
それじゃモナドだろ。変性の話な。
変換の話ししてんのはID:Wf+VpSRVだけだから型変換は忘れろ。
おまえらPECS理解してなさすぎ。ポケモンで説明してやるよ。
List<? extends ゼニガメ>があった時このリストに入るのはゼニガメ、カメール、カメックス。これが上限境界ワイルドカード型。
set<T super ピクシー>(T value)というメソッドのときピクシー、ピッピ、ピィが入力できるんだよ。これが下限境界ワイルドカード型。
ValueT<?> value = foo.get<ポッポ>()とあった場合は?はポッポに変身したメタモン。これが非境界ワイルドカード型。
ただし、非境界ワイルドカード型はjavaの場合は型消去されてすべての型のsuper typeを表すObject型になる。つまりに何にも変身してないメタモンのまま。
これはjavaがnone-reifiableだからでreifiableな言語ならポッポに変身したメタモンならポッポのまま。

900:デフォルトの名無しさん
17/10/08 00:06:17.55 CO5NODlU.net
X none-
O non-

901:デフォルトの名無しさん
17/10/08 00:20:35.53 z2et5JhT.net
C++から離れて以来、<>括弧に拒否反応出る

902:デフォルトの名無しさん
17/10/08 01:23:41.59 RGO+IW57.net
ダブルポインタとか言うバカに構文木を教えるために括弧を強制してやったのに

903:デフォルトの名無しさん
17/10/08 06:33:17.35 gfyVN7gN.net
>>899
それをC#だとキャストできるという話なんだが、頭おかしいのか?

904:デフォルトの名無しさん
17/10/08 07:01:36.88 gfyVN7gN.net
このように、>>899のように俺は分かってる感を出してる奴にとってすらジェネリックの変性は理解が難しいんだよな
ちなみにKotlinだと型定義時の指定と型使用時の指定の両方をサポートしてたりする
TypeScriptの場合はキャストが完全なstructual-subtypingベースで、型名やジェネリックは型定義のエイリアスに過ぎない
だから特に変成を明示的に指定する必要はない

905:デフォルトの名無しさん
17/10/08 09:49:48.11 83iEE1/H.net
C++「仮想関数とtemplateは直交する」
Go「templateやめた」
Haskell「仮想関数やめた」
Java「直交やめた」

906:デフォルトの名無しさん
17/10/08 10:08:21.08 Eg4i3QFB.net
>TypeScriptの場合はキャストが完全なstructual-subtypingベースで、型名やジェネリックは型定義のエイリアスに過ぎない
>だから特に変成を明示的に指定する必要はない
TypeScriptの場合は必要ないと言うより、個々に指定できないから固定ルールでごまかしてるってのが近いと思うが。

907:デフォルトの名無しさん
17/10/08 11:22:02.79 83iEE1/H.net
ごまかしてるというのは擬人化しすぎというか
擬人化だけならいいが擬人化してから罪悪感を植えつけるのは科学ではない
政治に近い

908:デフォルトの名無しさん
17/10/08 13:03:47.11 2gMmrTuo.net
>>899
この文脈で脈絡のないモナドとか出してる時点で
いつもの知ったかぶり野郎ってわかんだね

909:デフォルトの名無しさん
17/10/08 13:11:52.16 2gMmrTuo.net
>>906
structural subtypingあるのにできないって、随分中途半端な言語なんだな

910:デフォルトの名無しさん
17/10/08 13:58:01.39 N1KoImhE.net
ジェネリクス一つとっても言語によって結構変わるんだなってことしかわからん。

911:デフォルトの名無しさん
17/10/08 15:08:02.99 83iEE1/H.net
言語を決めようとするなよ
言語は決めたがコードは書けない無駄な状態ができるだけだから
決められない状態の次の瞬間に書き終えるのが正しい

912:デフォルトの名無しさん
17/10/08 15:20:15.14 93IJP3PA.net
>>911
ポエムかよw

913:あ
17/10/08 19:27:00.87 j8mHa+JP.net
ラダーでも描くか

914:デフォルトの名無しさん
17/10/10 00:29:11.40 nhSeKmwJ.net
>>881
T extends Foo
U super Bar
だと人間がその型変数が入力用か出力用かわかりづらいからin/outの方がわかりやすいって言ってるだけ。

>>903
キャストじゃないって言ってるだろ。

915:デフォルトの名無しさん
17/10/10 02:22:58.57 sTZmKFl8.net
PHP出身のオッサンマジでつっかえなくてワロタ
mapとlistの区別もできないガイジ
年上に敬語使いたくなくなったの初めてだわ

916:デフォルトの名無しさん
17/10/10 03:11:06.93 5pISAq8F.net
PHPはちょっと前までリストは無かったかならぁ。
あったのは数値インデックスをキーとするマップだった。
でもPHP7からまともになったと噂で聞いたがどうなんだい?

917:デフォルトの名無しさん
17/10/10 03:24:21.13 IR1b7wv8.net
動的言語ってだけでクソ

918:デフォルトの名無しさん
17/10/10 03:36:14.32 sTZmKFl8.net
>>916
ウンコにカレーかけたらカレーになるか?
そういうことだ

919:デフォルトの名無しさん
17/10/10 07:24:37.15 6OEY56cJ.net
概念なんて知らなきゃ知らない
知ってりゃ知ってる程度の話で
ただやった事あるかないかの差だろう
やればすぐに覚える
その程度で上になった気になってマウント取れる頭が羨ましいわ

920:デフォルトの名無しさん
17/10/10 08:19:53.37 rShZoZ8i.net
>>914
だからC#ではキャストなんだよ
知らないなら黙ってろよ

921:デフォルトの名無しさん
17/10/10 10:39:53.93 /pjPidVz.net
道徳がないのに用語の定義だけ守るなんて滑稽だわ

922:デフォルトの名無しさん
17/10/10 13:11:11.72 CR13gByh.net
>>919
まぁ、逆にそういう基礎的なことを知らない時点で他も推して知るべしってなってイライラする気持ちもわかる。
多分、色々あったんだよ

923:デフォルトの名無しさん
17/10/10 13:30:28.05 lvgfa+uM.net
自己学習をしない老人ほど役に立たないものはない
若者にバカにされたくなかったら勉強を怠るなということさ

924:あ
17/10/10 18:49:40.52 DF0+rUls.net
まあ、敬語を使う基準や使ってはいけない基準が「年上」ってのも相当だけどな。
他人であれば敬語以外の選択肢が出てくる時点で異常。
上司であれ部下であれ、客であれ飼い主であれ、友達じゃねえんだから。
ほんとにドヤ顔したいなら、理解させたら良いのに。
理解させる事が出来ないなら、そいつ以下な気がするわ。
少なくともそいつより賢くないとできない事が、そいつに教えるって事なんだし。

925:デフォルトの名無しさん
17/10/10 19:22:18.97 /pjPidVz.net
無料で教えるのは難しくないね
ブラックジャックのように報酬はいくらでも出すと言わせるのが難しい

926:あ
17/10/10 22:24:43.37 iLP+BZ6B.net
別に手弁当で教えなくても、理解させりゃ良いと思うが。
教えるって直接何かを伝える以外にも色々あるじゃん。覚えなきゃ切るって言ったり何でも。
それなら賢くなくても出来るか。

927:デフォルトの名無しさん
17/10/10 23:06:31.17 fjptMfzZ.net
>>920
C#でも同じだバカ。
パラメタ型がキャストできたら型引数が部分多相になるだろうが。
おまえが代入互換性とキャストの区別もついてないだけなんだよ。

928:デフォルトの名無しさん
17/10/10 23:08:02.34 ximXNc4+.net
まあ若い人が今新しいと思ってるものが将来のレガシーコードを生んでることが多いんだけどね。
今巷にあるテストのないコード見てるとそれが良くわかる。

929:デフォルトの名無しさん
17/10/10 23:27:37.58 Hng7vpUg.net
そりゃ今あるものはいずれレガシーになるでしょ

930:デフォルトの名無しさん
17/10/10 23:43:31.35 8cUJeS6O.net
実績おじさんのドレガシーはマジ勘弁

931:デフォルトの名無しさん
17/10/10 23:46:43.26 ximXNc4+.net
>>929
メンテしやすいかどうかは言語機能とは無関係なことが多い。

932:デフォルトの名無しさん
17/10/11 00:02:13.85 wRfMxQMF.net
話の脈絡の無さが怖いわ。

933:デフォルトの名無しさん
17/10/11 00:07:23.11 5ft9QxZH.net
>>927
いいから具体的なC#コードで説明してくれ

934:デフォルトの名無しさん
17/10/11 01:38:41.04 YaLB6Rv/.net
未だにMVCとか言ってそう
んで、全部Cにロジック書いてそう

935:デフォルトの名無しさん
17/10/11 09:28:50.53 viUxhdEA.net
MVCって古いの?
やっぱMVVMが主流?

936:デフォルトの名無しさん
17/10/11 09:32:41.32 KC3ar1qW.net
>>935
適用対象が違う

937:デフォルトの名無しさん
17/10/11 09:35:16.45 viUxhdEA.net
MVCって古いの?

938:デフォルトの名無しさん
17/10/11 09:59:29.85 zxckWzxc.net
とりあえず有名な物批判すれば通ぶれるってメンタルだろ
構ってちゃんにまともに取り合おうとするな

939:デフォルトの名無しさん
17/10/11 11:18:23.60 FXPTh88o.net
悪いものは更新する
正義なら古くてもそのまま
これだけの話なのに
おそらく正義か悪かを判断したくないから、新しいか古いかだけで決めようとするんだろ

940:あ
17/10/11 18:05:13.39 Q0CgrKbU.net
わからんのだろう、それが一体どういう場合にどういう悪になるか、とか、
悪は悪だが必要悪だとか、悪は悪だがそれを避けるコストが、我慢して使うコストを圧倒的に上回ってるとか。
ちょっと前の話なら、ClassicASPを嗤ってた割に、SSRとか言ってはしゃいでた奴とかいたが、心底アホなんだなぁって思ったよ。

941:デフォルトの名無しさん
17/10/11 20:11:14.56 g/AsaciR.net
避けるコストが我慢して使うコスト上回るってelectronとかか?

942:デフォルトの名無しさん
17/10/11 22:21:07.88 YaLB6Rv/.net
スカラー型程度で嬉ション漏らしてPHPにも型を!
とか言ってる連中ってマジで頭おかしいんちゃうか
あまりのレベルの低さに草も生えない

943:デフォルトの名無しさん
17/10/11 22:23:00.80 zxckWzxc.net
案の定MVCバカにしてるのも例の奴だったか

944:あ
17/10/11 22:23:46.07 76AReSDy.net
>>941
割と色んなものに当てはまると思うよ。
できればもう書きたくないけどプロジェクトは大規模だし、改修範囲は把握してるし、
動作環境も固定されてるとある機械の制御端末なので、VB6のプログラム改修してパッチ出します、とか真顔でやってるプロジェクトある。
よーやるわ、と思うが。
>>942
建設的にやれば?

945:デフォルトの名無しさん
17/10/11 22:32:54.93 wTw7h0wv.net
なぜペチパーは頑なにPHPに拘るのか不思議には思う
JavaScriptはしょうがないにしても、今どきPHPを積極的に採用する理由が見当たらない

946:デフォルトの名無しさん
17/10/11 22:37:50.49 zxckWzxc.net
>>945
WordpressつこてるならPHP以外ないだろ
というかむしろWordpressとECぐらいしか新規案件見ない

947:デフォルトの名無しさん
17/10/11 22:41:53.70 LTsyra25.net
>>944
そういうことか。
古いjavaならoracleがAPIを削除し始めたから、
そのうち強制移行だろうけどイントラネットみたいなところで生き続けて、
言語仕様の進化から取り残されるんだろうな。
VMレベルで互換性失うのはまだ先だろうけど。

948:あ
17/10/11 22:48:53.10 76AReSDy.net
>>945
javascriptはしょうがないで書くような言語でも無いかと。
よくできてると思うよ。
上からまっすぐ降りてくる言語しかできん奴はjs嫌いだろうけど。
型が柔軟なのも良いけどな。なんでも突っ込むのは頭おかしいが、代数的データ型として使う分には良い具合の無茶が出来る。awaitが使えるようになって、ますます良い具合。
phpは置けば動くあの簡単さが良いんだろ、多分。

949:デフォルトの名無しさん
17/10/11 22:53:12.14 mJo8X84s.net
次スレにNim入れるか?いらんか?

950:デフォルトの名無しさん
17/10/11 22:53:28.87 /Z9HBCDN.net
某Drupal案件は最悪だったな
よくわからんモノシリックFWに、低単価で寄せ集められたクズどもがどうしようもないゴミ山こさえて
どうにかこうにかまともな風に仕立て上げた頃に、新任のCTO就任
早々に言い出したのが「こんなレガシーではいけない!次は・・・Symfonyだ!」
あっという間にみんな撤退したよ
一応未だに企業は残ってるから、あれを保守して何とかやってるんだろうな
Symfonyエンジニアも絶賛募集してるから、レガシーからレガシーへの移行も諦めてないんだろう
あんなゴミでも営業や企画次第で優秀な金儲けの道具になるんだから
エンジニアリングって何だろう、って切なくなる思うことがあるよ

951:あ
17/10/11 22:55:49.93 76AReSDy.net
>>947
ASP生きてる会社もあるよ、聞いた所だと。
純然たるソフト屋なら対策するだろうけど、製造業やら医療のシステムってたとえイントラでもすぐにスクラッチで作れるもんじゃないしね。台帳保存の法規制とか諸々含め。
windows7のVDI環境もあるし、IEのエンタープライズモードもあるし、多分使わなくなっても5年は動態保存してる。

952:デフォルトの名無しさん
17/10/12 09:19:49.86 psiPw/kX.net
大抵の言語でもフレームワークでも向き不向きがあって
よほどのレガシー以外で普通に生き残ってるのは
それなりに理由がある。
すぐ優劣みたく言う人はスキル低そうとしか思わんな

953:デフォルトの名無しさん
17/10/12 09:23:32.76 psiPw/kX.net
あ、別の上のレスについて言ってるわけじゃないよ

954:デフォルトの名無しさん
17/10/12 09:59:53.96 6P6d2PA3.net
F77は余程のレガシーに入りますか~?

955:デフォルトの名無しさん
17/10/12 11:04:53.10 NcrW6M9b.net
「代わりはいくらでもいる」とかなんとか脅して丸投げするのが不可能になるだけだから
自力で読み書きするなら何の問題もない

956:デフォルトの名無しさん
17/10/12 21:49:54.65 BJ7mXHtm.net
問題は流行り廃りが激しいことじゃない?
>>954
未だにCOBOLの求人あるぐらいだから"余程"じゃないなw


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch