Developers and software companies often put great emphasis on programming languages or specific frameworks they use. Does it really matter for the business in any meaningful way?
I honestly don’t think so, but is it really the whole story? I don’t think that either.
The past few years I had the unique opportunity to work as a Senior Software Developer, that has been connected to the business side of the process as well. I’ve been a Tech Lead, Product Owner, Project Manager, Agile Community member and Change Agent (yup, you’ve read that right – sounds like a corpo-role …and it was 😁). My roles forced me to talk to business people everyday and I’ve grown not only to understand their point of view, but also to see how our worlds can learn from each other.
Obviously what I’ll write in here is a huge generalization, but there are a few things in common across different businesses needs:
Business perspective is quite straightforward – software development is a means to provide value for the end user and make money from that value. In a perfect world software development would be fast, stable and extremely cheap.
Not sure when exactly, but at some point I’ve realized that the main reason for software existence is to answer business needs. Pretty much nobody (apart from software developers) cares about technology and specific, beautiful and/or elegant solutions.
On the other hand smart business people understand, that software development is expensive and extremely complicated endeavor, so they are involved in development process, provide fast feedback and know what they need to prioritize (e.g. for some domains, like cryptocurrency main priority will be time-to-market, but for medical field priority will always circle back to quality).
Nope. Software needs to fulfill specific needs within business constraints and that’s pretty much it.
Is that really fair? Also: nope. Looking once more at the business needs: all of them are dependent on technology in some way:
This leaves us at a place, where technology and programming language does matter, but will never be the most important factor and as software developers we have to understand that.
I’m mainly interested in implementing the logic of the system. I’m usually focused on projects that prioritize quality, rather than time-to-market or performance. This is precisely the reason why I’m working with .Net and C# – I prefer higher level language, with strong, static typing, that provides me with a good balance of time invested in development and quality of code that I write. Moreover, .Net gives me access to a huge library of ready-to-use nuget packages and, since a few years back: deployment on any hosting platform. Additionally ASP .Net Core is a mature framework that provides great levels of throughput for the business needs, so it fits in nicely in the picture.
Main issue with changing the programming language is that you automatically have to sacrifice the whole ecosystem, which costs you development time. This is where F# comes in for me. I can change the language, but stay within the .Net ecosystem with all the deployment and package goodness that I’m familiar with.
Our software world is changing rapidly. We are utilizing cloud computing more everyday. We are also utilizing asynchronous programming much more than 10 years ago. Programming world needs new solutions to new problems that arise, and as it so happens: more asynchronous processes need more predictability and stability: and this is where functional programming comes in. Functional introduces us to the mathematical world, where there are no two correct answers for the problem. There’s always one correct answer. Predictability and stability of this world has proven itself useful for hundreds of years and here we come to the first argument towards functional: correctness.
There’s even a trend within C# language, where newer versions introduce more and more functional concepts (LINQ has been here for long time, but records and pattern matching are newer additions, that F# had for years before). Why would you sacrifice correctness to still write C#, when F# has built in immutability to enforce correctness? That’s the second argument: direction of C# itself.
Lastly F# forces developers to write less code and more declarative code (as opposed to imperative style with C#). Apps written in F# are usually straight up shorter, than those written in object-oriented C#, while not sacrificing any verbosity. Less code means less bugs and lower maintenance costs. Last argument towards F# becomes: brevity.
Here we are with 3 main arguments towards F#:
I believe presented arguments do speak for themselves, however there always has to be a downside…
There’s only 1 specific downside as far as I can see: lack of programmers, that breathe F# the same way they breathe C#. And I personally have high hopes to be of help here as a speaker and mentor 🙂
If you are a business partner: let us know you’re interested in me leading your project and we’ll try to make some arrangements. Let’s explore the benefits of functional programming together.
If you are a developer: wait for more announcements on my part, because I’ve got some things planned for you, but also feel free to start off your journey with https://fsharpforfunandprofit.com/.
Marcin Kern, Senior Software Engineer in Rite NRG.
My experience spans writing and designing desktop applications, websites and cloud solutions. Entirety of my 9-year-long commercial experience consists of writing .NET exclusively, although through the past few years I’ve added a Frontend spin to the mix in the form of React. I’ve also spent a lot of time advocating Agile, as I believe it can be very useful if it’s understood and done right.
Outside of work I’m a dad of a happy 1 year old boy, husband, video-game lover (Amazon, bring me Lost Ark already, I can’t wait!), I like digital painting and enjoying a nice sauna. I also enjoy learning programming languages, when my curiosity gets the better of me.
For most front-end developers, Angular is a well-known framework made for building applications. …
In the world of innovative technology, there has been an increasing need for …
Companies from different industries outsource their services for various reasons. They need better …
In the last few years, Agile has become one of the most famous …
This is the best way to be up to date with what we are doing. Don’t worry – you will get a message with all the news from us once a month only. Join our community!
You can always… rite us. Get it? Rite us! OK, maybe it’s not so funny. But do rite us anyway! No, it’s not a robot you’re talking with here – Michał, Oliwia or other Rite NRG peeps will answer you.
We build, develop and deploy offsite teams. Rite people. Rite skills. That’s what creates Rite NRG.
This is the best way to be up to date with what we are doing.
All rights are reserved by Rite NRG.