出典:日経クロステック、2024年5月7日 (記事は執筆時の情報に基づいており、現在では異なる場合があります) 企業の情報システムには、高い信頼性や可用性が求められる。このためシステムの構築にはそれらを実現できるプログラミング言語を使う必要がある。 そうした用途でかつてよく使われていた言語が「COBOL」だ。Common Business Oriented Languageの略で、日本語では「共通事務処理用言語」という意味になる。エンジニアではない事務員がプログラミングできることを目指して開発された。自然言語である英語に近い構文で記述でき、可読性が高いのが特徴だ。 過去にCOBOLは金融機関のオンラインシステム構築などで大きな役割を果たした。現在でも、一般ユーザーの目に触れないところで動いているCOBOLシステムは多い。 ただしCOBOLは幾つかの問題を抱えていた。最も大きな問題は、稼働基

IBM が同社のAI・データプラットフォームwatsonx の生成AI でCOBOL コードの近代化を加速すべく、IBMwatsonx Code Assistant を開発しているそうだ (IBM Z andLinuxONE Community のブログ記事、 ArsTechnica の記事、 The Register の記事、 紹介動画)。COBOL コードのリライトには多数の開発者と手間のかかる手作業が必要であり、何年もの年月と数百万ドルの費用をかけても近代化できるのはごく一部にとどまる。IBMwatsonx Code Assistant では巨大でモノリシックなアプリケーションのリファクタリング・変換・検証を自動化し、ビジネスサービスごとに分離して近代化できるという。 変換の過程ではCOBOL コードをJava コードに変換するほか、COBOL コードのままで最
みなさん、今日もパブリックスタティックヴォイドメインしてますか? ジャバと言えばパブリックスタティックヴォイドメインですよね。 最近はIDEでmain[tab]と入力すれば補完してくれるとはいえ、コードを読むときには目に入ってきたりしますね。 そんなパブリックスタティックヴォイドメインの呪文から解放される日が近づいています。 TL; DR 9月リリースのJava 21の試用機能として void main() { System.out.println("Hello"); } をhello.javaで保存したら、java hello.javaで実行できるようになります。 (Java 21では--enable-preview --source 21が必要)Javaではプログラムを開始するときにpublicなclassなどにStringの配列を受け取るpublicでs

みんなから愛された「あなたとJAVA」の役割が終わったようです。 「Java」で検索するとjava.comのサイトがひっかかるのですが、このサイトは古いまま放置されていて、Javaの学習を始める人にとっての罠になっていました。 https://www.java.com/ja/ 「あなたとJAVA」というキャッチコピーの脱力感と、「ダウンロー」で改行され「ド」だけが目立ってしまう間のヌケかたから大人気のサイトでしたが、かっこいいものではない・・・ もともとはJAVA+YOUで、2008年JavaOneのキャッチコピーでした。これは大文字だけのデザインだからよかったのだけど、日本語訳するときJAVAだけ大文字で残ってしまい「JAVAではなくJava」の説得力をなくさせてくれていました。 それに、ほとんどの人がJavaのプログラミングの勉強をしようとして「Java」を検索するのにJREの配布サイ

2021年12月10日、Javaベースのログ出力ライブラリ「ApacheLog4j」の2.x系バージョン(以降はLog4j2と記載)で確認された深刻な脆弱性を修正したバージョンが公開されました。セキュリティ関係組織では過去話題になったHeartbleedやShellshockと同レベルの脆弱性とも評価しています。ここでは関連する情報をまとめます。 1.何が起きたの?Javaベースのログ出力ライブラリLog4j2で深刻な脆弱性(CVE-2021-44228)を修正したバージョンが公開された。その後も修正が不完全であったことなどを理由に2件の脆弱性が修正された。 広く利用されているライブラリであるため影響を受ける対象が多く存在するとみられ、攻撃が容易であることから2014年のHeartbleed、Shellshock以来の危険性があるとみる向きもあり、The Apache Software

ようやく裁判の結果が出ました。結果としてフェアユースが認められたのはよかったのですが、Googleが勝訴したということは素直に喜べないので、その理由を書いておきます。 関連ニュースは、こういったところから。 約1兆円の賠償金を巡るGoogleとOracleの10年にわたる訴訟が決着、「APIのコピー」は結局違法なのか? -GIGAZINEGoogle、オラクルの著作権侵害せず 米最高裁判決: 日本経済新聞グーグル、米最高裁でオラクルに勝訴--「Android」Javaコード訴訟で - CNET Japan 経緯 では、経緯について時系列に沿って整理していきます。推定可能な事実に基づきますが、一部、妄想も含まれています。 2005年Google(広告収入増やすには無償で改変自由なスマホOSが重要になるはず。普及させるなら開発者の多いJavaベースだよな。でも、クラスライブラリ改変しな
世界中で広く使用されるオブジェクト指向プログラミング言語Java。日本におけるこの言語の普及に、とても重要な役割を果たしたのが鈴木雄介さんです。鈴木さんは20年以上前からJavaに触れ、プログラミングだけではなく執筆・講演などの活動も精力的に行ってきました。 また、2007年に設立された日本Javaユーザグループ(JapanJava User Group:JJUG)に当初から在籍し、2012年4月から2019年3月までは会長を、2019年4月からJJUGCCC運営委員長を務めています。 なぜ鈴木さんはJavaに大きな魅力を感じているのでしょうか。そして、さまざまな普及活動を続ける過程で見えてきたものとは。Javaとともに歩んだ20年をふり返っていただきました。 *…取材はリモートにて実施しました。Javaをテキストエディタで書くのが当たり前だった時代 ──鈴木さんはいつごろJavaと

この記事はRuby Advent Calendar 2020の17日目です。 TL;DRGraalVM: 問題無く動作するがgemとか考えるとめんどそう。JavaのエコシステムやJS/Pythonなど別言語と組み合わせたい時には便利。RubyPacker: gem/bunlder含めて特に問題なく動く。フルスペックRubyが必要なら現状でベスト mruby-cli: ビルド速度含めて最軽量。使えるならこれがベストシナリオ。エコシステムが弱いのが欠点 はじめに 皆さんはRubyをなんに使っていますか? 多くの方は 「Railsを使ったWebアプリケーション」 と回答されるのではないでしょうか? 私の場合は少し違ってCLIのコマンドを作るのによく使います。Bashよりちょっと凝ったことをするのに自分にはちょうど良いんですよね。手に馴染んでるので。 ただ、今この手の用途に一番利用されるのはG

遅延評価、並列処理 Streamはラムダ式を使って関数型言語のようなスタイルで操作することができるため、従来のコレクションを操作するために使っても便利だが、遅延評価可能なコレクションという特徴も持っている。そのため、例えば以下のように無限に値を返すジェネレータをStreamで作成することもできる。 // 10、20、40、80…と無限に値を返すStreamを生成 Stream<Integer> stream = Stream.iterate(10, i -> i * 2); // 先頭の5件のみ表示 stream.limit(5).forEach(System.out::println); また、以下のようにして並列処理が可能なStreamを生成することもできる。並列処理可能なStreamではmap()やfilter()などのメソッドでの各要素に対する処理が自動的に並列に実行されるため、処

The State ofJava:Trends And Data For One of the World’s Most PopularProgramming Languagesの意訳記事です。 現代のソフトウェア産業は広大で、プログラミング言語の選択肢には事欠かきません。しかし、Javaエコシステムのような単一の技術スタックであっても、その市場について有益な結論を出すのは難しいことがあります。Javaは信じられないほどの成功を収めており、ほぼすべての主要な産業や経済部門で利用されていますが、このことがJavaエコシステムの状態について一つの断定的な視点を持つことを困難にしている部分もあります。 しかし、だからといって、世界の状況を評価できないわけではありません。 毎日、何千万ものJava仮想マシン(JVM)がNew Relicとデータを共有しています。このレポートを作成するにあたり
Javaのテストカバレッジを計測できるオープンソースライブラリの現状を調査してみました。 要約 Coberturaは開発が停止しているため、今後はJaCoCoもしくはCloverが主流となりそう。ただしCloverは最近オープンソース化されたため、今後の継続開発(=コミュニティの活発度)はあまり見えていない。 主要な3ライブラリの概要 JaCoCo 最新版は2018年1月リリースのバージョン0.8.0(2018年3月時点)。 実行時に計測(on-the-fly instrumentation)できないクラスに対して、クラスファイルに計測処理を事前に追加する(offline instrumentation)ことができる。 Cobertura 開発は2015年2月で止まっている。Java 8に未対応でLambda式などの記法があるとその部分の計測ができない。 他のライブラリでは対応していない

はじめに この記事は、2020年3月13日に正式出版された共著『みんなのJava』タイアップ企画としてお送りします。英語版の記事は「Summary of information about OpenJDK and JDK Distributions」を参照ください。(リンク先も若干異なる箇所があります。) 簡単に紹介したときのブログ記事はこちらですが、私の担当した2章のうち、2-4節「最新JDKディストリビューション大全」の最後に、動向把握用の情報源をまとめています。 電子版の場合はリンクを辿れると思いますが、紙版の書籍を購入いただいた方には厳しいでしょうし、今後にリンク先が変わる可能性もあるため、記事としてまとめておきます。 その他、2-4節にある注目しておきたいJDKへのリンクや、参考資料・追加情報も若干補足します。 2-5節にある各ディストリビューションのアップデート提供期間(EO

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 追記1: コメントでの指摘を受け、gvmに関する記述を削除 この記事は、日経ソフトウェア 2013年 06月号 04/24発売 のステマ記事です。 6月号に、@keiji_ariyama(前座部分担当) と 僕(Gradle概要担当) と @sys1yagi(Android対応部分担当) という分担でGradle入門的な記事を書きました。 ですが、僕の目的としてはトップゲート社員への布教を主目的と考えて書いたため、本来要求されている分量を(わざと)大幅にオーバーして書いていました。雑誌に掲載されなかった溢れ分をネットで公開して良いか打診

プログラムの構成は、おおよそ初期化と代入となっています。 何事もまずは初期化と覚えておいてほぼ間違いありません。 これまでListについてやってきましたが、もちろんListもこの形に当てはまります。 今回は、Listの初期化と追加(add)を1行で済ませる方法を伝授します。 プログラムは、暗黙のルールで同じことを繰り返すことはあまりよくないこととされています。 何故なら、しなくてもいい処理をしなければならないといったことになってしまうからです。 あまりにも無駄なソースコードを書いてしまうと、無駄な処理を発生させ、結果人によってはイライラすることにもなります。 今のうちからでも基本をしっかり理解した上で、スマートなコードを書く癖をつけておきましょう。 Listの初期化の基本 List<データ型>変数名=new ArrayList<データ型>(); まずは、Listの初期化の基礎をしっかり理解

パラメータ化テストは、データだけが異なる複数のテストケースを定義して実行するのによい方法です。ここでは、JUnitテストでよく使用される3つのフレームワークについて説明します。 ユニットテストを書くときは、メソッドの入力パラメーターと期待される結果をテストメソッド自体で初期化するのが一般的です。場合によっては、少数の入力の組み合わせだけで十分かもしれません。しかし、コードのすべての機能を検証するために膨大な値の組み合わせを使用しなければならない場合もあります。パラメータ化テストは、データだけが異なる複数のテストケースを定義して実行するのによい方法です。境界ケースを含むさまざまな値でコードの動作を検証できます。テストをパラメータ化すると、コードカバレッジが向上し、コードが期待どおりに機能しているという確信が得られます。Javaには優れたパラメータ化フレームワークがいくつもあります。この記事

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く