Some thoughts about new X# functionality
Posted: Mon May 03, 2021 8:23 pm
I've watched Unboxing X# 2.8, thank you again for this presentation.
This having said, I often get the impression that quite some IT developments have come to a kind of standstill.
For example, end last year I replaced my Pc after nearly 7,5 years. I've never used a Pc that long and the only reason to get a new one was that I thought I was probably close to a system failure due to the number of working hours.
Although the new Pc really has some nice specs, like a i9 and a NVMe M.2 PCIe SSD and more, the best I can say about it is that it gives the impression that some things seem to work a little bit faster. But no real gains in compile- or unzip times like I had on earlier Pc replacements.
Same for language additions. X# is getting all the bells and whistles of C#, thanks to Rosalyn and the highly skilled development team. However, for most changes I wonder if they are really useful. E.g. I learned we can now write:
METHOD MyToString() AS STRING =>SELF:Left()
instead of
METHOD MyToString() AS STRING ; RETURN SELF:Left()
Robert already mentioned that the 2nd method is also 1 liner and only a few characters less code.
When I see this I actually immediately forget it as I would have to lookup what to do again to apply this. Even worse: when I would later coma across someone's code written with => instead of the clear code of the "old fashioned" way, I would most likely wonder what this means. I've seen that more than once in C# as well, code I absolutely don't understand because the programmer used some "clever" new option with @#$%":{} in it and there's no way to even lookup what it means. How do you search for the meaning of a couple of special characters? Searching for the keyword RETURN, in case that is unfamiliar to you, is a lot easier.
What I am afraid of is that a lot of effort is put in adding functionality which doesn't really change the use of the environment and hence a lot of people don't even bother to memorize it. I haven't found much in the last few years in C# nor Visual Studio which was really improving my productivity so I often don't even read the What's New after an update. Even worse, when I did csc /? in C:WindowsMicrosoft.NETFrameworkv4.0.30319, apparently the way to find out which C# version I have, it said 4.8.4084.0, from 11 years back. But further study learned me that it's updated with VS and/or .Net so it should be something like 7.3. Whatever....
I've seen that happening with Windows 10 as well. The last few years, not much of any interest was added to W10. This means that when there actually is, by exception, something interesting, most people don't know about it. I consider Clipboard history (enabling you to select values copied/cut before the last one) as a very useful and tome saving addition. But I've asked quite a few people recently (including a few IT pro's) and nobody knew about. Default it's even turned off! https://support.microsoft.com/en-us/win ... 46ddf338c6 in case you didn't know either
Finally, I am in no way trying to criticize the work and the choices of the development team; Robert once mentioned that quite a few these language additions are easy to implement using Rosalyn. If Microsoft would put more effort in productivity instead of adding more language "features" than the average programmer is able to recall (and hence: use), that would make X# benefit too. I think when I would move to X# the much better checks of the X# compiler versus that of VO would make my code less error prone. But so far I haven't seen one single language element in X# (or C#) from which I thought "I wish I had that in VO". The opposite I have multiple however (more for C# than for X# of course as X# can use most of the VO dialect) ....
Dick
This having said, I often get the impression that quite some IT developments have come to a kind of standstill.
For example, end last year I replaced my Pc after nearly 7,5 years. I've never used a Pc that long and the only reason to get a new one was that I thought I was probably close to a system failure due to the number of working hours.
Although the new Pc really has some nice specs, like a i9 and a NVMe M.2 PCIe SSD and more, the best I can say about it is that it gives the impression that some things seem to work a little bit faster. But no real gains in compile- or unzip times like I had on earlier Pc replacements.
Same for language additions. X# is getting all the bells and whistles of C#, thanks to Rosalyn and the highly skilled development team. However, for most changes I wonder if they are really useful. E.g. I learned we can now write:
METHOD MyToString() AS STRING =>SELF:Left()
instead of
METHOD MyToString() AS STRING ; RETURN SELF:Left()
Robert already mentioned that the 2nd method is also 1 liner and only a few characters less code.
When I see this I actually immediately forget it as I would have to lookup what to do again to apply this. Even worse: when I would later coma across someone's code written with => instead of the clear code of the "old fashioned" way, I would most likely wonder what this means. I've seen that more than once in C# as well, code I absolutely don't understand because the programmer used some "clever" new option with @#$%":{} in it and there's no way to even lookup what it means. How do you search for the meaning of a couple of special characters? Searching for the keyword RETURN, in case that is unfamiliar to you, is a lot easier.
What I am afraid of is that a lot of effort is put in adding functionality which doesn't really change the use of the environment and hence a lot of people don't even bother to memorize it. I haven't found much in the last few years in C# nor Visual Studio which was really improving my productivity so I often don't even read the What's New after an update. Even worse, when I did csc /? in C:WindowsMicrosoft.NETFrameworkv4.0.30319, apparently the way to find out which C# version I have, it said 4.8.4084.0, from 11 years back. But further study learned me that it's updated with VS and/or .Net so it should be something like 7.3. Whatever....
I've seen that happening with Windows 10 as well. The last few years, not much of any interest was added to W10. This means that when there actually is, by exception, something interesting, most people don't know about it. I consider Clipboard history (enabling you to select values copied/cut before the last one) as a very useful and tome saving addition. But I've asked quite a few people recently (including a few IT pro's) and nobody knew about. Default it's even turned off! https://support.microsoft.com/en-us/win ... 46ddf338c6 in case you didn't know either
Finally, I am in no way trying to criticize the work and the choices of the development team; Robert once mentioned that quite a few these language additions are easy to implement using Rosalyn. If Microsoft would put more effort in productivity instead of adding more language "features" than the average programmer is able to recall (and hence: use), that would make X# benefit too. I think when I would move to X# the much better checks of the X# compiler versus that of VO would make my code less error prone. But so far I haven't seen one single language element in X# (or C#) from which I thought "I wish I had that in VO". The opposite I have multiple however (more for C# than for X# of course as X# can use most of the VO dialect) ....
Dick