BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Runtimes Content on InfoQ

  • Asynchronous, Event-Driven Web Servers for the JVM: Deft and Loft

    Asynchronous, event-driven architectures have been gaining a lot of attention lately, mostly with respect to JavaScript and Node.js. Deft and Loft are two solutions that bring "asynchronous purity" to the JVM.

  • The State of JRuby: 1.5, AOT, Java 7

    InfoQ caught up with Charles Nutter to talk about the state of JRuby: the 1.5 release, Ahead of Time compilation, and what's coming up in 1.6 and with features in Java 7.

  • JSR 292 and the Multi-lingual JVM

    Java 7 is looking to improve support for dynamic languages using the Java Virtual Machine for their runtime environment. John Rose has been leading a project to explore some options, and JSR 292 will standardise some of this work for Java 7. InfoQ takes a look at the problems JSR 292 solves, and talks to JRuby lead Charles Nutter to find out more about InvokeDynamic in practice.

  • Memory Barriers and JVM Concurrency

    Memory barriers, or fences, are a set of processor instructions used to apply ordering limitations on memory operations. This article explains the impact memory barriers have on the determinism of multi-threaded programs. We'll look at how memory barriers relate to JVM concurrency constructs such as volatile, synchronized and atomic conditionals.

  • Service Dynamics: the lazy man's way

    This article describes "the hardest topic in OSGi, how to deal with service dynamics," based on personal experience. Two factors, concurrency and direct service references, make the problem "fiendishly hard." An import and an export policy should form a comprehensive doctrine for dealing with service dynamics and the article explores two export policies with their corresponding doctrines.

  • Ruby's Roots: Smalltalk Comeback and Randal Schwartz on Smalltalk

    Smalltalk, a language that has had a big influence on Ruby, is making a comeback. We take a look at the current situation and talk to Randal L. Schwartz about Smalltalk.

  • More Than Just Spin (Up) : Virtualization for the Enterprise and SaaS

    Cloud services, such as Amazon EC2, have helped bring virtualization to the forefront of the IT conversation. Its full power however, also includes benefits such as high availability, disaster recovery, and rapid application provisioning. In this article, Contegix CEO Matthew Porter, discusses how virtualization can be used to bring these benefits to enterprise and Saas deployments.

  • Using Ruby Fibers for Async I/O: NeverBlock and Revactor

    Rails 2.2 is schedule to be thread safe - but will blocking I/O libraries make it necessary to run multiple Ruby instances? We take a look at how non-blocking I/O and Ruby 1.9's Fibers help solve the problem. We talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.

  • Exploring LISP on the JVM

    One of the most exciting things in the Java world right now is the work being done to get other programming languages to run on the virtual machine. There is a lot of buzz around JRuby, Groovy, Scala, and the JavaScript engine Rhino. But why stop there? If you really want to take a step outside the mainstream and dive into something completely different from Java, Lisp is a great option.

  • Do Java 6 threading optimizations actually work? - Part II

    Features like biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking are all designed to increase concurrency by allowing more effective sharing amongst application threads. But do they actually work? In this two part article, Jeroen Borgers explores these features and attempt to answer the performance question with the aid of a single threaded benchmark.

  • Do Java 6 threading optimizations actually work?

    Features like biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking are all designed to increase concurrency by allowing more effective sharing amongst application threads. But do they actually work? In this two part article, Jeroen Borgers explores these features and attempt to answer the performance question with the aid of a single threaded benchmark.

  • A Look at Ruby Debuggers

    A misconception lingers in the Ruby world: Ruby has no debugger. This is blatantly wrong - Ruby has debuggers, GUIs for debuggers and APIs for debuggers. InfoQ takes a close look at the state of debugging tools in the Ruby world - and finds that its debugging support is more than sufficient.

BT