Hacker Newsnew | past | comments | ask | show | jobs | submit | milkllz's commentslogin

I really like microORM call Dapper when using C#.You still write native sql but it's typed.


I think you are giving Neo4J too much credit on this. From what I read, they just basically slap Common Clause on APGLv3 and call it a day. The court just came in and adjudicate this is a (AND &&) clause instead or (OR ||) clause because assuming the latter would be kinda pointless because the Common Clause is more restrictive.


Before people jumping into conclusion, maybe read this first? https://writing.kemitchell.com/2022/03/17/OSI-Neo4j-PureThin...


https://youtu.be/K3qf8gRFESU?t=1550 At the 25min point, Anders talked about ripping from C# 4. Anyone know the reasoning behind it?


NOTE: this is just my perspective from observing the language evolve.

Anders Hejlsberg specifically mentions the "dynamic"[1] keyword. Normally C# is statically typed, that is at compile time you know the type of everything. With the "dynamic" keyword, function calls and field access are resolved at run time. For example if you have the following code:

    dynamic myObj = new object();
    Console.WriteLine(myObj.MyProp);
It will compile fine. At runtime it will crash, because System.Object has no property "MyProp". But if the object did have the "MyProp" property, it would have run fine. This example shows how dynamic can take C# from a statically typed language like Java and turn it into a dynamically type language like Python. From a language design perspective, this is a bit of an aberration from the statically typed path C# has taken most of the time.

From a language implementation perspective, this feature has a high cost. It requires re-implementing features of the C# compiler as a library in the Microsoft.CSharp namespace. This is required by features like overload resolution for method calls have to happen at runtime instead of compile time. And because compiled programs take dependencies on this library, it is hard to change it without breaking deployed programs. The supporting libraries are so fragile that there is a policy to not change them [3].

As for why you would want this late-bound stuff in the first place, it is kinda nice when interfacing with dynamic language environments. When the feature was originally released, the Dynamic Language Runtime[4] was a big deal. It enabled implemented versions of Ruby and Python (called IronRuby and IronPython) that were based on .NET. And the "dynamic" keyword ease calling into these language implementations. Additionally calling into COM was made easier by the "dynamic" keyword. It was so useful that it was added back to .NET 5 [2].

[1]: https://docs.microsoft.com/dotnet/csharp/programming-guide/t...

[2]: https://github.com/dotnet/runtime/pull/33060

[3]: https://github.com/dotnet/runtime/issues/27790

[4]: https://en.wikipedia.org/wiki/Dynamic_Language_Runtime


I went to the source and saw the map. https://www.cambridge.org/core/journals/antiquity/article/ra...

And from the map. It looks like it's around this part of Yellow River. (Guanzhuang, Xingyang, Zhengzhou, Henan, China 34.69942093691378, 113.36167182390584)


Yes. That (關莊) seems about right. I was initially looking for 管莊 or 官莊, both of which would have the same phonetic spelling.


Now sure if anyone saw this before, but here is a link interviewing the lawyer: https://www.youtube.com/watch?v=a5RZLyLCTo0


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: