「Lombok、便利そうだけどまあそんなに使わないかなあ」と思ってたんだけど試しに使ってみたらかなり快感だったのでメモ。 Javaのだるさ Javaでプログラムを書いているとよく「intのtype, Stringのnameというフィールドを持つだけの、特定の処理などは含まないHogeクラスを作ろう。まあ普通に文字列表現もあってequalsによる比較とかもできるように」のように思います。 package org.hogel; public class Hoge { private int type; private String name; public Hoge() { } public Hoge(int type, String name) { this.type = type; this.name = name; } public int getType() { return type
カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。 Codesp […] カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。 Codespellでは、プレイヤーは小動物ノーム(gnome)たちが住む土地にやってきた魔法使いです。ノーム達は過去に魔法を使って生活していたのですが、今は魔法をうまく使えなくなっています。魔法の呪文はJava言語プログラムで、物体を浮遊させるとか火を起こすといった7つの手持ちの呪文を使って、ノーム達を助け、火を消したり川を渡ったりといったクエストを解き、バッ
Welcome Welcome to the LearnJavaOnline.org Interactive Java Tutorial. Whether you are an experienced programmer or not, this website is intended for everyone who wishes to learn the Java programming language. Just click on the chapter you wish to begin from, and follow the instructions. Good luck! Learn the Basics Hello, World! Variables and Types Conditionals Arrays Loops Functions Objects Compil
The following print statement would print "hello world". Could anyone explain this? System.out.println(randomString(-229985452) + " " + randomString(-147909649)); And randomString() looks like this: public static String randomString(int i) { Random ran = new Random(i); StringBuilder sb = new StringBuilder(); while (true) { int k = ran.nextInt(27); if (k == 0) break; sb.append((char)('`' + k)); } r
少し前に献本いただいたのですが(竹添さん、翔泳社様、ありがとうございます)、時間が無くてあまり読み進められていませんでした。昨日使って一通り目を通したので、ちょっとした感想を書きます。購入の際の参考になれば幸いです。 まず、結論から言うと、本書は、 (特に)Javaをメイン言語として使っている人で、Scalaを学習したい人 Scalaを使った実用プロジェクトを作り始めたい人 Scalaの各種ライブラリの基本的な使い方を知りたい人 にお勧めできる書籍といえます。主な理由としては、 現行安定版である Scala 2.9.X (現在最新安定版はScala 2.9.2) に対応している事 言語機能に関するレシピがある事 sbtを使って、実際に開発を行うために必要な記述がちゃんとあること 準標準的なライブラリ(Akka, Specs 2, 等)や新しいFW(Play 2)に関する記述が豊富な事 など
前回のおさらいと今回の内容 前回の記事「Scalaのパッケージ、アクセス修飾子、オブジェクト継承」では、オブジェクト指向言語ではとても重要な機能であるクラスの継承と、Scalaのパッケージについて紹介しました。今回は、Scalaのオブジェクト指向を構成するもう1つの重要な機能、「トレイト」を紹介します。 なお、本記事ではオブジェクト指向自体やクラスやインターフェイス、継承の概念、それらに関連した基本的な事柄について詳細な説明は行いません。 オブジェクト指向の基礎やインターフェイスについて確認したい方は、以下の記事をご覧ください。 第1回記事では、Scala標準のREPLとScala IDEで動作を確認してみました。今後本記事のサンプルコードは、どちらで確認しても問題はありませんが、対話的に実行でき、1文ごとにコードの結果が分かって便利なので、基本的にはREPLを用いて説明していきます。 S
YJTC19 B-5 Kubernetesで実現したYahoo! JAPANの次世代開発環境 ~ 100以上のクラスタを少人数で運用する秘訣 ~ #yjtc
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
Javaの常識を変える「Play framework」とは 「Play framework」は、サーバサイドJavaとScalaのためのMVCフレームワークです。この連載では、主にJavaのフレームワークとしてのPlay frameworkを紹介していきます。でも「Javaで、Web向けで、MVCで……」なんて、ありふれた感じですよね。それなら「Scalaで、どう作るのか」という話の方が興味あるという方もいるでしょう。 しかし、Play frameworkはバージョン1まではJavaのフレームワークとして作られていました。また、ScalaはJavaVM上で動作するプログラミング言語です。つまり現在の最新バージョンの2でも基礎の部分で動いているのはJavaです。Play frameworkを知るためには、まず基礎から固めていくのが正攻法だと思います。Scalaについて知りたい読者は、以下の記
チェコJetBrainsは2月14日、自社開発のJavaおよびJavaScriptプラットフォーム向けプログラミング言語「Kotlin」をオープンソース化したことを発表した。 KotlinはJetBrainsが2011年7月に発表したプロジェクト。静的型付け、Javaに似た文法、Javaとの完全互換などが特徴で、KotlinのコードはJVM(Java Virtual Machine)バイトコードおよびJavaScriptコードにコンパイルできる。安全性の面でJavaの欠点を補い、Scalaよりも簡潔にすることなどを目標に掲げている。 今回公開したのは、Kotlinコンパイラの「Kompiler」、基本的なJavaライブラリの強化機能、AntとMavenに統合できるビルドツール、KotlinのネイティブIDEである「IntelliJ IDEA」用プラグインなど。ライセンスはApache Li
Scala と JavaScript はありとあらゆる事が対極なので、面白いです。 Scala はたくさん型(クラス)を作ることが推奨されている言語です。型は1行で簡単に作れるし、型のパターンマッチングの機能をはじめとして、型に関する機能が充実しています。ちょっとでも何か違う時は型を作り、複雑な問題は型を変えることで、より小さな簡単な問題に分割していきます。他の言語では、メンバ変数に対する if 文で書くような箇所も、型のパターンマッチングを使うと吉です。 それに対して、JavaScript はあまり型を作らずに、どんどん相乗りして行く方が、僕の経験から言うとベターです。{} で簡単にオブジェクトを作れてしまいますし、僕は結構、{type:"Hoge"} という感じで type というメンバ変数を使って、型に相当する物を識別しています。コーディングしている最中に型の問題を先送りにすることに
Martin Oderskyによる 関数型かつオブジェクト指向プログラミング言語 Java 1.1–1.4コンパイラの開発者 Pizzaの開発者 (Philip Wadlerと共同) オープンソース 活発に開発が行われている 応用 Twitterの分散DBフレームワークGizzardはScalaで記述されている Foursquare, Tumblr, LinkedIn, Amazon, VMware, はてな, ドワンゴなどでも利用されている WebアプリケーションフレームワークとしてPlayなどがある プログラミング言語別年収ランキング 2017年は1位, 2018年は2位 言語の特徴 関数型プログラミング言語とオブジェクト指向プログラミング言語の融合 強力な型推論 高階関数 Immutable Collections 並行計算 Java言語もJava 8から,関数型プログラミングの特徴
I’ve been developing for quite a while and in quite a few languages. Somehow though, I’ve always seemed to fall back to Java when doing my own stuff – maybe partly from habit, partly because it has in my opinion the best open source selection out there, and party because I liked its mix of features and performance. Specifically though, in the web arena things have been moving fast and furious wit
コンニチハ! 変態アドベントカレンダーです。 http://atnd.org/events/22020 ※ アドベントカレンダーとは、クリスマスまでに毎日日替わりで窓を開けていくカレンダーのこと。 それにちなんで、日替わりでblogエントリを書くのがアドベントカレンダーです。 オブジェクト指向 ってよく聞きますし、実際のところ何がすごいの?? って思ったりしてる人も多いでしょう。 抽象クラスって何よ!? インタフェースとかどうやって使う? とか そういう初心者向けアーンドもう一度学びたい人達に変態を例に説明してみましょう。 うだうだですけど、最後まで読んでいただければ幸いです。。。 まず、オブジェクト指向は何が嬉しいのか?ってところですけど、 処理を共通化し、生産性をあげる!! ということではありません。 もちろんそういう一面もありますが、これぐらいならオブジェクト指向を使わなくても十分で
正規表現(java.uitl.regexパッケージ)を使った文字列切り出しと、Stringクラスのsubstringによる文字列切り出しとで性能比較をすると、感覚的には正規表現がかなり遅いと思っていました。 この2つの実行時間を測定して比べてみました。 背景 周期的に送られてくるデータを処理するようなコードでは、一つ一つの処理は短くても、積み上がってみると処理が追いつかずパンクするということがあります。 例えば、通信レコード1件に10種類のデータ項目が含まれ、1データ項目の受信処理に100usかかるとします。ここでデータ項目とは、日時、店コード、品名コード、などです。受信処理は通信フォーマット(ある規則の文字列、バイナリ)をプログラムで扱うデータ型に変換するようなものです。 1秒間に通信レコード1000件の要求が発生すると、受信処理時間は、1000*10*100usで1秒となります。受信処
最近、Javaを勉強したりしていて、RubyがJavaとの対比で昔より客観的に見られるようになったので、Rubyの記事を書きたいと思います。自分でも消化しきれていない話なので、反論は大歓迎です。 内容は、大クラス主義とダックタイピング、そして名前重要に関してです。 大クラス主義 Rubyの考えでよく言われるものに、大クラス主義があります。例えば、RubyのArrayは配列を表すクラスです。しかし、Arrayができることは、単純に値を複数持てるだけではありません。Arrayを調べてみると、popやpushやshiftやunshiftがあります。つまり、RubyのArrayはキューやスタックとしても使えます。一方、JavaのArrayやArrayListでは、配列の要素を扱うことはできますが、そのままではキューやスタックとしては使えません。Javaでキューやスタックが使いたいのであれば、例えば
Scalaは、スイス連邦工科大学ローザンヌ校のMartin Odersky(マーティン・オーダスキー)教授率いるチームが開発しているプログラミング言語です。オープンソース(BSDライセンスに似たSCALA LICENSE)で開発・公開されており、その範囲内で自由に利用できます。最初に、“なぜ、Scalaの人気が高まっているのか”を説明します。 Scalaは、オブジェクト指向に加えて関数型言語の特徴を備えた比較的新しい言語です。この、“オブジェクト指向に加えて”というのがポイントです。新しいパラダイム(問題解決のための考え方)を、従来のパラダイムに重ね合わせていることから、マルチパラダイムの言語ともいわれます。 ちなみにScalaという名前は、Scalable Language(拡張性のある言語)の短縮形です。そのスケーラブルという言葉には、「小さいプログラムも大規模なプログラムも同じ概念で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く