InfoQ Homepage Languages Content on InfoQ
-
From Imperative Programming to Fork/Join to Parallel Streams in Java 8
The authors compare different methods to compute the variance of a large data set using an imperative style, The fork/join framework and the new Streams API in Java 8
-
Modern Enterprise Performance Analysis Antipatterns
In this article we present some of the most common performance analysis antipatterns in the enterprise platform, expressed in terms of their basic causes along with remediation strategies.
-
ActiveJPA – Active Record Pattern for JPA
ActiveJPA is a Java implementation of Martin Fowler’s Active Record pattern that wraps around JPA and provides useful abstractions to simplify data access. With ActiveJPA, models themselves act as a DAO and interact with the database without requiring additional code for the DAL. In this article the primary committer discusses ActiveJPA and provides plenty of usage examples.
-
Discover and Diagnose Java Concurrency Problems Using Contemplate's ThreadSafe
Writing Java software that correctly and safely makes use of concurrency requires careful thought. Software that incorrectly accounts for concurrency can contain intermittent defects that elude even the most rigorous testing regimes. Static analysis tools can analyze source code or compiled bytecode to discover latent bugs hidden within code, long before it is executed.
-
Book Review and Interview: Real World OCaml
The new book Real World OCaml provides a deep dive into the OCaml programming language. InfoQ caught up with the authors to hear about real world Ocaml users, its unique features, and much more.
-
Durandal: Quick Start
Durandal is a lightweight JavaScript framework designed to make building Single Page Applications (SPAs) simple and elegant. It has strong support for MVC, MVP and MVVM so that no matter what type of front end architecture you prefer, Durandal can handle the task.
-
Pragmatic Techniques for Maintaining a Legacy Application
Maintaining a legacy application can make you feel like mice in a maze. In this article Ping Chen shares her experiences on how to pragmatically maintain a large legacy application. "Pragmatic” is the operative word; since a legacy application can have lots of technical debt, one has to be strategic in choosing the right battles.
-
Oleg Shilo on CS-Script and Notepad++
When you just want to try out some code, Visual Studio can feel like overkill. So some developers turn to lightweight editors such as Notepad++ for their scripting needs. Oleg Shilo talks about his project to add better CS-Script plugin for Notepad++.
-
Visualizing Java Garbage Collection
Garbage Collection, like Backgammon takes minutes to learn and a lifetime to master. In this article Master trainer/consultant Ben Evans summarizes his recent InfoQ presentation "Visualizing Garbage Collection" where he discusses Garbage Collection from the ground up.
-
PyParallel: A Fast Parallel Version of Python
By combining asynchronous I/O with a shared-nothing architecture, PyParallel research project is able to execute code in a parallel context faster than it can using CPython’s normal interpreter. And it does this without removing the GIL. The secret, no reference counting or garbage collection of any kind.
-
Don’t jump the SQL ship just yet
The SQL language has been evolving steadily over the last two decades. At the same time, the verbosity caused by the JDBC API in Java client code and the lack of first class SQL support within the Java language have led to the introduction of ORMs such as Hibernate, which was later standardised into JPA and the Criteria API.If SQL and JPA are diverging, where will our data interaction patterns go?
-
Developing Modular JavaScript Components
While most web applications these days employ an abundance of JavaScript, keeping client-side functionality focused, robust and maintainable remains a significant challenge. This article will present an example of evolving a simple widget from a largely unstructured code base to a reusable component.