As Alan J Perlis once wrote, "A language that doesn't affect the way you
think about programming, is not worth knowing."

For me it was F# that introduced me to functional concepts; which if
anything has made me a better C# programmer.
So it's the concepts and not the language that I'm taking with me;
especially since C# has been gradually adopting F# features.

Case-in-point; processors are approaching atomic limits in their die size.
And in order to improve performance CPU makers are simply adding more
cores. So even on mobile phones we're seeing 10 or more cores now. And I
felt the languages I've used in the past (up until now) haven't been the
best to get the most out of the hardware. And that's why I'm happy that C#
has been bringing in F# ideas. First was async / await. And now it is
bringing in immutability. So we can write pure functions and we don't have
to care which core they run on (or even which core on which machine in the
cloud) - because for the same input you always get the same output. We can
guarantee against race conditions.

We're seeing Source Generators - which hopefully in time I'm hoping will
get to Type Provider levels of power.

Record types mean creating ID types is easy (no reason a primary key should
be an Int or Long - as indeed a CustomerID shouldn't be comparable with an
OrderID, and you don't need to do mathematics on it). Although we still
don't have discriminated unions which would make C# a better candidate for
DDD. And really make impossible states impossible using the type system.

And after so many years C# is now actually getting pattern matching and
switch statements that are actually useful (although again, discriminated
unions would help here).

I still think F# is a nicer language for the world we're moving into (my F#
illiterate co-workers' jaws still drop when I demo pulling data from the
world bank and chart indicators in a few lines).
But C# is getting better with every release.

On Wed, 29 Jun 2022 at 09:36, Dr Greg Low via ozdotnet <
ozdotnet@ozdotnet.com> wrote:

> In fact, the messaging changed fairly abruptly.
>
>
>
> Compare Kathleen’s article in Nov 2018:
> https://devblogs.microsoft.com/vbteam/visual-basic-in-net-core-3-0/
>
>
>
> With the one 15 months later:
> https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/
>
>
>
> Regards,
>
>
>
> Greg
>
>
>
> Dr Greg Low
>
>
>
> 1300SQLSQL (1300 775 775) office | +61 419201410 mobile
>
> SQL Down Under | Web: https://sqldownunder.com | About Greg:
> https://about.me/greg.low
>
>
>
> *From:* Greg Keogh <gfke...@gmail.com>
> *Sent:* Wednesday, 29 June 2022 11:21 AM
> *To:* ozDotNet <ozdotnet@ozdotnet.com>
> *Cc:* David Burstin <david.burs...@gmail.com>; David Kean <
> david.k...@microsoft.com>; Dr Greg Low <g...@sqldownunder.com>
> *Subject:* Re: It's that time of year - F#
>
>
>
> Mind you, there have been many interesting languages over the years. And
> their fate has not always seemed logical.
>
>
>
> I think a year ago I said something like ... I was excited about F# when
> it first came out, but never got to write any production software using it.
> Whenever I sat down to write something serious I got bogged down in choices
> and syntax details and "bridging" over to other C# libraries to do the
> heavy lifting. There were lots of other irritations like long searches for
> good samples, less tooling, less (and bewildering) documentation, smaller
> community, lack of T4 templates, etc. If I were writing lots of algorithmic
> code then F# would be a superior choice and all the "bridging" would be
> pushed to the edges, but lots of typical LOB coding is best done in C#.
>
>
>
> C# has evolved so far now that it must be the best hybrid language in
> popular use by a long shot, and its functional features are deflating F#'s
> functional fame. The downside is that C# is accumulating so many features
> that I can't remember them all, so I'm thankful when Visual Studio light
> bulbs appear and remind me to replace my force-of-habit clumsy code. I hope
> they ease off on new C# features in the future, I don't want it to turn
> into C++ 20/23 or PL/I <https://en.wikipedia.org/wiki/PL/I> (the language
> that was going to solve every problem in the world).
>
>
>
> Cheers, *Greg K*
>
>
>
> P.S. What happened to VB.NET? No sarcasm, it just seems to have dropped
> out of articles and announcements.
> --
> ozdotnet mailing list
> To manage your subscription, access archives: https://codify.mailman3.com/

Reply via email to