Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Functional Programming Content on InfoQ

  • InfoQ Java Trends Report - November 2023

    This report provides a summary of how the InfoQ Java editorial team and several Java Champions currently see the adoption of technology and emerging trends within the Java and JVM space in 2023. We focus on Java the language, as well as related languages like Kotlin and Scala, the Java Virtual Machine (JVM), and Java-based frameworks and utilities.

  • Streamlining Code with Unnamed Patterns/Variables: a Comparative Study of Java, Kotlin, and Scala

    Explore the use of the Unnamed Patterns/Variables in programming languages like Java, Kotlin, and Scala. Enhancing code readability, allowing omission of unnecessary components, and simplifying code are key features. Expect further innovative uses as languages evolve.

  • 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.