"All our new code is in F#, we started off from a C# codebase, so that made the transition somewhat manageable, as new F# code can be directly called from C#, and vice versa (still took over 2 years)..."
".... All new frontend apps are also being written in F# (using Fable), as of 6 months back, migrating away from TypeScript, this forces everyone into a "design your model first, and well" paradigm...."
"... We've written quite a bit of code to blur the lines between traditional backend and frontend development roles, so what we have now are:
- product engineers (who write application logic on both frontend and backend to serve business needs)..."
"... Platform/framework engineers try to encapsulate as much magic as possible into computation expressions (F#'s monads), so product engineers can focus simply on writing out business intent, with readability given very high priority..."
"... We also make ample use of quotations to do some cool tricks (like predict the future states some type can take, based on current state + available transitions)...."
"... Our code written in F# has an order of magnitude fewer bugs when it makes it to production, given the amount of thought we pour in modelling the problem domain accurately, and thanks to functional programming itself..."
"... They're also more amenable to business requirements changing, simply because they've been modelled well to start with. Nothing that can't be achieved in other languages, but with F#, this happens more naturally...."
"... Almost everyone in our team has learnt F# on the job, and overall, everyone's experience has been extremely positive. There's a bit of difficulty in the first 2-3 months, as junior devs get introduced to functional thinking..."
"but if you've generally being doing functional programming, this is just about learning new syntax, tooling and F#'s choice of operator naming (map/bind/pick/collect/choose/..)..."
"... Typically, based on prior experience, we ask newcomers to spend two weeks to a month, solving the first 100 problems on Project Euler in F#, without using the mutable keyword, and we assign a mentor to point out best practices and review their code.... "
"... The hiring pool for F# devs is much smaller than the regular applicant pool, but if a candidate shows genuine interest in F#, they are usually 10x more likely get through our interview process..."
If they've discovered F#, it means they find something lacking with mainstream languages, so they're likely to have many years of experience under their belt, and they've found a way to grow. That said, we don't restrict our hiring to simply F# devs...
@chaldal.com is a global company centred in Dhaka, Bangladesh. You can read more about them on their website.
I've long believed F# could have a strong role in up-tooling the software skills of developing nations, giving them a competitive advantage.
But for me, this one is also very personal.
In 1993 I had the opportunity to travel to Bangladesh, to visit my brother, who was working doing flood modelling on the internationally sponsored Flood Action Program.
It's really strange what nonsense people put up with in C#.
This business where expression results are implicitly discarded from statements is just insane in the 21st century. So much information loss just waiting to happen without even a warning.
Other gaping holes in the C# design I've noticed this last week:
- no way to implement interfaces or abstract classes using an expression, meaning stupid extra classes
- no implicit construction for classes (to give another form of closure capture for object imlpementations)
- no expression form for generative list or sequence expressions (making HTML DSLs a mess among other things)
If mass wearing of masks make just 0.01 shift in the spread per day, from say 1.22x to 1.21x, there would now be ~20% fewer cases (and ~20% fewer deaths) in the UK since March 12.
I had to double check that multiple times.
This sort of result should have been hammered into our collective consciousness throughout February and early March. Every little effective intervention, widely adopted, saves many, many lives.
The thing is, that 0.01 difference accrues every single day, afresh - and slightly compounded too. Every day we do a small, effective intervention, we accrue it's life saving effect all over again. Every single day. All over again.
That Cummings and Vallance are allies doesn't surprise me at all. Things are on a slightly better track now but expect them to be back with herd immunity, and also to cover their tracks.
"the government had 'bet' the future of the UK on advice from a very small group of scientists that for a long time differed from the wider international consensus"
The modellers at Imperial (one of whom I met back in 2005) basically didn't factor in that this disease requires a very high number of intensive care beds. They have now admitted their mistake and the govt will move to suppression as their primary goal like the rest of the EU.
Other people had realised this before but I tweeted this approximate guess at the impact of the lack of ICU beds here if a "Herd immunity" approach was to be taken