BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Concurrency Content on InfoQ

  • Concurrent Basic – A Declarative Language for Message-Based Concurrency.

    Concurrent Basic represents a possible future for Visual Basic. Though based on work done in C# research languages such as Polyphonic C# and C-Omega, Visual Basic was chosen for its inherent predisposition towards declarative programming. The syntax is even inspired by VB’s declarative event handlers.

  • Building a Better Thread-safe Collection

    Jared Parsons proposes a better thread-safe collection. By using a design pattern that strongly encourages, but not enforces, thread-safety, his API is both easy to use and easy to understand.

  • JRuby and Clojure - A Good Match?

    Clojure is a JVM based LISP with interesting properties for concurrency (persistent data structures, STM). New libraries for Clojure are popping up - and some of them are inspired by Ruby libraries such as HAML, ActiveRecord, Rack, and others. We also look at combining JRuby and Clojure to get the best of both Ruby and LISP world, as well as access to technologies such as STM.

  • Clojure Brings STM, LISP to the JVM

    Clojure, a LISP-style language for the JVM, is gaining interest quickly. One of the reasons is definitely its approach to concurrency which builds on Software Transactional Memory (STM). We talked to Stuart Halloway who's writing the first book on Clojure for the Pragmatic Programmers.

  • Interview: Joe Armstrong About Erlang

    In this interview filmed during QCon London 2008, Joe Armstrong, designer of Erlang, speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days due to its native ability to scale on multi core systems.

  • More Languages on top of Erlang Virtual Machine

    Erlang virtual machine – BEAM – hosts an increasing number of languages. Reia, a Python/Ruby like scripting language and Lisp Flavoured Erlang have recently been released. Debasish Ghosh reflects on this trend while other authors try to outline other possible language variants inspired by Ruby or Haskell.

  • Presentation: Concurrency: Past and Present

    In this presentation from QCon London 2008, Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, Software Transactional Memory, the history of concurrency, alternatives to threads, Erlang, Scala, and recommendations for concurrency in Java.

  • Fibers Roundup: NeverBlock Now Rails Compatible, "Poor Man's" Fibers For 1.8

    NeverBlock released a new version of their library - this time with support for Rails and Ruby 1.8. The 1.8 support uses Amun Gupta's "Poor Man's" Fiber code which implements Fibers using Threads.

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

    Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project (which provides support for MySQL and PostgreSQL) and Tony Arcieri of the Revactor project.

  • Databases Roundup: Data Sharding for ActiveRecord and Faster Postgres IO

    In this databases roundup we take a look at DataFabric, FiveRun's recently open sourced data sharding plug-in for ActiveRecord. Also: a look at speeding up Postgres data access using the asynchronous client API and Ruby 1.9's Fibers.

  • New Java Concurrency Feature: Phasers

    A new type of concurrency barrier called 'Phasers' has been introduced into JSR-166y, scheduled for inclusion in Java SE 7.

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

    In part 2 of "Java 6 threading optimizations" article series, author Jeroen Borgers examines various threading optimizations and JVM arguments to manage them. He also talks about factors like On Stack Replacement (OSR), Heap Management and Lock object data size which could significantly affect the performance of multi-threaded java applications.

  • Opinion: Multiple Processor Computing Challenges go Beyond Purely Technical Issues

    In his position statement for the International Computer Music Conference 2008, Peter Van Roy raises a number of issues related to the emergence of multi-core processors and loosely coupled systems and suggests possible solutions. Though challenges brought by these two forms of concurrency computing are very different in their nature, both they go beyond purely technical problems.

  • Kilim - actors and message passing in Java

    Message passing and the actor model of concurrency is one promising way for the massive parallelization needed to utilize current and especially future CPUs. Erlang has it built in from the start and Scala incorporated the Scala Actor library into it’s framework. But there is also a pure Java solution - Kilim.

  • The multicore crises: Scala vs. Erlang

    There has been a somewhat heated debate about Scala vs. Erlang on the blogosphere recently. The future will be multi-cored, and the question is how the multi-core crises will be solved. Scala and Erlang are two languages that aspire to be the solution, but they are a bit different. What are the pros and cons with their approaches?

BT