In May, a research team from MIT announced a new programming language, Finch.
It’s designed to support both flexible control flow and diverse data structures. “Finch facilitates a programming model which resolves the challenges of computing over structured arrays by combining control flow and data structures into a common representation where they can be co-optimized,” say its creators.
Not to be confused with the Swedish fintech of the same name (or equally, another identically-named language), Finch offers a sea-change in how programmers can approach structured array programming.
Arrays are a computer science fundamental, and along with lists, are the foundations of data structures. Universal across programming languages, arrays were introduced in Fortran in 1957 and are still used now in languages like Python, for example.
3 software roles across the EU
- Lead .NET developer, De Belastingdienst, Apeldoorn
- ICT medewerker, Helden Van Nu, Hoofddorp
- Senior Project Manager, Capgemini, GE
The <3 of EU tech
The latest rumblings from the EU tech scene, a story from our wise ol’ founder Boris, and some questionable AI art. It’s free, every week, in your inbox. Sign up now!
“Arrays have revolutionised how we express computation,” say the language’s authors. “However, arrays in these, and almost all prominent systems, can only handle dense rectilinear integer grids. Real-world arrays often contain underlying structure, such as sparsity, runs of repeated values, or symmetry. Support for structured data is fragmented and incomplete. Existing frameworks limit the array structures and program control flow they support to better simplify the problem.”
Because of this challenge, Finch is designed to address the limitations of existing implementations.
Sources agree, “One of Finch’s key innovations lies in its support for a rich, structured array programming language. By offering familiar constructs like for-loops, if-conditions, and early breaks over structured data, Finch elevates the productivity level to that of dense arrays. This allows programmers to work with complex data structures without sacrificing expressive power or efficiency.”
Because it is so new, Finch is a way off from being widely understood and adopted. Being specialised, it doesn’t yet have a broad community or as many learning resources compared to more general-purpose languages like Python, which also has strong support for array programming through libraries like NumPy and SciPy.
So why should developers get to know the language?
Its authors say that Finch offers “more complex array structures than ever before. We are the first to extend level-by-level hierarchical descriptions to capture banded, triangular, run-length-encoded, or sparse datasets, and any combination thereof.”
3 tech roles to explore across the EU
- Backend Developer Rust (f/m/d), E.ON Digital Technology GmbH, Hannover
- IT Security Architect/Officer, EBA CLEARING, Brussels
- App Software Developer, DoorBird, Berlin
Finch use cases
When it comes to its use cases, it has a wide range of implementations. Finch’s core ability to handle sparse and structured arrays is what makes it a powerful tool for a wide range of applications.
It has technical advantages in areas such as control flow integration. Because it includes advanced compiler techniques to optimise sparse computations, this can reduce overhead and improve execution times on modern hardware platforms.
You can use it for implementations across database management, image and signal processing, machine learning and data science, or to create graph algorithms.
Ultimately, whether you decide to learn it will depend on what your needs are. If your work involves significant use of sparse matrices, structured arrays, or high-performance computing tasks, then Finch can be very beneficial.
If you are looking for a more general-purpose language with a larger community and a broader range of applications, other languages may better fit the bill.