BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Language Design Content on InfoQ

  • State of Python on the JVM

    In the past year or so Python has really been gaining a lot of traction on the JVM, thanks to the recent advancements of Jython. In this news item we'll talk to the Jython project lead about Jython and the state of Python on the JVM.

  • The Scheme Language Is to Be Split in Two

    The Scheme Steering Committee is proposing the split of the Scheme language in two which temporarily are called Small Scheme and Large Scheme.

  • Spec# and Boogie Released on CodePlex

    The source code for Spec# is now available on CodePlex under the Microsoft Research Shared Source License Agreement (non-commercial use only). It’s code verification tools, named Boogie, has been released under the Microsoft Public License, which conforms to Free/Open Source standards.

  • DRYer CSS with LESS or Sass

    LESS and Sass are Ruby tools that allow to reduce redundancy in CSS files by introducing variables, mixins, and other time proven language features into CSS. We take a look at how the two tools work and what they offer.

  • The .NET Reactive Framework (Rx) Enables LINQ over Events

    Erik Meijer and Wes Dyer have created the .NET Reactive Framework (Rx), the mathematical dual of LINQ to Objects, allowing programmers to use LINQ over events. Erik and Brian Beckman demonstrate that IObservable is a continuation monad.

  • A Type System for Scala Actors to Enforce Race Safety Without Sacrificing Performance

    Philipp Haller and Martin Odersky introduce a type system that enables safe massage transfer in Scala actors. Formalized as an extension of the EPFL Scala compiler, “Object Capability Types” system, based on capability checking and external uniqueness, enforces race safety without sacrificing performance and removes significant limitations on message shape imposed by existing approaches.

  • Should We Rely on Language Constraints or Responsibility?

    Bruce Eckel, Michael Feathers, Niclas Nilsson, Keith Braithwaite, and others on the question: should languages be fully flexible, allowing the developers to tweak them as they like, and trusting they will be responsible in their work, or should there be clear constraints set in the language from its design phase to avoid mistakes that create bad code, hard to maintain or to read?

  • Auto-implemented Properties in VB and C#

    C# added auto-implemented properties in version 3, but Visual Basic was unable to match them at that time. With the impending release of .NET 4.0, VB has caught up in this area, but with a distinctive twist.

  • The Many Types of Null in F#

    F# was supposed to free us of the tyranny of the unchecked null. Alas not only does the compiler lack null checking, it introduces several more kinds of null.

  • Wrapping Stored Procedures in .NET Languages

    Creating wrapper functions for pre-existing stored procedures is surprisingly difficult in .NET. Stored procedures have certain calling conventions that aren’t generally used in the .NET Framework and many of them are not supported at all. For example, C# doesn’t support optional parameters and neither .NET language supports optional parameters on nullable types.

  • Making 0 Equal 0 in C#

    C# does not work well with boxed numerical values. Unlike Visual Basic, the basic numeric comparison operators such as == do not work with boxed types even when both values are the same type. Fortunately with C# 4 you can avoid these problems by using the dynamic keyword.

  • Pattern Matching in .NET 4

    Pattern matching may seem like an alien concept to developers who focus on C# and VB style languages, but it shouldn’t be. Ultimately it is just a refinement of the case statement, which itself is a refinement of if-else-if blocks. This piece takes a brief look at that transition and how F#’s pattern matching can be applied to VB and C#.

  • Rich Hickey on Clojure's Features and Implementation

    In this interview from QCon London 2009, Rich Hickey talks about Clojure. The discussion includes the ideas behind Clojure's STM support, what other concurrency primitives Clojure supports and which ones might get added in the future. Other topics covered are Clojure's AOT support, the role and implementation of multimethods, Clojure ports to other systems and much more.

  • Source for the D.NET Compiler is Now Available

    Cristian Vlasceanu has released the source code for the D.NET compiler. Like C++ and ObjectiveC, D is a C-based language that attempts to correct some of the issues and limitations of the venerable language.

  • Presentation: The State of the DSL Art in Ruby

    In this talk Glenn Vanderburg discusses what the Ruby community has learned about building DSLs, and shows how to build state-of-the-art DSLs without going overboard.

BT