BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Compilers Content on InfoQ

  • Java Bytecode: Bending the Rules

    Throwing checked exceptions without declaration, changing final fields; these kinds of antics would never be tolerated by the Java language. But using Java bytecode these can be done readily. Few developers ever work with Java bytecode directly, but bytecode format is not difficult to understand. In this article Rafael Winterhalter takes us on a tour of Java bytecode & some of its capabilities

  • The OpenJDK Revised Java Memory Model

    The existing Java Memory Model covers a lot in terms of Java language semantic guarantees. In this article we will delve into a few of those semantics, and attempt to communicate the motivation for an update to the existing Java Memory Model

  • JSIL: Challenges Met Compiling CIL into JavaScript

    This article introduces JSIL, a .NET to JavaScript compiler, and contains details on the difficulties encountered while compiling CIL code into cross-browsers JavaScript.

  • C++/CX Performance Pitfalls

    Writing applications in C++/CX is not like writing normal C++ applications. The interoperability between pure C++ code and the Windows Runtime (WinRT) can be surprisingly expensive. In this article based on Sridhar Madhugiri’s video, C++/CX Best Practices, we look at some of the ways to avoid performance problems in Windows 8 development.

  • Learning Modern C++: An Interview with Barbara Moo

    C++ was originally introduced in the 1980s, when coinciding with the rise of object orientated programming, it became one of the primary languages for software development. In the years since C++'s entry, both scripted languages and managed languages have risen in popularity. InfoQ speaks with Barbara Moo, coauthor of C++ Primer Fifth Edition, about C++11 and modern C++ development.

  • The Essence of Google Dart: Building Applications, Snapshots, Isolates

    Google has previewed Dart, a new language with a VM but also a JS compiler. InfoQ looks beyond the grammar at Dart's contributions for building apps: Snapshots, Isolates, Modularity.

  • Joe Duffy on the Future of Concurrency and Parallelism

    Joe Duffy, author of Concurrent Programming on Windows, talks about the future of concurrency and parallelism. This interview covers his thoughts on the language designs, libraries, and patterns that are becoming increasing important in modern programming.

  • Book on Leveraging Domain-Specific Languages by Martin Fowler with Rebecca Parsons

    In their new book Martin Fowler and Rebecca J. Parsons address the topic of Domain-Specific Languages. “Domain-Specific Languages” does not only address the concepts behind DSLs, but also tries to explain the subject in a pragmatic manner using examples in Java, C# and other languages.The book contains different patterns that reveal best practices in designing DSLs.

  • No Callbacks Required: StratifiedJS Returns Sequential Programming to Javascript

    StratifiedJS is a superset of Javascript that adds concurrency constructs and makes callback hell a thing of the past. How? InfoQ talked to Alexander Fritze, of Onilabs, to find out.

  • A Blend of Java and Ruby - The Mirah Language

    Mirah is a new language for the JVM that can do everything the Java language can do - but with a Ruby-ish syntax and powerful metaprogramming. InfoQ talks to Mirah's creator Charles Nutter.

  • The Limits of Agile

    The problems faced by teams that are attempting Agile in non-traditional settings aren't that Agile principles are inapplicable, nor that the feedback cycle is doomed to failure; but rather, outside of a certain Agile sweet-spot there are additional barriers and costs to applying Agile techniques. None of these obstacles prevents Agile in itself but each increases the cost of getting to Agile.

  • Expression as a Compiler

    The ability to dynamically generate code can greatly increase the expressiveness of developers. Repetitive code can be eliminated and complex decisions be pushed back to configuration files that can be changed by business analysts. In the past .NET developers built dynamic code using Reflection.Emit or CodeDom, but with LINQ Expressions a lightweight alternative has become available.

BT