ぶっちゃけ始めるのにいい言語て何 part5
レス数が950を超えています。1000を超えると書き込みができなくなります。
UNION・INNER/OUTER JOINで20個くらいテーブル連結したら、思ったようなSELECT結果にならないとか、
そういうのは慣れても見かける。 大規模なインターネットサービスではSQL/RDBMSが使われないのを見てもわかるように、とにかく遅くて無駄で効率が悪い。
だから何事をするにしてもまずは、「それをするのにSQL/RDBMSが本当に適しているの?」からスタートすることが大切。 データは複数形だからデータムと言うように、あわしろ氏が推奨してたな。 テーブル定義でがっちりビジネスロジック組むのは
ドキュメンテーション的にも正しいと思うが
そこで仕事終えてて使い勝手まで考慮してないケースが泣ける
VIEWやキャッシュまで含めて設計せーやと >>874
DBならストアドプロシージャだけどあれもスクリプトみたいなもんやしそれ以前にテーブルとビューの設計のが難度高い予感 >>877-878
例えばExcelでマスタ表作ってvlookupとか普段やってる人なら
DBの基本も理解できるだろう >>878
似てるもなにも
シートにSQL投げられるしな >>880
DBの専門家と言われる人々の多くがRDBしか頭の中になくて不適切な場合でもRDBを選んでしまってるケースが多いね
>>882
インターネット上のほとんどのサービスは9割以上の部分でガチガチ厳格なDB操作が必須なものではなくて
さらにはDBアクセスすら毎回は不要でキャッシュ設計が重要なのはその通りなのですが
自称DB専門家たちはその視点が抜け落ちていてDB自体の設計とチューンアップだけやっている愚か者が多いですね >>882
それは別分野です
バッチなのかhttpなのかにもよるから >>886
キャッシュ設計はDB屋の仕事じゃない
全体のアーキテクチャ設計者かアプリの設計者の仕事
自称DB専門家にキャッシュ設計を期待するような愚か者は聞いたことがないですね そもそも>>886の言う「DBの専門家」って、DBしか知らない専門バカみたいなイメージなんだろう。
いわゆるDBの専門家のうち実際何割くらいいるのかは知らんが。 Redis使うようなケースだけじゃなくreadレプリカや結果整合性の分散DBもある意味キャッシュを使ってるのと同じことになるが
そういうアーキテクチャ設計はDB専門家には頼まないわな これからのプログラミングは手順を記述するのではなく、数式を記述するべきです。
手順には時間軸があります。
数式にそれがないので数学的な最適化が可能となるのです。
プログラミングの数学的アプローチです。 >>889
そこを分離して考えてる古い人たちには、Internetでの様々な大規模サービスは実現出来なかったでしょうね。
非効率にRDBMSだけを使って無駄に遅いシステムが現実にたくさんあるのは事実ですが、なぜ彼らはRDBMSだけにこだわるのでしょう? RDBが優れすぎているからだな
結局世の中のほとんどのシステムはRDBだけで十分なパフォーマンスで動いている >>893
RDBには用途によっては非効率面もあるが逆に効率の良い面もあるからな
一面だけ見てトレードオフを理解しないうちは君も彼らと同じ愚か者だぞ 今のRDBはnoSQLの機能を組み込んできてますよ >>896
ゆるふわJSONとの相性がいいからドキュメントDB使いたいとか抜かしてる頭の悪いスクリプト坊やを軽く一蹴できる程度にはなったね
RDBの列に生のJSON突っ込んでJSONPath関数が使えてとインデックスが張れたら済むだけの話だったっていう おおかた自称DB専門家とやらにバカにされて悔しい思いでもしたんだろうが
掲示板でそいつをバカにしたところでお前が偉くなるわけじゃないぞ
つまらんルサンチマンは捨てて自分を高めることに力を注げ >>894
GoogleやAmazonなど大手IT企業はRDBではサービスできないのが判明したため新たなDBを作って運用していますね
>>896
RDBでないものをNoSQLと呼ぶのですよ
RDBには組み込めません Codd の RDBMS 理論というのは、
理論としては扱いやすいんだけども
「業務」という場面においては
「現場の人間」には理解しきれていないように思う。
たとえば「部分文字列の全件検索」とかは
DB サーバー側で完結してくれたら効率的なんだが、
クライアント側でそのあたりを処理しようとおもうと、
サーバーとクライアントのトラフィックで効率が落ちる。
「それぞれのクライアントがどうやって DB サーバーの
リソースをうまく共有・利用するか」みたいな話は
業務系の SE としての経験を七年とか八年とか積まないと、
なかなか実感としては湧かないと思う。 >>897
非定形ドキュメント型のアプリ構築する時
最初 Elasticsearch が最有力だったんですが、
SQL-Serverに該当機能があるのわかってよかったです
Elasticsearch で構築してたら
リレーショナルの機能を全部実装しなきゃならなかったはずで、
そしたら地獄だったでしょうね ElasticsearchはRDBからコピーしてきてキャッシュ的に使うもんだよ
ドキュメントDBとして使えてしまうのは事実だが、機能性や信頼性はゴミだ >>899
GoogleもAmazonもRDBめちゃくちゃ使ってるよ
Google Ads(昔のAdWords)はずっとRDB
長い間MySQLやOracleを使ってたが大規模な分散環境でも使えるRDBを自分たちで開発してそれがSpannerになってる >>902
ログ解析するときゃそのパターンかもしれませんが、
最初から Elasticsearch に突っ込んでもいいと思いますが... >>886
RDBしか扱えない自称DB専門家は確かに多い
本来は適材適所に使い分けるべきなのにRDBしか知らないためそれが出来ない
RDBが万能だと思い込んでいるようだ (自称)DB専門家にもその適材適所の判断ができる人とできない人がいるというだけだろう。
RDBも知らない人ならもっとできないだろうし。 判別は簡単
何でもかんでもRDBしか使っていないならばモグリ確定 >RDBしか扱えない自称DB専門家は確かに多い
多いと言えば、RDB専門バカより「RDBをわかったつもりになっている人」の方がはるかに多く見かけるな。 amazonもgoogleもユーザーからの入力を受けて
リアルタイムでDBを動かしているわけではないよね?
部分的にはそうだけど、大半の検索は事前にやっているよね? >>905
> RDBしか扱えない自称DB専門家は確かに多い
逆だろ。「自称DB専門家」が ISAM くらいしか理解できなくて、
RDB のテーブル構造に落としこめる技量がないから
威張っているだけだ。
そんなもん、ER すまん、ミスタッチだ。
そんなもんb ER 図(エンティティ=リレーション図)とか見れば
一発でわかるんだが、テーブル設計というのは
「プロジェクト全体で共有する」という志向があるので、
阿呆なプロジェクトリーダーがいると現場の人間が
迷惑するのだよ。
そういう意味では、SQL はそれほど悪い言語ではないし、
将来性のある言語ではないかと思う。 おじいちゃん、今はもう90年代じゃあないんですよ。 >>911
あなたが何も理解できていないことが露呈 >>909
amazon はどうか知らないが、
Google はあらかじめ「ダブル配列法」というのを
使っていて、それでインデクスを構成していて
高速化している。
ただ、ダブル配列法は英語のようなスペースで
区切られていう言語だと効率はいいんだが、
日本語のような「膠着語」でありマルチバイト文字を
使っている言語だと、辞書を再構成するのに
けっこう手間がかかるんだよ(つーても、語彙数はせいぜい
数百万語なので、現代のコンピュータで処理するのは
たいした手間じゃないんだが)。
「トリプル配列法」というのがあるので、
気が向いたら実装してみてくれ。 マイクロソフトアクセスから大体その辺は教えてもらった >>914
ダブル配列ってのはtrie木の実装方法 ダブル配列はもう古い。
これからはシンメトリック配列。 ダブル配列って理解するのも実装するのも面倒だけど、自分で組む必要があるの?
ライブラリの中身の話っぽいからさ。 Rustって、ルストって呼ぶの?
英語の発音聞くとラストっぽいけど。 「ラスト」っていうのは、たぶん「錆びた」という意味だと思う。
「ラスティ・ネイル(錆びた釘)」というカクテルがある。
「螺子(ねじ)回し(スクリュー・ドライバー)」という
カクテルは有名だ。 ダブル配列は初心者の頃に一度は実装してみるもんだろ。 >>976
> ダブル配列は初心者の頃に一度は実装してみるもんだろ。
「ダブル配列法」は、「偏りのないバイトデータ」を前提としているので
多バイト系の文字コードに関していうと、かえって効率が悪いんだわ。
だったら素朴なトリプル配列法のほうが、いまどきはコンセプトとして
使いやすいと思われる。 もうc#で結論出てると思ってたけどまだrustがどうとかやってんの? C#なんて話題あったの?
今(初心者以外が)始めるならRustが一番熱いよね Visual StudioでサポートされてるからC#で遊んでるけど、
Rustも同じ様になるなら、乗り換えようかな。
それともC++との代替わりかな。 導入が楽ということでJavaScript+Web APIとPHPを(無限ループ) >>932
早くVSでサポートして欲しいよなぁ
そうなったらC++から乗り換える IT土方の動向を探るにはIT土方も入れたアンケートではないと実態を把握できないからね webやるならjsでフロントバック両方やる方が初心者が覚える事少ないんじゃね?
どうせjsからは逃げられないんだし jsはES2015までクラスもないのにフロントの必須スキルとか言われてたんだろ? 「js」がなにを指しているのかわからん。
「JavaScriput」なのか「JSP」なのか?
JavaBeans なんかは小規模のの Web サイトでは使いやすい。
Java applet でしくじった過去はあるわけだが、
コンセプト自体は悪くないと思う。 そういえば、このスレはなんで5まで伸びているんだろう。
つまりは年寄りの雑談スレだということか。
だったら、次のスレタイは「ぶっちゃけ始めるのにいい言語て何」とかいった
生温かいタイトルを踏襲するよりま、「自分はこういう言語から入った。
おまいらも一度は経験しとけ!」みたいなテイストもありかと思ふ。 何を始めるのにいい言語かという主語がないため
この議論は永遠に終わらないと思う
もし言語が1つに統一されて選択肢がないという状況にならない限り >>940
JavaScriptをjsと略すのはよくあるが
JSPをjsと略すのは見たことがない JavaScripu は変数スコープがいいかげんなので、
初心者向けではないと思う。
C 言語はハードウェアべったりの言語なので、
それなりの仮想機械を間にかませて、
教育用の原語として再定義するのは
悪くないアイディアだと思う
(C の兄貴分である BCPL はそんな感じだった)。
「右の値と左の値」とか、「&でアドレスが取れて、
*で内容が取れる」とか、「sp++だと評価が先で
--spだと評価は後」とか、「void がないので値を
返さない関数はアキュムレータの値がデフォ」とか、
「ハードウェアを学ぶための教育用のアセンブラ」
としては、けっこう面白い言語だと思う。
Turbo C とか Turbo Pascal とか、IDE とセットで
教育用として復活せんかな、とも思う。
仮想環境だと数十年前より千倍は遅いだろうが、
今のマシンだったら数十年前より十億倍は速いので、
ストレスにはならんと思うのだが。 >>942
> 何を始めるのにいい言語かという主語がないため
> この議論は永遠に終わらないと思う
「主語」は「誰が」であって、「何を」は目的語では
ないかと思われる。
ここに書きこんでいるのはたぶん歴戦のプログラマなので、
「誰に、何を」というイメージはあろうが、
「新人に」「学生に」はあるだろうが、いい歳をした
子持ちもいるだろう。
「自分の子供に学ばせたい言語」という観点だとどうだろう。
「LOGO」という人もいるだろうし。 >>944
嘘つき
JavaScriptの変数にブロックスコープが無かったのは昔の話
現在のJavaScriptは様々な点で改善されて非常に優秀な良い言語の1つとなっている 「○○はJavascript級の糞言語」みたいな形容があるくらいだから、本格派の糞言語なんじゃないの。 >>947
> JavaScriptの変数にブロックスコープが無かったのは昔の話
あるから使うわけなので、だったら名前を変えたほうがいい。
FORTRAN(60 だと思う。Fortran 77 だったらまだマシだった)
のコードをツール使って C に変換したコードが goto の嵐で、
それを Java(もちろん GOTO 文はない)に移植したときは
本当に眩暈(めまい)がした。
けっきょく製造プラントの中のワーク(加工材)に流れを
ペトリネットを実装したかったというのがわかって結着した。
OGI島のJ〇Eで経験した実話である。 そういえば、N88 BASIC には「ラベル(名札)」という概念があって、
GOTO の飛び先と GOSUB の飛び先のどっちもラベルで指定できた。
これをごちゃまぜにして「八人の女王」を書いたら、
自称 SE た二人がかりで解析しようとして、
三日経たずにギブアップした。
別の後輩の H くんは、マクロアセンブラ使いだったので、
CALL 〜 RETURN と JUMP が混在しててもどうってことないし、
スタックポインタをどういじくるかが頭に入っているので
「こんなの、局所変数をスタックに積むか積まないかだけの
話じゃないっすか?」と五分で見破った。
このさい、仮想マシンのニモニックから勉強するのもいいんじゃねぇか?と
思う。 ウィキペディアによると、ブレンダン・アイクは、世界一の糞言語を作ってやると友人たちに宣言すると、たった二週間で糞言語を完成させてしまったという。
これはLivescriptと命名され、不幸にもネットスケープ・ナビゲーターに搭載された。
Javascriptの誕生である。 >>948
今のJavaScriptは非常に良い言語
昔に指摘されてた問題点を全て解決しただけでなく強化してしまった >>952
それは素晴らしいことだ。
DOM という概念をちゃんと消化していて、
Eclipse に HTML5 と CSS2 も JSP も最新の JavaScript も
サポートしたプラグインが用意されているのなら、
ぜひとも使ってみたい。
つーても、「古い JavaScript のコードを読ませたら
『非推奨』だらけなんでゲロ吐いた」みたいなのは
御免被りたいが。 大昔のEclipseプロジェクトをさわるときしかEclipseなんて使わんから
今から勧めるのだけはやめてほしい Eclipseとかまだあんですか?
現場で最後にみたの10年前まえ? どこの現場も
windowsもmacでも
VScodeばっかりです 動作が安定しないんだよなVSCodeって
時々勝手に落ちるし あんまないけど。
落ちても数秒間で再起動てくるし
とあるバージョンでその症状まれにあったとあしても
更新サイクルがめちゃ早い Eclipseとか懐かしいな
よくあんなクソ重たい環境使ってたと思うわ 貧乏くさい発想だがライセンス必要なIDEはプロジェクトによっては使えないのでフリーな開発環境に慣れてしまうほうがむしろ楽だったりする eclipseというかNetBeansだったけどやっぱ色々ダメなとこあってもなんか楽だったよ
VScodeはずっとMP吸われながら使ってる感じ
快速コーディングはしてるんだけど精神的に疲れる
根がマジメで1個ずつバージョン確認しながら設定したい派なので
コマンド打ったら自動でなにか降ってきて設定されるようなやり方に疲れる
もちろんLinuxのaptなんかもメンタル削られるがあれはバージョン指定できるからまだマシだし
その気になれば他の方法もあるし 最も嫌われている開発ツールはNetBeansとeclipse
ttps://insights.stackoverflow.com/survey/2021#section-most-loved-dreaded-and-wanted-collaboration-tools 運用担当から開発者までVScode一択ですな
何にでも化ける印象
自分は営業にまで使ってもらってる >>695
> とにかく重い Eclipse
OS/2 の VisualAge C/C++ の頃から使っているが、それに慣れちゃうと
あんまり気にならないなぁ。
そもそも、大きな現場だとマシンがリースだったから、
古いマシンに当たるとそっちのほうが遅くてツラい。
普段使いのマシンは五年くらい使って書いかえるが
環境もほとんど変えないので重いとか遅い感じは
しなかった。
複数人のプロジェクトでツールを共有して、周囲に質問できるんなら
乗り換えるのに吝かではないのだが、昨今はリモートワークで
そういう現場も少なそうに思う。
そういえば、 Eclipse よりNTT の仕事で使った TraSoLna が酷かった。 Java開発なら明らかにEclipseより機能足りてないもん
なんでもてはやさるのか 使えない人には解らん世界ですからな
少なくともインストールした時点では
ほぼエディタ eclipseはバグが多いのがちょっとなあ
vscodeはJavaを使おうと思うとパスの設定とか
手動でやらないといけないんじゃなかったっけ?
初心者向けなのか? eclipseもパスの設定とかに関しては大差ないぞ
Oracle JDKをインストーラで入れてた頃は細かいこと気にしなきゃだいたい空気読んでくれてたけど、
Oracleの方針転換以来は環境がバラバラになっちゃった >>976
> あわしろ氏はviを推奨してる。
vi を IDE 環境と主張すろのはどうだろう(笑)。
> eclipseはバグが多いのがちょっとなあ
とはいえ、けっこう熟(こな)れて要る処理系ではなるので、
「どんなバグがあるのか」を報告すりゃあいいと思うのだが。
そもそもオープンソースなんだし。
つーてもコーディングスタイルが古臭いので、修正しづらい部分はあるのだが。
> vscodeはJavaを使おうと思うとパスの設定とか
> 手動でやらないといけないんじゃなかったっけ?
それで「自己責任」とか言われても困るんだがなぁ。 レス数が950を超えています。1000を超えると書き込みができなくなります。