InfoQ Homepage Programming Content on InfoQ
-
Confusing unit-of-work with threads
Most server-side applications and many desktop applications contains data that is tied to a particular task that’s being executed. A common solution is to keep that kind of data in thread-local storage; to keep the data in variables bound to the executing thread. Convenient, but a practice based on a faulty assumption.
-
LINQ Aggregates in VB and C#
An aggregate is a function that takes a collection of values and returns a scalar value. Examples from T-SQL include min, max, and sum. Both VB and C# have support for aggregates, but in very different ways.
-
Brian Beckman and Erik Meijer of MSR on Tesla
The project code-named TESLA in Microsoft Research is being spearheaded by Brian Beckman and Erik Meijer. LINQ is the first released technology aimed at democratizing the Internet coming from Microsoft. From Monoids to LINQ, Brian and Erik provide insight into the future of the .NET Framework languages at Microsoft and how they plan to change the Cloud as we know it today.
-
Partial Methods: Do They Belong in C#?
One of the more controversial additions to C# is the addition of partial methods. Created exclusively for code generators, some believe it pollutes the C# language.
-
JNA brings native code to JRuby
The Java Native Access (JNA) library brings simple POSIX support to JRuby, and might just make native extensions possible.
-
Why API design matters
API design affects all developers. Some APIs are a pleasure to work with, others are annoying and yet others are downright frustrating. But what's makes the difference? Which qualities make one API easy to use and another hard? The ACM Queue recently published an article by Michi Henning about API design; an article that analyzes these aspects.
-
Ruby x Agile: The shift from machine-performance to human-performance
This article is the second in the Ruby x Agile series, a set of six short videos exploring the relationship between Ruby and Agile methodologies, featuring Ruby creator Yukihiro Matsumoto.
-
Programming for Parrallelism: The Parallel Hierarchies Pattern
Multi-core processors offer new performance opportunities. Shekhar Borkar from Intel highlighted, however, that software development practices have to be retooled to leverage this potential. In this vein, Prof. Jorge L. Ortega-Arjona from the National Autonomous University of Mexico has recently introduced a new architectural pattern for parallel programming: Parallel Hierarchies pattern.
-
RubyLearning.com to Relaunch Free Online Lessons
After achieving popularity last summer, Satish Talim at <a href="http://www.rubylearning.com/" target="_new">RubyLearning</a> is doing it again with his free online course. It started as a way for him to pick up the language, and after the community picked up on it, over 100 people joined him. He hopes to do better this time.
-
Ruby 1.9 adds Fibers for lightweight concurrency
Fibers were recently in the Ruby 1.9 branch. The Coroutine-like concept has many uses, such as implementing lightweight concurrency and others. We look at the concept and influences of Fibers in Ruby 1.9, as well as code samples.
-
Ruby Hoedown Presentations available online
Videos of the sessions from the Ruby Hoedown conference are now available online. Topics such as Merb, Ruby tuning, VoIP with Ruby are covered, as well as Smalltalk and Ruby history and much more.
-
Catching Up with Scala
The Scala programming language has been catching the eye of a number of developers as of late. Scala is a functional object-oriented language which provides a seamless blend of features not found elsewhere, all while running on the JVM.
-
The "use" Binding In F# and How It Should Be Applied To C# and VB
Possible enhancements for F# show how VB and C# can also change in the future.
-
Capistrano gets competition: Vlad the Deployer
Capistrano, a popular deployment tool for Rails, is challenged by Vlad the Deployer, a tool which offers similar functionality with a much simpler implementation. We talked to the Ruby Hit Squad group that released version 1.0 of Vlad.
-
Is Erlang the Java for the concurrent future?
The future of computing is going to be concurrent. Even desktop CPUs are multicore nowadays, and when customers are buying more and more CPUs to their servers, they expect their applications to scale well to utilize their new investment. But that's not going to happen with many software systems of today. Can Erlang help?