BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Programming Content on InfoQ

  • Article: Using Singleton Classes for Object Metadata

    We have another feature article to publish by InfoQ's own Werner Schuster where he elegantly explains a way to annotate object graph with metadata to solve complex problems.

  • Duck Typing and Protocols vs. Inheritance

    A recent debate on the RubyTalk list asked where to use is_a? vs respond_to? This highlights situations where objects respond to the same interface, but don't share any superclasses. We look at this debate and solutions in other languages such as Smalltalk, Erlang, and Scala.

  • Jonathan Allen on Equality Operator Overloading

    Jonathan Allen provides guidance through a systematic walkthrough of both a reference type and value type that support equality. Jonathan provides code samples in both VB and C# to demonstrate the nuances of each .NET language. He also covers usage in both structures and classes.

  • Surprising criticism from parting Microsoft development lead

    Jay Bazuzi, once Development Lead for the C# Editor, is leaving Microsoft, and he wrote some surprisingly harsh parting words for his friends before he left; things like “OO isn’t a fad” and that “It’s OK to use someone else’s code”.

  • Borrowing Functional APIs from F#

    The Common Language Specification ensures that any conforming .NET language can access libraries created by any other language. This means imperative languages like VB and C# can call functional libraries created primarily for F#. In fact, many can be converted directly into C# code.

  • Understanding the ActionScript Virtual Machine for Java Developers

    The ActionScript Virtual Machine 2 (AVM2) executes ActionScript 3.0 (AS3) bytecode in the Flash Player 9 runtime. ActionScript 3 is an Object Oriented programming language, used by developers to build Flash based applications in Adobe Flex and AIR.

  • Is a picture always worth a thousand words?

    <p>Is a picture always worth a thousand words?</p> <p>In his recent article, &#8220;Why we write code and don&#8217;t just draw diagrams&#8221;, Dean Wampler argues that in software development the opposite is more often true. </p>

  • Book Review: Implementation Patterns

    Kent Beck's new book, Implementation Patterns, is a book about writing code in Java. The patterns in this book are based on Kent's reading of existing code as well as his own programming habits. The patterns in this book are meant to be a coherent view of how to write code people can understand.

  • Article: Beyond Foundations of F#

    Since Robert Pickering published Foundations of F# in May, the language has grown significantly. Besides adding a host of new features, it is being moved from a research project to a fully supported, production-grade release. We asked Robert to discuss some of the new features in F#.

  • Debuggers considered Harmful?

    A blog post titled "Debugger Support Considered Harmful" claims that Ruby debugging support is lacking - and that that's a good thing. We look at the various rebuttals and the state of Ruby debuggers.

  • Mylyn 2.1: Refactoring the Eclipse User Interface to increase productivity

    Mylyn, an Eclipse plug-in which was integrated into Eclipse 3.3, recently released version 2.1. InfoQ spoke with Mylyn project lead Mik Kersten to learn more about this release and what changes Mylyn 2.1 brings to Eclipse-based development.

  • Rubinius: Inside the Bytecode Compiler and Foreign Function Interface

    Modifying the Rubinius VM is simple as two new articles show. We look at how to modify and extend the Rubinius bytecode compiler - written in Ruby - and how to work on the library using the foreign function interface (ffi).

  • What Makes a Tool Agile?

    Individuals and interactions over processes and tools is the very first of the values of the Agile Manifesto. Tools, however, seem to be a big part of development on most Agile teams. When does a tool help and when does it hinder (Agile) software development?

  • Moving away from exclusive use of OOP and Curly Brace Languages to reduce code waste?

    According to Bob Warfield, at least 70% of code is wasted because it’s written to build components which would add no competitive differentiation to the final product. To reduce this "waste", programmers should practice code reuse instead of repeatedly building the same components. However, to facilitate code reuse it is necessary to move away from exclusive use of OOP and Curly Brace Languages.

  • The Dark Side of Closures

    Closures are not a new concept and in LINQ have proven to be incredibly useful. But they do have a dark side when used to break encapsulation. When two seemingly independent functions are tied together, unexpected results can occur.

BT