Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 01 22:07
    User @CyrusNajmabadi unbanned @VBAndCs
  • May 13 18:16
    @CyrusNajmabadi banned @Korporal
  • Jan 29 18:46
    @CyrusNajmabadi banned @VBAndCs
  • Jan 16 2021 19:06
    @CyrusNajmabadi banned @JuliusRFriedman_twitter
  • Nov 01 2020 06:15
    @CyrusNajmabadi banned @juliusfriedman
  • Jan 31 2019 21:39

    gafter on master

    Propose Feb 11 agenda (#2187) (compare)

  • Jan 31 2019 21:39
    gafter closed #2187
  • Jan 31 2019 19:42
    gafter edited #2115
  • Jan 31 2019 15:46
    jcouv edited #1565
  • Jan 31 2019 14:51
    yigitgursoy closed #1958
  • Jan 31 2019 13:43
    ichensky closed #2190
  • Jan 31 2019 12:17
    ichensky opened #2190
  • Jan 31 2019 04:38
    MarkPflug edited #2189
  • Jan 31 2019 04:37
    MarkPflug edited #2189
  • Jan 31 2019 04:37
    MarkPflug edited #2189
  • Jan 31 2019 04:36
    MarkPflug opened #2189
  • Jan 30 2019 23:15
    MohammadHamdyGhanem opened #2188
  • Jan 30 2019 20:01
    gafter review_requested #2187
  • Jan 30 2019 20:01
    gafter review_requested #2187
  • Jan 30 2019 20:01
    gafter review_requested #2187
masonwheeler
@masonwheeler
🤷‍♂️ Different language, different idioms. "Could very easily," yes, but in practice it doesn't tend to happen.
HaloFour
@HaloFour
Must rely a lot less on constructors
But this is why virtually no other OOP language has such a thing.
"Construction is separate from consumption"
Anyways it is interesting to hear that there are languages that don't follow that approach. I recall Delphi being around in the mid 90s but I knew almost nobody who actually worked in it. I recall it being stupidly expensive.
I used to keep in touch with a dev who worked on the Oxygene compiler but we haven't chatted in a long time
masonwheeler
@masonwheeler
Yup. That's what drove it into the ground. Corporate refused to acknowledge that it couldn't effectively compete with free versions of .NET and Java and Python at a high-3-figures minimum-SKU price point.
HaloFour
@HaloFour
As I recall it, the minimum SKU wasn't exactly sufficient for business app development either. I recall Borland's site implying that if you needed DB connectivity that the price was several thousand.
masonwheeler
@masonwheeler
Yup. It's gotten better over the years, but... too little too late.
HaloFour
@HaloFour
I don't doubt that Delphi was the better product but it's definitely hard to compete with VB when your product is an order of magnitude more expensive
masonwheeler
@masonwheeler

It kind of depends. If you're a software company with a budget, that hardly matters.

What does matter, though, is when your software company can't hire any devs because no one knows how to use your programming language because they weren't taught it in school and didn't pick it up as a hobby because there were plenty of free alternatives available.

Antony Male
@canton7
Heh, I do consultancy stuff where we constantly have to pick up new languages/tools. The cost of training someone up on a new language has to be a small fraction of the cost of hiring someone in the first place, surely?
HaloFour
@HaloFour
I was taught Pascal in school, but no cheap business wants to pay more than they have to for tools :)
masonwheeler
@masonwheeler
Training someone on the basic syntax and semantics is easy, if they're already a competent programmer. Training someone to know and internalize the idiomatic patterns of the language and be familiar with its ecosystem? That takes years.
HaloFour
@HaloFour
@canton7 I think that's largely true, at least within languages of similar paradigms. Probably more effort to learn the differences of any given framework than the syntax of the language.
masonwheeler
@masonwheeler

no cheap business wants to pay more than they have to for tools

Which is why so many of them go out of business. Being cheap often means not understanding the difference between a cost and an investment. Remember, you make your money when you buy, not when you sell.

HaloFour
@HaloFour
Which is why the investment needs to demonstrate why it's worth the cost and how it has better ROI.
It didn't help Borland that VB programmers were substantially more common and generally less expensive as well.
Antony Male
@canton7

Training someone on the basic syntax and semantics is easy, if they're already a competent programmer. Training someone to know and internalize the idiomatic patterns of the language and be familiar with its ecosystem? That takes years.

I'm not sure years is fair. Months, sure. Years gets you the equivalent of someone who reads all the language design meeting minutes, and you don't need that to be a competent programmer. But the cost of hiring someone is measured in months' salary anyway, and you're getting some level of value before they're fully competent

masonwheeler
@masonwheeler

It didn't help Borland that VB programmers were substantially more common and generally less expensive as well.

Yeah, that's the next step from my "what does matter," above. When companies have trouble hiring devs for your language, it makes them less inclined to use your language.

And they never understood that. It's the same old story of the Blockbuster executives who, even in the face of Netflix bearing down on them like a steamroller approaching a cartoon coyote, didn't want to get rid of late fees because they were bringing in too much money.
COCPORN
@COCPORN
I am a little stumped at something I am seeing. I am implementing an interface and deriving from an abstract class which implements some of the methods in the interface. Yet VS and the compiler both seem to force me to implement the methods in the derived class. There is a 100% chance I am doing this wrong, yet I cannot really see how. Any gut reactions that would help me on my journey to create the best rock song ever?
COCPORN
@COCPORN
Figured it out. I will go find my seat at the back of the shortbus. :) Thanks for being my rubber duck.
masonwheeler
@masonwheeler
What was the problem?
Sam
@MgSam
Will the "Summer of C#" have public meeting notes?
CyrusNajmabadi
@CyrusNajmabadi
I would recommend asking Fred that on discord.
masonwheeler
@masonwheeler
After enabling nullables, I think the single most irritating issue it causes is all the gratuitous !s I have to stick on the end of ToString calls to shut the compiler up. Whose brillant idea was it to specify that as returning string? :interrobang:
masonwheeler
@masonwheeler

Oh, here's a fun one I just ran across.

Action<Foo> bar = myObj != null ? myObj.MyMethod : someOtherAction; //perfectly valid
Action<Foo> bar = myObj?.MyMethod ?? someOtherAction; //compiler error CS8978: 'method group' cannot be made nullable

What the what?

HaloFour
@HaloFour
I guess because method groups don't really have a type?
CyrusNajmabadi
@CyrusNajmabadi
Whose brillant idea was it to specify that as returning string? :interrobang:
This was the runtime
You're welcome to leave them feedback
However that signature is accurate as there are cases where types return null for To string
ToString
So if you don't annotate that correctly, you could end up in places where you still get a null ref at runtime.
What the what?
Feel free to open language discussion at dotnet/csharplang if you want this to be supported.
In this case it would likely be a request about inference working in ?? (Though I haven't investigated to see if that's what is the issue here)
Antony Male
@canton7

After enabling nullables, I think the single most irritating issue it causes is all the gratuitous !s I have to stick on the end of ToString calls to shut the compiler up. Whose brillant idea was it to specify that as returning string? :interrobang:

@masonwheeler https://stackoverflow.com/a/69944733/1086121

So unless you're calling object.ToString(), or calling ToString on a generic type, the signature almost certainly returns a non-nullable string. When you override ToString, the VS-generated code returns string
masonwheeler
@masonwheeler
...so why exactly is a variable declared inside a do ... while block considered "not in scope" in the while clause?
Antony Male
@canton7
I suspect simply, because traditionally the { and } introduce a new scope.
CyrusNajmabadi
@CyrusNajmabadi
Primarily because that's kinda how blocks work. I can't think of any case where sometime defined in a block leak into an outer scope.
David Arno
@DavidArno
Not sure if anyone uses this these days but just in case, I’m trying to communicate with @CyrusNajmabadi but he seems determined to censor every post I make and won’t explain his actions. Hoping I can engage him here in a private chat to try and get to the bottom of things.
Bernd Baumanns
@bernd5
you can try on discord
David Arno
@DavidArno
@bernd5 thanks I didn’t realise discord supported private messages. I’ve tried there too. Cheers.
CyrusNajmabadi
@CyrusNajmabadi
Since it was brought up here. The posts were hidden for being off topic. Posts on GitHub.com/dotnet/csharplang have to be on the discussion topic they are on.
David Arno
@DavidArno
Yes, you already said that in the discussion itself. It's a great shame that MS have allowed someone like yourself to be a moderator of such an important forum. But they have, and I just have to "suck it up" as there's nothing I can do about that.
CyrusNajmabadi
@CyrusNajmabadi
@DavidArno I cannot respond on discord as you have left the server.