Hi! I’m Catherine, and I’m very fond of functional programming; I use functional language on an everyday basis, and even do a bit of teaching. Here at Typeable, we use Haskell as the main development language and, while everyone else was disputing whether Haskell is ready for production, we just used it and regarded this as a competitive advantage. Based on this experience, we would like to share our opinions.
At present, functional programming is rather popular, and many imperative languages are adopting some FP concepts such as lambda functions, partial application (currying) and higher-order functions (map, filter, folding). Some of the adoptions blend seamlessly, but some make the syntax look rather weird and foreign. Nevertheless, a programming paradigm is an approach that exists in the programmer’s mind, and is generally not part of the language itself. To some extent, any language supports different paradigms, and its structures allow developing software in various styles. The question of whether it makes sense to develop software in the functional style can’t be answered easily, and each developer will answer it based on their preferences, capabilities of the language, and other considerations. We believe that using the functional style in imperative languages or, better still, the functional language, especially in combination with static typing, will help to improve many aspects of the code, namely:
Additionally, I’d like to share my experience not directly related to writing programs in functional languages, and tell you how the knowledge and application of FP turned out to be useful for me, and can be of use to you.
Adoption of FP elements in popular industrial development languages such as Python, C++, Kotlin, Swift, and others confirms the usefulness and strong features of this approach. The functional style allows obtaining a more reliable code that is easier to decompose, generalize, and test, irrespective of the programming language. Of course, a functional language makes it possible to make full use of all the above-mentioned advantages, producing native structures with a high degree of expressiveness. Though there are a lot of functional languages out there, we believe that, for the time being, the ones using static typing are the most convenient and useful for development. They facilitate detecting most of the errors during compilation and expressing a part of the application logic at the type level.
As the final point, I’d like to encourage you to use alternative approaches and try them out in practice, even if this is useful merely in terms of your own self-improvement.
Typeable OU ("us", "we", or "our") operates https://typeable.io (the "Site"). This page informs you of our policies regarding the collection, use and disclosure of Personal Information we receive from users of the Site.
We use your Personal Information only for providing and improving the Site. By using the Site, you agree to the collection and use of information in accordance with this policy.
While using our Site, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you. Personally identifiable information may include, but is not limited to your name ("Personal Information").
Like many site operators, we collect information that your browser sends whenever you visit our Site ("Log Data").
This Log Data may include information such as your computer's Internet Protocol ("IP") address, browser type, browser version, the pages of our Site that you visit, the time and date of your visit, the time spent on those pages and other statistics.
In addition, we may use third party services such as Google Analytics that collect, monitor and analyze this ...
Cookies are files with small amount of data, which may include an anonymous unique identifier. Cookies are sent to your browser from a web site and stored on your computer's hard drive.
Like many sites, we use "cookies" to collect information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Site.
The security of your Personal Information is important to us, so we don't store any personal information and use third-party GDPR-compliant services to store contact data supplied with a "Contact Us" form and job applications data, suplied via "Careers" page.