「Scala」を含む日記 RSS

はてなキーワード: Scalaとは

2018-08-12

なぜSQLけがこの世界で未だに職人芸じみているのか

1.リファレンス無料で読めないか

標準SQL仕様書は有料である。このご時世ありえん。

たとえばC#など.NET系のリファレンスMSDNで読むことができる。

RubyだってHaskellだってScalaだって公式サイトガイドぐらい置いてある。

そもそも標準SQLサイトは有料ですら見つけるのが難しい。

2.実装ごとに仕様が違いすぎるから

OracleDB2MySQLPostgreSQLSQLite、AccessなどSQL実装されたDBMSは様々にあるが、どれを取っても仕様が違う。

皆が標準SQLに従っていてその上で適当増設している程度ならよいが、もはや誰も標準SQLに従う気が無い。

この点でCコンパイラ多様性のようなものとはわけが違う。

根幹的に必要機能があったりなかったりするから、あるDBMSで書けるようになったからと言ってSQLを覚えたとは言えない。

これと上記1とのせいで、何かググった時に特定DBMSしか解決法にならないものが大量に出てくる。

3.最適化人間任せだから

最近プログラミング言語は大抵、雑に書いたってコンパイラ適当最適化してくれる。

同じ結果を生むような二つのコードは、よほど下手くそに書かない限りは同じような実行速度になる。

SQLオプティマイザが最適化はするが、ほぼ同じような二つのコードで速度が全く変わったりする。

そのため実行計画というオプティマイザの中間言語のようなものを読んであげて、

より速い中間言語が生成されるようSQLチューニングし直さなければならない。

これでは何をやっているのかわからない。

有名なサイトでは、初心者必死で書いたような可愛らしいSQLを「それでは遅すぎるんじゃ」とけちょんけちょんにけなし、

なんかシンプルなのだけれどよくわからない文法を一杯使って実行速度を高めたのを「正解」としていたりする。

しかもその文法、ググってもろくな解説が無かったり、特定DBMS依存してたりと使えないオチ

4.スタイルガイドがないか

上手い人はSQLを綺麗に書く。だけど、その綺麗さの基準が人によって違う。

エディタが単なるメモ帳しかないようなDBMSも多いから、インデント文字数さえ個々人に任される。

インデントは2文字か4文字か。SELECTで改行するかしないかカンマは列の後ろか、前か。

いろいろなサイトに色々なことが書いてあったけれど、全部違うこと言ってた。

まり各々綺麗に書ければいいやということであり、読むほうも宗教が違ってもまあ綺麗なら読めるから困りはしない。

困るのは初心者である

何かの解決法をググるたびに違うスタイルからどう書いていいのかわからない。

結局なんかいろいろな上手い人のスタイルをツギハギした新たなスタイルが世に誕生してしまうのだ。

最後

だけど、そんな職人芸じみたSQL世界が私は好きです

2018-06-29

はてなブックマークをまともにするには

2018-06-24

関数型言語、本とか読んで勉強したりコード書いてると大変楽しいんだけど

ネット上で情報検索しようとするととたんに信者たちがオブジェクト指向のディスであったりHaskell信者Scalaユーザー内戦仕掛けてたりしてノイズまみれなのどうにかならないかなあ

関数型言語機能や利点を説明する時にいちいちオブジェクト指向比較してディスらなくていいよ

Haskellではこう書くよ」の後に「Scalaではこうなって面倒だよ」とかつけなくていいよ(たいていよく調べるとScalaでも簡潔に書くための糖衣構文があったりする)

 

オブジェクト指向10年ぐらい前の記事が引っかかるとそんな感じではあるんだけど

2018-06-12

anond:20180612160245

VB C# Java Scala Kotlin...

C++ ObjectiveC D Swift ...

ココらへん似たような言語多すぎてよくわからん

2018-06-02

anond:20180602230227

元増田です

回答ありがとうございます

環境にもよりますけど、中学生でCは辛そうですね…

Closureというのは初めて知りました

ていうか関数型言語はまだ手出し出来てません…今取ってるN予備校Scala教えてるのでそのうちやろうかなと思ってはいるんですが、なんか取っ付きにくいっすね

2018-02-12

王様達のヴァイキング

ITエンジニア界隈でそこまで話題になってないと思うけど、なんでだろ。

作中にScala書く敵とか出てくるんだぜ! 確かに最近エシュロンとか出して風呂敷広げすぎ感あるけど。

2017-12-14

anond:20171213232305

具体的に言語仕様のどのあたりが嫌なのかよくわからんけど、一つの事を複数の書き方ができるってどの言語でもわりとある程度はそんなもんじゃないの?

特別 Ruby が辛いとか思った事はないなぁ・・・

言語仕様が大きくて覚える辛みがあるってことなPerl とか Scala のが辛いんじゃないかと思った。

まぁそこで golang に行くってのは正解な感じはする。

2017-12-11

anond:20171211212945

Androidアプリにも関心があるなら Kotlin に手を出しても良いとは思うけど

そうでなければscala

anond:20171211211950

PHP7 で十分だと思うけど、敢えて学ぶなら、Scala で、次点python だね。

2017-11-30

anond:20171129214218

ドワンゴは、2012年頃に600万行のPHPスパゲティ絶望して、 Scala に移行したわけで、

22万行のうちの半分はテストコードなんだし、外野人間が考えるほど破綻しているとは思いないのだけどね。

クレッシェントで、金を掛けるところが違う!と言ってる人が多いけど、

快適なストリーミングを実現するための帯域を確保するには、例えば100億円掛かるのに対して、

ちょこまかとした新機能を追加するのは1億円以下でできるくらいの規模感の違いがあるので、

ちょっと的外れかなって思う。

Abemaは確かに快適に動画が観れるっぽいけど、帯域確保のために200億の赤字なんだし、

動画配信ビジネスは結局、帯域確保に一番お金が掛かり、その赤字を埋められるようなビジネスモデル(例えばyoutubeみたいな)を

構築できなかったのが真の敗因なんじゃないかな。。

2017-11-29

ニコニコ動画(く)リリース失敗に寄せて

そういうわけなので今日は公開資料を中心にリリース失敗の技術的な要因を分析してみたいと思います

Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

ドワンゴアカウントシステムScalaコードだけで22万行を越え、ドワンゴ社内で最大のScalaリポジトリとして知られています

ドワンゴユーザーアカウント基盤は明らかに破綻しています10 年以上にわたりガラケー時代から今に至るまで多くの業務コードに落としていくことは極めて難しい作業であったと思います。そうはいってもやってるうちに一回なんとか出来なかったのかとは思うわけです。やっている当人たちがテンションを上げているほどには開発効率が出ていない、むしろ足を引っ張っているという可能性はかなり高いと思います

ニコニコ生放送におけるdockerの活用事例:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴエンジニア) - ニコニコチャンネル:生活

ニコニコ生放送(以下「生放送」)ではバックエンドフロントエンドサーバーを建てる環境として、2016年からDocker Swarm採用し始めています

Docker Swarm Mode については私も検証をしたことがあり、非常に優れた思想をもった将来性のあるプロダクトであると感じていました。個人的検証はずっと続けています。まず swarm mode の何が優れているかと言えば、コマンド体系の分かりやすさです。開発者は何のストレスを感じることもなくクラスタを扱うことができますさらに、サービスディスカバリ層を極めて扱いやすい形(サービス作ると公開することを指定したポートクラスタ内の全マシンで公開されるので、あとはクラスタ全台に向けてロードバランシングするだけでいい事実上ゼロコンフィグレーション)で実装たことは素晴らしいと思いますしかし、残念ながらこの素晴らしい思想を持ったプロダクトは砂上の楼閣でした。その肝心なサービスディスカバリは安定しておらず信頼できません。またマスターコケてそのままクラスタ全部が機能を停止するだとか、ノードが気づいたら行方不明だとかはざらです。こうした問題は 2016 年末から現在に至るまで残念ながらあまり改善されていません。

私は kubernetes が嫌いです。 Google 製品開発者UX考慮しないからです。しかし、 2016 年においても、 2017 年の今においても彼のプロダクトが商用環境における事実上唯一の選択肢でした(ついでに言うならば docker service コマンドで kubernetes いじれるようになるので UX 問題解決する)。正直、 2016 年から swarm mode を仕事で使おうとしたのは、深刻なソフトウェア検証能力の欠如を感じます

http://gihyo.jp/dev/serial/01/dwango-engineersoul/0002 大量トラフィックを支えるインフラ独自プロトコル,ファイルシステム実装もいとわない!~

実は分散ファイルシステム独自に開発しました。もともと既存オープンソースファイルシステムを使っていたのですが,それだと期待する性能が出ないことがわかり,独自調査開発を進めることにしました。

現状は初期バージョンの開発完了にかなり近づいています

こちらの記事を読んでいただければわかりますが、配信基盤の再構築を行うにあたって

  1. OSS分散ファイルシステム使用するという目論見が失敗した
  2. 自前の分散ファイルシステムは 9 カ月まえの時点で全く完成していない

ということが分かります

なぜ彼らはパブリッククラウドCDN を使わないのか?

触れない話: 事実上全然稼働しなかった CTO北の将軍様

パブリッククラウド特に CDN採用することは開発負担の軽減に多いに貢献するように考えられます。実際「 akamai 使えよ」みたいなこと言ってるユーザー結構いるわけです。ではなぜ彼らがそうしないのか、その意思決定理由をここでは探ってみます

ASCII.jp:niconico(く)開発の遅れを謝罪

動画ストリーミングサービスとして遅れているというのは恥ずかしいことではありますが、ハードウェアや使っている回線の影響もありますので、どのサービスも最終的には同じになると思っています。その差をつけられることはこの先はなくなると思っています

ようするに CDN 屋だろうが自前だろうが最終的に同じようなところに落ち着くだろうという予測を彼らは立てているということです。しか現実問題として現在競合他社との差は大きく、新配信基盤のリリースの目途は立っていません(半年以上の遅れというのは通常そういうことでしょう)。ではなぜ彼らは最終的に差は無くなると予測するのか。私はこの点において彼らが空元気をふりまわしているとは思いません。

CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性

大規模配信 | 強烈な価格競争 原価割れ総合サービス提供で収支合わせ)

要するに CDN 各社は現在逆ザヤで出血を続けながら戦闘しており、 DDoS 対処を中心としたセキュリティサービスにより最終的な帳尻を合わせている状態です。自前で動画配信インフラを構築した経験のあるドワンゴCDN流行の早い段階から「成立するビジネスではない」という見通しを立てていたであろうと思います

ただしこの点において今後もビジネス環境技術環境現在のように推移するのかは、私にはよく分かりません(誰にも分かってないでしょう)。結局同じようなところに落ち着くならありもの使っとけよとは思わなくはない。

まとめ

まあもう無理でしょいろいろ

2017-11-18

アイドルビデオ乳首が映ってないかチェックする仕事につきたい

あるいは、撮影ミニスカート体育座りするときパンツが見えない角度を計算する職業につきたい

経験だけどそれらの資格がとれる学校てあるのかな

ちなみに今のスキルとしてはJavaScalaなら書けます

2017-11-08

モナド理解してるやつは説明がへたくそ

モナドさっぱりわからん

記事という記事を読み漁ってもモナドはわからなかったが、分かったことが一つある。

モナド理解してるやつは説明がへたくそ

どれも 用語 と 概念 と 数学 と 使い方 と 歴史 と 関数言語 を織り交ぜて同時に説明してきやがる。

モナドが分かった実感は0。

例えば住所圏でいうと→わからん

もっと詳しく具体的にHaskellScalaで書くと→わからんモナドが分からないのにHaskellScala を使いこなしてるわけが無い。

ここまでくればあとは簡単ですよね→わからん

大体モナドを知りたいやつは、理解とか概念はどうでもよくて、少しでもわかった実感がほしいだけなんだよ。へたくそ

anond:20171107110105

ScalaだとかHaskellだとか意識高い言語使うのはこういうエンジニアマンネリ打破してやる気出すためって面がある

2017-11-01

プログラミング言語関係選定

日本語圏内で声がデカ人間人間性に影響を大きく受けるので、ScalaTypeScript は避けるみたいな感じです。React も割とだるい

2017-09-30

C言語最初に学ぶべきではないが最初に学ぶことのメリット

私は今とある大学の4年生です.

本格的にプログラミングを始めとしてコンピュータ科学を学び始めたのは大学入学してからです.

今では幸運なことにインターン都内ベンチャー企業golangpython, scalaを用いた大規模なシステム構築に携わっています.

給料日本大学生にしては破格といえるのではないでしょうか. それも大学で真面目に勉強したお陰であると胸を張って言えます.

大学の方の卒業研究では組み込み系のセキュリティに関して研究しています. 正直テーマ選びに失敗したなと思っているので大学院にいったらシステムプログラミング系の方にシフトしようと思っています.

無駄話が過ぎました. 表題に関して話しましょう.

私が大学の授業で初めて習ったプログラミング言語C言語でした. 理由教授に聞くと, 並行して座学で教えるコンピュータ科学系の専門授業全般と結びつけやすいからだそうです.

最近TwitterQiita, StackOverflowなどでは「初学者最初に学ぶべきプログラミング言語はなに?」という質問に対して, JavaScriptPythonから入るのがベストだと言う人を沢山見かけます.

私自身こういった意見には賛成です.

JavaScriptブラウザというものが有る限り20年は消えなさそうですし, Python機械学習を始め, Webシステムでも使え, 非常にクレバー言語です.

javaオススメだと思います. 30億?ものデバイスで動く言語ですしドキュメント豊富です. 色々な分野にも応用が効くでしょう.

さて, そんな中でC言語という悪い評判しか聞かない, でもやたら色々なところで使われているらしい言語最初に学ぶメリットとは一体なんなのでしょう.

一つ, 私が思いついたのはコンピュータと仲良くなれる.

というのもC言語アセンブリ機械語に比べれば, 人間にわかやすく, かつコンピュータ側にも近いという顔をもちます.

真面目にプログラミングしようとするとどうしてもそのコンピュータの仕組み(主にメモリ) について学ぶ必要が出てきます. これらの知識現代の開発に置いて役立つ分野比較的限られると思います.

しかし, それらは思わぬバグ特定意図していない動作改善に役立つことがあるかもしれません(実際に私もいくつか出会いました)

二つ目は他の言語を学ぶ時のハードルが非常に低くなる. これはどの言語を学んでも同じだとは思います.

そして, 他の言語の高級な機能に思わず涙ぐみながら感謝すること間違いなしでしょう(javaのsplitとか他の言語にもあるHashとか)

ただ, 私はC言語構造体やポインタのお陰でオブジェクト指向プログラム言語を低レイヤ実装的な面と概念的な面ですんなりと理解することができました.

そしてよく挫折ポイントとなるポインタ(ダジャレじゃないですよ?). これもメモリの住所だと考えればそれほど難しくはないのです.

メモリ管理を適切に設計した時あなたプログラムボルト並みに早く走ってくれるかもしれません.

他の言語では味わえないやりがいがあるのもこの言語の魅力でしょう.

書いているとこれぐらいしか思いつきませんでした.

それでもコンソールに初めて Hello World! が出力された時の感動はやはり忘れられません.

昨今, 高機能言語が沢山ありますが, あなたプログラミング生活ささやかアクセントとしてC言語を学び直してみてはいかがでしょうか?

きっと今使っている言語普段言わない感謝言葉を述べること間違いなしです.

それではこんな駄文に付き合っていただきありがとうございました.

一刻も早く世界からC言語が消えることを祈っています.

2017-09-26

kmizuとかいScalaおっさん

「噴飯モノ」とか「すっぱい葡萄」とかそういう強い言葉相手罵倒しながら「いや、これは罵倒じゃなくて批判ですし、なに感情的になってんすか?こっちは理屈通ってるのに相手感情的で困るわ〜〜〜」みたいなこと言ってるのほんと感じ悪いんだよな。Scala自体はすごく好きだけどあいつのせいでScalaプログラマとは関わりたくないって思ってしまう。Scalaコミュニティのひとたちはあれでいいと思ってんの?ぜったい関わりたくないわそんなコミュニティ

2017-09-22

あれってジェネリクスの話じゃなくて福祉の話だよなぁ

自分医者ではないし、そうであっても診察もしていないのに診断を下すことはできないけども、golangのあれ、本人は本気で不快にさせるつもりはないというのだから、害意が本当にないならもうあれだよね。健常者が読んだら不快にさせてしま文書を書けるということで、まあ、あれ。

ダイバーシティ云々するなら、健常者はそれをくみ取って接しなければならないよ。大変かもしれないけど。繰り返しだけど、これは福祉の話だ。Scala使っとけ、で終わらせてしまったら、車椅子ユーザは家から出るなっていうのと同じになってしま・・・

2017-09-16

株式会社はてな株主構成から見るはてな実態

今戯れに時価総額と持ち株比率から換算した資産表作った

近藤 淳也 66.33% 4482581400円 ○

(株)はてな 6.59% 445352200円

毛利 裕二 5.98% 404128400円

梅田 望夫 4.30% 290594000円

栗栖 義臣(社長) 2.61% 176383800円 ○

大西 康裕 1.97% 133132600円 ○

伊藤 直也 1.79% 120968200円 ○

田中 慎樹 1.41% 95287800円

田中 慎司 1.30% 87854000円 ○

小林 直樹 1.15% 77717000円

お金の額面はともかくの話なんだけど、

○をつけたのは、はてなコードを書いたことがあると"思われる人"。「名前 プログラミング」で検索して有意な結果が出た人に○つけた。各株主の詳細知りたい人は適当にググって

で、さら


はてな年収は524万円が平均年収です。(有価証券報告書調べ)

http://heikinnenshu.jp/joho/hatena.html

あると好ましい知識経験

スクリプト言語(主に Perl/PHP/Python/Ruby/JavaScript)によるアプリケーションライブラリ開発の経験

ScalaGoにおけるアプリケーションライブラリ開発の経験

iPhoneアプリ、もしくはAndroidアプリの開発経験

UNIX系OSRDBMS特に LinuxMySQL)についての基礎知識

オブジェクト指向プログラミングの基礎知識

コンピュータサイエンスアルゴリズムデータ構造分散技術自然言語処理技術機械学習データマイニング型理論)に関する基礎知識

ネットワーク技術HTTPDNSTCP/IPなど)についての基礎知識

大学卒/275,000円〜

http://hatenacorp.jp/recruit/fresh/application-engineer-entry

って、エンジニア待遇悪すぎじゃない?

この毛利 裕二という人の持ち株の資産新卒給料(計算だるかったか計算からボーナス抜いたけど、手取り分で考えたらボーナス分くらいは消えるだろう)で稼ぐとしたら122年かかるし、梅田 望夫という人は88年かかる。本当にこの人たちにはそれほどの価値(上にあげた新卒に求めるやたらと高いスペック)分の価値があるのか?いや、価値があると思ったから株をあてがったんだろうけど...

まぁなんていうか...、はてなのエンジニアのみなさんお疲れ様です...業務がんばってください

完全に外様の俺から言えるのは"エンジニアに"もっと給料たくさん払った方がいいんじゃないかということだけです

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん