「JVM」を含む日記 RSS

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

2017-07-10

Webアプリを作るときにどの言語/WAFで書くべきか

使ったことあるモノもないモノもごちゃまぜにして経験雰囲気で書いてる。

PHP

Laravelは結構好き。DSL過ぎず、それなりにフルスタック生産性もいい。

何よりLaravel本体ソースコードが読みやすいのがいい。

まともな日本語情報が少ないのは弱点だけど、気になったところは本体コードを読めばすぐに分かる。

最大の欠点PHPってことだ。他のLL言語に比べてPHP自体生産性は低い。セキュリティ面の不安も大きい。それに安心して後を任せられるようなPHPerは一握りしかいない。

Perl

Mojolicious結構好き。これもDSL過ぎず分かりやすい。CPAN豊富ライブラリ群もある。

Perlは可読性が悪いなんて言うけど、ちゃんとしたライブラリ普通に読みやすいよ。

最大の欠点Perlってことだ。長期的に開発者を集めることを考えたら茨の道だろ?

Python

今でこそ機械学習Pythonが人気になっているけど、Web系はまだまだマイナーだ。

Djangoプロジェクト/アプリケーションという構成単位の考え方が好きじゃない。理論的な利点は分かるけど、現実問題それが必要になるケースが浮かばん。

Django以外でフルスタックのWAFが出てくればいいんだけど。Tornadoはフルスタックじゃないのでちょっと違う。

Python3で安心して開発できるならアリだと思うけど今はどうなの?使いたいライブラリが3系に対応していないとかで躓きたくないよ。

あと単純に速度が遅いよね。いや書き方を気をつければマシにはなるんだけど、書き方を気をつけなければいけない時点でつらい。

Ruby

Railsは便利だ。周辺ライブラリの充実度もすごい。情報玉石混交だけどまともな情報もたくさんある。

ただあまりにもDSL過ぎる。Railsプログラミングではなく、一つの巨大なDSLだ。

Railsプログラマの何割が、少しでもいいかRails本体ソースコードを読んだことがあるのか。めっちゃ読みにくいんだけど。Rubyは可読性が高いなんて嘘だろう。Perlと一緒でちゃんとしたコードは読みやすいけどそれはプログラマ依存する話で、言語自体に可読性の高さはない。言語思想の通り書くのは楽しいよ。でも読むのがつらい。

Rails自体DSLみたいなもんなのに、RSpecやらRakeやら周辺ツールDSL意識高すぎる。

問題があった時にググらずにコード読んで解決できるRailsエンジニアはどれだけいるのか。情報量が多いからググれば解決すると答えるやつは、底辺PHPerと大差ないからな。

あとバージョンアップ追従するのが面倒過ぎる。でも放置したら負債になるし。意識高くRailsで開発したやつの大半はバージョンアップやらの保守に入る頃にはもうそプロジェクトはいないんだろ?だからそのつらさを知らないんだろ?

散々罵ったけど、このDSLを覚えれば生産性が高いのは事実だ。だから結局ついていく確率が高い。モテ男なんだよ結局こいつは。

Java

SIerさんに敬礼

Scala

Playが王道だけど最新バージョンになるほど情報が少ない。このあたりがRailsと違う。公式(英語)とか本体コードを読める人じゃないとつらい。

そもそもJava、というかJVM周りの知識がないと本番運用はつらいだろう。LL言語運用経験しかない人は特につらい。LL言語でいうhot deployみたいなことがしたい時のやりかた分かってる?

コンパイルの遅さに耐えて開発し、運用時のGC問題を乗り越え、黒魔術を味方につけてライブラリコードリーディングが出来るならいいんじゃないか

動作は早いし、言語のものは強力だ。

Scalaを好むプログラマ関数型やらDDDやら意識高い人が多い。別にScala自体にそれらは必須ではないけど、そこら辺を意識しないならJava8でいいんじゃないかとも思う。

Node.js

非同期処理で開発することの難しさに耐えられるの?

ベストプラクティスがなく、移り変わり激しいJS界隈に流されてオレオレで書いたコード保守する自信があるならいいんじゃない。俺はない。

Go

API単体ならともかく、画面も担う普通Webアプリを書くような言語じゃない。少なくとも今は。

正確に言うと書けないことはないけど、Webアプリに関する周辺ライブラリの不足を乗り越えてまで書くメリットほとんどない。

ClojureとかElixirとか

運用実績ノウハウが少ない中で、自分で乗り越えていく気概があればいいんじゃない

結論

完璧選択などない。

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シェルスクリプト大好きないつもの老害おじさんでしょ?

http://anond.hatelabo.jp/20160221104655

Scalaは単体でScalaであり、Java関係があるScalaってのはPlayFrameworkなんかの特定フレームワークの話だけどな。

ってか逆に単体でScalaを利用するメリットがほぼ無いってのは重要だと思うぞ。

訂正。scalaJVM上で動作するので、javaライブラリを使えるのはメリット

scala自体javaより大分シンプルコードを書けるので、それもメリット

存外便利かもしれんが、慣れないとそこはよく分からんかもしれん。

ワイはちょいと触っただけやった。

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仕事がしたい。東京に行こうかな。

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