Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Functional Programming Content on InfoQ

  • Building Functional .NET Applications: a Guide for Choosing between F# vs C#

    C# and F# are languages, each with growing user bases, that approach functional programming in fundamentally different ways. C# relies on object-oriented, imperative principles, and F# relies on functional principles.  Some developers are using F# as a complement to C#, rather than relying on the functional capabilities that exist natively in C#.

  • Java Champion James Ward on the State of Java and JVM Languages

    James Ward is a Java Champion and Google’s Kotlin product manager. In a podcast, Ward agreed that “people are still trapped in the Java world” and called default mutability in Java the “trillion-dollar mistake”. In this interview, he speaks about the state of Java, JVM languages, mutability, and functional programming.

  • Data Manipulation with Functional Programming and Queries in Ballerina

    Ballerina has been designed as a data-oriented programming language and supports a functional programming coding style. The Ballerina query language is similar to SQL in the sense that a query expression is made up of clauses. The Ballerina “Table” data structure can be more effective than maps in representing indexed data collections.

  • Ballerina: a Data-Oriented Programming Language

    Ballerina’s flexible type system brings the best of statically typed and dynamically typed languages in terms of safety, clarity, and speed of development. Ballerina treats data as a first-class citizen that can be created without extra ceremony, just like strings and numbers.

  • The Excel Formula Language Is Now Turing-Complete

    The Excel team announced LAMBDA, a new feature that lets users define and name formula functions. LAMBDA functions admit parameters, can call other LAMBDA functions and recursively call themselves. With LAMBDA, the Excel formula language is Turing-complete: user-defined functions can thus compute anything without resorting to imperative languages (e.g., VBA, JavaScript).

  • How DSLs Withstand the Test of Time

    Domain-specific languages let domain experts participate in the software development process. Few DSLs however withstand the test of time. Key success factors for longstanding DSLs seem to be user-centered design and adhering to the open–closed principle. Markdown, TeX, and CSS, have remained popular and relevant for two decades, even as their original target audience evolved.

  • Donkey: a Highly-Performant HTTP Stack for Clojure

    Donkey is the product of the quest for a highly performant Clojure HTTP stack aimed to scale at the rapid pace of growth we have been experiencing at AppsFlyer, and save us computing costs. In this article, we’ll briefly outline the use-case for a library like Donkey and present our benchmarks. Finally, we will discuss Clojure and immutability, and some of our design decisions.

  • What’s New on F#: Q&A With Phillip Carter

    Last month, at the 2020 edition of .NET Conf, Microsoft released the latest version of F#. F# is as functional-first, cross-platform, open-source .NET programming language, and it’s developed by Microsoft and several open source partners and contributors. InfoQ interviewed Phillip Carter, program manager at Microsoft, to talk about functional programming, F#, and the new features of F# 5.

  • Functional UI - a Stream-Based Equational Approach

    User interface applications can be implemented with an explicit functional relation linking events received by the user interface to the actions to exert on the interfaced systems. Streams by abstracting over time may express that relation concisely. A stream-based implementation is one of the three Functional UI strategies for implementing reliable, well-architected user interface applications.

  • Extensible Effects in JavaScript for Fun and Profit - Q&A with William Heslam

    Extensible effects, described by some as the right way to structure programs, are crossing over to JavaScript. Extensible effects at core provide a composable and flexible way to separate concerns, while allowing to redefine the implementation of those concerns at will. William Heslam explained what extensible effects are and the benefit of using them.

  • Java's Missing Features: Five Years Later

    Ben Evans revisits his take on Java's Missing Features from 2015 and compares how the language has evolved compared to his observations at the time.

  • Functional UI - a Model-Based Approach

    Functional UI techniques rely on the functional relation between events processed by the user interface and the actions performed by the interface. If the user interface has discrete modes in which its behavior can be expressed simply, a modelization with state machines is an advantageous functional UI technique. This article explains the technique, its benefits and how it is used in the industry.