「jvm」を含む日記 RSS

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

2023-12-19

Javaって書けば書くほど嫌いになるけどマヌケが作ってる言語だと思う

JVMはいいんだよ。マジで素晴らしい。Javaはあまりにもクソ過ぎる。

不完全な型推論、あまりにも冗長すぎるモジュール機構ファーストクラスじゃない関数、なんでもクラス、ザコみたいな型システムに由来したあまりにも乏しい表現力。

あげてもキリがないほどのクソofクソ。このそびえたつクソに燦然と輝く究極のゴミ、そう我らが springframework。

マジでイカれてるよ。直近のJDK21で導入されたJava言語仕様としては instanceof 以外で正気を疑う進歩のなさ。どうしてこんなゴミがのさばってるんだよ。

まじで新規案件KotlinScalaしろ!!!!!!(Scalaをまともに使える能力判断力もない人間がなんとなくJavaを使うんだろうなあ)

2023-09-28

anond:20230928140751

そりゃあScheme教科書にでてくるしClojureJVMだしさぁ、LispといったらCommon Lispの話だよ、きっと。

2023-09-19

anond:20230919125521

Java(Kotolin)だがJVM関係は全部AndroidStudioに入っとる。

2023-05-12

anond:20230512180741

Dockerは、開発から運用まで一貫した環境提供することで、開発者作業負担を減らすという大きな利点があります。また、仮想マシン比較してリソース使用効率が高いため、エコとも言えます

ただし、確かにDockerには一定オーバーヘッド存在します。これは、DockerゲストOSを持たずに、ホストOSカーネルを共有して動作するためです。それにより、アプリケーションの実行に必要リソースが追加で必要になり、パフォーマンスに影響を及ぼす場合があります

また、Dockerを利用する際の設定や構成によってもパフォーマンスは大きく変わります。例えば、Dockerネットワーキングストレージの設定、またホストOSとの互換性など、考慮すべき要素は多数存在します。

あなた現在の状況について具体的に述べると、FESSクローリングが重いという問題は、Dockerオーバーヘッドけが原因ではない可能性がありますDockerコンテナ内のFESSJVMの設定、ホストマシンリソース割り当て、ネットワークストレージの設定など、様々な要因が絡んでいるかもしれません。

また、Dockerログ出力が多いと感じる場合も、実際のところはFESSDockerの設定によるものかもしれません。ログの出力レベルを調整することで、必要情報だけを出力するように設定することも可能です。

しかし、これらの設定を調整するためには一定知識経験必要で、それがなければ素直にネイティブ環境での構築が良い選択かもしれません。結局のところ、どの方法が最善かは具体的な要件や状況によります

このような状況に直面した際には、パフォーマンス問題を具体的に分析し、適切な解決策を見つけるためにパフォーマンスモニタリングロギングツール使用することをお勧めします。それにより、問題の原因を特定し、適切な対策を講じることが可能になります

たとえば、Dockerが高いCPU使用率を示している場合、それはコンテナ内のアプリケーション(この場合FESS)が高いリソースを消費している可能性があります。その場合アプリケーションの設定や実行パラメータを調整することで改善できるかもしれません。

また、Dockerコンテナリソース制限を調整することも検討できますDockerは、コンテナに割り当てるCPUメモリの量を制限する機能提供しています。これにより、他のプロセスに影響を与えることなく、特定コンテナリソース使用量を管理することが可能です。

さらに、Dockerボリュームネットワーク設定が適切であるかを確認することも重要です。不適切な設定はパフォーマンスに悪影響を及ぼす可能性があります。たとえば、ファイルI/Oパフォーマンスは、ホストOSコンテナ間でデータを共有する方法に大きく依存します。そのため、適切なボリュームの設定や、パフォーマンスを向上させるための最適化オプション適用されていることを確認することが重要です。

最後に、Docker自体アップデートパフォーマンス改善寄与する場合があります。最新のDockerエンジンには、パフォーマンス改善するための修正改善が含まれていることがあります

これらの要素を考慮に入れ、Dockerパフォーマンス最適化する方法を探すことができます。ただし、これらすべてを試してもパフォーマンス改善しない場合や、必要知識時間が不足している場合は、Docker使用しないネイティブ環境での構築が最善の選択であるかもしれません。

2023-01-14

anond:20230114015744

全体的に、線で結ばれているものが親子関係なのか包含関係なのかただ近い領域のものなのか曖昧なので意味のあるグラフというよりはキーワード適当に散りばめて近い領域にあるものを線で結んだお気持ちマップに見える

なんか細かい所チクチク直しても全体がよくなる気がまるでせんので目的と線の意味定義し直して出直してくれ。

2022-11-14

anond:20221113102558

ひとことで Java と言っても今と昔とは全然違う。

Java進化してるし、JVM動作する他の言語も増えて技術の幅は大きく広がった。

今は OSSJDK が乱立していて、そのどれを使って開発すべきか決断することも一つのノウハウとして必要

他にも今なら DevOps のために自動ビルドデプロイの仕組みから設計していく必要がある。

まともな会社ならそろそろ Javaコンテナ運用する流れになってきてるからマイクロサービス的な設計意識する必要があるし、暖気運転不要Java 実行環境なども考えて作っていく必要がある。

これだけできれば、他の言語に行ってもキャッチアップできるよ。

逆に10年前と同じことやってるようじゃ、どこに行ってもダメ

2022-07-22

anond:20220722021742

ブロックチェーン仮想マシン」ではないです、適当なこと書きました

さら適当なことを書き連ねますが、ここでいう仮想マシンとはVMwareとかの仮想マシンではなく、Javaの実行環境であるJVMとかのような仮想マシンです

イーサリアムスマートコントラクトはEVMという名の仮想マシンで実行されるけど、その仮想マシンは、ブロックチェーンというOS上に載っている、という認識です(詳しい人が読んだら怒られそうな認識だけど)

※もちろん実態としては、マイニングマシンLinuxWindows機であり、EVMを含むマイニング用のクライアントはこのOS上にインストールされますが、概念的には、という話です

2022-04-16

anond:20220415214846

でもあいつ、最近Scalaについて話してたから、あんなんでもJVM界隈の人なんだろうな。

やべーブクマカが多いのは、

エンジニアを集める

SIerが多く集まる

→病んでるか低学歴かこれから病むやつ

→やべー奴爆誕

ってエコシステムのせいじゃないのか。

2022-04-12

anond:20220412234322

以前はJavaの良くないところを改善したものって感じだったけどScala/Kotlinとか出てきたしこれらのほうがJVMで動いて互換もある

Windowsデスクトップアプリをお手軽に作れるくらいじゃないのかな

ウェブ技術を使う方法より柔軟性は低いしWindowsAPIを直接呼び出すよりパフォーマンスは劣るけど.NETFrameworkデフォWindowsに入ってるから小さいexeだけ配布して動かせる

anond:20220412231942

なんだかんだでAPIサーバJVMで動いてるの多い気がする

2022-04-07

れ: node.js呪い

https://d.potato4d.me/entry/20220405-nodejs/

話題になっているけど、本来人類必要なのはクロスプラットフォームな実行環境であってNodeじゃない。

TS流行ったのはJSがクソだから。BabelしなきゃいけないのもJSトランスパイルしなきゃいけないからであって、必要なのはJVMCLRのような言語実行環境

Reactが流行ったのはshadow domだけど、必要なのはDOMじゃなくてちゃんとした「アプリ」開発用のイベントモデルレイアウトマネージャ含むGUI環境

フロント界隈の流行廃りって本質的改善ってよりもほかの良い技術いかブラウザ/Electron等JSエンジンという限られた環境に持ち込んで幸せになるかがメインに見えるので地獄に見える。

アプリ」書くのになんでドキュメント記述用のHTMLに今ものっかってんだよと。

MavenやらGemsができて依存管理楽になったとか、RailsがでたときのようなCoCいねとか開発の考え方を変えるフレームワーク、 rspec/Cucumberがでてテスト最高とか、c10kも怖くない非同期I/Oとか、好きな言語が使えるJVM/CLRそもサーバーならrustでもgoでも好きなものが動くとかとか本来の開発を楽にするという意味ブレークスルーってあんまりみられない気がしている。なんでフロント界隈の新技術ってあんまりわくわくしない。

逆にちゃんとしたクロスプラットフォーム実行環境ブラウザしかないということなんだけど、ブラウザなかなか進化しないし RIAApple 様が切り捨てるからなぁ。

ということですべてはブラウザが悪い。JavaScript 以外がちゃんと動くクロスプラットフォームGUI環境必要。でもプリインでモバイルでも動いてOSから独立して協調して作られていて、Webという既存の大量の資源アクセスやすものは現時点で実質ブラウザ一択。つまりWASM に期待。次にHTMLであるべき文書はともかくSPAなんてもう「アプリ」なんだからHTML手書き文化もうやめてネイティブアプリ並みの GUI 作成環境復権しよう。

するとクライアントでも好きな言語が使える。そして同じ言語がいいとサーバサイドで Node.js を使う必要もなくなりへっぽこプログラマが Node のイベントモデル理解せずに使うこともなくなる。

そしてそれらができたときに Node というか JS/HTML呪いから解放され人類平和が訪れるのだ。君はその後も Node.js を使っても良いし使わなくてもいい。

ま、私はそんなもの作れないのでありものでがんばりますがね。

2022-01-25

アメリカガチシステム開発現場を行動観察

アメリカガチシステム開発現場を行動観察

ここから今日の本題です。

アジャイルコーチとして、アメリカガチの、ガチシステム開発現場に、言うたらエスノグラフィ(行動観察調査)をしてるようなもんです。三流プログラマながら。

そういうリファレンスみたいなことをお伝えしたら、皆さん(Regional Scrum Gathering Tokyo 2022の参加者)が喜んでくれるかなとか思って、内容を構成しています

ただ、僕が知っているのはマイクロソフトだけですし、自分職場だけなので、主語が大きすぎるとか、そう言うのはやめてください。心が傷つくから(笑)

そういうのを踏まえて聞いてください(笑)。全部一次情報で、人から聞いたものではないです。ちょっとだけマネージャ関連のところはマネージャに聞いたところもありますが、基本的には自分経験したことのみで構成します。

ウォーターフォールは使われていない

まず滝。ウォーターフォールがどれぐらい使われてるのかって話ですけど、これは簡単です。ゼロパーセント、本当に見たことないです。

fig

からといって本当に素晴らしいスクラムをみんなやってるかっていうと、そうでもない。どれぐらいプロセスに対してマチュア成熟)かはチーム次第なんだけど、少なくともイテレーティブじゃないのはないし、アップフロントデザイン(開発前の仕様策定)を大量に時間をかけてやってるというのもない。

デザインドキュメントっていうのを書く人もいれば書かない人もいて、書く人が多いですけど、書いても5ページぐらい。

何年か前にサム・グッケンハイマーというDevOpsで有名な人が日本に来たとき日本のお客さんに「ウォーターフォールアジャイルメリットデメリットを教えてください」って聞かれて、彼が「ウォーターフォールは全くメリットがないのでやめておきなさい」って言い放って。

僕が当時そのことをブログに書いたらすごい炎上しましたけど。

私は間違っていた。ごめん。ウォーターフォールは何のメリットも無い - メソッド屋のブログ

分かります。誰も使ってないんだから。やっぱりもうやめといた方がいいですよね、正直話無理があります

開発者それぞれが責任を持って設計実装する

次は、僕のチームがどんな感じで運用されてるかっていうお話します。

マイクロソフトには統一プロセスとかなくて、基本的にチームをどう回すかはチーム次第なんですよ。でもだいたいみんな似たような感じでやってると思います

基本的にはスモールチームです。どんな大きなプロジェクトであっても、スモールチームの集まりって感じです。

自分のチームについては、これがよいやり方かは分からないですが、個人商店みたいなもので。「IC」というのはIndividual Contributorですね、開発者

fig

マネージャからアサインされるバックログ基本的にはふわっとしているので、ICがそれを明確にします。

IC仕様自分明確化して、自分デザインして、インプリメントする。だからそれぞれがレスポンシビリティを持っていて、それぞれが実装をする。

ただ、同じマイクロサービスメンテする役割の人みたいなのがいて、それは「Buddy」(バディ)みたいになっていて、僕の場合は例えば「スケールコントローラー」っていうのを開発していますが、スケールコントローラーのチームでバディになってると、質問というかお互いに話が聞きやすい。すぐに答えてくれやすいですね。

他のチームとかになると、ちょっとバリアがあって。やっぱりみんなそれぞれの仕事をやっているので、プライオリティがそれぞれあるんですよ。だから違うチームの人になると意地悪じゃなくて彼らのレスポンスは1日に1回とかになったりするわけですよね。仕方がないことです。

多分このチームの単位マネージャ管理できる最大以下の人数で構成されてるんじゃないかなと思います。だから本当に自分のチームはそれぞれが個人商店みたいな感じですね。自分レスポンシビリティを持って自分でやる。それは新人であっても一緒です。

司会)ここでちょっと会場から質問が入りました。このチームというのはどういう単位なんでしょうか。プロダクトの単位なのか、どういう単位なのか。

(右下の点線で囲われたところ)このチームはスケールコントローラをやっていて、(右上の3つのICを指して)このあたりはプラットフォームと言って中の基盤みたいなことをやってたりします。

でも基盤もかなり巨大なので、内部でいくつか分かれているんですけど、同じマネージャが見て、みんなを助けている、という感じですね。

司会)隣のチームと、このチームを分けているのは、マネージャが違うだけ?

ええと、大きな機能で分かれているというのがあります。例えば隣のチームはランタイムっていうチームなんで、Azure Functionsのランタイム担当してるんですよ。

給料を上げるのは他人との競争ではなく自分との戦い

さて、エンジニア評価っていうのはどんな感じになってるかっていうと、この図にはマイクロソフトは入っていないのですが、僕の友達に「ゆうさん」っていう人がいて、彼がブログGAFA給与体系みたいなをまとめてくれて、マイクロソフトも似たような感じです。

参考:GAFA米国本社エンジニア年収ジョブレベル別に比較してみた【GoogleAmazonFacebookApple

この図がまさに僕が言いたいことなので、この図を使います

fig

こういう情報って外部に公開されてるので別に隠すことはないし、マイクロソフト給料の額とかも調べられるんですよ。

どういうふうになってるかっていうと、エンジニアとしてランクがあるんですよね、「SDE1」「SDE2」とか。マイクロソフト場合は「シニアソフトウェアエンジニア」があって「プリンシパルエンジニア」がある、みたいな。

このランクの人はこういうことができる、っていうのが明確に定義されていて、それによって給料が決まるんですね。

から自分給料を上げたかったらどうするかっていうと、プロモート(ランク上げ)してもらえるように頑張るって感じです。他の人との戦いじゃないんです。

いまより一つ上のランク仕事をしばらくしていれば、マネージャが「こいつは今はシニアだけどプリンシパル仕事してるからプロモートしよう」とノミネートしてくれる。

そうやってノミネートされたら次のレベルに行けるし、行けなかったら転職をする。転職するとそこでネゴシエーションやすいので、その時に例えばシニアとかプリンシパルになれればその給料がもらえる。

ただ、そういうふうに上に行くとレスポンシビリティも大きくなるので、自分でチョイスする感じですね。自分でチョイスするし、自分との戦いなので。だから他の人と比べて不公平とか全然思わない。

給料を上げたかったら次のレベルになればいい。そういうアクションをとればいいので、あくま自分との戦いって感じになります

マネージャ自分仕事キャリアを助けてくれる

マネージャ存在っていうのは僕的にはすごい(日本と)違ってるように感じています

日本にいるときマネージャって進捗管理課題管理をしたりとかして、プログラマとか開発者を指揮するとかそんなイメージだったんですかね、僕のイメージとしては。

アメリカ場合は、彼らが重視してくれるのは僕のキャリアなんですよ。僕がハッピーかどうかとか、僕がキャリア成功するかっていうのをすごい重視してくれるんです。

fig

これまで何人かマネージャが変わりましたけど、みんなそうでした。マイクロソフトには明確にそう定義されているんです。だからマネージャはみんなそういう動きをしてくれます

マネージャ大事仕事アンブロック」

マネージャのすごく大事仕事に「アンブロック」というのがありますIC、つまり開発者の人がどこかで詰まっている状態になると、マネージャが助けてくれる。ブロックされているものアンブロックしてくれるんです。

fig

例えば、僕が技術的に詰まるとして、誰かに聞かなあかんけど、誰か聞かなあかん人がなかなか答えてくれへんとか、そういうこともあるかもしれないです。

そういうブロックをされる状況が一番生産性を阻害すると思うんですね。

そういうときマネージャアンブロックを手伝ってくれる。ある人に繋いでくれたり、マネージャ経由で他の人が僕に協力してくれたりとか。

マネージャが、このプルリクエストを見たら分かりやすいよと教えてくれるとか。

基本的納期の設定はない。マネージャも急かさな

あと結構面白いのは、少なくとも今の僕の職場では、納期基本的にない感じです。

fig

あるときもあるんですよ。どんなときかっていうと、マイクロソフト最大のイベントの「Build」というのが5月ぐらいにあって、そのキーノートで発表される予定のプロダクトみたいなもの。それが決まったら納期があるのかもしれないですけど。

基本的納期的なものはなくて、できたときが終了なんです。

マネージャも僕に対して「早くしてください」って言ったことは1回もないですね。どっちかというと、僕が「何か遅くてごめんな」とか言ってたら、「いやそんな気にすんなよ」って、「よくあることだよ」とか言われたりする。

これは多分いろんな意味合いがあるんですよね。多分クラウドプラットフォームって、難しいことがいろいろあって、例えば自分が1週間でできるって思ったのに2カ月かかったりとか、ほんまにあるんですよ。

例えば、JVMにあるJarをアタッチするだけに見えた仕事に、僕は半年かかりました。

僕の能力のなさもあるかもしれないですけど、そういういろんな予想外のことが起こる。

やっぱり世界中の人が使うプラットフォームなので、よく分かってない実装とかしたらむちゃくちゃになるんです。ちゃん理解して、より良いアーキテクチャを作らないとひどい目にあう。

から多分マネージャ絶対に急かさないんだと思いますちゃん理解して出来るようになれば、次からは開発が速くなる。だからマネージャとしてはそこで急かさないことによって未来への投資をしてる感じなんじゃないかなと、僕は思ってます

バックログはあり予定もあるが、達成されないこともしょっちゅう

司会)すいません、マネージャの話しに行く前に。質問が集まっていて。納期がないという話に関して皆さんが大混乱に陥っていてですね(笑)納期がないとすると逆に何があるのか。バックログみたいなのがあるのか、ロードマップがあるのか。どういうものを始点に駆動されていて、牛尾さんの仕事が始まるのか。

バックログですね。大きなトピックだけはある。今期はこれをやろう、というのはあるんですよ。

だいたい今期はこれとこれをやっていこうというのがあって、それを荒い粒度ですけどブレイクダウンしたストーリーにして、それをICアサインするんです。

でも、それが今期に達成されないということはしょっちゅう起こります

思ったよりもすごく難しかったとか、あるシステムで改変が入るのでそれまで作れないとか、そういうのがしょっちゅうある。でもそれでそのICが責められることはないです。

変化は見通せないので仕方ないですよね。オーガナイズはされているけど、できなかったときはできないと認める、ということです。

司会)お客様からバックログの元になるような要求がきて、それがリリースされるまでのタイムスパンはどのくらいなんでしょうか?

僕らの場合プロダクトオーナーみたいなチームとしてプロダクトマネージャがあって、バックログの発生元はプロダクトマネージャが決めるのですが、そのインプットソースとしては、彼らの戦略(ストラテジ-)とカスタマフィードバックですね。

あとはハッカソンエンジニアがなにかプロポーズするときもあります

そういうもののなかからプロダクトマネージャが、今期これをやればインパクトがあるんじゃないかと考えるものピックアップされます

で、それが達成されてリリースされるまでの期間は本当にピンキリです。

僕の場合は、早いときは1週間で終わりましたけど、さっきの話みたいに1週間で終わると思ったやつが半年かかったこともあります

僕の上司で僕よりもプログラミングができない人はいない

ではマネージャ技術力の話に進みたいと思います

僕の上にはプリンシパルマネージャがいるんですね、それが日本で言ったら課長みたいなもので、その上に部長みたいなのがいて、で、テクニカルフェロー、これは事業部長みたいな感じです。

彼らの技術力はどんな感じか。

僕の1つ上の上司は、Azure FunctionsのJavaランタイムをイチから書いた人です。

その上の人は、Azure Automationの開発をしている人で別チームなので細かいところまでは知らないのですが、技術力がハンパない、ということだけは分かります

何でかと言うと、どんなテッキー話題を振っても、ものすごく早く深く理解するんです。彼が経験したことのないことであっても、Kubernetesでも、彼がやったことのないPythonとかでも、完璧理解してアーキテクチャの深い話をするんです。

給料が高くて当然だと思いますね。

fig

で、テクニカルフェロー。これはAzureの主要なサービスをイチから書いていたりします。

まり何が言いたいかというと、僕の上司で僕よりもプログラミングができない人なんて一人もいないんです。

そしてこういう人が僕の仕事サポートをしてくれる、応援をしてくれるわけです。

からこんな上司に何かを説得する必要なんてないんです。彼らがテッキーミーティングに参加して、しかも僕らにすごい鋭いアドバイスをくれるんですよ。

皆さんがもしマネージャをやるときには、こういう人たちと世界で戦わないといけない、ということをちょっと意識していただきたいんです。

へーOutlookぽちぽちけがスキルのクソ雑魚ポンコツ年功序列PMになってるようなケースがないのねアメリカ

2019-02-10

anond:20190210184938

そのjvmが動くための環境は誰がセットアップするんだっていう

あとネットワーク周りの設定とか

ログの出力先のパーミッションとか

そういうの、また別途、その環境用に作り直すんだったら、

そもそもdocker作業する旨味を半分くらい逃してる感

2017-10-15

全部linuxでやりゃいいんだよ

俺はそうしている

20年前のecho layla24でbitwigとかrenoiseとか動くしw

デスクトップアプリっぽいのは今electronに流れてるんだろ

業務系ならjavafxとかでもいいと思うけど

jvm言語なんでもいいわけだし

まあtoC向けのデスクトップアプリなんか市場のものがほぼないんだからしょうがない

2017-03-23

わたしはしごとがあんまりできない。

具体的に言うと、

日本語での説明あんまりうまくできない。今日も後輩にJVMってなんですか、Staticってなんですかって聞かれたけど、なんかうまく説明できなかった。

あーなってこうなってっ説明しても、相手は「???」みたいな顔をしている…。

・深く考えられない。相手から意見言われと、思考が停止して「それが正しいまさに正解だ」という気持ちになってしまう。

たぶん他人から「1+1は3だよ」って言われたら、「えっ!?そうなの?そうなのか…」みたいな気持ちになって、最終的に納得してしまう。そんなレベル

不適切な場面で万能感が湧き上がることがある。「なんかできる気がする!!!スイッチが突然入る。

ただ、それは大体「気がする」止まりで、最終的に痛い目をみることが多い。

今日JVM説明するとき説明筋道考えてる最中に突然「なんかできる気がする!!!スイッチONになってしまい、

その勢いのまま説明を始めてしまった。結局、私の口からはぐしゃぐしゃした言葉しか出てこなかった。

単体テスト仕様書を作ると、割りとテストケースが足りてない。しかもそれは難しい観点のケースじゃないんだ。

自分の中で、もはや当たり前になってた観点なのに、ときどきボロンと抜け落ちる。

・誤字脱字などのケアレスミスも多い。印字切れとかもよくやる。

主体性がない。責任感がない。当事者意識がない。進んであれやりますこれやりますって、言ったことないなあ。


…もし上記を読んで「あーああいタイプ人間ね」みたいに想像ついた方いらっしゃったら、

恐れ入りますが現状を改善するためのアドバイスいただきたいです…。

上司に「そのままのキャラでいいよ」といじられるけど、本音は"もう諦めてる"なのかなあ。

ちゃんとした人間になりたいよ。

2016-08-09

golang半年近く使ってみて

後なんかweb系の企業golang採用多いので、ある程度詳しくなっておけば就職困らなそうという予防線

今のところが成功しなかったらeurekaとかmercariとか雇ってくれませんか!

どっちもユーザーです!(ペアーズでは3名ぐらい逢った、メルカリではバイクMacbook Air売ったなー。)

ポケモンGoとかやんねーし、地味に自分がよく使っているアプリサービスから成功パターンを得るのがいいのかなぁ

なんか、人との接点がうまくできているCtoCサービスがうまくいっているような感じが(CtoCなんだから当たり前か、何いってんだ)

人とコンバージョンしたいです。

2016-05-22

http://anond.hatelabo.jp/20160521234423

いうかですね、そもそもVをロジックの中にベタ書きしちゃうの嫌なんですよね。

わざわざ一緒くたにベタ書きする設計が悪いだけの話でしょう。それともJSで書くものはすべてロジックで、表示用コードは別言語でなくてはいけない、とでも思っているのでしょうか。ビジュアルデザインはほぼCSS規定されるだろうし、それを用いる構造HTMLベタ書きなのかJSで作るのか、という話にすぎない。

活発なメンテがそんなに重要なのかな?ということです。

"Software Rot"という用語を知らないでしょうか。インターネット上の環境が進んでいるなかで、進歩が止まれば使えないと同義でしょう。世の中には脆弱性のあるJVMマイナージャージョン固定でユーザーに使わせた大企業もあるけど、そちら側の人ならしかたないですが。もうReactがどうのこうのというレベルじゃないですよ。

2016-03-24

http://anond.hatelabo.jp/20160324095716

Java関係があるScalaってのはPlayFrameworkなんかの特定フレームワークの話

わかってる人が書いた文章とは思えない。

Scalaフレームワーク関係なく、バイトコードコンパイルされてJVM上で動くでしょ?

っていうかPHPシェルスクリプト大好きないつもの老害おじさんでしょ?

2015-10-29

Scala言語仕様ってさ

なんであんななんでもかんでも詰め込んでるの?

implicit conversion とか generalized type constraints とかそんなに使うか?

みんな全部ちゃんと理解して覚えて使いこなしてるの?

そんな訳ないよね?

趣味でやってる個人はともかく、会社でチーム全員が本当に使いこなしてたりするわけ?

それどこの会社

しか馬鹿みたいにコンパイル遅いし。

言語仕様IDEいくら生産性上げてもコンパイル遅いから台無し

正直ここ10年くらい何使ってもコンパイル速度なんて気にしたことなかったけど Scalaコンパイルの遅さは異常。

使ってる奴らは「Scala あるある」とか言ってそうだけどはっきりいって池沼

JVM 言語使いたいならもう Java8 でいいだろ。

言語仕様ってのは golang とか Haskell くらいのが美しいんじゃないの。

Scala は引き算的な設計判断が出来てないだけじゃないのかって思うわけ。

なのになんかもてはやされてる。

なんで流行ってるのかが分からない。

でも Scala は頭いい人達が使って絶賛してるからリアル世界では dis れない。

否定するとダメグラマの烙印を押される。

Scala 怖い。

毎日マサカリが飛び交ってる。

ここは日本だぞ?

つーわけで俺はもう Java8 使うわ。

ラムダ!!

2013-06-15

http://anond.hatelabo.jp/20130614232508

いわゆる「LL」ではないけど、Scalaを挙げておきたい。希望の要件はおおむね満たしてると思うけど、以下注釈

val users = service.getUsers // 1
val result = users.map { users => users.filter { u =>
  u.name.head == 'T' // 2
}}.flatMap { users => Future.traverse(users) { user =>
  db.write(user.id, user.name) // 3
}}

result.onSuccess { case _ =>
  println("Success!") // 4
}
// '=>'がうまく書けなかったので全角になってる。

2012-10-24

http://anond.hatelabo.jp/20121024113536

■頭の中でCを簡単なアセンブラに変換できるのが大事

http://anond.hatelabo.jp/20121024004748

こんにちはこんにちは

以前、"he doesn't use struct or union?"と書いて、ここの住民に糞味噌に言われた人です。

#が、この一言で何が言いたいかからなければ、プログラマーとしては最低ランクだと思うよ。

俺の場合は、

1. C勉強開始

2. PC-9801スプライト動かした段階で息が絶える...orz

3. 放置

4. C++勉強開始

5. OOよくわからんC++むずい...orz

6. アセンブラとかZ80、8086、386、486の勉強開始

7. すげぇよくわかった!CASLとかも試験のためにやった

8. Javaアルファー版をダイアルアップでダウソ

7. 英語マニュアルしかないので仕方なく読む

8. OOの何がいいのか理解できたヽ( ゚∀゚)/

9. Javaで書いたソフト雑誌で紹介されたり、賞を取ったりした

10. JVMとかクラスファイルフォーマット勉強開始

11. C、C++勉強OpenGLゲームとか作る

12. 振り返ってみると、全ての知識が有機的に結合されている!!!頭の中でCを簡単なアセンブラに(Java場合バイトコードに)変換できるのが大事だったんだね!!!

13. 就職

14. 転職

15. 就職

16. 転職

17. 病欠

18. 転職

19. 離職

20. 無職

現場ゴミみたいなコードを書く人とかゴミみたいな設計をする人で精神を痛められます

ITは辞めた方がいいよ。

#これも後で消す。

#あと、文章を消すのは鼻から議論する気がないかdeath。これはチラシの裏

2012-03-13

書き直したって、いいんだよ

http://www.yamdas.org/column/technique/hatenablog.html

 なお、タイトルに PART I とあるが、このネーミングはメル・ブルックスの『珍説世界史 PART I』にちなんだもので、PART II 以降は存在しない。つまりあなたソフトウェア企業)が絶対すべきでないことは、Joel Spolsky にとってこの文章に書かれることだけなのだ。それは何か?

 プログラムスクラッチから書き直すことに決めることだ。

まぁ、そんなわけないんだけどね。

最近はてな体たらくへの失望感名前を付けたい」というだけの文章にマジレスするのも我ながらどうかと思うし、気持ちは分からなくもないんだが、最近は「はてブ」以外全く使ってない俺でも、長年お世話になってきたはてなに対してそれなりに愛着というものがあるわけで、ディスられるばかりの流れに少しばかり反抗を試みたい。これは、それだけのエントリだ。

というわけで、以下に書くのは、技術の話でも倫理の話でもない。どうか気軽に読んでほしい。

書き直してはいけないのか

実例を挙げる。

今やワールドワイドな影響力を持つ勝ち組ソーシャルサービスTwitterだが、彼らは、ここ数年でバックエンドの大半をスクラッチから完全に書き換えたしかも、RubyからJavaへと、使用言語すら変更してしまった。

http://d.hatena.ne.jp/teppei-studio/20110709/1310168002

もう一つ。Tumblrも、LAMPアーキテクチャからJVMベースへ切り替えた。その過程で、Twitterオープンソース化した技術を取り入れたりもしている。

http://blog.kyanny.me/entry/2012/02/19/002256

『「古いコードクズだ」というのは錯覚だ』というJoelの意見は、一面では正しいが、他の面では間違っている。なぜなら、あるソフトウェアに求められていること(要件)は、時間と共にどんどん変化するから

書き直そうが、書き直すまいが、一番ダメソフトウェアとは「ユーザの要求に応えられないソフトウェア」だ。規模や環境の変化によって古い技術技術限界に直面したり、ビジネス環境の変化に追随する必要が出てきたのなら、「スクラッチから書き直す」のは立派に一つの選択肢だ。

技術の変化

はてなダイアリー最初バージョンがどういうものかは俺もよく知らないが、おそらく「LAMP」がエッジなキーワードとして持て囃されていた頃に書かれたプロダクトなんじゃないかな(間違ってたら突っ込みを)。それから時代下りRuby on Railsに代表されるCoCフレームワークの登場を経て、今や大規模分散や非同期を前提としたアーキテクチャが当たり前の時代。当然改修はしているだろうけど、MySQL職人芸で負荷分散していた時代から大分遠いところに来たのは間違いない。

何より、はてなダイアリーといえば「はてな記法」とカスタマイズ自由度の高さがウリだったわけだが、これらの存在が、今や機能追加や改良の妨げになっているとしても不思議じゃない。

はてなブログ開発の動機として「今どきの技術で、最初からやり直す」というのがあるのは間違いないが、それは「スクラッチからの書き直し」だから悪手なのだろうか。結局のところ、レガシーコードメンテナンスを続ける場合と比べてどちらがより低コスト、という話の結論によるとしか言えない。

ビジネス環境の変化

はてダソーシャル要素といえば「トラックバック」と「idコール」と「キーワードリンク」だったわけだが、全部Twitter(とTogetter)に持っていかれたよね、という話。

から、「はてダver.2」や「ブログ2.0」を望む声が大きいのは理解できるけど、ぶっちゃけ、そんなもんに開発リソースを突っ込んでも勝ち目なんか無い。んで、それに代わるアイディアを持ってる奴はどこにもいないと。だから既存コードの改良ではなくスクラッチから書き直し、スモールスタートでフィードバックを受けながら方向性を考えていく、という方向性はそんなに間違っていないと思う。

ただ、現状を放置すると「それTumblrでできるよ」という話にしかならん、というのはその通りで。それ以外だと、もしgithubblogサービスを始めたりすると、かなり客を持っていかれるのではないかという予感はする。いっそのこと、Tumblrのデッドコピーから始めるのが一番早いのかもしらんね。

技術の体系化の弱さ

少し別の話を。

https://github.com/twitter

これは、Twittergithubレポジトリだ。上でも書いた通り、Twitterサービススクラッチから書き換えた。で、その過程で開発した内部向けのフレームワークを、どんどんオープンソース化している。彼らが、内部の技術をきちんと体系化して再利用可能にしていることの証左と言える。

一方、はてなgithubレポジトリ。正直、サンプルとかプラグインばかりですね、と。

https://github.com/hatena

色々と理由はあるんだと思うが、一つ思うのは職人芸頼りで自分たちの技術を体系化するという部分が弱いんじゃないか、ということ(はてな発のオープンソースで広く使われてるのって何かあったっけ?)。

先ほどから散々「書き直していい」と主張しているが、誰かが言っていた通り、技術本質を捕まえきっていない状態でフルスクラッチをやっても、失敗する可能性は高い。はてなブログがどちらなのかは、中の人しかからないことだけど。

マネタイズ

はてな経営的にあまり状況がよろしくない、という推測はおそらく当たっているのではないかと思う。

タイムラインで、誰かが「まっとうな方法収益化する方法を真面目に考えるべきだった」と言っていたのを見た。それをしていれば、今回のような事態を招くことは無かったのだろうか。

だが、「まっとうなビジネスモデル」とは何だろう。実際問題として、ここ最近成功しているネットサービスビジネスモデルで「ターゲティング広告」と「マスなユーザベースから抽出したビッグデータを解析して売る」以外で何か有力なものはあっただろうか。FacebookにせよTwitterにせよ、収益化の原動力はユーザ行動解析だったりするわけだ(彼らがオープンソース化に積極的なのはインフラ技術差別化の源ではない、という面もある)。

まぁ、あとはガチャだが、どちらにせよ現状では高木先生逆鱗に触れるようなものしかないよね。

そんなわけで、それらに代わる第四のマネタイズモデルを思いついた人は、ぜひ近藤さんに教えてあげると良いんじゃないかな。あればだけど。

最後

今後はてながどうなるかは分からないけど、一つ希望したいことがあるとすれば、故伊藤計劃氏のダイアリーがこの先も保全されることを望みたい。

それは、エントリを全て魚拓しろ、という話ではもちろんない。彼の生前に書かれたエントリは、当時の「はてな」という生態系を構成する一部でもあるわけで、そこから切り離して文章だけをアーカイブしてもあまり意味がない。

まりネット過去を作ってきたものとして、現在適応しながら、未来へと生き残って欲しいと、そういうことです。

2010-08-14

ほっとけばJVM一強時代が来てたと思うんだが

これだと浅はかなのかなー

かといっていまさらJVM以外ってありえないだろうしどうするんだろう

まさかのhaskell

2010-05-05

情報学部の新入生にはアセンブラC++関数型言語(何がいいかまでは知らないけど)やらせりゃいいと思う

基礎体力を養う意味ではここら辺がいいと思うんですがどうでしょう

アセンブラコンピュータの基礎を理解するには必須でしょう。

これがわかるとCLRJVMインフラ部分もわかりますし、組み込み方面にも強くなります。

後にOSコンパイラ勉強するにも役立つでしょう。

C++マルチパラダイム言語であり、これをひとつやれば構造プログラミングオブジェクト指向プログラミングの両方がわかります。

C++はCのほぼ上位互換言語ですので(正しくはC99が制定されるまでは)、プレーンなCしかやらない理由はありません。

最初ベターCとして始めればいいです。

嫌なとこも多くある言語で(どうしてEffective C++シリーズやExceptional C++シリーズみたいな書籍が多くでてるか考えるといいよ)、メモリ管理も手動ですが(これは半分嘘。RAIIがあるから半分自動GCがないから半分手動)、逆に細かいとこに気を配る態度を養うには最適です。

関数型言語は新しい世界を知るために勉強しましょう。

Erlangで並列プログラミングをやるのもいいかもしれません。

Common LispSchemeで怪しい(でも美しい)世界を爆走するのもいいかもしれません。

MLHaskellが最も現代的ですかね。

これだけやっとけばC#Java、軽量言語の類はあっさりと料理できるでしょう。

あくまでもプログラミング言語についてはですからね。

アルゴリズム離散数学もちゃんとやってくださいね。

システム屋になりたきゃソフトウェア工学経済学経営学、ついでにナンパもちゃんとしなきゃダメですよ。

2007-09-15

PHP勉強しよう

気がついた。RubyPython,ocamlscheme仕事なんてないんだ。

ほとんどの会社ではparlかPHPJavaしか求められない。

.Net関連の開発といってもF#やnemerleが使える可能性なんてない。

JVM上で動く小規模なものならjavaじゃなくてjavasciptで書いた方がなら効率がいいと思うのだが理解されない。

しかたないのでPHP勉強を始めた。

なるほど、これなら3時間もあれば問題なく使用できるようになる。

開発者の増員が簡単だから組織採用するのも納得だ。

でもやっぱりRuby仕事がしたい。東京に行こうかな。

 
ログイン ユーザー登録
ようこそ ゲスト さん