Crystalってpythonに対するnimのruby版という認識なんだけど間違ってるかしら
webのものだがrustを採用するよう上司を説得するのに四苦八苦してる 自分が分かることしかやりたくないオタンコナスめ
>>4 ちょっとでもいいから自分で書いて説得材料に加えた方がいいよ。先行者がいるかいないかで全然印象が変わるから 使う言語も作るサービスも新しかったら上司も二の足も踏むよ >>5 書いてるしプロダクトに組み込んでるよ もっと広く使いたいってはなしさね rust使える連中集めるか、僕が一生このプログラムのメンテしますって念書でも書けばいいんじゃね
smalltalk由来の? 実装コストの割にちょっと手間が減るだけだから、広まるとは思えないなぁ。。。 あれば便利だけど、拘る程でも無いし。 設計段階で良く使うのを前半に持って来れば現状でもデフォルトの値で省けるし。
>>14 広まるどころか既にPython、C#、Scala、Swift、Kotlin、Nimなどに名前付き引数が存在する 名前付き引数はあったほうが良いけどな。 tsとかjsでもobject使って名前付き引数っぽくはかける
引数の数が3つ以上になったら名前付き引数を使ったほうが良いけどな。
>>14 >smalltalk由来の? うわーキモいなーw アホみたいに引数が多いWin32APIとか呼ぶときは欲しくなる
Smalltalkの名前付き引数って引数の順番入れ替えられないってマジ? ガチでウンコじゃん
オプション引数が2つ以上になるなら欲しくなるね。 まぁ連想配列を渡せればそれでもいいんだが型安全でない。 そういう意味でTypeScript最強。
>>4 悪いけど趣味でRust書いてる俺ですら webものでRust採用するなんて言われたら全力で却下するわ 当然異論あるのは承知の上で、 オプション引数が必要だと思ったときはすでにAPI設計が失敗してるって思うのだが 具体的にオプション引数でないとできないことってなんだろう
webでrust、なんでダメなんだ? active recordが無いから?
単純にasyncまわりが動乱期で、 今書いても近いうちに書き直しになるのが目に見えてるから>webに導入するの反対 あとはRust使うくらい性能追及しなきゃいけない部分なんて webでそこまであるか?というのもある >>29 のバカでも書けるに近いかもしれんが、 Goで困る用途がそこまで思い付かない 渋の配信回りみたいな部分で欲しいのは分かる てかgoで本格的なアプリ書いてみりゃチャンネル使ってもまだまだ複雑になるってことに気づくわ。 言語の瑣末ごとに時間食ってる余裕はないと感じるようになる。
>>32 pixiv Sketchのライブ機能とかいうやつのバックエンドがRustで書かれてるんだと >>33 ピクシブのシブか ぼくはjavaやgoで書くくらいならrustで書くけど、馬鹿に合わせなきゃいけないなら仕方ないな Javaで書くくらいならGoで書く C++で書くくらいならRustで書く は分かるんだ Goで書くくらいならRustで書くと言えるほど プログラミングスキルに自信はないな 豪語できる実力と後任育てる覚悟があるならいいんじゃないかなとしか言えん
難しいの意味によると思うけど、例えば予測しきれないGCのほうが難しくない? みんな作ってるものも求められるものも違うから一概には言えないけどさ そういう意味では、馬鹿に合わせるってのは言い過ぎだった、ごめん
>>27 オプション引数という機構が無くてもやりようはあるという話なら理解できるが、 設計の失敗というのはピンとこないな。どういうこと? >>37 GCの挙動予測しなきゃいけないくらいシビアに作らなきゃいけないものなら確かにRustで書く ただ単なるWebのAPIサーバとかでそんなシビアに作るか?という話 例に挙げたpixiv Sketch Liveはエンコーディングが絡むからGoでは確かに辛い >>38 一言でいうなら後付けの建て増しに見えるから、かな? 初めからオプションによって色々変わる設計ならビルダーパターンなり構造体を引数に渡すなり 設計段階からオプション引数が不要なように書いてると思うんだ ただ単なる偏見な気もする それ複雑さがビルダーの初期化に移るだけだろ 記述量でみるならオプション引数の方が簡潔
1つ2つくらいなら確かにそうだけど、 その流れで気づいた10個越えてたってパターン複数回見てるから、 オプション引数使うより初めからいくつ増えてもいい設計にした方がいいのでは?と思う もちろん思考停止で増やした奴が一番悪いのは知ってるが
10個になったってビルダーよりオプション引数のほうが簡潔でしょ 何言ってんの?
初めから完璧に設計なんてできないんだから、備えておくこと自体ナンセンスだよ 初めの設計が破綻したらdeprecatedにマークして、その時点で最適なインターフェースを作ればいいじゃん
rust 2018 editionが標準になったな 書き換えるのに2時間くらいかかったわ
設計見直したのが大きいってな Androidならコトリン一択だろうけど
そこはGoogleらしいね。 ただ、鯖ならもっと良い言語あるだろってのはあるし、Goにも言えるけど鯖から外の用途がGoogleの言語は伸びないのよね。 GoもGUIライブラリ弱いし。 自社に関係する用途以外に関心が無いっぽいのがね。。。 オープンソースって元からそういう所あるけど、仮にもGoogleがバックアップしてるのに。 MSも似た様なものだけど、関係する分野自体が手広いからライブラリも充実する。
javaのトランスパイラだならサーバも書けるけど 新規で書くのにコトリン選んでたら指差して笑う
GUIはFlutterでやるんかね C#の層をねらっているようにもみえる
>>59 気の毒なことにコトリンを選ぶ現場はあるたいなんだ 潜在的にはjavaのが圧倒的に多いだろうけど jvm使うかどうかなら分かるけど javaかkotlinかって些事じゃね
選べるのにわざわざjvmに縛られるスカポンタンがいるってこと
>>61 そうだなあ。Javaしかできないと言ってる人にいきなりやらせてすぐにできるようになったらその人はかなり良いプログラマである可能性があるということはわかる。 何ヵ月やってもダメっぽい場合は他の事も多分ダメでプログラマ向きの人ではないから他の仕事に移すかクビの方向で検討。 ここ的には基本Go もっと性能予測や速度が必要ならRustって感じか?
kotlin触った後にdart触るとセミコロンがうっとうしいな 次世代言語にセミコロン不要だわ
■C# list.ForEach( e => { Console.WriteLine(e); }); ■Java list.forEach( e -> { System.out.print(e); }); ■Rust list.for_each(|e| { println!("{}", e); }); ■Dart list.forEach( (e) { print(e); });
■JavaScript list.forEach( e => { print(e) }) ■Groovy list.forEach { e -> print(e) } ■Kotlin list.forEach { e -> print(e) } ■Swift list.forEach { e in print(e) }
■Go ※筋力でforループ セミコロンもだけど末尾ラムダの場合に括弧減らせる方が俺は好きだな
>>73 Rustのノイズの多さが目立つな Dartもアロー的なものがない分締まりがない印象 ■Smalltalk list do: [:e | Transcript cr; show: e printString ]
>>75 goのforは他の言語のforeachと大して差があるとは思えんが 色々調べてお疲れだと思うけど、そのラムダ式を変数に代入した場合を書いてみるといい ちゃんと色々考えて機能追加したのか、それとも流行りに乗っかっただけなのかが分かるから
>>81 主眼がラムダ構文だったから >>82 そこを書いて自分の考えを出してこうぜ 俺も連投の割には>>75 の最後の行が言いたかっただけだし >>83 俺わかっちゃってます風の文句しか言えないガイジに、自分の考えなんてあるわけないだろ こういうやつは流行りに乗っかっただけのマウントが取りたいだけのキョロ充以下のゴミ虫なんだよ ラムダを渡すのがポイントなわけね。なら、「作ればある」って感じか。 type anySlice []interface{} func (this anySlice) forEach(f func(i interface{}) { for _, e := range this { f(e) } } list.forEach(func(e interface{}) { fmt.Println(e) }
そもそもラムダ式を変数に代入とか普通しないのでは 型推論が台無しになるでしょ
普通の関数型言語の型推論 ( HM型推論 ) なら ラムダ式を変数に代入 ( 束縛 ) しても正常に型が付く
ベクトル計算,統計,数値解析など Python,R ブラウザ上 JavaScript トランスパイラ TypeScript,Dart,Kotlin WebAssembly (多すぎ省略) アプリ,サービス コンパイル C#,Java,Scala,Kotlin,Swift,Objective-C,Dart,Go スクリプト Ruby,Perl,PHP JSフレームワーク使用(Node,React/Native,Electronなど) JavaScript,TypeScript ミドルウェア,ドライバ C,C++,Rust,Go 適応領域/縄張り的な観点で人気言語から列挙、異論は認める
ハードウェアを使う計算処理のDSLとも言えるようなPython,Rの領域は 他が入り込めそうにない TypeScriptはJavaScriptの上位互換性がかなりの強みになっているが ネイティブコールは他に頼る必要がある .NET Native, Substrate VM, Kotlin/Native, Dart など VM型だったものがLLVM等を利用し、 FFIを持つだけでなくネイティブのバイナリを生成出来るようになっている ある程度用途や領域の前提が無いと比較は難しいだろう ビルド関連,エコシステムも実際上は言語選定に含まれる もちろん題材としては構文(型システムなど含む)の優劣のみ比較するのでも良いと思うが
>>83 渡す必要もないのにラムダ渡さないとダメですか。。。(震え声) mapM (\e -> print e) list 流石にラムダは書けるのに関数は渡せないなんてクソ言語は無いだろwww 無いよね? list.forEach(print)
広告がめっちゃ悪さするけどいつからマルウェア配布してたんだ?
>>73 >>76 >>77 rustはもうちょっと簡潔にはなる iter.for_each(|e| println!("{}", e)) 1引数1ステートメント前提での省略書くのは 実用はともかく比較のセンスは悪いと思う・・・
>>101 _は圧倒的にUS配列の方が打ちやすいんだよなあ 右小指をプレス機で潰しちゃって、事務職に転属した人かもしれない。
日本語キーでも右Shiftとその隣を押すだけだしこれが押しにくいってことないだろう
>>73 >>74 ■Python for e in list: print(e) >>106 さらに e はブロックから飛び出すウンコ仕様 PHPと同レベルだね javascriptのvarもぴょんぴょん飛び出すかわいいやつだぞ!
>>108 ・・・ スクリプト言語ぜんぶ同じだと思ってるの・・・?・・・w 大抵の言語って主要な用途がはっきりしてるけどさあ Rustって一体なんの分野で使うのが主流なの?
開発者7万人に聞く、2018年学んだプログラミング言語第1位は? 2019/01/31 09:40:20 後藤大地 https://news.mynavi.jp/article/20190131-764256/ HackerRankはこのほど、7万人ほどの開発者を調査した結果を「2019 Developer Skills Report - HackerRank」として公開した。同調査は、プログラミングに従事している開発者が どのような技術を学んだのか、今後どのような技術に取り組みたいのかなどをまとめている。 開発者が2018年に学んだプログラミング言語としては、JavaScriptが1位になっている。 これにJava、C、Python、C++が続いている。 2019年に開発者が学ぼうと考えているプログラミング言語ではGoが1位で、これに Kotlin、Python、TypeScriptが続いている。これまでの動向からは、開発者が学ぼうと 考えてるプログラミング言語が必ずしもその後のプ人気には結び付いていないことも 示されている。 プログラミング言語の人気ランキングにおいて、JavaScriptはそれほど上位に入っていない ことが多いが、HackerRankのレポートは多くの開発者がJavaScriptの学習に取り組んでいる ことを示している。JavaScriptが実際のシステム開発に必要な技術として広く活用されて いるものと見られる。 ちょっと油断するとすぐ名前出なくなるF#さん・・・
F#のパイプ演算子は非常に便利なのでぜひ普及してほしい
node/typescript, kotlin, rust この3つで出来ない(向いてない)ことってiosアプリ以外にある?
明らかに向かないのはWindowsデスクトップアプリや統計だろうな
3つともiosアプリ/Windowsアプリを作れると思うけど 相対的に向いてないのはPythonやRが得意とするその辺だろうね
すまん。後出しであれなんやが各エコシステムが満タンになった未来想定で頼む。 > Windowsデスクトップアプリ これは js(typescript)/kotlin native でなんとかならんやろか。 > 機械学習, 統計 これは何でpythonが押されてるのか良くわかってないんやが、 rustが成熟しても選ばれんのかな。何かpythonにしかないメリットがあるんやろか。
IOSアプリ TypeScript : (JavaScript) : React Native他 : 例 Facebookアプリ Kotlin : Kotlin/Native(IOS) Rust : 例 Firefox Quantum Windowsアプリ TypeScript : (JavaScript) : Electron : 例 Visual Studio Code Kotlin : (Java) : 例 IntelliJ Rust : 例 Firefox Quantum
エコシステム満タンならPythonの得意分野もいけると思う 現状でもTensorFlowとかJavaやRustから使えるし でも現実的にエコシステムが追いつくことは難しそう Pythonの初学者にも読みやすい性質と データサイエンス系のエコシステムの充実さにより そういう分野の人が流入して、それにより充実さが増す流れが出来てる
>>128 そうみたいやね。おんなじ結論やわ。 typescriptで機械学習の呼出ライブラリ作りまくればワンチャン・・ないか。 そしたら node/typescript(js後継), kotlin(java後継), rust(c/c++後継), phthon(入門用&AIできるよ) この4つならコンピュータ用途の最大公約数ってことでええんやろか。 >>127 アプリってどう言う意味で書いたの? アプリを開発できるかどうか? iOS だったら、pythonista が結構使えそうだよ。 python から、iOS のシステム関数とかObjective-C の関数を呼べるからほぼ何でもできる。 python の外部ライブラリのうちCで書かれたライブラリは使えないけど大体のことは間に合う。 GUI も簡単に作れる。 センサー類も全て使えるしかなり評判が良い。 GUI はjson を呼んでるらしいからWebkitの配下で動いているっぽい。 python 其の物は既に学生の教育用として確たる座を占めたから当分人気が落ちることはなさそう。 pythonista で作ったものは、App store の審査に通らないらしいから売ることはできない。 売るとなるとSwiftを使う事になるが開発環境の垣根が高いからイマイチ人気が伸びない。 オープンソースになったからMac以外でもコンパイルは出来るようになったが、Objective-C のライブラリまで解放されてるわけじゃないからイマイチ。 言語的には好きな言語なんだが。
>>114 CRUD試せるようなwebアプリ作ってみたけどwebには向いてなかったで。 GCいらずの利点が薄いしエコシステム無いしIDEの補完弱いし言語仕様むずいし。 最悪1人でも作れるような小規模サイトじゃないと無理やと思う。現時点では。 >>134 何日か前にpython の人気ランキングが上がってると言うニュースを見て、一昨日辺りからpythonの紹介記事や入門動画を見て、これは使えそうだなと言う感触を得た。 今朝 pythonistaをダウンロードして、どんなものか試したりpython の基本構文を練習したりして、概略がわかってきたから、昼からiOS 用アプリの練習問題としてのサンプルを動かしてみた。 iPhoneでiPhoneアプリを作ろう https://qiita.com/ttsutchi/items/34fb3395f085e5e11f6e こんな感じ WysiWig で配置を自由に動かせるから便利。 昔HTML の作成ツールでWysiWig の物を使ったこともあったが、余計なHTMLを吐き出して後のメンテナンスが大変になるから、すぐにやめた。 これは変なコードを入れる訳でもないから使いやすい。 ただ、アプリをホームに登録して動かして終わった時にソース画面に移るのは煩わしい。 何か方法はあるとは思うが。 日本でpython の普及が遅れたのは、Rubyがあったからみたいだね。 スクリプト言語だから、perl やRuby に似てて当然なんだが、その分pythonは多言語化に遅れてる気はする。 HTML の作り方の紹介動画を見てるとperl を使った作り方に似てるなと思った。 javaのJSPよりはよほど使いやすそう。 自分がpython をやっても良いかなと思ったのは、 1. インタプリタで誰でも入門が簡単 昔のBASICに変わりうる立場。 教育に良い 2. 何でもやれそう。 スマホアプリを手軽に作れるのは趣味に良い。 2.1 Web アプリを作るのが簡単そう。 2.2 Excel との相性が非常に良さそう 今やアメリカの事務職でもpythonが出来ることを求められ始めている。 事務としてはExcel の延長だろうな。 高級VBA?
てかpython程度の言語なら流行ったらその時にでも勉強すれば十分だろ。 perlやrubyに比べたらだいぶ楽だぞ。何を警戒してるんだか。
>>138 その警戒感がないから流行り始めてるのでは? 言語としてはメールやエクセルと同じ感覚で使うレベル。 目新しい事もなにもない。 しかし出来ることは少なくとも科学分野では全ての言語を凌駕しそう。 Pythonはライブラリキックするためだけの言語だからな
>>139 pythonが普段使いだからかも知れんが、本当に凡庸だよ。 他の言語みたいに言語特有の機能みたいな尖った部分はほとんどない。 勉強とかするなら他の言語やったら?と思うくらい。 まあ機械学習ライブラリ周りは言語というかあの手のライブラリ特有の遅延評価の癖みたいなのはあるから そういうのに慣れとくのはいいかも知れんけど。 >>140 言語としての面白さはないが、何かを作る、解決すると言う意味での解決策ではトップレベルなんだろうな。 プログラムというのは、問題を解決するために作るものなんだから、最短距離で解決できるのがベスト。 >>142 そりゃパフォーマンス出せない言語で効率的に動かすには処理の速い言語で作ったライブラリをキックさせれば良いからな そういう意味ではPythonは楽なんだよな Excelマクロに使いたがってるのもまさにそれだしな 単純にライブラリがあるからってだけだよ Rubyが流行ったのと一緒
どんなにエコシステムが充実しようが、Rustがpythonに取って代わることはないよ REPLの有無や型システムの性質の違いやらで、言語仕様の段階でとっつきやすさが違う
型安全とかnull安全とか、気にする方が少数派という悲しい世界
>>146 Rustが、REPL用意しないのは、 何かポリシーがあるんかね〜 ちょっと実験してみる時なんか便利なんだけどな。 そりゃ暗黙にスコープ離れた際にオブジェクト消したりするシステムとREPLはなんか合わんだろ。
>>113 javascriptと C は基本言語的な意味合いがあるから、トップ辺りから落ちることはなさそう。 python は、perl やPHP の座を奪い取ってしまった感があるね。 人気なのにはそれなりの理由がある。 >>135 どれもwebに向いてない理由になってないな >>149 REPLスコープを用意すればいいだけでは? >>151 そうなんか。 GCいらずの利点が薄い -> メモリ管理してる分、webでは開発効率マイナス エコシステム無い -> 開発効率マイナス(そのうち解消できる) IDEの補完弱い -> 開発効率マイナス(そのうち解消できる) 言語仕様むずい -> 1人当たりの開発効率プラスだがメンバのアサインはマイナス(人が増えればそのうち解消できる) 上記を踏まえて、現状では人を揃える必要がある中規模以上のweb開発には向いてないと思ったんだけど、 ワイはポンコツの自覚あるから優秀な人が違うというなら違うんやろうなとは思ってるで。 むしろ個人的にrustは超絶イケてる言語やから流行って欲しい。 webassemblyでrustオンリーwebアプリとか胸アツやね。 RustとGoって、WebAPIみたいなものを書いたときにどの程度のパフォーマンスの差があるの?
>>152 それはスクリプト実行時と差が出すぎるだろ。 そもそも静的にチェックできるだけしようって発想のrustでそういうのは合わんし。 実測してないから全部妄想なんやけどパフォーマンスは誤差やで。 通常の要件なら通信コスト(client<->api)とIOコスト(api<->strage)が高すぎて言語差が出にくい。 高負荷環境(C10K)とか重い処理(画像変換とか)でもRustとGoならパフォーマンス差が少ないから誤差範囲でおさまる。
>>155 そうはいってもghciもそんな感じじゃん。 詳しくないけど、所有権の移り変わりをREPLで判定できるもんなのかね?
>>157 あれそんなにあって嬉しいものか? どうもぴんとこなくて、結局コンパイル実行させとるわ。 世界ではReactがデファクトスタンダードなのに なぜジャップランド土人村のクソバカイエロー・モンキーズはVueマンセーなんてしてるんだい?
>>158 多すぎてよくわからんw Rustのフレームワークってどれがそうなの? 右側のLangって項目がRusになってるやつ全部そうじゃないの
>>153 ポンコツに合わないのは確かだな エコシステムって何を指すんだ? webといっても色んな現場あるし、合わない現場があるのは確かだね >>170 FWとかライブラリのつもりで書いたんだけど、もしやエコシステムってそんな意味じゃないのか。。 Rustプロフェッショナルは他の言語(Javaとか)くらいの開発速度出せるんやろか。 それとも堅牢な分、ちょっと開発速度落ちるんやろか? >>171 俺のイメージだとcargoとかceates.ioのイメージだった ライブラリはwebで使うようなものはあるし、webフレームワークならactix-webが実用レベルと思うけど、何と比較するかによるかも 開発速度は、まだ分かんないな 堅牢だったりGCが無いことで開発が早くなる面もあるから案件次第よな こんな分け方どうや? ■言語 [遅い] script -> Js/Node,Ts,Python, GC(VM) -> Kotlin/JVM, Scala, (Java) GC -> Go, Kotlin/Native GC無し -> Rust, (C) [速い] ■用途 Webフロント -> script Webサーバ -> script, GC(VM), GC Mobile -> script, GC(VM), GC Batch -> GC(VM), GC 配布アプリ -> GC, GC無し 組込 -> GC, GC無し System -> GC無し
vscode、jsだけど十分速いけどなぁ… そりゃメモ帳とかと比べりゃ遅いけどさ
>>179 ちょっと説明不足やったやろか script言語(gc方法に寄らず), コンパイル言語1, 2, 3の計4種で分けて 比較するとそのグループの特色が出てええかと思ったんやけど余計分かりづらいかな。 GC有りネイティブ, GC無しネイティブってことでしょ 長いし省略でいいよ
自分の開発範囲だとScalaとF#を規模で使い分ければ事足りてるわ Rustは仕組み的に再帰と相性悪いのがなー システムレベルの開発とかするわけじゃないしまあいいかなって
>>173 C++ が入っていない時点でお話にならないですね… >>182 >>185 名前出すなら追加なり変更なりの差分書けばよくね まぁ script -> とかの後ろに「例」とでも書いとけば良さそうなレベルだが >>186 何事も「最低限レベル」というものがあるのです… いや要らんやろ、書くまでもない むしろCとJavaも C++はどこに入りますか?とか聞くやつがこのスレ来るわけないし
>>184 それってscalaが大規模側なん? >>185 いやc++, c#くらいまでは知っとるで。 ()付きはこのスレで旧世代言語扱いのやつ。 あんまり書いてもしょーがないかと思って端折った。 新し目の言語は概要知ってるやつだけ書いた。 >>188 C++ は現時点では言語を比較するときの唯一絶対の基準です、C++ が比較基準に入っていない時点で、言語/環境の優劣なんてつけられない 速いけれども書くのが糞手間なC++に比べて、どんなメリットがありどんなデメリットがあるかを我々は注目しているのではないでしょうか? C++ は知らない?知らないの?あなた馬鹿なの?100年ROMってろ >>189 >あんまり書いてもしょーがないかと思って端折った。 その判断それ自体が腐っているといっていいでしょう 何を端折っていいか、何を端折ったらいけないのか、の判断を間違えるようでは、言語比較そのもののセンスが完璧に欠如しているというべきです 死んでください >>189 そうです というかほぼScala 最初は小さいプログラムでJVM起動するのもなんだかなあって思ってたけど慣れた 書くのが楽だからいいわ >>190 C++は知ってるよ 多分、糞手間呼ばわりしてる君よりかはね 一人で勝手にどうぞ そのスレから出てこなくていいよ
>>195 C++ が書けないのなら黙ってればいいのです、なにも無理する必要はないですよ… このスレにいたいのなら必要条件として C++が書ければいいです、まあ簡単な部類だし基準低すぎ様だとは思いますが 今時、C++を書けないのは馬鹿の極みだと思いますね 反省したついでに表にしてみた 言語\用途|Webフロ |Webサバ |モバ|バッチ|配布Ap|組込|シス| 言語例) SCRIPT系 |○ |△ |△ | | | | | Js/Node,Ts,Python, VM使う系 | |○ |○ |○ | | | | Kotlin/JVM, Scala, (Java) GC有り系 | |○ |○ |○ |○ | | | Go, Kotlin/Native GC無し系 | | | | |○ |○ |○ | Rust, (C++) なんか判りづらくなった?
いかん。ワイのテクではまともに表組み出来んわ。 >>192 Scala最近元気ないよね。ってことでKotlin始めてみた。 なんかもうこれでいいような気がしてきてる。 もういいって だから何?って感じやろ 何を基準に◯なのかも意味わからんし
この板今日来たばかりだけど ◆QZaw55cn4c この人どういうキャリアの人なん? なんかえらい上から発言してるみたいだけど どっかの有名な何かのコミッター? 本書いてたりする人? それとも業務で20年以上書いてきたような叩き上げの人?
>>200 すまんな。最強言語はこれ。的な書き込みをよく見るから何かの指標(速度でも人気でも書き易さでも)が欲しかったんやけど、C++おじさん召喚しただけやったわ。 QZ は、ピラフ大王・片山先生(蟻人間)に比べると、プログラミング技術はすごく低い ピラフなんて、PowerShell で、5ch をスクレイピングするような猛者! 気付いたら、Ruby でもプログラミングしていたし、恐ろしい成長力!
いやあ。名言出たね。いいねえ。 今時、C++を書けないのは馬鹿の極みだと思いますね 素晴らしい。最後にキリッって付けたくなるね。
/ \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ | |r┬-| |今時、C++を書けないのは馬鹿の極みだと思いますね \ `ー’´ / ノ \ /´ ヽ | l \ ヽ -一””””~~``’ー–、 -一”””’ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
>>204 script1種とコンパイル3種に分けた結果やで。 その図みんなでちゃんと作ったら次に流行る次世代言語見つけられると思ったんやが みんなブチキレやから諦めた。言語例載せたのが失敗やったわ。 ほんで、それ作ってて以下の予想が立ったから書いとく。 script系:この系は不可侵領域あるから廃れん→typescript or もっと新しいのが流行る VM有り系:この系はGC有り系と役割が被ってるから廃れる→残るとしたらモバイル用途のみ GC有り系:この系はVM有り系を食って一番流行る。→Go or もっと新しいのが流行る。分野が広いから2言語くらい座れる GC無し系:この系は不可侵領域あるから廃れん→rust or もっと新しいのが流行る VM系の言語は消える。script系1個、GC有り系1,2個、GC無し系1個、合わせて3-4個に収束する。 機械学習とか学習用とか速度より構文が重視される系が残るのかは、図の範囲に無いから分からん。 15年したらワイの予想が当たってたか確認しに来るからそれまでこのチラ裏を保守しとくんやで。 >>208 このスレ的にはC++20からが本番 今はようやくマシになってきたところ >>212 それ、コンパイラじゃなくてコンバトラー >>187 Cじゃなきゃできない事はあってもC++じゃなきゃってもんはそんなないし 大体の場合C++以外を使う方がベストプラクティスな場合の方が多い Rubyガイジあ暴れてた時は普通のヤツかと思ってたけどコイツどうしようもないガイジだな
>>214 たしかに C で書く必要があるという話はよくききますね >>214-215 まじめに相手をしながら同時に罵倒するなんて、あなたも私と同じく分裂症的ですね… そりゃ180〜190レスくらいまで読んで思った事とそこから先最後まで読んだ間の時間差で思うことも変わるだろ
Js Jquery こういうやつ信用できねえわ 初心者なんだなってわかる
JqueryをJapan-queryだと思い込んでるガイジだろなぁ
>>209 VM有り言語はそれほど廃れるとは思わんけどどうなんだろ。役割がかぶってるって結構抽象的では? 進化するとなると、VMごとデプロイ出来るようになって、VM無し言語と対して変わらなくなると思うよ。今の.net coreみたいに。 VMがあれば動くってのは割と強くて、Script系の不可侵だと思ってる部分も本質的にはそれとあまり異なる理由ではないと思う。 Goだってバイナリサイズえげつなくて、殆どのランタイムを内包してるからアレなんだし。 >>221 VM のメリットななんですか?屋上に屋を重ねる感が強くて、VM のメリットがよくわからない… VM言語のメリットはランタイムが別だからバイナリファイルがコンパクトにできる事じゃない?Goとの比較 昔は同一のバイナリが複数のOSで使えるなんて言われてはいたけど蓋をあけてみれば全然そんな事はないし
>>224 >バイナリが複数のOSで使えるなんて言われてはいたけど write once, debug evrywhere...... C#(.NET Nativeビルド), Java(Android RuntimeやSubstrateVMでのビルド)もGoと同じくGC付きのネイティブバイナリ 一方で基本ネイティブの言語もLLVMで動的プロファイル利用のJITを使うことも出来る この辺の壁は徐々に消えつつある
結局jAVAも11からワンバイナリ打線なんだよなあ
>>228 >「Ruby」の動的型付け、 これだけなら単なる癌にしかみませんが… https://julialang.org/ >Optionally typed Julia has a rich language of descriptive datatypes, and type declarations can be used to clarify and solidify programs. まあ妥当かな… JULIAは、日本のAV女優。C-more Entertainment所属。 身長:158cm。スリーサイズ:B101・W55・H84cm。血液型:AB型。 趣味:自分磨き、読書。特技:簿記2級、猫に懐かれる事。
簿記2級ってことは商業高校であまり成績よくなかったほうかな?援交しまくりで。 普通高校で2級ならすごい。
Javaみたいな出来損ないでVMの欠点とか言われても
>>222 OSやCPU等が違ってもVMがあれば同じVM用のコンパイル済みバイナリがそのまま動くってのが利点ではないかな。 まあしかし実際にはVMごとに違うバグがあったりして中々理想通りにはいかんことがJavaで証明されてしまった感があるわけだが。 >>228 配列アクセスが1始まりだったり、掛け算記号が必要なかったり、 教科書にある数式をそのまま使えるように意識された言語という印象。 推してるやつも理論よりすぎて個人的には好きになれん。 >>222 移植性は昔から言われてることだけど、コンパイラも作るのが楽だし、中間言語は都合の良い命令セットが定義できるからサイズも小さくなる。 何より、コンパイラの改良とVMの改良を分離出来るので、割と柔軟に改良できる。 使う言語のバージョンと、VMのバージョンに厳密な区切りが要らないと言うか。 最低限このバージョンが要る、ぐらいは必要だけど。 新しい言語のバージョンを使って、古いVMで動かすって事が不可能ではなくなる感じかな。 逆も然りで、古いバージョンの頃に書いたものを、最新のVMで動かすことも不可能じゃない。こっちは割とよくある。 ネイティブバイナリ吐いてると、そのへんキツイと思う。特に標準ライブラリがその言語で実装されてるGoとか。 過去Javaは確かに辛かった時代もあるけど今は安定してるし、Monoも割と安定してるぞ。 .netは.net Native使わんでも、ngenかければ良い。
date、localdateとか混在してjavaめんどい
>>243 バカなコミッターがDateを完全に消去しなかったせい 今後も互換性テストの呪いでいつまでも残り続ける ログまわりもひでぇしな java書くくらいなら転職するわ
commonsや独自のutilで特段大きな問題を感じたことはない
>>246 実験レベルというよりは本来が実プロダクトより実験を目的に作られてる面が大きい 目的にと言うと言い過ぎかもしれないが作っているコミュニティが理論や実験寄りなので >>249 オレの考えた最強の言語! みたいなやつかw >>250 何も間違ってないけど雑な数値計算実験やアルゴリズム実験には本当にイケてるのよ? 漸進的型付けでも型推論と最適化が程よい塩梅で効いてるし私は好き 雑な実験でいいならcかc++くらい使えばいいのにと思うけどね。
>>232 不人気でユーザがいなくなっちゃった言語が 40年越しの環境でそのまま動いても意味ないけどね 雑な実験をC++でやるのには何の問題もないけどそれでもなお煩わしい(ex.tupleとかpairとかがびみょい) ていうかC++こそ本腰入れた実験に使うんもん(分野によります)だし普段はもっと雑に書きたいなという気持ち Cは無いかなー できるけどC++以上にやりたくない
実験って何の実験? 大抵の場合c++は向いてないと思うけどね ハマってる時間がもったいない
そういうコアな計算部分にc++の機能あんまりいらないと思うけどね 結局パフォーマンス必要ならcudaにオフロードとかするんだろうし 構文的なところは凝らないのが正解だよ
>>254 他言語のコミュニティメンバーがもう誰にも使われなくなった言語の しかも40年前の環境を復活させたんなら逆に凄いことだな! CとC++とFortranで型システムが一番マシ(個人の感想)なのがC++って選び方なので
論文のために数回動けばいいようなコード → Python (主要な計算部分はライブラリ任せ) 雑とは真逆の実用ライブラリ → C (NumPyなど) というのが数値解析などの分野の人達の感覚では そしてライブラリ使ってない箇所もあわよくば早くしたいけど 動的言語からあまり離れたくという欲張りさんのために NumbaやJuliaなどがある
>>262 だから雑にやるときはJuliaって言ってるんだよなぁ そのへんのPythonをネイティブにする類、GILはどうなるの?
>>266 nogil=TrueでGIL無しになる 関数のカリー化がないのにパイプ演算子だけ持ってきちゃったElixirはなんか変だよな。 パイプ演算子というよりUFCS。ピリオドにしておけばよかったのに。
ユーチューブみてたら外人さんが今年はじめるおすすめ言語でGoあげてたけどどうなの? VIDEO >>273 英語わらないけど パイパンなのはなんとなくわかった Goはいい言語だと思うが文法がきらいという理由で俺個人としてはやりたくない。
Goは悪くないけどGoやるくらいならCで良いって思っちゃう
その下の節の Update: Rust で 370B になったとあるけど
人力でそんな手間書けるくらいなら最初からCで書くよね普通。
手間っつってもそんなでもなくない? 普通に-Osオプション的なのもデバッグ情報の削除もCでやるでしょ
連投になって悪いがなんならltoも普通にCでやるだろうし存外普通の事しかやってないぞ?
c + lint で済む話をバカが無視するからコンパイラに組み込んだみたいな話、本当バカ。
普通ならなぜデフォにしないの? Cパイセンに華持たせてるの?
当然ながらデバッグし易さやコンパイル時間などとトレードオフがあるので 特化をデフォルトにする必要は無い Cは現役だし使うことを誰も止めはしない 比較は構わないけど推されてもここでは単純にスレチ
デバッグし易さやコンパイル時間などを考慮した結果、せっかくwasmのクセに性能はす、す、すくりぷとげんごwwのじゃばすくりぷとwwwと大して変わらずww5倍wも巨大なwasmバイナリをデフォで吐いてしまうビチグソ言語()があるらしいwww CやAssemblyScriptは性能大して変わらなくてもデフォでジャバスクリプト()よりサイズ小さいのにどう言い訳すんのこの新世代()うぇぶ言語wwwww
>>278 クラスタ分散周りのコード書くならgoが良いと思われる。 A better C = Go A better Perl = Python A better Java = Kotlin A better Javascript = TypeScript A better Lisp = Clojure
>>297 PythonとPerlって言うほど用途被ってるか? 個人的には A better Python = Node.js だって思うけどな 俺はKotlinよりScala推しだけどバックについてる規模がなあ
A poorer C = Go A poorer Perl = Python A poorer Java = Kotlin A poorer Javascript = TypeScript しっくり来るな
>>303 まだというかずっとじゃね GCやgoroutineスケジューラのサイズは削れないし 用途がいくらか被るにせよ、性質的にCの代わりを目指したものでもないし 他の言語が無駄な機能を増やすほどCがbetterということに気づかされる。
>>306 betterというか完全にbestだね 使いやすいけどとっつきにくさがどうしてもあるから 優しいとされる他の言語が重宝されがちになるが >>306 Cは、アセンブラみたいなものだからな。 >>305 禿同。 Goは鯖で速度重視専用な気がする。 マイコンの規模で使える気がしない。 違う。 それだけマイコン使う分野がマイナーってだけ。 CPUパワーがあれば楽出来る言語使うのは当然。
>>311 はあ? マイコンって何を指してるか知らんが、今のスマホのパワーは、数年前のデスクトップを凌駕してるぞ。 >>313 そそ。 PICとかそこまで小さい規模の話。 スマホでもゲームとかはCやC++もあるだろうけど、楽出来る分にはCは無いわな。 100円のチップでPythonが動く時代なんだぞ。 自動車の自動運転のマイコンなんか、下手なPCよりパワーはあるぞ。
>>316 自動運転用の石はそうだが、パワステ制御だけとか小さい石は今でも8ー16bitだし、CPU全体じゃそっちのが数は多い。(80%) IntelやARMは小さいパイで大きく稼げる市場を独占しただけで。 少なくとも日本車はルネサス製マイコン使ってる。 Casl2とかニーモニックがそのまんま。 まさに試験が企業の求める人材発掘の篩になってる。
>>318 今はARMだろ。 中央のは、NVidia とか、Intel を使ってるのかな? 自動車って、何十とCPUを使ってるから何がメインかというのは難しいのでは? Nvidia もIntel も実態はARMコアを使ってるみたいだけど。 ルネサスも震災以降はダウンして、ユーザーからのARMを使えという声に応じざるを得なくなったみたいだし。 >>321 ルネサスって元は日立とどっかの合資で出来たとこだっけ >>307 Go は better C ではなく better C++ なんだけどな better C 目指しているのは Rust ざっくりした言い回しは自然と情報量が落ちてしまうので難しいもんだが、GoはやっぱりCompiled PythonとかC++とJavaの中間とって言語機能をC並に絞ったとかの複雑な立ち位置の印象だ Rustもbetter C 兼 replacing C++の印象
理論的には理想に近い言語でも、実用環境が限られたり、スピード的に極端に落ちると現実的ではなくなるからね。 やはり言語的に洗練されていて、環境を選ばずに動き、スピードの解がある言語は伸びる。 Javaは、環境を選ばずに伸び、スピードの解はJITでまあまあ解決した。 Pythonは色々難しい問題がありそうだが、PyPyはJITで動いてるしいずれ本家がJITをサポートする様になるんじゃ無いのかな。Cythonは直接Cに落ちるが互換性の問題があるし。
goは構文が糞すぎて糞 ゲネリクスとかそう言う問題以前 変数宣言さえ糞 設計した奴はガイジの糞 グーグルって俺よりバカなんだなと思うわ
goは触れば触るほど、Cでも良かったよね Cのほうが論理的に簡単にできるよねってことが多過ぎる
チュートリやってたら変数宣言だけで4つくらい出てきてガイジかな?って気持ちになった
Lisp方言やPythonとRubyのように類似品を乱立させるやり方は古臭い Java Kotlin C# TypeScript Go の中からRubyと同じ失敗を繰り返す言語が続出すると思うと残念だ
この中だとGoとKotlinが危ないな。 typescriptも、ecmaに型アノテーション 付く形で合流しそう。
>>333 esのデコレーションは今でも同等機能をコードで補完できるんだよな コードを組み上げられる能力があればtsもゴミみたいにしか感じられなくなるね 最近のC#はあまりにも先端が突っ走りすぎてて、従来の「哀れな底辺ドカタにも最先端の言語を」という重要な役割を見失いつつある >>336 のようなC#のファンですら大抵3つ4つくらい前のバージョンで知識が止まってる状況で、 自社開発でWebサービスやってますみたいな極一部の「別にC#でなくてもいい層」ばかりを相手にしている 次期バージョンでは.NET Coreでしか使えない機能が出てきて足切りが始まり、プラットフォームが完全に分断される .NET Standardで基本事足りるとはいえ、その他のオープンなライブラリ側もおっつけてない感じあるなぁC#
>>328 Goは大学出たての経験値の低い人でも書けるお馬鹿さん言語を意図して設計されとるんやで .NET Coreと.NET Frameworkの間でライブラリを共通化するためのAPIセットを定義するのが.NET Standardの主目的であったが、 その.NET Standardが次のバージョンで.NET Frameworkを切り捨てるというギャグのような話
>>337 趣味でもC#書くけど、それでも確かに正直.NET Coreの3を先食いしてる人達からすると数世代遅れてるな。 Span<T>とかはそりゃ確かにパフォーマンスは雲泥だろうけど、それ要るの結構限られてない?とか。 個人的にはあの断捨離は失敗しそうだから、そこから色々拾い上げてるMonoの方が良いんでないの?と思ってる。 Windowsだとほぼバイナリポンで動くというメリットが、クソ多いファイル数にかき消されてる気がして仕方ない。 .NET FW切り捨てるのはちょっと無理があるんじゃねえかなって思ってるけど、やるんだろうな…。 スマホゲー開発はだいたいC#だし、Unityがゲームエンジンとして標準的だからしぶとく残るんじゃないか コンシューマーゲーはまだまだC++だけど
>>340 最初はそんな意図なかっただろうに 反知性主義云々に乗っ取られて終わったな >>341 最初からCoreへの移行のための共通化じゃね Coreに欠けてたGUIが解決したらFrameworkから追い出し始めるのは むしろ自然だと思うけど >>342 普通の人が何も意識しなくてもアプリのパフォーマンスが良くなるってのがSpanを含めた最近の変更やで C++を切り捨てるつもりが いつの間にかC#自身の古いバージョンを切り捨てる話に変わっている これがPython Rubyと同じ失敗
>>346 そうなんだが、実際問題そこまでパフォーマンスに悩んだ事あんま無いんだよな。 ゲームとかなら顕著なんだろうけど。 C#は言語自体は面白いんだけどな 特に非同期処理は一日の長があるだけにライブラリが非常によく整備されてるし、 課題だった非同期処理のパフォーマンスも最近では飛躍的に改善されてるし 非同期シーケンスなど他言語に先駆けた取り組みも積極的に行われてる しかし最近のMSはサイドバイサイドに甘えすぎなんだよ 既存資産との折り合いをつける努力を完全に放棄している Azure関係とかもちょっとSDKのバージョン上げたりするとそのたびにぶっ壊れる有様でほんと酷い
>>333 ecma に型アノテーション入って TS がオワコンになるは本当にあり得る未来だね CoffeeScript もそんな感じで廃れた歴史が実際あるわけだし C が best だという意見だけは同意しかねる Go は滅多にクラッシュしないよ。メモリー管理の機構とかちゃんとしてるからだと思うけど C++ で開発してたときはしょっちゅうコアダンプ吐いてた印象だった。やっぱ確実に進歩はしてるよ
>>350 てか最近の言語は全てキメラルートだよ。 >>352 えーと、正直コアダンプ吐くような事態が起きるのは、単にあなたのプログラムがポカしているからじゃないかなーという説が むしろプログラマはポカするものという前提の元で設計されてるのが昨今の言語じゃない? Rustなんかモロそんな感じだし
>>352 みたいな低知能がアホなことをしないためにガチガチな仕様で不便な言語が生まれてるんだよな まあ世の中のプログラマの大半が低脳だから、Goの方向性は間違ってはいないよ
どちらの言語も、規模と高度な最適化(→複雑さ)両方が必要なシステムを 手に負えるようにするためだと思うけどね GoはYoutube実装に使われていて Rustに至っては言語仕様とツールチェーンを実装した本人達を言語ユーザーと想定したものだし
ただしょうもない例外メッセージ吐いて死ぬクソ言語より コアダンプの方が原因追いやすいってのはある 派手にメモリ破壊されるとほとんど解析不能になるけども
>>355 もちろんそうだよ?それが Go では起こりづらく C++ では簡単に起きるという話だよね >>357 自分の足を撃つ自由がある C++ って素敵な言語ですね! 昔々MS-DOSとかではNULLのポインタに書き込んでも平然とセグメントのアドレス0に書き込んだりしてたなあ・・・
まぁ結局こだわらない人が多くて足撃ちまくりの動的型付け言語とかの方が人気でるんだけどな
バグってはいけないなんて信じてるのはよほど正義感の強いやつだけだな マッドサイエンティストなら実験失敗してみんなに迷惑かけても罪悪感がない
バグを発見したら仕様ということにしてしまうぐらいの機転を効かせる事ができなければ
>>356 ポカするってのは正しいが、起きうるポカの想定が間違ってて、 そのポカをしないようにする操作自体がポカを誘導してるという本末転倒な機能ばっかり 入れてるのがc++だったりする。 高級言語は人間が簡単に使えるためのものなんだからその方向性はどれも一緒でしょ Goはさらに闇雲に凝るバカとそれを理解できないアホの差分を埋めるためにシンプルになってるが、バカとアホ以外には冗長で見苦しい
日本は高卒やモン卒が多い国だからちょうどいいじゃん
C++以外ならなんでもいいみたいな雑な考え方をやめろ 電子マネーと同じ あいつら現金以外ならなんでもいいと思ってるだろ
C/C++の危険度は半端ねえからな 他なら何でもいいって考えもあり得る
安全なC++もあり得る あり得るとか雑な言葉を使うなよ
言語にこだわるよりかバカを取らないようにすることのが重要。
でも「C++開発者募集します」より「Rust開発者募集します」の方が相対的な馬鹿の数は少なそう 分母?知らね
>>381 馬鹿の数はどちらも同じだろう それよりRustの方はこだわりが強すぎな人で、仕事やりにくそう 馬鹿を使いこなせる企業が覇権を握るんやで GAFAMのように
馬鹿とか言ってるやつは自分は賢いと思ってるんだろうな
× 馬鹿と言うやつは馬鹿 ○ 馬鹿と言うやつはマナー違反 × 馬鹿を使いこなす ○ マナーを使いこなす
しかしバカとしか言いようがないバカがいることも事実
>>393 馬鹿としか言いようが無い馬鹿とは具体的にどんな人物だよ? 自分が話してる時はヤジを飛ばすなといっといて、 3分後に他人にはヤジを飛ばすような奴だな。
圏論の勉強をしたいのに位相空間の具体例が出てくるみたいな 具体例はマナー違反 か?
若いのが持て囃してる言語、触らずに批判すんのも悪いと思って触ってみても どれもしっくり来なくて、最終的にCに戻ってくるよな Goとかいうの、あれ本当にGoogleの高学歴サマが作ったのかってくらいセンスがない
>>1 他の言語といっても、 ・キツネアイコンの Kit は開発始まったばかり。 ・Pony は未だにβ版 ・Ring は評価が固まってない。 去年と今年は不作の予感だな。 >>406 パフォーマンスの問題があるからな。 Jancy もマイナーなままだし。 >>409 これ関連のIO Ninjaってなんなの有名なの? 聞いたことないしサイト見てもよくわかんないんだけど。 おじいちゃんかどうかはCのバージョンによるんじゃね K&Rとかだと何とも言えんが
組み込みとかそのアーキテクチャてCのコンパイラしかないってのなら分かるけど 正直x86とかARMでKernelとか以外の分野でC使うのは多くの場合無駄だな
今時100円のチップでもpythonが動く時代だもんな。 BBC が英国の小学生に無料配布しているmicro:bit もmicroPython が基本だし。 日本では2500円位 これでいてARM coretex M マイコンが入ってる。
自分で処理系を実装しない人はC書かなくてもいいかもね。
よう知らんけど、コストとか消費電力の関係でもっとプアな環境なんじゃないかね 1万円の炊飯器と1万2500円の炊飯器なら1万円の炊飯器買うだろうし
アルゴリズム実験なんかはやっぱcで書くけどな。 メモリ使用量とランタイム速度の実測について一番素直な結果だすし。
別にC禁止って話じゃないしな 思考停止すんなってだけで
>>419 自分でそんなもん実装しない人が大半だと思われ >>410 IO Ninja は IoT デバイス開発用のターミナルエミュレータ、各種治具、デバッガといったところだね。 開発元の Tibbo Technology 製のIoTデバイスって国内に代理店なかった気がするので、あんまり有名ではないな。 JVM言語でもjitやらoptimizeやらを切れば(お前の実装方法に応じて)素直な結果を出すと思うけどなあ
goが行けるならopenBasicが流行っても良さげと思うんだがどうか?
>>426 その手のものでは、最近はmicropython が主流だろ。 100円くらいのボード(EPS32など)でも使える様になってる。 昔は(今でも入ってるのは多いが)timyBasicだった。 micro:bit ですらmicropython スクリプト系が人気なのは、プログラムが小さくコンパイルの必要がないからターゲットボードの中だけで完結できるからだろう。 ラズベリーパイは、フル仕様のPython を標準としている。 Pythonが人気なのは、CPUやOSにとらわれなくてポーティングが楽だからだろうな。 昨日Sublimeをインストールし直したら中身の殆どがPythonに置き換わってた)、PgAdmin もPythonに変わった。 JVMもjitやらoptimizeやらを切り捨てればrun anywhereが嘘にならなかったと思う
>>429 BASIC 系なら BlitzMax NG や Monkey2 のほうが良くね? それすら嫌なら X11-BASIC としか。 >>427 C互換言語はマイナー落ちするのが宿命。 いまは仕方ないな。 そのうちなんとかしてみるよ。 シェルスクリプトのJNIことmain関数の手口に学べ GUIを切り捨てろ
goはgoroutineとchannelがあってこそだと思うがなあ。 逆に、そういう面白味がない言語はたとえよく出来ていてもいまいちウケが悪いような。nimとか。
SwingとJavaFXってJREから切り離されてなかった?w
micro:bit持ってるけど、あれって専用のHEX吐いてるよね?micropythonそのままで動いてるの?
>>437 goroutineのchannel待ちリークに対する言語機能が期待される。 あれは結構やばい。 >>442 micropython そのものが埋め込まれてるよ。 少しだけ独自ライブラリを持ってるだけの話。 だからHEXを読み込ませた後は、teraterm などで入れば直接REPLが使える。 独自ライブラリというのもmbed の少し古いバージョンが入ってるだけ。
pythonの型がクソザコすぎてイライラする よくこんなゴミ言語で開発する気になるわ ゲエジしかおらんのか
そのくらいでいちいちイライラしとる方が世間的にはゲエジですけどね。
>>446 動的型付けに文句を言っても仕方ないだろ。 それが言語なんだから。 慣れ不慣れ >>448 phpやperlは正しくゴミと認識されてるのに、なぜかpythonだけ私違いますよみたいな顔してんのがイラつく バカp言語3兄弟、仲良くゲエジしてろよと言いたいね Cで作ったライブラリをキックするためだけの言語 それがpython perlだな
プェ〜ルはLinuxコマンドを叩いてUTも書けないゴミだろ 何いってだ
ぺーるは時代遅れなだけで偉大な言語だろ 徹頭徹尾クソなphなんたらと同列にしてはいけない
phナントカは時代に乗ってるんじゃなくて糞を乗っけて転げ落ちてるゴミだよ
いくら悪口を言っても、妬みとしか聞こえないな。 なんだかんだ言っても人気があるのにはそれなりの理由がある。 人気がないのはそれなりの欠点がある。
>>448 そこは排他関係じゃないんだがなあ。 動的型付け言語で静的に型チェックすることが可能だってのはTypeScriptを見ればわかるはず。 Pythonにも型ヒントはあるが出来がいまいちってだけ。 PHPが人気ってマジ? 俺の周りじゃ技術選定の候補どころか、名前すら挙がらなくなって久しい 一時期LAMP(笑)とか言って持て囃されてたよなぁ
>>459 wikipedia/mediawiki は PHP ですね 全ウェブページの3割がWordPress CMSのみのシェアに限ったら実に6割
>>450 Rubyだけ関係ないみたいな言い様だな >>459 人気だよ Web系なんて特に、品質に興味のない動けば良い派が多数派の世界だもん 同様の理由でRubyも人気 >>461 コーラとハンバーガーの話思い出した 悲しい世界 >>463 WordPressがPHPで動いてるってことかと >>450 pythonだけは本当に違うからね ドカタ風情がどう考えるかとか関係ない >>468 ちょっと見た目が初心者用風に見えるから、誤解する人も多いんだろうけど奥が深いな。 特に日本人にとっては、Python3 でUTF-8 が使えるようになってから使える言語になった。 既に10年になるが。 Pythonはリスト内包表記がよく分からなくてやめた。
pythonはmapとfilter組み合わせるときとかの見た目がphp並にゴミなので、リスト内包表記の方がわかりやすくなってる希有な言語
リスト内包は気持ちいいけど他のほとんどがイライラさせるから仕事では使いたくないな
Pythonはリストやマップを使い倒すほどに激遅になっていくから ループ処理するものは全てCやら何やらに全て置き換えてライブラリ化してから使うしかなくなるからな
>>473 リストを使わずに、セットや辞書を使えば良いんじゃないの? リストは遅いと書かれてるんだし。 セットや辞書はHash >>473 無限の可能性をもつ次世代言語なんかじゃなくてCに置き換える っていうビジョンが見えてるのが素晴らしい 最初にやるのは、Cに置き換えないと激遅になる証拠をしっかり押さえること
得意な部分は他の言語にやらせたらいいっていうのはわかりやすくて良い。 なんでもアピールするバカよりよっぽど良いのは現実と一緒だな。
>>473 cythonやnumbaを知ってから批判しましょうね >>482 最初からCで書けよクソゴミで済む話なんだよな 同じことを同じ言語で二回書くのはクソゴミだが、言語を変えるなら二回書いてもいい
>>483 全然違うよ numbaで書くのはcで書くより遥かに簡単だからね ダックタイピングと呼ばれるものって、実際には同名のメソッドが存在すればそれを呼ぶことができる (動的バインディング)ってだけで、「アヒル」や「タイピング」は関係ないよな。 アヒルのたとえ話の趣旨からすればTypeScriptのようなstructual subtypingが近いんだろうが。
>>481 ちょこちょこ変更できてなんでもできる事。 だから入門者用としても入りやすい。小学生から学者まで。 特にライブラリーが揃ってるから統計分析など科学技術計算には強い。 特に機械学習やAI は、Python また、Excel との相性も良い。 コンパクトなバイトコードになるから、IoTの様に小さな所でも動け、REPLが動くから実機で変更テストができ自由度が高い。だから、IoT用言語としての地位も確立している。 >>487 Pythonにはどっかの赤い宝石とは違ってドキュメントをきちんと書く文化がある そして、本当に正しく書かれたドキュメントには「プロトコル」としてアヒルが満たすべき要件が定義されている そこまでやってはじめて「ダックタイピング」と言える Pythonのプロトコルというとイテレータとかああいうやつ?あれなら確かにダックタイピングと 言えるかもしれないけど、あらかじめ定義されているもの以外に「アヒル」プロトコルとか 追加できるんだっけ?
文章力があればプロトコルの数学的定義を覆せる文化 それがドキュメントを書く文化につながる
Ruby のStringIO は、Duck Typing StringIO クラスは、IO クラスと継承関係はなく、 単に、read, write など、IO と同名の関数名を使っているだけ これだけで、StringIO に対して、入出力操作を行うことで、 メモリファイルを扱うことができる 最近は、ガチガチの継承よりも、委譲やDuck Typing を使うことも多い。 宣言無しのinterface みたいなもの
>>493 >宣言無しのinterface みたいなもの なるほど、そういう解釈ならしっくり来た。 Rubyは大クラス主義といって、移譲だのプロトコルだのまどろっこしいことするよりどんどん継承しようぜ!という考え方が主流 だから実際にはほとんどダックタイピングは使わない 静的型検査なしでドキュメントも書きたくないとなると、Pythonのような紳士協定ベースなやり方は確実に破綻するので、 実装継承を多用するというのは「実装が仕様」なルンペン文化には適したスタイルではある
interfaceがあってこそのduck typingだなとtypescriptやって思った
interfaceは元々は「堅い」言語で既存コードに極力手を入れずに建て増ししていくための仕組みだが、 今ではそれが高速な開発におけるデグレ防止に役立ち、生産性において動的型を圧倒したというのは皮肉な話だな
Javaのinterfaceを初めて見たとき、Goのようなものを期待したら違っててがっくりした思い出。
静的型は悪くないが静的型を正しく教えるノウハウをだれが持ってるんだろうか 目か?目で盗むのか?
Duck Typing だと、たまたま同名の関数名があった場合に、バグる危険性があるから、 自分が使うものだけを、interface 宣言させて、バグを避けているのだろう 最近は、その宣言がガチガチ過ぎて面倒なので、Duck Typing が流行ってきている
危険と安全の対立が今は主流になっているがCの型にはサイズを計算する意味もあった
流行り廃りは行き来するもんだからな。 動的も静的もいいバランス具合にそのうち落ち着いていくだろう。 本当に流行り廃りを超えてる技術というのはユニットテストやリファクタリングといったものなんだが、 そういうのみんな嫌いでしょ?
仕様と実装言語が独立しているレベルになったら言語の布教に不都合だから 実装は仕様に依存するぐらいがみんな好きでしょ
>>497 > 動的型を圧倒したというのは皮肉な話 そもそも言語機能としてのinterfaceは動的型(具体的にはSmalktalk)のダックタイピング(当時はそうは言わなかったが)を 静的型のメリットを殺さずにやるアイデアから考案されたんだから順当だろう http://www.cs.utexas.edu/ ~wcook/papers/OOPSLA89/interfaces.pdf C++はvirtualを使わない技術、Haskellはラムダを使わない技術を磨いている Rustも同様 virtualが動的型を圧倒したとか言ってるのは時代錯誤
ラムダを使わずコンビネータを使う、とか言ったりして。
quickSort :: Ord a => [a] -> [a] でも昇順とか降順とかを変えるのが大変だな
sortByしたくなったらどうするんよ? ラムダなしHaskellとかコード量が2倍で済まなさそう。
sortByなんて実用的なタスクでしか使わないだろ つまりHaskellには不要
そもそも動的型をdisることに実用性があるのかどうか考えたか? それとも何も考えてなかったのにHaskellと聞いたら急に頭が良くなったのか?
そもそも実行時に命令を作り出すというのは、動的型付けじゃないとできないのでは? eval
>>517 s='a+a' a=1 print(eval(s)) #2 a=2.0 print(eval(s)) #4.0 REPL と動的実行のeval は違う。 a=input() #abcと入力 print(eval(s)) #abcabc と出力 s=input() # 3**2 と入力 print(eval(s)) #9 と出力
動的実行には、複数の式を実行する exec がある。 exec(""" total = 0 for i in range(5): print(i) total += i print(total) """) これを利用すれば、プログラムを変更しないで外からの入力で動作を変えたりできる。
>>520 そうだね重大なセキュリティホールだね お願いだから消えてくれ >>518 そんなの単にevalに渡すコンテキストの違いじゃん 実行時に命令生成することの本質じゃない 文字列使えば任意のコードが実行できる!文字列最強!みたいなバカ理論。
構文木オブジェクトなら左括弧と右括弧の対応をいじる脆弱性はない 文字列を使わないことがオブジェクト指向の定義と言えないこともない オブジェクト指向の定義多すぎ
> 文字列を使わないことがオブジェクト指向の定義 ハハハ
笑うことも定義か staticおじさんを笑うように
定義を教えられないから目で盗み空気を読み忖度した結果として定義が増える
まあテクニカルタームにしがみつく奴はバカしかいないよ。
差別発言が日常茶飯事なのと専門用語のマナーを守ることとのギャップがものすごい
>>535 そういうバランスが壊れてるところプログラマーっていう人種の典型 プログラムはおいといてデバッグに必要なのは典型的でないケースを1個見つけること 1個だからといって無視しないこと
型無し糞ガイジの老害が死滅すれば済む話 頭のアホ毛$から腐臭が漂ってくるんだよ、早く死ね
エディタを終了してからテストを実行するのはターン制だから古臭いんだな リアルタイムこそが現実であり次世代であるはずなのに一体なぜターン制が滅びないのか
>>540 薬を飲むべきはおまえさんやで、型無し糞ガイジw 高速で軽量、堅牢な非同期処理のサポート デフォルト実装を定義できるインターフェイス(and/or 型クラス) 高度な型推論(もとより静的型) 高速なコンパイルとコンパクトな実行ファイル(非AltoJS、JVM言語) 関連して、セルフホスティングやブートストラップは完了済み
>>54 様々なポリシーの元に設計されて良いだろうから必須なんて機能は無いんじゃないか 何を作りたいかによるよね。作りたいものが作りやすければ良いわけだから。
強いかはともかく、最も美しいプログラミング言語の一つではある
tsいいんだがjavascriptの呪縛から解き放ってやりたい感
今のesならそんなに捨てたもんでもないと思うが。 まぁでも、tsにclassは要らなかったな。
esにもクラスはなくても良かったけどデコレータは早く来てほしいね デコレータ風に組めなくもないけど面倒だしな
tsはjsの呪縛でガンガンに縛られてるから全然いい言語に見えない 共有型からの流れのせいでコードに無駄な型判定が入ってて全然スマートじゃない
>共有型からの流れのせいでコードに無駄な型判定が入ってて全然スマートじゃない ちょっとピンとこないけど具体的にはどういう記述?
それは無駄な判定とは思わないが、どう記述出来たらスマートだと言うんだろう。 パターンマッチとか?
無駄っつーかanyって言ってるのに実際は2つの型しか認めないのは無責任やな
>>557 直和型をパターンマッチで処理切り分けるのは、関数型言語からの流れで最近の流行りだと思うんだけどね if 文で書くのはダサいな >>559 any がダメだから string | number と書くというのが共用体型じゃないの?おれもtsはよく知らないんだけど パターンマッチで切り分けて、すべての可能性を記述してない場合にはエラーにしてほしいね まぁパターンマッチ構文で多少記述がシンプルになるならそれもいいけど、逆に専用の構文に頼らずに ifやswitchを使っても同等のことができているというのがいいところだと思うがなぁ。 シンタックスシュガーとして入れるなら後からでもできるんじゃね? >パターンマッチで切り分けて、すべての可能性を記述してない場合にはエラーにしてほしいね それをエラーにするような記述は今でもできる。パターンマッチなんてなくても。
>>561 そんなのなくない? String | Date | Number だったとして、StringとNumberの処理しか書いてなくってそれがエラーにはならんやろ やっぱScala最強やね コンパイル速度ゴミで死んでしまったが >>562 TypeScriptは Discriminated Union 使えるよ メンバのリテラル値によって型をマッチさせるという中々面白い仕様 sbt言うほど遅いか? Scala2.13でまたちょっと速くなるみたいだし それにScala3まであと一年と考えるとScala最強説が蘇る可能性もあるで
scala死んだ理由どう考えてもバージョン上がる度にコンパイル通らなくなる互換性のなさだろ 3なんかにしたら爆死以外見えない
>>563 ここら辺見て ts 勉強させてもらったよ https://qiita.com/kobanyan/items/ca56df27de50ec267995 Discriminated Union はすべての可能性を記述してない場合にエラーとするための仕組みになってないだろ その下に書いてある Exhaustiveness checking っていうのが求めてるものだ でも、 --strictNullChecks つけて戻り値の型のでチェックするのはswitchの下にreturn 文書いちゃったらスリ抜けちゃわない? default: return assertNever(s) を記述することでチェックするのは、その記述が無くてもエラーにしてほしいんだけど? >default: return assertNever(s) を記述することでチェックするのは、その記述が無くてもエラーにしてほしいんだけど? どのパターンにもマッチしない場合に何もしないという場合はあるわけだから、エラーにするのか しないのかを示さなきゃならないのは仕方ないだろう。 strictNullChecks付けるのを忘れるからデフォルトでonにしてほしいとか言ってるようなもん。
>>567 case 文で全パターンを網羅できない場合には default 必須にして欲しい どのパターンにもマッチしない場合に何もしないときは、その default の処理を空っぽにする これを強制したい みんなが Lint かけてくれるわけじゃないので、コンパイル時チェックが望ましい 特に新しい言語作るのならばそうすべき
あと、>>563 は、言語の機能と、コーディングパターンの区別がついてないよね? >>572 Discriminated Union とか Exhaustiveness checking は、言語機能じゃなくて いくつかの言語機能を組み合わせて実現可能なコーディングパターンの解説をしているように見えるよ? そのドキュメントが Specification じゃなくて Hand book だし >>570 そういう腐った現場で強制してもコンパイル通すためだけのくそハックが横行するだけ。 事態をもっとややこしくする。 >>574 コンパイル通すためのハックしてることがコード見ただけで分かるのが重要 >>570 lintすら不要と思っている人が>>560 のようなチェックをしたいと思うシチュエーションが考えにくいが。 PLがメンバーに強制するならlintごと使わせればいいわけだしな。 次世代言語を名乗るなら網羅性がチェックされたパターンマッチ構文は必須でしょ TypeScriptのswitch文がJSからのしがらみで前時代的なのは仕方ない
マイクロソフトの「TypeScript」など上昇--RedMonkプログラミング言語ランキング Liam Tung (Special to ZDNet.com) 翻訳校正: 編集部 2019年03月25日 12時26分 https://japan.zdnet.com/article/35134639/ Microsoftのプログラミング言語「TypeScipt」の人気が上昇しており、Appleの 「Swift」に続く順位についた。(中略) TypeScriptは2018年8月に発表された前回の調査から4つ順位を上げた。JavaScriptは 首位となっている。TypeScriptの最新の順位は、RedMonkが「これまでで最も成長の速い プログラミング言語」とするSwiftの1つ下だ。 RedMonkのStephen O'Grady氏は、「TypeScriptは確かにJavaScriptと近いことや、オプ ションの静的型チェックなどの安全性を実現する機能からメリットを得ている。だが、機能 だけではこのペースで大きく前進できない。成長中の幅広いプロジェクトに活用されて いるはずであり、これら全てが、TypeScriptの成長が目覚ましく、持続性のあるものと なっている理由を示している」と説明している。(中略) TypeScriptよりも急速に成長している言語は「Kotlin」だ。Kotlinは前回から8ランク アップし、今回の調査では20位となった。O'Grady氏によると、Kotlinの成長速度はSwiftに 次ぐレベルだという。 KotlinはGitHubの「2018 Octoverse」レポートでも、GitHubで最もコントリビューター 人口が増えている言語となった。KotlinはGoogleが公式にサポートしているAndroidアプリ 開発言語であることからAndroidのアプリ開発者に人気で、Googleによると「Google Play」で提供されているAndroidアプリのトップ1000のうち、27%でKotlinが使用されて いるという。(後略) purescript全然流行ってないぞw やっぱts人気なのはjs互換だから。良くも悪くも。
tsといいkotlinといい、言語を流行らせるならまずは開発環境が大事というのがよくわかる結果だな
JSは言語というより環境 つまりSmalltalkがやりたかったことをやってるのが大事なポイントだ それとJavaがやりたかったこと (JNI禁止) もまあやってる
>>581 開発環境と作ったプログラム動かす環境、更にそれで確実に金儲けが出来そうだと思わせる状況があるとよい。 まぁRailsもそうだったけど「これ作るならこれ!」みたいな洗脳が上手くできるかどうかだよね
でも洗脳を解いてやったらC/C++をすらすら書けるようになるわけじゃないし 宗教があるのは難易度を下げるのがメインで洗脳は副産物
Javaは本質的な不便さから目を背けてミーハーな目立つ機能をつまみ食いしてる印象 いいかげん例外透過やクッソ使いづらい非同期APIをなんとかしろ
javaは中間コンパイルしたあとのソースを見るとやる気なくなる
Java「じゃあ互換性切り捨てて小鳥に寄せます」 ってならね?
>>578 金で操作できるランキングに価値ねえよ 上位言語が企業のステマ言語って時点で疑問持てよ そもそもnumberとstringをいれれる型が邪魔すぎる
javascriptの制限のせいでtypescriptには従来の言語のような関数オーバーロードがない あるのは関数シグネチャーのエイリアスのようなもので中ではifなどで型の判定をして使い分けてる 非常に泥臭い
javascript離れて独自拡張したら行く末はelmやpurescriptコースだからな。 そうなったtypescriptは誰も使わないし、 js互換の第二のtypescriptが登場してそっちに流れるだけ。 そうでないと言うのならelmやpurescriptが閑古鳥な理由を説明してほしい。
ダサいとかいう非論理的な言葉で要不要を語るんじゃあない
>>593 tsのunionは、関数の引数だけじゃなくて、戻り値とかオブジェクトのプロパティにも使える 関数オーバーロードの変わりに使うものだと考えるのは、少しズレてる numとstringを入れられるプロパティの存在意義は?
>>599 これは number と string とかだけじゃなくて、同じ interface を継承しないオブジェクトをひとつのプロパティに格納できたりする機能なんだよ 利点は intetface を用意して継承するよりも記述が減ることかな 普通の静的型付け言語だと any みたいな型を使う事になるけど、それよりもチェックを少し厳しくできるのが利点だね 正直オーバーロードは無くていいと思ってる ジェネリクス等で処理出来ないなら名前変えた方がいい 多言語の境界でよく面倒事の原因になる
>>600 でもそれを参照する場所で型チェックなどが発生するだろ A型とB型を格納していたプロパティにC型を格納するようになったら それぞれの場所でまた変更が必要になる 無駄じゃないかなって思う 関数のオーバロードは正直なくてもいいかなと思うけど(別の名前にすればいいだけ) その言語はオブジェクトのコンストラクタのオーバロードも多分ないよね それはどうするか、ちょっと困るな
オーバーロードと、実装を上書きするタイプのオーバーライドは絶滅すべき
>>604 Go Rustはオーバロードが無く、ただのstaticなファクトリメソッドでやってるよ オーバーロードがないとintのabsのほかにfloat用のfabsを用意しないといけない
>>602 リーナスも似たようなこと言ってたな 記事探すの面倒だから貼らないが (誰か探して貼ってくれないかなチラッ) >>603 ts のunion は interface 無しでダックタイピング効くから、参照する時必ず型チェックが必要なわけじゃない 型自体の定義も type alias しておけば一箇所で済むし 静的型付け言語でany使うよりは、遥かに手間はかからないよ >>612 だったら余計にinterface付けろよと思うわ Go、Swift、Kotlinの3つは、文法ぐらい一緒にしてくれたら良かったのにな
配列にしてもさあ、カッコの形とかにこだわりなんてあるんか?
どんな言語使おうが、糞バカ中世ジャップランドSIと、土人ベトコンオフショアが合体すれば 全部ゴミにできるんだけどなw
Kotlinはぱっと見Scalaかと思うくらい似てるよなー
2019/03/06 15:42:58 2019年の愛され言語第1位、嫌われ言語第1位は? https://news.mynavi.jp/article/20190306-784182/ 「愛されプログラミング言語」 Python (51%) Javascript (49%) Java (37%) HTML (34%) C++ (23%) 嫌われプログラミング言語は以下 PHP (19%) Objective-C (12%) Java (11%) 対象となったプログラミング言語を愛している理由としては、その言語を学習するためのリソースや開発するためのリソースが充実していることが挙げられている。 逆に嫌っている理由としては、対象のプログラミング言語を使ったコーディングが楽しくないからという理由が多く挙げられている。 >>621 俺は忘れてない。なぜならその名前を見たのは今が初めてだからだ。 >>623 それについても俺は忘れてない。なぜなら以下同文 >>602 先にジェネリクスがあったらオーバーロードは不採用だったと思う >>627 あと一回見かけたらはてブロに通報するわ ジェネリックで必ず同じ操作になるならいいけど そうでもないときはジェネリックではどうにもできない
オーバーロード否定派は動的型付け言語か形無し言語がメインの人なんだろうか?
Cはユーザーが定義できない演算子だけオーバーロードする ユーザーが定義してない型の情報だけコンパイル後に残る このユーザー定義型の不当な制限をなくすというC++の理念のおかげで オーバーロードや実行時型情報ができた めでたしめでたし
ほとんどの言語が強制キャストできるのが原因で型安全でなくなっているのが 何とかならない
後者の例で言うと、ライブラリの関数に気を利かせてオーバーロードを追加したところ 別のプロジェクトの既存コードがコンパイル出来なくなったとかもあり得る
やはりリーナスは正しかった! c最高! c++はうんこ!
暗黙の型変換を含めた場合のオーバーロードの地獄感は半端ない。
クロスキャストはカスだから滅びろ インターフェースの実装を鞍替えしたいんだったらFactoryとか使えや
型名を隠蔽すればキャストできないので 無名クラスとラムダの世界ランクが右肩上がり
ガイジみたいなコード書くガイジを殺していい法律を作ることだな 皆殺しにしてやるよ
次世代かは知らんけど、Haskell奥が深い。 プログラマーのための圏論っていうのをネットから落として読んでるが、 圏論的には変数や値そのものも関数足り得るとか、読んでて面白い(理解してるかは怪しいが) int n = 1とint n(){ return 1 }が同じと言うのは言い得て妙だなと。 Haskellで関数にカッコ使わないのはこれを体現する為なんだなと。 n = 1 ― Haskell的には変数でもあり、引数無しの関数。 関数も値でもあるんだから sum = foldl (+) 0は、sum xs = foldl (+) 0 xsの部分適用で変数を(見かけ上)減らした関数であると同時に、 部分適用した関数に束縛した変数でもある。。。と。 と言うことはHaskellのmain関数も、関数であり変数なんだなーと。 関数を呼んでプログラムが走り出すとも言えるし、変数を評価しようとして、結果として束縛されたプログラムが走り出すとも言える。 main = putStrLn "hello" ― main関数を呼ばれたとも言えるし、変数mainを評価して値(IO ())を得る過程でプログラムが走り出すとも言える。
概念は有用だし言語の進化に多大な影響を与えたけど 道具としてのHaskellは今の位置から上がってくることは無いだろうな
>>644 確かにその通り。 実用的な言語は、わかりやすくバグが出にくいことが重要。 他人のコードでも誰が見ても一目でわかるみたいな。 実用なら副作用認めた方が絶対的に有利なわけでそういうのはOCamlなりF#が担えばいいよ Haskellが勉強のための言語なのはこの先もかわらない
xmonadとかあるし、実用的でないとは言い切れないが、いかんせん学習コストが高くてマンパワーに頼れんからな
Haskellの再発明のようなアイデアを思いつくやつは必ず出てくるよ これHaskellでやったやつだって教えてあげないと再発明を止められない 高い学習コストをもう一回課金される
Haskellは数学的な背景があるから一部だけパクってもうまくいかんでしょ
一部だけ学ぶのはダメってのは見覚えがある Perlでやったやつだ 一部だけでいいと作者が言ってるのに全部やろうとして挫折するやつだ
量産型Webは技術が完全に硬直化してるから、ちょっと意識高い奴がマウント取りたくても差別化できるネタが少ないんだよ で既存の開発プロセスのオーバーエンジニアリングに向かうわけだけど、 ペチパーレベルではインフラや言語を改善したりそもそも開発作業自体を減らすって方向には行きにくい そこで手頃なのがFWというわけ
もともとFWっていうのは汚いコードを寄せ集めてライブラリ化した上で 汚いコードの寄せ集めを使う処理を手順化して綺麗に見せるための仕組みだったんだけどな
依存性注入はクラスが増えてカオスになる 何故かjavaではよく使われるのが謎
カオスだと感じる脳程度だけしか持ち得てないんだろう 察してやれよ
人類最底辺の脳みそしか持ち合わせてない永遠の土方ペチプァの話題なんか出すな スレが穢れる
>>640 ついでにSAMも滅びろ あいつ使いにくくてかなわん >>646 だれが勉強すんねん 一目見た時から、恋の花が咲いた のでは無く、こりゃダメだと思った。 逆に Python はなんとなく幼い頃の悪ガキ仲間と似てるなと思ってたら、立派に成長して懐の深い大人になってた。 ちょっと見の見た目で判断してはいけない。
単純に機械学習ライブラリの虎の威借りてるだけだろ 言語としてはPHP並の糞だわ venv周りも糞糞アンド糞だしな
そのへん、他の軽量級言語は何故うまくやれなかったのかな。
情報系専門でない連中が多い分野だから、言語オナニーには興味ないんだよ Pythonは昔から数値計算系のライブラリが充実してたし学習コストも低い
venvなぁ。 中にpython.exeがそのまんま入ってたのを見たときはコントかと思ったw
数学の関数やOSのシステムコールを いちいちオブジェクト指向に翻訳しないといけない文化は仕様が不安定になる 不安定な自作オブジェクトを集めたものが自作FWになる
pyenvとかあの辺弄るくらいならdockerで閉じ込めた方がマシ。
>>670 翻訳しないで済むOS作れば良いのでは? >>671 venvに比べたら、docker重いよ。 >>668 その言語オナシストたちが挙ってPython推してるからお前も鼻が高いだろう 良かったな dockerがどっかー行っちゃったー すまん。一度言ってみたかったんだ。ゆるせ。
実際には一人で気持ち良くなるのではなく staticおじさんを責める自分に酔ってるみたいなパターンが多い 一人じゃないから正常なんて思ったら大間違い
パンツじゃないから恥ずかしくないなんて思ったら大間違い
>>679 高卒や専門卒のプログラマーのことだよ そういうのにはstaticが好きが多いからそう呼ばれてる 特殊用途以外でstatic変数を使うのはアホだけど staticメソッドもまとめてstaticおじさんとか書いてる記事は 関数型にもついてけないただの周回遅れ
うちのおじさんはdbのクライアントをstaticにするんだよね
シングルトンおじさんの呼び方のが正しい問題意識な感じがする。
ここのstaticおじさんの話題で関数型を持ち出してる人間たまに居る(多分同一人物)けどimmutableに一切言及してないのはなんなんだ 関数型は言語機能で束縛をimmutableにして、それでもなお必要な時にmutableを扱うのであって、staticおじさんのpublic staticなんて言語も踏まえてmutableの可能性の方が高いでしょ
static禁止の次の世代はimmutableではなく依存性注入だからね class名をハードコードするだけでアウト interfaceはセーフ もちろんSingletonはアウト
class名.static変数 class名.static関数 超便利じゃん
class名がそのままファイル名になるじゃん 定義を変えてみたくなったらファイルを上書きするしかないじゃん そういうとこだよ
>>685 この話題何度も出てるのか staticおじさん云々に言及したのは初だわ というか>>682 はググって読んだ記事に対する感想な staticメソッド: 副作用無し → OK 引数への副作用有り → 許容内 標準出力などプロセスに1つのリソースへの副作用 → 許容内 内部でstatic変数への副作用有り→ デバッグ等の特殊用途を除いてはゴミ privateでないstaic変数 → 論外のゴミ これらをただstaticというだけで その先にある局所性や副作用への悪影響を区分せず ひとまとめに扱う雑な記事は、何かをdisるレベルに無いという考え >>691 なんかIDEに怒られてstatic関数にできないときは シングルトンのgetInstance作って class名.getInstance.メンバ関数 で回避 >>693 私が勢いでレスしてしまったようだすまない 確かにstaticメソッドのみでみれば関数型的な副作用の切り分けとして見れるね ただ >>681 リンク先 > 共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。 というアレがあるので『staticおじさん』とした時に関数型を持ち出すのは不適であると勢いづいてしまった staticメソッド: 副作用無し ↑これにめちゃくちゃ違和感がある 特定の言語は宋なのかもしれないけど…
同じ機能を持った別個体のオブジェクト変数を持ちたい時にフィールドをstaticにしてたら何も出来ないけどね
>>696 どういう違和感か分からないが一応補足しておくと staticメソッドのうち、副作用無しの場合 という意味な 副作用が無いメソッドというのは 引数以外に影響されず、戻り値以外に影響を与えないもの 具体例としては java.lang.Math.max >>698 引数以外に影響されないことは副作用のないことの必要条件ではない 参照透過とごっちゃになってるぞ 副作用の定義によっては 参照透過と同義になってしまうかも?
定義によってはって、「副作用」の意味を変えちゃうってこと?
>>699 すまんその通り オブジェクト指向に絡む話なのもあって 関数型に寄りすぎる単語を微妙に避けようとして変なこと言った 副作用とは関数使ったら値を返すだけじゃなくて他のとこに影響出てしまうやつ わかりやすい例で言えばファイル操作(write,read)関数とか画面に文字を出す関数(print)が 副作用があるとされている
そう言う意味じゃHaskellはHaskell信者?は副作用は無いと言い張るが、確実に有る。 私がHaskellに注目してるのは副作用があっても参照透明性が保たれている。この一点だ。
ブログやニュース記事ならhaskellだろうけど ソフトウェアを書けといわれたらocamlで書くわ
副作用があるのかないのかを型で宣言すればいいんだよ 副作用は無いと言い張るより、型は嘘をつかないと言い張る方が面白くなる
>>706 Haskellの世界ではないんだよ まあトリックではあるんだが でもそこを理解しないとmonadの意義もわからない モナドは外見上は引数がないけど値を返す 逆に引数はあるけど値を返さないとか、引数もない値も返さないとかの方が 副作用に関してはわかりやすいのだけどモナドの意義は副作用だけではないので
モナドとかクソしょうもない型合わせごっこの遊び道具でしかない。
関数型コミュニティのモナドをディスっちゃいけない空気嫌い 技巧に溺れて本来の関数型のメリットである見通しの良さや宣言性を完全に見失ってる
トレートとインターフェースの違いは何なんだ?rust難しすぎ
JavaとかC#のインターフェイスと似たようなもんだけど、後付じゃないジェネリクスと階層構造の無い型のおかげでむしろ使いやすい OOPのインターフェイスの方がルール覚えづらいと思う。<? extends T>と<? super T>とかinとかoutとかもう覚えてないわ
>>709 そのトリックに拘って純粋関数型言語と言う言葉に拘ってたら、 そこから話が進まなくなる場面を何度も見てきたから。 純粋じゃない言語から見れば「それもう副作用じゃん」「ただの方便じゃん」と。 だから私はHaskell使って何が嬉しいか聞かれたら、 参照透明性を保つことを徹底する所と答える。 rustはc++に比べると一見学習コストは低いようにも見えるが 色々な機能の意義を理解するには結局c++やることになるという意味でc++以上に学習コストがかかる。
>>710 ? モナドは常に引数あるよ。 doでしか使った事ないのかな。。。 main = do print (1 + 1) print (2 + 2) は main = print (1 + 1) >> print (2 + 2) のdo表記だし、(>>)は main = print (1 + 1) >>= \_ -> print (2 + 2) の(>>= \_ ->)部分の略記。(print (1 + 1)の戻り値IO()からIOを外した()がラムダ式の引数に入るが使わない) >>711 >>712 でもSwift, Java, JavaScriptとかの関数型がメインじゃない言語にも 実質モナド操作であるflatMapが入ったじゃん >>712 そうなん? Haskell信者は兎も角、OCamlとかLisp系とか他の言語の人もそんな空気なん? まあモナドをディスる理由も無い気はするが。 見通しの良さや宣言性も見失ってると思わないので、参考までに聞きたい。 そんなクソみたいなものでIOの実行を表現するくらいなら実行タスクのチェーンを作ってますって 意味をもっと明示的に取り扱った方がマシだわ。
>>717 printはモナドを返す関数だ printの引数は関数の引数であってモナドの引数ではない だからprintに引数を渡しただけでは副作用が発生しない >>721 モナドと言ったら>>=とかの演算子の方だと思ったんだが、IOな関数(アクション)の方なの? それなら、getLineみたいなアクションは圏論的にはある種の変数扱い。 n = 1 ― 圏論では変数であり、引数無しの関数 値も、Haskellでは出来ないが強いて書いてみると 1 = 1 ― 1という名前の変数(値は1)、もしくは1という名前の1を返す引数無しの関数 そう考えると getLine ― 外部からの入力(IOな値)が入った変数、もしくは(ry >>711 の言う通り、型がIOなだけで、何も特別な関数というわけじゃ無い。 少なくともHaskellから見た扱いは純粋な関数と変わらない。 (それにも関わらず、main表層にアクションが自然と集まるというだけ) 以下は個別に分けられる話 (1) 純粋関数型ではそれ自体の制限からIOにモナドなどを必要とする (2) Haskellでは実行タスクのセマンティクスを明示しやすくするためdo構文がある (3) モナドの有用性はIOの表現用に限らない (他言語にも関連する) >>720 それは(2)を考慮してもなお(1)に納得してないということ? より良い方法があるんだろうか? それ以前の、純粋関数型は要らないということかもしれないけど >>722 その文脈のモナドは、それらを持つ型あるいは値では Rust「静的型はいいぞ」 Haskell「静的型はいいぞ」 迷探偵「これだから関数型は」
学習の難易度と速度を上げると壊れる やばい全然勉強してないと感じる程度に勉強すれば壊れない そういうやつほど無駄に成績が良い
あのさ、この世界で学習と言えばAIだろ。 機械学習だよ。
>>715 そのとおりだよ 参照透過性だとどっから評価しても結果同じなわけで数学的に扱いやすいわけさ だからそこにこだわるのがHaskell プログラミングにも理論的なアプローチは重要だよ ちなみにおれは普段c++使ってるから 実用性重視してる方だけどな 関数型の世界でAIといえば記号処理でその成果が型推論
社畜の世界でAIといえばアクションアイテムでその成果はない
圏論だ参照透明性だと出て来て難しそうに見えるけど、Haskellの裏でそう言う論理に基づいて処理系が動いてるってだけで、 プログラマーは意識する必要はない。 (必要無いのに知らなきゃダメみたいな雰囲気作ってる純粋関数型言語信者がプログラマーからHaskell触る機会を奪ってるだけ) もっと言えば純粋関数型言語だからとか、関数型言語だからと肩肘はる必要もない。 型に気をつければ動く算数・数学のエミュレータみたいなもの程度で良い。 変な言語だけど、そう言う言語というだけの意識で良い。
いやさすがにHaskelをその評価戦略を理解せずに使いこなすのは不可能だ Haskelが初心者を阻んでいる最大の壁はそれ
だよな それで使えたら誰も苦労せんだろ 理論知らずにあの型エラーどうやって直すんだ? つーかHaskell使えない人がそういう知ったようなこと言うのがそそもそもおかしい そりゃ話が噛み合わないさ
せやな、デフォルトの遅延評価だと空いてる時間に先読みさせておくとか出来ない。 Deepseqみたいなのを使ってワザと何か変数を明示的に評価したりBangパターン使ったりと少し工夫が要る、、よね? こと速度云々やり始めるとFusion的なのは強みだけど、評価戦略の理解も必須。
haskellプログラマがすごいと思えるところはその辺の最適化についてしっかり理解してるところだろうな。 決してモナドでドヤるところではない。
初心者はPython以外意識する必要はないぞ 近い将来Pythonに代わる言語が出てくるのを知らなきゃダメみたいな煩悩を捨てろ それと煩悩は信者の陰謀で作られたのではなく人間なら誰でも持っているものだ
>>743 評価順を意識することなく気持ち良く数学オナニーするための遅延評価のはずが、 結局みんな評価戦略のハックを競ってるの草 重要なのは起動時に変数を初期化する順序 C++ならグローバル変数のコンストラクタを呼ぶ順序 Javaならとりあえずnullで初期化して後で代入することになる この問題をHaskellは遅延評価で解決する
>>746 Pythonだって遅延評価を取り入れてるぞ。 range 関数やジェネレータでは遅延評価する。 「遅延評価 *も* できる」と「ぜんぶ遅延評価でやる」の違いの大きさ(良くも悪くも、だが) が理解できてないPython使い
ジェネレータは疑似マルチタスクを意識する 遅延評価は無意識というか自動運転のようなものを目指して猛反対されている感じ
haskell使うのが適してるのってなんなの?大きなプロダクト?小さなプロダクト?高速動作が求められるプロダクト?生産性が求められるプロジェクト?
煽りっぽい書き込みになってしまってすまん。 よく名前聞くのでGWに勉強してみようか悩み中なんだ。
人工知能プロダクトではなく人工知能ブームのようなものを作るのに適している
>>751 Haskellは時間と気持ちに余裕があるときにやっておいて損はない LISP(Common Lispの特にCLOSとScheme)、Prolog、APL、Io あたりも同じ 広く普及してる言語で必死に仕事してる人達に対して、俺はhaskell理解してるってドヤ顔するのに適してる
>>754 そしてドヤったところで、で?と返されるだけだったりする このスレ、Haskellにコンプレックスのある人が多いのな。スレタイからいつの間にか締め出されててワロタ。
互換性を残して何年も再チャレンジするやつは減点するスタイルだな 互換性を捨てるインセンティブ それでも互換性を捨てないC/C++が勝ち続ける仕組み
>>757 ああ、そういうことか。知ってる人からすると古いのね。なる。 Python3は、現状では互換性捨てて 成功だったんじゃないかな。
>>748 良いところだけ取り入れた Python が利口。 >>749 ソースを教えて。 >>758 C系は現代のアセンブラだからな、必要だが積極的に使おうとは思えない言語。 Haskell みたいに読みにくい言語は支持されない。 LISP でやれる事は殆どPythonで出来る。だからLISP は消えた。 >>761 >Haskell みたいに読みにくい言語 え!? Haskellが気になってしょうがないのはわかる 知能試されてるからな
ところで Haskell って誰がどんな場面で使ってるの?
どうせお前には扱えないんだから気にすんな 死ぬまでPythonやってれば幸せだろ
>>766 自分はどんなものに使ってるんだよ。 ほぼ30年も経って実用的なアプリケーションはあまりお目にかからないだろ。 perl python2 python3全部インストールしても全く問題ないのが勝因ではないか
流行りの機械学習のデータ整形とかHaskellは相性良さそうな気がするけどな
>>769 >生産性が悪い証拠 生産性が悪いかもしれないし道具を使いこなす力が足りない人や組織が 手を出したという仮説も成り立つだろうし…。他にも転職が多いIT業界 で更に Haskeller の絶対数が少ないとか軍事・金融関係といった秘匿が 重要な産業分野での応用が多いとかいろいろ候補理由が挙げられそう。 「資金力のないWeb系ベンチャーがHaskellを採用したらどうなったか」 で言及されている ”Beating the Averages” の一節にこんな表現がある。 > ベンチャー企業はライバルになるべく情報を漏らさないもの 言い得て妙。 そういうのだいたいろくなもんじゃない メンテできるのがその会社しかなくなって客が依存せざるを得なくなるとか どっかの資本家のサポート得られやすいとか かっこいいから国が金払ってくれやすいとか そういうの
>>765 FBやCSV、Excelの簡単なデータ加工用の 1000行いかないくらいのコマンドラインツールを PythonとHaskellで作って使ってるよ。 ExcelはPythonの方が楽なんでPython使って、 あとは、使い捨てかとか、人に使ってもらうかで、 使い分けてる感じ。 結局ハスケルの良さがさっぱりわからん。 むしろそれを知るために勉強したくなってきた。仕事に生かされる可能性は限りなく低いんだろうけど。
>>778 特定のプロダクトに対しては生産性が良いってことか。 >>777 今時そんなの古いよ。 オープンソースの時代だぞ。 オープンにして人からも助けてもらう事でスピードを加速できる。 秘匿なんてしてたら時代から取り残されるだけ。 >>687 staticおじさんは世界の全てがstaticに見えるってマジやったんやね こわこわ >>780 特定のプロダクトというよりもネイティブなライブラリをキックさせるにはPythonが楽ってだけだろ VBAから置き換わるには本当に都合が良い このHaskellコンプレックスの人、目障りなんだけど
一昔前ならC++やHaskellの複雑さが悪魔のように思えたが 悪魔とかいう言葉はもっとひどい事案が発生した時のためにとっておくべき
>>713 俺もよくわからない。 トレートはクラスみたいな階層は無くフラット。 身近な例で申し訳ないけど 学歴コンプで地頭の悪い子がHaskellに活路を見出そうとして必死なのを見たな 本人は数学どころか算数レベルなんだけどプライドの高い子だから… しかもそいつ職業プログラマなんかではなくそもそも無職
高卒なのをすっごい気にしてる奴だった こっちは何も言わないのに 何かにつけて自分から「高卒だから」と言い出す奴だった
>>784 Haskellの事を言ってるんだと思うけれど、 Windows環境で不特定の人に使ってもらうのに、 実行時に依存するものが少なけれは、 何でも良かったんだよ。 ただ私がたまたま使えたのがHaskellだっただけ。 覚えるところから始めて良ければ、 GoとかRustでも良かったと思うよ。 >>776 >ろくなもんじゃない マーケティング戦略としては評価されるんだけどなぁ ろくでもない金の流れを止めたいか もしかしてそのためにオープンソース時代になったんじゃないか
Android、iOS、WebAPIで共通化したい重めのロジックがある場合、新しめの言語だと何で書くのが一般的なの? 今の所試しにC#で書いていてすごく良いんだけど・・・・これだとAndroidやiOSでは怪しい方法を使わないとKotlin、Swiftから呼び出せないんだよね・・・・
オープンソース時代ってのがよく分からんのだが。 全部公開する訳ないじゃん。
スカウターみたいだな 戦闘力を公開してランキングの上位にいるのが実は弱い奴で 測定された値が低い奴が実は強いみたいな
>>798 オープンソースなプログラムが増えたのは間違いないけど、今までオープンじゃなかったものがオープンになった例ってあまりないよね。 その辺の電化製品のプログラムが公開されてるか?ゲームソフトのプログラムが公開されてるか?ってレベルの話だけど。 >>796 マジレスするとKotlin/Native >>802 Microsoftはどんどんオープンソース化してるよ >>803 Kotlin/Nativeは性能が残念らしいよ Kotlin/JVMどころかKotlin/JSにも勝てないらしい jsってたかがスクリプトだろ?それに負けるネイティブとは一体…
>>802 普通に家電のソースは結構公表されてるよ LinuxつかったらGPLのせいで公表義務がある なんか議論が上手く進んでない気がするな。 おそらくマイクロソフトのオープンソース化も家電のソースコードが公開されてるのもオープンソース時代とはあまり関係なさそう。 オープンソースで儲かるビジネスロジックの説明があれば、どの分野でオープンソースが増えそうとか、どの分野は変わらなさそうとかわかるだろ。 俺が説明してやりたいところだけど、恥ずかしながらあまり詳しくないのだ。。。
>>802 Apple だって Swift をオープンソースにしてるし。 オープンじゃなければ明日は無い。 弱小個人でもオープンにしてると結構助かる事はあるよ。 でもやはりある程度の大きさが無いと影響力は少ないけど。 逆に言うと大手が始めたオープン環境でも個人が参加できるし、アピールできる環境ができてる。 GAFAとか見てもオープンとクローズをうまく使い分けてるだろ。 なんでもオープンのがいいとか言うのは流石に思考停止過ぎる。
>>811 ローカルなものはオープンにしてもメリットがないだけの話では? Apple が Objective-C をオープンにしていないように。 他で利用できなければ意味ないもん。 >>810 あなたはプラットフォームビジネスに限った話をしてるの? >Sunに抜き打ちテストをしよう:音楽が止んだとき、どこに座るつもり? この記事の7年後、Sunの椅子は無かったな
>>815 MSに裁判費用でつぶされたようなもんじゃねーか 記事も何がいいたいんかよくわからん >>814 記事はオープンソース戦略というものをわかりやすく説明してくれてるんじゃないのか? 文章を読めない奴が増えてるというのはどうやら本当のようだ。
>>822 なんかカッコいい雰囲気だしてるけど何が言いたいの? 数値化されないものが多すぎて数値が役に立ってない気がする 儲からないものは役に立たない その根拠になっている儲けという値をどう解釈すればいいのかよくわからない
>>822 このくらいの長さの文章でコストとかさ。。 本当にヤバイレベルで読めないんだな。 むしろ>>824 の書き込みは短いのによくわからんから読むコストが高い。 Swiftはa better objective-cやし、アポー的にはOSSにして開発者を取り込みたいだけやで
>>827 当たり前やん。 オープンソースの力だし。 >>805 7倍遅いんだっけ? JSとかJVMとかはベースのV8とかHotSpotが頑張ってくれるからいいけど共有ライブラリなんてOS依存だもんな >> 829 まだ最適化まで手が回ってないだけやろ?
宣言型でも関数型でも論理型でもない、かつそこそこ実用的な言語ってない?
>>845 日本語話してるやつに日本語勉強するように勧めるやつがいるか? 言語よりも論理が大事な証明だな。 >>841 は、テキスト記述言語であり、論理言語ではない。 HTML(エイチティーエムエル、HyperText Markup Language) あまりにも浅はか。 >>849 日本語がわからない人間と話す気は無い。 言語より論理って部分じゃね まあ何にしても次世代言語関係ないが
発端の>>834 が言う 手続き型 関数型 論理型 どれにも該当しない言語って 自然言語かDSL(データ記述言語含む)しか無いだろうから さらにプログラミング言語に絞るなら「無い」にしかならないと思う 最近使った中だとNode.jsが結構色んな分野で万能だと思った
>>857 ないと言える根拠は? 知らないならわかるけど 俺の作った言語hogehogeが逆手続型だからなあ (※ただし未発表)
証明が難しくとも、言い張ってたなら証明しないことにはな・・・・ いわゆる松永問答になっちまう
>>861 Node.jsはAPI設計のセンスが優れてる 移植性と(インターフェイスの)安定性を重視した最小限の低レベルなAPIなのに、 生でもまあまあ使いやすいし、通常のWeb開発ならそこから逸脱してネイティブのライブラリに頼る必要があるケースも少ない >>862 既知のプログラミング言語の体系にそれ以外が見当たらないことから 「〜だろう」と書いたよ 具体例を1つ挙げてもらえば 857は間違い で終わる話かと >>866 うん、でもWebだけじゃないんだよね ラズパイと組み合わせたら結構制御系なんかでもPythonより使いやすい Node.jsはただの実行環境だと思うけどなんで唐突に出てきた?
Node.jsはAPIセットでもある 他と違ってJavaScriptは標準ライブラリを持たないのだから、Node.jsとなって初めてPythonなどと対等に扱える
node.jsはchromeのエンジンを持つ実行環境の一つ javascriptは旧世代から続いてる言語 ライブラリはnpmというツールを使って組み込むだけで標準と呼ばれるものはない Pythonも仕組みはJavaScript+node.jsと同じ Pythonは他の言語で作ったライブラリをキックする仕組みが優れてる
ラズパイのプログラム実際にシリアル通信とかGPIO通信のプログラム組んでみたらわかるよ Nodeでやった方が痒いところに手が届く感じ
それはnodeだからというよりもJavaScriptだからだよね 非同期処理はjsが1番やりやすい
>>867 その見当たらないってのがどの程度見当たった結果なのかの質問 それなりに調べた結果なんだろうと思うから 間違ってるかどうかは知らないよ >>874 書いてることで全てだよ 後は反証するなり自分で調べるなり好きにして >>869 言ってることは正しいけど意地悪だな。 例えば「javascriptとnode.jsどちらにしましょう?」とか言われたらアホかとおもうけど 「pythonとnode.jsどちらにしましょう?」と言われてもなんとも思わないけどな。 >>868 そのラズパイのメイン言語がPython なんだけど。 Jetson しかり Python の良いところは、良いものがあれば利用すれば良いじゃんという考え方。 Javascript で良いライブラリがあればそれを利用すれば良い。 敵対する関係でもなんでもない。 包容力の深さだろうな。
>>880 僻まない僻まない。 堂々としてなさい。 ただただクソなものを否定するとコンプレックスっていうのもどうかと思うよ。
>>877 言語スレでそれはないだろ node.jsが出てくるのがそもそもおかしい typescriptが出てくるならまだわかるが コンパイルしたらJavaScriptになるのに笑わせんなよw
馬鹿をさらしてるな node.jsの話題はスレチだろ
>>884 >言語スレでそれはないだろ 議論の流れを遮ってまで拘る必要あるか?という点で意地悪だなと。 ただたしかにスレチだ。 プログラミング言語を評価するのにその処理系や周辺のエコシステムまで話題にするのは 別におかしいとは思わんがな。Pythonの話にNumpyが出てくるくらいだし。
RustかGoでwasmやるためのいいサイトとか本とかってないですか?
>>890 まだ二次情報に頼らないと何もできないような奴が手を出していい代物ではない >>889 次世代言語じゃないからじゃね?たぶん。 Kotlinとjavaがおなじ中間コードを吐くという理由で このスレでjavaの話題を延々と続けてるのと同じ スレチすぎる
kotlinとjavaに例えるならnode.jsはJVMじゃね?
node.jsってTypeScriptやKotlin/JSでも書ける?
>>834 手続き型言語でもなく、関数型でも論理型でもない宣言型言語は私も知らない。 HaskellベースにProlog載っけた関数論理型言語(curry)とか、逆に論理型ベースの論理関数型言語(Mars)なら知ってるが、今実用になってるかは知らん。 (綴りは微妙に間違ってるかも) スレチじゃない話題の方が少ないのにどの面下げてスレチとか言ってんだよ
>>896 TypeScript→JavaScript→node.js Kotlin→JavaScript→node.js はできる 次世代のスレで、なぜ人々が旧世代の話をしたがるのか、その心理は気になる ぼくの持論は、クソバカ老害どもには趣旨を理解することが出来ないからということになっているが、皆様はどうお考えだろうか
普通新しいものを採用する際は古いものと比較するよね? そうすると新しいものって実は価値なくね?ってなることも結構あるんだよね。 僕の持論はそれを恐れているカス野郎が多くいるということになっているが、 皆様はどうお考えだろうか?
結構あるなら重畳ですが、このスレにそれがどれだけあるのか、クソバカなりに指し示していただけるとよろしいかと存じます。
バージョンをひとつ飛ばすと効率が良いんだよな 第一世代から第三世代 新旧のバランスのとれた第二世代は評価されず 人々は両極端の話をしたがる
>>901 このスレで次世代以外の話はスレチってのは正しい。 その上でなぜ旧世代の話が出てしまうのかというと、用途が同じなのに能力に差がないから比較して話すことになっちゃうからじゃね? スポーツ系のスレでよく歴代の選手との比較ネタでスレが進み、懐古禁止って騒ぐ人がでてくるパターンと同じだねw それなら何故用途が被ってるのにその言語が出てきたかを語らった方が有意義では?
5ch(匿名掲示板)にそんなに高度に話題を制限する能力がないんだよ。割りきって使わないとストレスたまるし他人にも迷惑だぞ。
旧世代に属するがあまりメジャーではない言語では古くから当たり前の機能を 観測範囲の狭い奴が新世代と称する言語で初めて知って それをしたり顔で論じようとするから「ちょっと待て」となってるだけかと
node.jsがそれにあたるとは思えない しかも今更感が漂ってる いい検索サイト見つけたよgoogleって言うんだみたいな超絶周回遅れ感
node.js 初版2009年 go 初版2009年 kotlin 初版2011年 swift 初版2014年 rust 初版2006年 TypeScript 初版2012年 Python 初版1991年 JavaScript 初版1994年 JAVA 初版1995年
Python、古いんだね。載ってないけどHaskellも確か古かったよね。 どちらも旧世代言語やな。Haskellについては後発言語に近年色々パクられてるから次世代言語的的だけど。 Pythonは良く知らんのだけど、そういう要素あったっけ?
クロスではnpm iを気軽にできない環境だと.net coreの方が良いと感じた。 Goほどデプロイ簡単じゃないけど、コピるだけ。 nodeはnpm moduleが全部フルJSとは限らないから、node_modulesコピーするだけじゃうまく行かないケースがある。 ラズパイでビルドが入るnpm iは結構遅い。
C#も.net core 3.0だとパターンマッチが強力になってたり、意外に新しい言語になりつつあるよ。 割と早いし。
趣味レベルならPythonのように遅い言語は良いんじゃないかね 早さを求められないExcelなんかのVBAに置き換わるにも適してるとは思うよ
趣味レベルは正義でも悪でもない 仕事レベルでやってるやつの正義感の強さを冷笑するのが趣味レベル
excelで10万件100万件のデータを扱うのか?
ECMAScriptとかわりと次世代的な昨日載ってる方じゃね?
IEを投げ捨てればそうかもな VBAerにそれができるの?
npm って install コマンドでビルドは走らないと思うけど
>>920 走るよ。バイナリ取得できるものは走らないけど。 leveldownあたり入れてみ。 クローム拡張とかって簡単につくれんのかな? JavaScriptで出来てるものとかあるし。
>>921 ビルドって C++ のか js の話かと思った Ruby のBundler でも、バイナリじゃないものは、Windows では、MSYS2 でコンパイルされる コンパイラは、2〜3GB あるから、漏れは、コンパイラを入れていない それで、websocket モジュールが使えない。 websocketは、ソースコードで配布しているから 漏れは、node.js もインストールしたけど、VC++ が入ったのかな?
2019年にわざわざ学ばなくてもいいプログラミング言語--Codementorがランキング発表 Liam Tung (Special to ZDNet.com) 翻訳校正: 編集部 2019年04月15日 11時58分 https://japan.zdnet.com/article/35135732/ (前略) Codementorのデータから、2019年にわざわざ学ぶ必要のない言語はElm、 CoffeeScript、Erlang、Lua、Perlが挙がっている。 最低(ワースト)から最高(ベスト)までのリストを見ると、いくぶん驚きではあるが、 Androidアプリ構築で人気のKotlinは18位から11位に上昇している。もっとも、Kotlinで 書かれたプロジェクトの数が増えたことから、Microsoftが買収したりコードホスティング サービスのGitHubではKotlinは最も急成長した言語であることが分かっている。 一方で、Codementorのデータで「最も改善した」言語はDartだった。DartはGoogleで 開発された言語だ。 CodementorはDartの改善について、Flutterが主な要因としている。FlutterはGoogleの モバイルアプリを開発するためのSDKで、単一のコードベースでiOSとAndroidアプリを構築 できる。FlutterアプリはDartを使って作成されており、Googleが取り組んでいるOSである Fuschiaで重要な位置を占めている。 Flutterを後ろ盾にしたDartの上昇からいえることは、Googleの決定が開発者に大きな 影響を与えるということだ。 一方で、Codementorの雇用市場に関するインデックスでは、Dartのスコアは高くない。 だが、コミュニティーのエンゲージスコアは改善している。 >>910 ruby がないのはどう言ったわけだ! 強く抗議する! 関数一つ作れば済むようなことをわざわざワンライナーで書くための機能とかありがたがるバカが多すぎなんだよ。 そういう奴に限ってまともにマクロも書けなかったりするし意義もわかってない。
>>930 > まともにマクロも書けなかったりするし意義もわかってない。 まともに書けてないマクロってどんなん? 意義って何の意義? $ cat ls #!/bin/sh echo * $ ■
GoのシンタックスをC#系(TypeScript, Kotlinあたり)に寄せた感じだな
functionとかの予約語って必要なのかな? あと ?.演算子が普通に普及しすぎてて声に出すときどうやって読むのか気になる
tryGetPropertyなんてクソみたいな関数名つけた例を出してくるのはセンスがないと思う
updateYも見てて糞だなって思う updateX updateZ updateXY updateXZ 後は略 と言ったように後に並んでるのを考えると寒気がする こういうのを解決しない言語を作ってどうすんの? updatePoint (p, _ , 5, _) の様に指定で来たらいいだけじゃないか?
そんなしょうもないシンタックスの問題のために新しい言語を作る必要はない。
次スレはBosque入れてSwift外そう。誰も話してないし。
TypeScriptもesにデコレーダが使えるようになるまでの命だしな
TypeScriptっぽいML?いまいち存在意義がわからない。
まだドラフトなのに早漏がbabelでデコレータ使いまくったせいで記号の交換ができずプライベートフィールドが#になってしまったらしい
>>912 違う環境に移すならnode_modules削除してnpm installし直すの当たり前じゃんコピんなよ >>954 大丈夫。そのまま待ってると時代の方が後からゆっくり変わってきてやがてフィットするようになるから。 オープンソースには人月の神話がない そんなふうに考えていた時期が
Ruby では、 cat : ローカル変数 $cat : グローバル変数 @cat : インスタンス変数 @@cat : クラス変数 Cat : 定数は、大文字で始まる 慣習として、 BigCat クラス・モジュールのファイル名は、big_cat.rb ローカル変数・メソッド名は、big_cat 定数は、BIG_CAT, BigCat
>>958 その、ソースを上から下まで舐めるように読まないとグローバル変数が何個あって、どう使われてるか把握出来ないのが大規模開発に向かないんだよ。 動的型言語は自由度が〜って言うけど、他人に把握し難い自由度は害悪でしか無い。 書きやすく読みにくい どっちゃりある関数ライクの書き方見るに書きやすいとも思えないが
斜陽言語の宣伝をいくらしても人気が上がることはあり得ないんだから潔く諦めたら良いのに。 怖くて他の言語を勉強できないんだろうな。 爺さんか?
頭文字が大文字か小文字かでアクセス制限が決まる言語は嫌だな
>>964 名前の由来の画像の印象悪すぎで草 薄暗く霧がかって見通しが悪いところに無秩序に生える木々とか タロットカードの中で印象最悪なやつに投資してる人もいるんですよ
確かになんでこんなセンス無い名前にしたんだろ せめてスペルくらいbosqにしろや programをprogrammeと書く奴はいないし queをqueueと書く奴もいない referrerはreferer
おれはbosqよりはBosqueの方がいいと思う。
読みは「ボスケ」だよね?bosqじゃ「ボスキュー」になっちゃう。
>>971 >書く奴はいない イギリス綴りやラテン語由来の雰囲気を出したい意図があるんじゃない? >>975 そんな意図、欧米人にしか通用しないと思うのだがなぁ… ところで新記事きてた。 googleの力も借りて箇条書き部だけ適当に訳した。 Microsoft aims for simplicity with Bosque programming language https://www.infoworld.com/article/3390197/microsoft-aims-for-simplicity-with-bosque-programming-language.html ・Bosqueは不変(immutable)データと調和する機能モデルを採用しているため、すべての値は不変です。 副作用がなければ、コードブロックの任意のステートメントの作用を理解することはとても単純になります。 関数型言語は、プログラム開発の単純化、洗練されたツール、およびこのモデルによって可能になるコンパイラの最適化の恩恵を受けています。 ・更新可能なvar!変数への複数回の代入を許可することで、関数型プログラミングはブロックスコープと{…}括弧と融合します。 ・関数はファーストクラスの値であり型です。 ・ラムダコンストラクタは、ラムダ作成時のクロージャキャプチャ変数のために、ラムダ本体のコード定義と変数コピーセマンティクスを組み合わせたものです。 ・シンプルで押し付けがましくない型システムは、意図を伝え、問題領域の関連する特徴を符号化するために、構造型(structural types)、組み合わせ型(combination types)、および公称型(nominal types)といった一連の型の使用を可能にする。 ・型付き文字列は、文字列の内容に関する既知の構造を、人にとって意味があり、かつ型チェッカーが利用できる方式で型に変換するためのメカニズムを提供します。 続く>>979 >>978 続き ・ref引数を渡すことでパラメータをスレッド化することができます。 複数の戻り値(multi-return values)に代わるものとして、これはメソッドが渡された変数を使用・更新するようなシナリオを単純化します。 パラメータの更新を許可することで、余分な(extra)戻り値の管理が不要になります。 この機能はまだ実装されていません。 ・名前付き引数が提供されています。 残余引数(rest parameters)やスプレッド演算子(spread operators)も。 これらは呼び出しやコンストラクタ操作の一部としてデータ操作を実行できます。 ・不変式/不変条件(invariants)、サニティチェック、および診断アサーションといったさまざまな表現のための一級のサポートが提供されています。 ・Bosqueでの一括代数データ操作は、一括読み取りとデータ値の更新から始まります。 作成されたオペレータは、コードを全体的な意図に集中させ、開発者がデータ構造操作に関する代数推論をするのを助けます。 代数演算は、データ型、タプル、レコード、および名義型、さらには射影、複数更新、およびマージを含む演算に対して提供されます。 ・反復処理機能により、構造化ループは高レベルの反復処理構成体と交換されます。 同じループを書くことの定型句を削除することで、束縛計算を含むエラーのクラスが排除されます。 intentは意図(intent)を明確にします。 これアメリカ人の大部分は初見で読めないんじゃないの?w むしろ(ケベック系つながりで)カナダ人のほうが読めそう
フランス人ならフランス語のQu'est-ce que c'estがケツクセーって読むらしいからやっぱりボスクって呼ばれると思う
ケかクだってここにいる高学歴高知能な人間なら分かりそうなもんだけどな
bosque スペイン語で森の意味かな? >>978 >欧米人にしか通用しない ラテン語やラテン系言語を学んだことのある層は 欧州以外だとごく少なそう。 >>953 それが出来ない環境ってあるんよ。 稼働機はインターネット繋がってないとかね。 そういうのはクロスでコンパイルして持ってったりするし、 それと同じマシンをインターネットにつながる場所からnpm iして、持ってったりするんよ。 ラズパイ使うならあるあるのケースだと思うけど。 そういうユースケースすら浮かばない残念な人なのかな? ラズパイならネット繋がるとこに持ってって>>953 すればいいじゃんw そういう場合無理せずgoでいいんじゃないか Cでもいいけどw
Bosqueよう分からんな。俺の頭の中では別レイヤーの概念が同じ階層にいる感じがする。 あと、型付き文字列って特別扱いしないと駄目な機能なのか? TString<PhantomType> = { data : String, phantom:PhantomType }みたいに定義してコンストラクタ隠したらできると思うし、 そしたら文字列に限定せず、0より大きい3の倍数だとかを表現するのにInteger[Zm3]とかやれるべきだけど特に書いてないし。 subtypingはOCamlで慣れてるからそんなに難しくはなさそう。ただ、リストや配列をコンパクトにできるのか自信無い
ラズパイ3B+しか持ってないからネットに繋げられないってシチュエーションが想像できないな
スゥウィフトの4値エラーとか革命的発想だと思うんだけどな なぜ話題にならない?
ボスケってなんやねん ボスケとか声に出して読みたくないぞボケカス
>>996 ただの文字列インタンスを生成するのにそんなゴミ情報くっついてたらオーバーヘッドがオーバーだろが
mmp
lud20190627013447ca
このスレへの固定リンク: http://5chb.net/r/tech/1541331010/ ヒント: 5chスレのurlに
http ://xxxx.5ch
b .net/xxxx のように
b を入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「次世代言語15 Go Rust Swift Kotlin TypeScript YouTube動画>1本 ->画像>9枚 」 を見た人も見ています:・次世代言語13 Go Rust Swift Kotlin TypeScript ・次世代言語14 Go Rust Swift Kotlin TypeScript ・次世代言語12 Go Rust Swift Kotlin TypeScript ・次世代言語21 Go Nim Rust Swift Kotlin TypeScript ・次世代言語28 TypeScript Swift Go Kotlin Rust Nim ・次世代言語24 Go Nim Rust Swift Kotlin TypeScript ・次世代言語23 Go Nim Rust Swift Kotlin TypeScript ・次世代言語29 TypeScript Swift Go Kotlin Rust Nim ・次世代言語22 Go Nim Rust Swift Kotlin TypeScript ・次世代言語25 TypeScript Swift Go Kotlin Rust Nim ・次世代言語Part7[Go Rust Swift Kotlin TypeScript] ・次世代言語17 Go Rust Kotlin TypeScript Julia ・次世代言語15 Go Rust Bosque Kotlin TypeScript ・次世代言語18 Go Rust Elixir Kotlin TypeScript ・次世代言語Part8[Haskell Rust Kotlin TypeScript] ・次世代言語9[Haskell Rust Kotlin TypeScript Dart] ・次世代言語11[Rust Swift TypeScript Dart] ・次世代言語10[Rust Swift TypeScript Dart] ・次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 [無断転載禁止] ・次世代言語議論スレ[Rust Kotlin Haskell]第6世代 ・次世代言語14 Elixir Crystal Julia Rust Swift ・次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 [無断転載禁止] ・次世代言語議論スレ[Go Rust Scala Haskell]第5世代 ・次世代言語議論スレ[Go Rust Haskell Scala]第3世代 [無断転載禁止] ・次世代言語18 V Julia 他 ・次世代言語13 COBOL Java PHP VBA Ruby ・次世代言語27 Nim Zig Pony Carbon Gleam ・次世代言語アンチスレ19 ・自称次世代言語議論スレ[PHP PHP PHP] ・次世代が造った言語 blawn ・2018年に急成長したプログラミング言語は「Kotlin」「TypeScript」「HCL」 ・【ゴキ悲報】次世代機どっち買う? Xbox Scarlett「43%」 Playstation 5「39%」 ・プログラミング言語別 平均年収ランキング 1位 Scala 2位 Python 3位 Kotlin 4位 Swift [無断転載禁止] ・Sony Mobile 次世代Xperia 総合203 ・Sony Mobile 次世代Xperia 総合235 ・Sony Mobile 次世代Xperia 総合225 ・Sony Mobile 次世代Xperia 総合159 ・Sony Mobile 次世代Xperia 総合215 ・Sony Mobile 次世代Xperia 総合158 ・Sony Mobile 次世代Xperia 総合212 ・Sony Mobile 次世代Xperia 総合160 ・Sony Mobile 次世代Xperia 総合176 ・Sony Mobile 次世代Xperia 総合218 ・【IT】Microsoft、プログラミング言語「TypeScript 3.7」を公開 ・【Polaris】次世代Windows予想スレ【Andromeda】 ・【ハード】任天堂,次世代ゲーム機「Nintendo Switch」を発表 ・【PC】AMD、「Spectre」対策で次世代チップ「Zen 2」の設計を変更 ・【Type-C】USBの次世代仕様「USB4」が発表。Thunderbolt 3ベースで最大転送速度は40Gbpsに ・Sony Mobile 次世代Xperia 総合164 ・Sony Mobile 次世代Xperia 総合146 ・【PS4で出ない】The Elder Scrolls VI発売は次世代機と判明 ・もうプログラミング言語はTypeScriptだけやっとけばいいだろ 何でもできるし ・セガ、次世代ゲーム機「SEGA Dream Switch」を発表 ・【Switch】 次世代ゲーム機テクノロジースレ 【Scorpio】 ・Dart これ以上変な言語を増やすんじゃねえ! Kotlin ・【Scorpio】次世代ゲーム機テクノロジースレ 【TegraX3版Switch 】 ・めぐみ「SwitchはこのままだとPS5と次世代XBOXに食われる可能性がある」 ・【Pro】【Switch】 次世代ゲーム機テクノロジースレ No.6【Scorpio】 [無断転載禁止] ・【Pro】【Switch】 次世代ゲーム機テクノロジースレ No.11【Scorpio】 [無断転載禁止]
03:57:48 up 10 days, 5:01, 2 users, load average: 10.71, 10.22, 10.10
in 0.048999071121216 sec
@0.048999071121216@0b7 on 012317