Thread 105710217 - /g/ [Archived: 711 hours ago]

Anonymous
6/26/2025, 2:21:08 PM No.105710217
1724434670438802
1724434670438802
md5: 40722f084db6ab307133dd78c4997e9e๐Ÿ”
The best language. Beautiful and readable. It's like if C and Turbo Pascal had a child.
Replies: >>105710681 >>105710934 >>105711048 >>105711128 >>105711175 >>105713126 >>105713781 >>105714401 >>105714680 >>105714819 >>105716246 >>105716277 >>105719755 >>105721021 >>105721761 >>105722093 >>105722861 >>105724057 >>105724075
Anonymous
6/26/2025, 3:10:15 PM No.105710570
>when your standard for languages is "beauty" and not reproducibility and safety
you have never worked on a large codebase, therefore your opinion does not matter.
Replies: >>105710631 >>105710658 >>105710971 >>105711128 >>105717043
Anonymous
6/26/2025, 3:19:56 PM No.105710631
>>105710570
>reproducibility and safety
What are you smoking? This isn't sepples we're talking about.
These are a non-issue.
Replies: >>105710653
Anonymous
6/26/2025, 3:23:09 PM No.105710653
>>105710631
You sound like you've just never used HM type systems. C# throws out the ass.
Replies: >>105710671 >>105710971 >>105711282
Anonymous
6/26/2025, 3:23:34 PM No.105710658
>>105710570

It is actually the best for large codebases too. Most already know it's good for dusty enterprise projects, what few know is how elegant it can be too.
Replies: >>105712478 >>105716277
Anonymous
6/26/2025, 3:25:25 PM No.105710671
>>105710653
You sound.. unemployed
Replies: >>105710676
Anonymous
6/26/2025, 3:26:08 PM No.105710676
>>105710671
Nope. Gainfully employed and also never seen an exception at work.
Replies: >>105710689
Anonymous
6/26/2025, 3:27:00 PM No.105710681
>>105710217 (OP)
>The best language. Beautiful and readable. It's like if C and Turbo Pascal had a child.
it's over for you
Anonymous
6/26/2025, 3:27:59 PM No.105710689
>>105710676

Languages don't break on their own lmao. You have to do something that causes an exception in your code. This isn't a fucking car engine it doesn't randomly sputter and bust.
Replies: >>105710723
Anonymous
6/26/2025, 3:31:12 PM No.105710723
>>105710689
>j-just don't write code that can't throw!
t. never worked on a large codebase
t. never worked with other developers
t. pretends his language's libraries don't throw outside the type system
Replies: >>105710747
Anonymous
6/26/2025, 3:33:44 PM No.105710747
>>105710723

Wtf are you even saying? "that can't throw", what can't throw, C# has exception handling you moron
Replies: >>105710762
Anonymous
6/26/2025, 3:35:40 PM No.105710762
>>105710747
exceptions occur outside the type system you ignoramus
enjoy untangling spaghetti because your compiler is blind to your error paths
Replies: >>105710766
Anonymous
6/26/2025, 3:36:29 PM No.105710766
>>105710762

It doesn't even sound like you're speaking software engineer, idk what kind of irrelevant autism this is
Replies: >>105710780 >>105711371 >>105713126
Anonymous
6/26/2025, 3:37:29 PM No.105710780
>>105710766
as always the people who know least are the loudest
Anonymous
6/26/2025, 3:59:40 PM No.105710934
>>105710217 (OP)
>no LTS
As much as I like the language, into the trash it goes.
Replies: >>105710949
Anonymous
6/26/2025, 4:02:03 PM No.105710949
>>105710934
LTS is a meme. Either keep your software up to date, or stop updating your servers.
Replies: >>105711023
Anonymous
6/26/2025, 4:06:48 PM No.105710971
>>105710570
>>105710653
Do you work at Jane Street? How common is it for languages with HM rype systems to even be used for large scale corporate projects?
Replies: >>105713384
Anonymous
6/26/2025, 4:11:30 PM No.105711023
>>105710949
t. never ran a web service
Security patches are important, and I'm not going to constantly updoot the application for no benefit just because the new dotnet team is a bunch of updootfags. Literally every runtime other than node has longer LTS than dotnet. And it was supposed to be an enterprise system. What a joke.
Anonymous
6/26/2025, 4:14:31 PM No.105711048
>>105710217 (OP)
the base is good. its everything else like forms or WPF thats ass
Anonymous
6/26/2025, 4:23:31 PM No.105711128
1748403184245135
1748403184245135
md5: 967999c500a20583684d66233980c7df๐Ÿ”
>>105710217 (OP)
Indeed.
>>105710570
I have.
C# is almost perfect in every way
The syntax, ecosystem, VS, compile times
It beats the shit out of any other lingo.
Replies: >>105711198 >>105712495 >>105713631
Anonymous
6/26/2025, 4:29:54 PM No.105711175
>>105710217 (OP)
Pic unrelated. OP meant F#.
Anonymous
6/26/2025, 4:33:11 PM No.105711198
>>105711128
I have never used C#, what makes it better than Java? They look the same and I hate Java.
Replies: >>105711579 >>105711772
Anonymous
6/26/2025, 4:43:48 PM No.105711282
>>105710653
>HM type systems
I don't even know what that is lmao
Replies: >>105711403
Anonymous
6/26/2025, 4:53:11 PM No.105711371
>>105710766
he's a functional programming autist. in FP "exceptions" are returned, rather than thrown.
Replies: >>105711403 >>105711422
Anonymous
6/26/2025, 4:56:40 PM No.105711403
>>105711371
OCaml, Haskell, and other functional programming languages have genuine exceptions, too like other languages
>>105711282
Hindley-Milner type systems
Anonymous
6/26/2025, 4:59:12 PM No.105711422
>>105711371

I figured it had to be something completely out of the realm of enterprise software
Anonymous
6/26/2025, 5:14:52 PM No.105711579
>>105711198
The list is long, so I'll try to highlight only the things where I thought "I wish I could've done this in C# instead"

- properties as a language feature (no getProperty, setProperty spam anymore)
- extension methods, basically syntax sugar that allows you to call static methods by chaining (instead of Utils.MyCustomMethod(myObject, randomParam) you can call myObject.MyCustomMethod(randomParam), and you can define these as generic, or for interfaces, so instantly extend functionality of a lot of classes, it's what powers LiNQ, it's hard for me to describe just how powerful extension methods are
- LiNQ - like Java Streams, but more intuitive and very easily extensible
- structs - value types that actually live on the stack, very useful for native interop, but also for performance in general
- Generics support value types - Java generics only support objects, so when using a generic type with value types, they have to be cast into classes (simple int into Integer class, but hey, at least values -127 to 128 are cached, lmao). C# actually reifies generic methods/types, so the code can work with value types and structs with 0 allocations
- single build system that just works - no maven, no gradle, no configuration bs, it's much easier to configure everything
- the CLI - the dotnet cli is also pretty good, although I mainly work with C# through an IDE (use Rider if you need a crossplatform IDE)
Replies: >>105711612 >>105712546 >>105712966
Anonymous
6/26/2025, 5:18:55 PM No.105711612
>>105711579
>- single build system that just works - no maven, no gradle, no configuration bs, it's much easier to configure everything

This is the biggest thing for me, everything is streamlined and centralized while still being a complete solution. The Java/JS world is a decentralized chaotic headache that you have to patch together like a Frankenstein monster.
Anonymous
6/26/2025, 5:36:43 PM No.105711772
1748960629885929
1748960629885929
md5: 32cdd4df5c0d1781b9667d3aba5581f6๐Ÿ”
>>105711198
>What makes it better
The ecosystem and Microsoft (neets going to seethe now)
C# can be compiled to native and thanks to MAUI it's native performance on cross platform targets.
WinForms, WPF and MAUI out of the box.
Standard libraries on the spot.
>I hate java
The only thing I hated about java was its VM and ugly GUI but now you can compile it to native too.
Replies: >>105712400 >>105712431
Anonymous
6/26/2025, 6:35:25 PM No.105712244
C# is nice but I fucking hate xaml.
Replies: >>105712984 >>105721752
Anonymous
6/26/2025, 6:53:24 PM No.105712388
Type masturbation > shipping products
Anonymous
6/26/2025, 6:54:38 PM No.105712400
>>105711772
You type like you are Indian.
Replies: >>105721039
Anonymous
6/26/2025, 6:57:25 PM No.105712431
core
core
md5: d414a369e8e8e365209bf86fc054f6bd๐Ÿ”
>>105711772
Also built-in cross-platform auto optimized SIMD (only language/framework I know of that has this at this level).
>https://learn.microsoft.com/en-us/dotnet/standard/simd
>https://learn.microsoft.com/en-us/dotnet/api/system.numerics.vector4?view=net-9.0
>https://learn.microsoft.com/en-us/dotnet/api/system.numerics.matrix4x4.createperspective?view=net-9.0
Replies: >>105712483
Anonymous
6/26/2025, 7:01:52 PM No.105712478
>>105710658
>few know is how elegant it can be too
I started to like C# after watching this guy's videos:
https://www.youtube.com/watch?v=8nIB7e_eds4
Anonymous
6/26/2025, 7:02:30 PM No.105712483
>>105712431
You know smashing a bunch of buzzwords together won't make your point sound any more valid right? It just makes you look like the paid shill that you are.
Replies: >>105712878
Anonymous
6/26/2025, 7:03:40 PM No.105712495
>>105711128
>methods and classes are both pascal case
kys m$ jeet
java is quite literally better in every way
Replies: >>105713952
Anonymous
6/26/2025, 7:08:54 PM No.105712546
>>105711579
>- single build system that just works

By far the biggest selling point of any language.
Anonymous
6/26/2025, 7:33:08 PM No.105712788
C# doesn't have forced inline methods. that makes it impossible to refactor large loop body into method, and that hurts readability.
Replies: >>105712812 >>105713014
Anonymous
6/26/2025, 7:35:53 PM No.105712812
>>105712788
performance difference of method calling inside loop vs inlining can be surpising. and it's not clear when method will be inlined.
Replies: >>105712914
Anonymous
6/26/2025, 7:41:39 PM No.105712878
>>105712483
"cross-platform" and "SIMD" are buzzwords anon? Have you only ever done frontend webdev or something?
The absolute state of /g baka.
Replies: >>105713578
Anonymous
6/26/2025, 7:44:40 PM No.105712914
>>105712812
I don't know how it is in C# but in C++ it's a massive difference, even with full speed optimizations enabled.
Anonymous
6/26/2025, 7:50:17 PM No.105712966
>>105711579
>extension methods
C# 14 and .NET 10 are actually featuring a new extension-block syntax that allows 'extension anything.'
Not only can you add extension instance properties, but also extension static methods or static properties.

Were you ever annoyed by the fact that you could do int.Parse or int.TryParse, but not int.ParseOrDefault ?
Well-- now you can directly build it on that type.

Better yet-- you can use the existing support for static interfaces and build IParsable<T>.ParseOrDefault as a facade over IParsable<T>.TryParse and have it support *anything* parsable; past, present, and future. In one extension block definition.

It's INSANELY powerful for plugging up the annoyances in missing API surfaces.
Anonymous
6/26/2025, 7:51:33 PM No.105712984
>>105712244
Of course you do. It's XML, after all.
Anonymous
6/26/2025, 7:53:40 PM No.105713014
>>105712788
>C# doesn't have forced inline methods.
Wrong. MethodImplOptions.AggressiveInlining forces a method to be inlined if possible.

https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.methodimploptions
Replies: >>105713122
Anonymous
6/26/2025, 8:04:44 PM No.105713122
>>105713014
>forced
>if possible
i want a hard compiler error if method can't be inlined, or at least a warning. this is a huge performance trap inside loops
Replies: >>105724368
Anonymous
6/26/2025, 8:05:13 PM No.105713126
>>105710217 (OP)
>Beautiful and readable.
I disagree, it's easily as ugly and unreadable as Java, C++ and Rust.

>>105710766
You're just retarded anon. Of course we already knew that, your favorite language is sepples squared.
Anonymous
6/26/2025, 8:25:31 PM No.105713384
>>105710971
I don't work for Jane Street, and it's impossible to answer that question. It's not like every corporation reports every single piece of software written at the company and lists what they used to build that software.
I used to work here and pretty much the entire backend is ocaml, though it's not advertised.
https://ahrefs.com/
>I don't believe you that they're using ocaml
Go here
https://ahrefs.com/team
ctrl + f "ocaml"
Anonymous
6/26/2025, 8:46:18 PM No.105713578
>>105712878
They are how you are using them. Every single language does SIMD and cross platform now day. Are you stuck in the fucking 80's where you think compilers still cost an arm and a leg and only work for a single platform?
Replies: >>105714886
Anonymous
6/26/2025, 8:52:38 PM No.105713631
>>105711128
Visual Studio is probably one of the worst things about it. Sure, you can type C# on Neovim with Omnisharp or some other open source LSP on Arch, but .NET still has too many project types you can only do in VS.
Plus, they don't want to bring it to Linux and they even killed the Mac version, so now you have to use the C# Dev Kit on VSCode which requires the same loicence and is not available on Codium.

That and every other extension going dual license and moving away from open source is hurting .NET and C# adoption, and I speak as a fan and as someone whose livelihood depends on these two tools.
Replies: >>105713964 >>105714007
Anonymous
6/26/2025, 8:54:45 PM No.105713655
gigachad
gigachad
md5: 2a739f17cc5a1a3ac3e64daf862734f2๐Ÿ”
I refuse to use C#, and .NET in general, for literally no other reason than because it's a Microsoft product.
Replies: >>105713827
Anonymous
6/26/2025, 9:08:05 PM No.105713781
Vala_Logo
Vala_Logo
md5: 5a49288259247a1fc26aac7135239be7๐Ÿ”
>>105710217 (OP)
Vala > C#
Vala compiles to C, therefore it wins.
Replies: >>105714032
Anonymous
6/26/2025, 9:13:29 PM No.105713827
>>105713655
C# is good because it's microsoft product
Anonymous
6/26/2025, 9:19:58 PM No.105713889
I am somewhat surprised by people here praising the C# ecosystem, build system and compile times.
It's usable... but there's so much retarded stuff to complain about.

First of: Solutions....
Visual Studio works with Visual Studio Soluions (sln) which do nothing and only bring friction.
The file format is a complete mess so you can't open one in a file and make sense of anything or manually change anything.
The fact that solutions use their own internal structure means that the project structure can be entirely divorced from the structure in the file system which means it gets neglected by the average C# dev.
The langauge server uses solutions to know which projects to load so you're forced to make them just to have proper language support. So even when I'm not using VS, I am still forced to deal with them.
Why can't I just open the root directory of my fucking code like with every other language?
And then there's the configuration manager, which is an entirely indecipherable mess of build configuration which messes up all the project files and completely kills the build flexibility that msbuild offers out of the box.
Good job building a completely flexibile build system that lets you parameterize everything and organize stuff however you want,
only to have your IDE hide it from your userbase and make it impractical to actually take advantage of that flexibility for them.

Then there's the compile times which are not fast. They're not crazy slow like rust.
They're still bad enough to have build-time optimizations locked behind using VS.
And after you compile you don't get a native executable, if you wanna ship your software you still have to have your users install a runtime anyway.
Retards will reply that there is infact an option to compile to native code but that is as slow as compiling rust if not slower.
and there's caveats with AOT like reflection based stuff not working.
Replies: >>105713899 >>105713960 >>105714067 >>105714339 >>105724450 >>105726843
Anonymous
6/26/2025, 9:21:08 PM No.105713899
>>105713889
But the real problem is the module system being way too fucking in-flexible and rail roading you into spending way too much time into dealing with dependency graphs.
The core cause of this is the combination of two things:
1. Every "project" typically being deployed as a separate binary which are dynamically linked at runtime.
2. The Type system being hyper nominal, i.e. if you define completely equivalent types with the name in the same namespace (classes, interfaces, delegates) in two separate projects,
then they're are still considered distinct types since they come from separate assemblies.

The result of this is that the only ways to use the same type across two different projects is to have one depend on the other, or to put it into a third project which then both depend on.

In higher lever scripting languages like lua or JS. I can just write code in a file and just directly import that when I need it.
Even in C, I can just include a header in two different places and share those definitions.
But in dotnet I have to set up another whole project file, add it to my solution,
bloat my compile times with redundant steps and have my final software distributed across dozens of tiny .dll files
Replies: >>105713912 >>105713960 >>105714067 >>105714627 >>105726843
Anonymous
6/26/2025, 9:22:10 PM No.105713912
>>105713899
It gets even worse when people end up doing the 'extract into a third project to reuse type definitions across projects that aren't allowed to depend on each other' thing,
but do it with interface definitions instead of concrete types, because they want those projects to be decoupled.
Then you end up with tons of interfaces that function more like headers in C, except that now every call is a virtual function call at runtime.
You end up with whole "projects" that are nothing but interfaces, compiled and deployed as separate units.
Because that is what this system railroads you into.

Either you write everything within a single "project", or you end up writing hundreds of them and spending tons of time managing the complicated dependency graph between them.
Even if they're all your own modules.
Replies: >>105713947 >>105713960 >>105714067 >>105714793 >>105724704 >>105726843
Anonymous
6/26/2025, 9:26:50 PM No.105713947
>>105713912
Microsoft doesn't use C# for anything anymore. Why would you? At least you learned something which is, don't touch anything made by Microsoft.
Replies: >>105713960 >>105713992 >>105714567
Anonymous
6/26/2025, 9:27:33 PM No.105713952
>>105712495
>java is quite literally better in every way
>Can't do DateTime without external third party libs
Keklmao
Replies: >>105713969
Anonymous
6/26/2025, 9:28:26 PM No.105713960
>>105713889
>>105713899
>>105713912
>>105713947
good posts, covers a lot of my problems
Anonymous
6/26/2025, 9:28:42 PM No.105713964
>>105713631
Wake up faggit, rider is the new standard.
>hurr durr
Do you still write Java with Netbeans?
Anonymous
6/26/2025, 9:29:27 PM No.105713969
>>105713952
>In Java, the DateTime class is used to represent a specific point in time, including date and time information. It is part of the Java Date and Time API, which provides various methods for manipulating and formatting date and time values.
?????
Anonymous
6/26/2025, 9:31:20 PM No.105713992
>>105713947
I use it because that's what the multi-million LOC software at my job is written in.
I also only use it for that. I wouldn't use it for any of my own projects.
I thoroughly learned to distrust and despise them from using their products and platforms.
Anonymous
6/26/2025, 9:32:19 PM No.105714007
>>105713631
>and they even killed the Mac version
As much as I want Visual Studio on Linux, them killing the Mac version was irrelevant as it was just a rebrand of another shitty IDE and had nothing to do with VS proper except for the name.
Replies: >>105714395
Anonymous
6/26/2025, 9:34:37 PM No.105714032
>>105713781
Vala is useless unless all you want to write is gnome shitware.
Anonymous
6/26/2025, 9:39:20 PM No.105714067
>>105713889
>>105713899
>>105713912
Of all the things to complain about, it's fascinating to see someone this upset over XML configuration files.
I vastly prefer the explicit configuration through solution and project files over
>hurr durr just dump text files in a folder
Replies: >>105714148
Anonymous
6/26/2025, 9:46:50 PM No.105714148
>>105714067
I actually like msbuild as a build system at least the newer project files.
The problem is that does Microsoft seems to want the average dev to not ever interact with project files, or targets directly, hence the garbage that is the configuration manager and visual studio having a GUI to 'configure' projects.

The other problem with cumbersome dependency management is orthogonal to that.
Solution files are just straight up garbage though. Totally pointless.
Replies: >>105714316
Anonymous
6/26/2025, 10:00:27 PM No.105714316
>>105714148
>The problem is that does Microsoft seems to want the average dev to not ever interact with project files, or targets directly, hence the garbage that is the configuration manager and visual studio having a GUI to 'configure' projects.
I get that with solution files, but csprojs are relatively simple and easy to modify yourself. I do it all the time. They even updated VS2022 somewhat recently to automatically open the project contents as text when you double click it, so I don't know where you get that impression from.
>Solution files are just straight up garbage though. Totally pointless.
As opposed to what? You want `dotnet build` to go crawl your directory looking for .csproj files every time? Or cache it in some obscure database somewhere and have to deal with needing to force clear the cache whenever you make a change.
If you didn't have solution files to configure projects, build types, and start up, you would need some alternative anyway like dotfiles with json configuration like VSCode does.
Replies: >>105714437
Anonymous
6/26/2025, 10:02:15 PM No.105714339
>>105713889
>The file format is a complete mess
true, but they're working on new format https://devblogs.microsoft.com/dotnet/introducing-slnx-support-dotnet-cli/

>the project structure can be entirely divorced from the structure in the file system
this is useful because it allows to share projects between different solutions.

>reflection based stuff not working
this is misconception. reflection works fine, only resolving types with dynamic strings MAY NOT work (like Assembly.GetType(string)). to make it work you need to provide list of such types as additional data.
Anonymous
6/26/2025, 10:08:35 PM No.105714395
>>105714007
>As much as I want Visual Studio on Linux
literally for what, every dotnet fag i know loves rider
Anonymous
6/26/2025, 10:09:21 PM No.105714401
>>105710217 (OP)
Missing ADTs with exhaustive matches.
Then it will truly be perfect (for a garbage collected language)
Anonymous
6/26/2025, 10:12:34 PM No.105714437
>>105714316
The problem with solutions is that they interact with the build system and the solution explorer.

>You want `dotnet build` to go crawl your directory looking for .csproj files every time?
No. I just build my projects directly.
If I have a list of projects I wanna build together I'll just write a script.
Or I can have another msbuild project that just includes those projects and building that just build those projects.
Almost like it's a build system that lets me configure and organize my builds, which solutions do not help with.
Replies: >>105714485
Anonymous
6/26/2025, 10:16:26 PM No.105714485
>>105714437
>If I have a list of projects I wanna build together I'll just write a script.
That's pointless busywork. I'm glad it comes with a solution ootb.
>Or I can have another msbuild project that just includes those projects and building that just build those projects.
I am pretty sure you can do that now. You can open .csproj directly and add references to other projects and they will be built as dependencies. You have your solution. I don't see the appeal of this over solutions or slnx, but it's there.
>Almost like it's a build system that lets me configure and organize my builds, which solutions do not help with.
But that's literally what solutions do...
Anonymous
6/26/2025, 10:23:41 PM No.105714567
>>105713947
I use C# for the absolute minimal glue.
Only thing worse is powershell.
The worst thing is the frameworks, library calls, and versionsโ€ฆ examples never work, the thing says it supports 9 but doesnโ€™t, old examples break or are unsupported on newer/older versions.
Itโ€™s an unmitigated disaster. And VB looks better.

So, unless youโ€™re writing C-like code in C# using the CSC 2.0 compiler built into Windows, youโ€™re on a treadmill.
Replies: >>105714646
Anonymous
6/26/2025, 10:29:10 PM No.105714627
>>105713899
you compare shared source text inclusion vs shared modules.
you also can share a folder with source text between differenct projects.

<Compile Include="..\folder\**\*.cs" />
Replies: >>105714677
Anonymous
6/26/2025, 10:31:14 PM No.105714646
>>105714567
classic case of skill issue
Anonymous
6/26/2025, 10:34:37 PM No.105714677
>>105714627
same is true with c++ modules. you can't just define a type with same name in 2 different types and use it interchangeably .
Replies: >>105714755
Anonymous
6/26/2025, 10:34:49 PM No.105714680
>>105710217 (OP)
No it's a shit-tier language with a bad runtime.
Anonymous
6/26/2025, 10:42:19 PM No.105714755
squint
squint
md5: 2bd17fcb48ceef0e78d44d313a972cd9๐Ÿ”
>>105714677
>a type with same name in 2 different types
Replies: >>105714805
Anonymous
6/26/2025, 10:45:35 PM No.105714793
>>105713912
>Either you write everything within a single "project"
yes, this is how c++/rust etc work. all libraries are shared just as plain text and everything is included together into a single giga blob of text.

dontet model is actually good and revolutionary. you just not quire uderstand its benefits. also i agree that people who artifically separate nuget package into dozes on different pieces aren't very bright.
Replies: >>105715015
Anonymous
6/26/2025, 10:46:37 PM No.105714805
>>105714755
>in 2 different modules
Anonymous
6/26/2025, 10:48:25 PM No.105714819
>>105710217 (OP)
I am making a text editor that will be configured and extended in C#, like emacs. I paused the development right now, but I was just about to add a minibuffer (I already have syntax highlighting, tree-sitter and split views)
Anonymous
6/26/2025, 10:54:56 PM No.105714886
>>105713578
>Every single language does SIMD and cross platform now day
Really now? I can only think of 7 languages with native SIMD (C, C++, Rust, Java, C#, Julia, Swift) and at least two of those (C, C++) require you to be mindful/write different code/config depending on which cpu architecture you're targeting.
Replies: >>105714918 >>105715055 >>105715168
Anonymous
6/26/2025, 10:58:26 PM No.105714918
>>105714886
You forgot the original, fortran.
From back when they were called vector processors.
And array based access was faster (or at least as fast) than pointer math with fortranโ€ฆ a lot of C compilers has their optimizers pulled from fortran back in the day.
Replies: >>105715003
Anonymous
6/26/2025, 11:06:49 PM No.105715003
>>105714918
Thanks, forgot about Fortran which probably can be considered as having native SIMD. Indeed Fortran was an inspiration source of languages trying to get faster (e.g. the restrict keyword in the C99 comes to mind)
Anonymous
6/26/2025, 11:08:03 PM No.105715015
>>105714793
this also includes namespaces. i absolutely don't understand why people use dozens of namespaces for organizing code. this is stupid. just use one namespace per whole project.
Replies: >>105715038 >>105715061 >>105726843
Anonymous
6/26/2025, 11:10:18 PM No.105715038
>>105715015
I tried to do that at first when I came from C++, but all the tooling insists on autofixing/syncing namespaces to match the directory structure, so I just gave up and did that instead. I don't get it, but when in Rome...
Replies: >>105724857
Anonymous
6/26/2025, 11:12:29 PM No.105715055
>>105714886
I think C++ has some portable SIMD libs to be fair. Only C is really the outlier which is unsurprising.
Anonymous
6/26/2025, 11:12:59 PM No.105715061
>>105715015
also please don't use cringy namespaces like Foo.Bar.CompanyName.Library.Core. just use namespace Library;
Replies: >>105724842
Anonymous
6/26/2025, 11:14:27 PM No.105715079
If I want to make a cross platform desktop GUI app in C#, which of all the frameworks should I even use?
DESU I fucking hate XAML.
Semi-official guides for Avalonia are basically,
>well, you have to learn the outdated WPF first because, then forget half of it because we replaced it with our own shit. No, our documentation won't teach you the half of WPF you need to know.
Replies: >>105715110 >>105721296 >>105721901
Anonymous
6/26/2025, 11:16:57 PM No.105715110
>>105715079
retvrn to WIN32.
retvrn to CreateWindow*
Replies: >>105715128
Anonymous
6/26/2025, 11:18:36 PM No.105715128
>>105715110
>cross platform
Replies: >>105715442
Anonymous
6/26/2025, 11:22:53 PM No.105715168
>>105714886
Also Zig, Odin, Swift, Go(with a library), Python (with a library). The list is getting pretty big.
Replies: >>105715269
Anonymous
6/26/2025, 11:33:38 PM No.105715269
>>105715168
I wouldn't call with a 3rd party library native but numpy is pretty comfy. Also I doubt the volume of commits to the low level implementations by Intel engineers to some of these languages (Zig, Odin) (if at all) are at the levels of C#.
Replies: >>105715638
Anonymous
6/26/2025, 11:50:31 PM No.105715442
>>105715128
c# is unironically less cross platform. at least win32 shit works through wine. cli is dog ass busted outside of windows and maybe like 2 linux distributions.
Replies: >>105715476
Anonymous
6/26/2025, 11:53:40 PM No.105715476
>>105715442
Either you're talking out your ass or using some weirdo obscure distro, but all the major distros are supported for sure (Debian and Fedora derivatives), I use it just fine on Arch, and it's even supported on FreeBSD.
Replies: >>105715654 >>105715817
Anonymous
6/27/2025, 12:10:22 AM No.105715638
>>105715269
They are llvm langs so I imagine their simd support will be pretty good.
Anonymous
6/27/2025, 12:11:43 AM No.105715654
>>105715476
Its more that parts of the stdlib and 3rd party libraries made for C# are still Windows only due to its years of platform dependence.
Anonymous
6/27/2025, 12:27:01 AM No.105715817
>>105715476
Calling something "cross platform" when it can't even achieve something basic like Linux distro agnosticism is the most retarded shit I've ever heard. Words have meaning, you know? I can't even stretch the definition of crossplatform to cover this shit. I've seen C binaries with better crossplatform support.
>it's even supported on FreeBSD
Guess what? It's a buggy mess there too. Until very recently ASLR made it crash and burn, for example. Great support! Definitely usable and not a pathetic joke!

Meanwhile, when Oracle peddles Java as crossplatform, they're not fucking kidding. There are no asterisks or gotchas. No "Well it only works if you use this exact configuration according to this spec." No, it just actually works everywhere and it's not something that needs endless defensive cope by dumbass evangelists to make up for multi-billion dollar megacorporation incompetance.
Replies: >>105715914
Anonymous
6/27/2025, 12:35:33 AM No.105715914
>>105715817
>when it can't even achieve something basic like Linux distro agnosticism
You still haven't named a single Linux distro it does not work on.
Anonymous
6/27/2025, 12:41:11 AM No.105715960
Have they added discriminated union yet?
Replies: >>105716120
Anonymous
6/27/2025, 1:01:00 AM No.105716120
>>105715960
not yet
https://github.com/dotnet/csharplang/blob/main/proposals/TypeUnions.md

>(int or short) value = 10;
>double value2 = value;
Replies: >>105724928 >>105725347
Anonymous
6/27/2025, 1:07:06 AM No.105716171
Is the language that really beautiful? Is it like listening to European Portugese (C#) compared to Vietnamese (C)? If so I will learn C#. Are there any 'lightweight' IDEs I can use that isn't visual studio? Would Rider be any different?
Replies: >>105716244
Anonymous
6/27/2025, 1:17:58 AM No.105716244
>>105716171
Rider actually manages to be more bloated and slow, probably because it's written in Java. If you need something lightweight your best bet will be vscode.
Anonymous
6/27/2025, 1:18:35 AM No.105716246
>>105710217 (OP)
It still sucks for handling binary data. Marshaling is garbage.
Replies: >>105716269
Anonymous
6/27/2025, 1:21:59 AM No.105716269
>>105716246
elaborate
Replies: >>105716614
Anonymous
6/27/2025, 1:22:31 AM No.105716277
>>105710217 (OP)
>if C
It's literally just Java with extra stuff, the initial implementation was called J++ because it was Microsoft trying to add Java to .NET and getting caught.

>>105710658
It's good (enough) for gamedev too, since both Unity and Godot use it
Replies: >>105716333
Anonymous
6/27/2025, 1:31:09 AM No.105716333
>>105716277
It's Java but better. Java mostly caught up with the syntactic suger decades later, but C# still has actual value types, pointers, and P/Invoke.
Anonymous
6/27/2025, 2:09:21 AM No.105716614
>>105716269
A convenient way to handle binary data is to load the entire file into memory, and then overlay structs on top of the data. C# can sort of do that, but its awkward and limited.
Replies: >>105716628 >>105716758 >>105718290
Anonymous
6/27/2025, 2:11:05 AM No.105716628
>>105716614
>but its awkward and limited.
this is the part I was hoping you would elaborate on
Replies: >>105716685
Anonymous
6/27/2025, 2:19:51 AM No.105716685
>>105716628
Well for one thing. C# has limited support for structs. It does not support the same range of features that C/C++ does. As for overlaying structs onto a byte array, its possible, but very clunky and requires unsafe features. There is no reason why this could not be supported in a safe way.
Replies: >>105716717 >>105724978
Anonymous
6/27/2025, 2:24:02 AM No.105716717
>>105716685
They've been adding a lot of features in recent versions to add safe equivalents for unsafe features, so they'll probably get around to it eventually. Though having to use unsafe in a small section of the application doesn't bother me as long as it works.
Anonymous
6/27/2025, 2:30:38 AM No.105716758
>>105716614
>its awkward and limited
>var bytes = File.ReadAllBytes(path);
>Span<T> span = MemoryMarshal.Cast<byte, T>();
Replies: >>105716985
Anonymous
6/27/2025, 3:03:45 AM No.105716985
>>105716758
apparently, this is how to achieve same result in rust
use std::fs::File;
use std::io::Read;
use std::mem::transmute;

fn main() {
let mut file = File::open("foo.txt").unwrap();
let mut bytes = Vec::new();
file.read_to_end(&mut bytes).unwrap();

let span: &[u8] = &bytes;
let ptr = span.as_ptr() as *const _;
let slice: &[f64] = unsafe { std::slice::from_raw_parts(ptr as *const f64, span.len() / std::mem::size_of::<f64>().unwrap()) };

println!("{:?}", slice);
}


KEK
Replies: >>105718042 >>105718121
Anonymous
6/27/2025, 3:09:16 AM No.105717043
>>105710570
What reproducibility?
Anonymous
6/27/2025, 5:39:08 AM No.105718042
>>105716985
>unwrap
>unwrap
>unsafe
>unwrap
Might as well just use C.
Anonymous
6/27/2025, 5:50:29 AM No.105718121
>>105716985
>casting bytes read from a file into floats
Are you literally retarded?
>C# kiddie
Oh, right.
Replies: >>105718164 >>105718290 >>105718676
Anonymous
6/27/2025, 5:56:18 AM No.105718164
>>105718121
How would you do it?
It's stored as bytes, not text that can be parsed.
Anonymous
6/27/2025, 6:12:07 AM No.105718290
>>105718121
that's what >>105716614 wants
Anonymous
6/27/2025, 7:07:26 AM No.105718676
>>105718121
In rust, part of our cult bans the secret knowledge that floats and doubles are made of bytes.
Shhh!
Lets not speak of this again.
Replies: >>105718703
Anonymous
6/27/2025, 7:12:03 AM No.105718703
>>105718676
>rust
>snark
You will never be a woman
Anonymous
6/27/2025, 9:51:50 AM No.105719755
>>105710217 (OP)
So why isn't Microsoft using it?
Replies: >>105720426
Anonymous
6/27/2025, 11:35:19 AM No.105720426
>>105719755
have a (you) for your low effort bait
Replies: >>105720578
Anonymous
6/27/2025, 11:58:37 AM No.105720578
>>105720426
It is what it is blud
Vscode? Electron
Typescript compiler? Go
Their fucking website? React
NT kernel? Rust
Anonymous
6/27/2025, 1:01:19 PM No.105721021
>>105710217 (OP)
I think it is ugly and anyone who uses it by choice is a midwit.
Anonymous
6/27/2025, 1:02:46 PM No.105721039
>>105712400
Thats because they are
Replies: >>105721102
Anonymous
6/27/2025, 1:10:26 PM No.105721102
>>105721039
>they
Anonymous
6/27/2025, 1:27:20 PM No.105721223
>language uses the 'class' keyword
dropped
Replies: >>105721246
Anonymous
6/27/2025, 1:30:19 PM No.105721246
>>105721223
FP is a meme. React sucks.
Replies: >>105721292
Anonymous
6/27/2025, 1:35:57 PM No.105721283
Hello /g/, do you like C#'s is ?

As an example, this compiles

int i = 23;
object iBoxed = i;
int? jNullable = 7;
if ((iBoxed is int a && jNullable is int b) && a > 3)
{
Console.WriteLine(a + b); // Prints "30".
}


While this code does not compile:

int i = 23;
object iBoxed = i;
int? jNullable = 7;
if ((iBoxed is int a && jNullable is int b) || a > 3)
{
Console.WriteLine(a + b); // Prints "30".
}


There is a proposal to add a variant of is to Rust https://github.com/rust-lang/rfcs/pull/3573 . Though Rust has adopted if-let-chains instead https://releases.rs/docs/1.88.0/ , intervowen with its pattern matching, and (I believe) less powerful than the variant of is proposed for Rust.

Are there any other languages that has is ?
Replies: >>105721303 >>105721627 >>105721942
Anonymous
6/27/2025, 1:37:03 PM No.105721292
>>105721246
>FP is a meme. React sucks.
But what has that to do with the class keyword?
Replies: >>105722698
Anonymous
6/27/2025, 1:37:23 PM No.105721296
>>105715079
>cross platform desktop GUI
don't
Anonymous
6/27/2025, 1:38:13 PM No.105721303
>>105721283
Apologies, apparently, the code tags don't work inline.

Also, in the second code snippet, the difference is that the latter "&&" were replaced with "||".
Anonymous
6/27/2025, 2:19:48 PM No.105721627
nullable
nullable
md5: e4d296d00498cad42a118b14742f5ae2๐Ÿ”
>>105721283
Beef kind of has that.
I'd never write a code like this though.
Replies: >>105721850 >>105721942
Anonymous
6/27/2025, 2:28:18 PM No.105721699
linq
linq
md5: 8d5cb0df74b94652960d4a02c53ee520๐Ÿ”
LINQ or classic looping/conditional syntax? I've been writing in C# for 10 years and still can't go all in on LINQ. It's definitely sexy and cool but for some reason classic syntax (e.g. for loop with if/else within it) is more readable to me.

We use a ton of EF at my company though so I have to work with LINQ often. I think I prefer the query (sql-like) syntax to the programmatic.
Replies: >>105722206
Anonymous
6/27/2025, 2:36:57 PM No.105721752
>>105712244
kek that shit still around I quit this eco system years ago
Replies: >>105721774
Anonymous
6/27/2025, 2:38:34 PM No.105721761
>>105710217 (OP)
>It's like if C and Turbo Pascal had a child.
okay this is just a troll poast
Anonymous
6/27/2025, 2:40:37 PM No.105721774
>>105721752

It's still a good concept. The problem is Microsoft doesn't advocate for their own paradigms enough. They should be working harder on capturing the desktop development ecosystem and instead they're using fucking React Native to develop Win11 UI now. It's embarrassing shit. C# is the only good thing they've done in 20 years.
Replies: >>105721819 >>105721842
Anonymous
6/27/2025, 2:48:49 PM No.105721819
>>105721774
I was an actual wpf guru, years ago. the problem with it, it was too complicated for you know consulatants and non programmers to do

so you always ended up with having developers having to make the uis

but yes, concept with mvvm bindings commands and all that stuff is pretty nice. it's just to complicated to have non developer make them.
Replies: >>105722189
Anonymous
6/27/2025, 2:52:54 PM No.105721840
mfc
mfc
md5: 3e544e2264ef6efce98ea25d551f8e01๐Ÿ”
I miss the good old days of MFC.
Replies: >>105721875
Anonymous
6/27/2025, 2:53:28 PM No.105721842
>>105721774
did they improve localization shit btw? I bet not, I had to make my own language bingind shit, it was hell
Replies: >>105725016
Anonymous
6/27/2025, 2:54:46 PM No.105721850
>>105721627
That looks a lot like Rust's if-let chains, which is related in what they cover.

Does the latter if-statement compile, or does it also give a compile-time error like in C#? I didn't find any online sandbox compiler for Beef.
Replies: >>105722160
Anonymous
6/27/2025, 2:58:16 PM No.105721875
>>105721840
motherfu... COM bastard, died with w7 that's fucking 15 years ago rn anon.. my god
Anonymous
6/27/2025, 3:01:51 PM No.105721901
>>105715079
Could maybe use Blazor in an Electron app?
Replies: >>105722852
Anonymous
6/27/2025, 3:08:09 PM No.105721942
>>105721283
There is this paper about a more powerful version and its implementation in the programming language MLScript: https://dl.acm.org/doi/10.1145/3689746
>>105721627
>Beef
What a silly name. There are too many programming languages and they're all so similar to each other.
Replies: >>105721969 >>105722512 >>105726505 >>105726586
Anonymous
6/27/2025, 3:11:05 PM No.105721969
>>105721942
Also, here's an online compiler for MLscript: https://ucs.mlscript.dev/
Anonymous
6/27/2025, 3:28:15 PM No.105722093
1749501271183944
1749501271183944
md5: 1e0a23cabd7a378bdab9b3e4a4996e33๐Ÿ”
>>105710217 (OP)
If I want to enjoy programming I use C#. It' like having sex with a young skinny hottie with big boobs.
If I want to solve complex problens and write highly performance optimized code I have to use C++. It's like masturbating with a cheese grater.
There should be a middle ground between the two!
Replies: >>105722214 >>105722697
Anonymous
6/27/2025, 3:35:17 PM No.105722160
>>105721850
>Does the latter if-statement compile
It does.

>I didn't find any online sandbox compiler for Beef.
Yeah, it's pretty much Windows-only right now.
I mean, you can build the compiler on Linux but many of the features that make the language worth using are tied to the IDE which only works on Windows.
Replies: >>105722809
Anonymous
6/27/2025, 3:40:45 PM No.105722189
>>105721819

Is it actually more complicated than modern HTML + CSS + SCSS + framework hell though? It always seemed intuitive to me.

I don't think people respect the complexity of good UI, then or now, it's never going to be free lunch. Well... it almost was once. With WinForms. But Microsoft abandoned that too. WinForms was far and away the most pleasant prototyping experience I've ever had, it's what originally drew me to the C# world. The Java counterpart was horrid in comparison.
Replies: >>105722209 >>105722255
Anonymous
6/27/2025, 3:41:26 PM No.105722191
c# is powerful and all as programming language to use, reflection, async-task, linq, etc

but it's slow as fuck anons, and it uses to much memory.. oh the one job I had the frustration of the customers.. but old shit(they made before I started there) was faster
Replies: >>105722283
Anonymous
6/27/2025, 3:44:24 PM No.105722206
>>105721699
How is it more readable? You are just creating a pipeline of functions the data goes through. And unlike the sql syntax you can actually extend it with your own "building blocks". I've written a bunch of functions for Linq to make my life easier like Interleave and SymmetricDifference etc...
Replies: >>105722304
Anonymous
6/27/2025, 3:44:47 PM No.105722209
>>105722189
>Is it actually more complicated than modern HTML + CSS + SCSS + framework hell though? It always seemed intuitive to me.
too you too me, but my problem was you had all these consultants and 3rd party people that were supposed to make customer demaneded dynamic xamls on the fly

if it only was html lol, it was just too complicated, an absolute failure on ms on this one, and my god I was so invested in this shit.

in my case it was about not interaction design fancy stuff it was about having someone else without programming knowledge(which they did before) to be able to sit there with a customer and okay so and so without us having to held their hands, in this xaml failed


it's sad because I actually like alot
Anonymous
6/27/2025, 3:45:50 PM No.105722214
>>105722093
or just write optimized code for .NET

https://www.youtube.com/watch?v=NZ5Lwzrdoe8
Replies: >>105722387
Anonymous
6/27/2025, 3:52:02 PM No.105722255
he-gassen-savoirs-dhistoire1
he-gassen-savoirs-dhistoire1
md5: 4c6506849b7df90ac00edd36167dd1c2๐Ÿ”
>>105722189
I mean in an ideal world if you work at a company where all the customers and employes.. you can just go

hey is not even model any more, here is now a custom control so you can just make a style for it

... no

the worst I had to deal with too this stuff you couldn't to just do sql querries from a .xaml or .ui or do whatever..

NO I have to make you service function from the backend for that
>NO WHERE CLAUSES IN THE WCF CALLS GOD DAMNIT
heh
Anonymous
6/27/2025, 3:55:09 PM No.105722283
>>105722191
>slow as fuck

It is one of the fastest languages in the world.
It easily beats most mainstream languages performance-wise python, java, kotlin, javascript, lua it even beats swift funnily enough.
https://programming-language-benchmarks.vercel.app/swift-vs-csharp
the only languages faster than it are C C++ go, rust. And when it comes to memory usage the same thing happens C# beats all languages except C C++ go rust with this time around swift beating it out in it's memory usage.

there are not many languages out there if you want to go faster than C# and they are all pain to work with
Anonymous
6/27/2025, 3:57:48 PM No.105722304
>>105722206

Readability is subjective, anon. It's actually weird how this isn't acknowledged in the SWE community, everyone just assumes what is readable to them is Readable(TM). I don't know exactly why, all I know is it's easier for me to immediately see what's happening with long form over LINQ, even if I acknowledge LINQ is cool. So I tend to default to the classic style. One thing I don't like about LINQ is how it reverses the SQL ordering, select after where and other stuff like that.
Anonymous
6/27/2025, 4:06:53 PM No.105722387
>>105722214
Try to write a better than average chess engine in .NET and you will understand. You can't control anything important.
Replies: >>105722415 >>105725512 >>105726128
Anonymous
6/27/2025, 4:10:12 PM No.105722415
>>105722387

Why would a chess engine need to be hyperperformant? Is there some kind of repo example, this doesn't seem like a use case that should be bottlenecked in C#.
Replies: >>105723281
Anonymous
6/27/2025, 4:19:10 PM No.105722512
>>105721942
Thank you very much, I have begun studying it.
Anonymous
6/27/2025, 4:36:01 PM No.105722697
>>105722093
So Iโ€™m not the only one comparing programming languages to girls I see. But for me c++ is a chubby smelly femcel with unkempt hair, glasses, freckles, who doesn't like to shower.
Agree on C#
Anonymous
6/27/2025, 4:36:11 PM No.105722698
>>105721292
People hating on classes are always FPfags
Anonymous
6/27/2025, 4:46:27 PM No.105722809
>>105722160
>It does.
That surprise me, I would have thought that the disjunction at the end might mean that the binding 'a' might not always be available in the then-block of the latter if-statement. I am not sure.
Anonymous
6/27/2025, 4:50:34 PM No.105722852
>>105721901
That would work, but Electron and any browser based approaches are horribly inefficient.
Anonymous
6/27/2025, 4:51:18 PM No.105722861
>>105710217 (OP)
Denmark wins once again.
Replies: >>105723129
Anonymous
6/27/2025, 5:16:26 PM No.105723129
>>105722861
Denmark has PHP as well, I am not sure that is really winning.
Other languages like ML-languages, Go, Scala, C and Rust all have nice properties, traits and aspects to them. Especially Scala has likely helped advance the general state of mainstream programming languages.
Replies: >>105723290
Anonymous
6/27/2025, 5:33:40 PM No.105723281
>>105722415
>Try to write a better than average chess engine in .NET and you will understand.
Anonymous
6/27/2025, 5:35:24 PM No.105723290
>>105723129
We have C++ and C#, that's an absolute win for Denmark. Not sure how anyone can compete.
Replies: >>105723334 >>105723717
Anonymous
6/27/2025, 5:38:53 PM No.105723334
>>105723290
But PHP arguably counts against Denmark.
Personal HomePages.
That the original language developer never intended for it to grow to such huge popularity arguably means that he can't really be faulted personally, but one could make an argument that blames Denmark for PHP regardless.
Replies: >>105723717
Anonymous
6/27/2025, 6:17:25 PM No.105723717
Bjarne_Stroustrup_(2013) (1)
Bjarne_Stroustrup_(2013) (1)
md5: 9fb6846ba9254eae719f34e464b200fc๐Ÿ”
>>105723290
how the fuck is that bjarne connected to c shart?
>>105723334
php guy is norway, big difference

(tl;dr it was made as a joke)
Replies: >>105723912 >>105724110
Anonymous
6/27/2025, 6:37:15 PM No.105723912
>>105723717
C# is designed by Anders Hejlsberg (Danish), and its lead developer is Mads Torgersen (also Danish)
Replies: >>105724019 >>105724033
Anonymous
6/27/2025, 6:49:06 PM No.105724019
1746226549753220
1746226549753220
md5: c4cebcdb14b8fffaa522d4f08c8144a4๐Ÿ”
>>105723912

... GOD FUCKING DAMNIT
Anonymous
6/27/2025, 6:50:22 PM No.105724033
>>105723912
classic have too.. I didn't even know
https://www.youtube.com/watch?v=8_iixmqSBQw
Anonymous
6/27/2025, 6:52:09 PM No.105724057
>>105710217 (OP)
Languages that try to be everything are terrible. C# does a better job of it than Java or, God forbid me for uttering this word, C++, but it still suffers from the same overbloat.
Anonymous
6/27/2025, 6:53:30 PM No.105724075
>>105710217 (OP)
>It's like if C and Turbo Pascal had a child
feels corporate, castrated and retarded, and I know Pascal
Anonymous
6/27/2025, 6:54:26 PM No.105724083
aidsriddenmurmanskgovernor
aidsriddenmurmanskgovernor
md5: 690cef3e28eb41682909d4959aa86208๐Ÿ”
even c#.... I didn't know... count in 20ies and not 10s next
Anonymous
6/27/2025, 6:58:09 PM No.105724110
>>105723717
PHP.
>Rasmus Lerdorf is a Danish-Canadian programmer.
Replies: >>105724177 >>105724247
Anonymous
6/27/2025, 7:00:41 PM No.105724144
1024px-Anders_Hejlsberg
1024px-Anders_Hejlsberg
md5: cfdbca5fe1dcdc60aaf9b1a43f0e1d48๐Ÿ”
NOOOOO
Anonymous
6/27/2025, 7:03:31 PM No.105724177
1727529296005578
1727529296005578
md5: 544aaffaee6363cadb1ce73526e64087๐Ÿ”
>>105724110
greenland, norway, denmark canda ho knows the diifference?
Anonymous
6/27/2025, 7:09:07 PM No.105724247
1749877638723022
1749877638723022
md5: 25c680de2f84011405cdd26018164649๐Ÿ”
>>105724110
he lived in norway when he made it right?

he was very active here
Replies: >>105726397
Anonymous
6/27/2025, 7:12:39 PM No.105724284
Screenshot from 2025-06-27 19-12-10
Screenshot from 2025-06-27 19-12-10
md5: a920850381d9cc3fd03ca892dd23f694๐Ÿ”
okay world I guess all world programming languages are made by danes, greenlanders or norwegians, object orientating 60'es boomers


meh norwegian basically a greenlandic dane
Replies: >>105724429
Anonymous
6/27/2025, 7:17:52 PM No.105724354
ole-johan-dahl-1
ole-johan-dahl-1
md5: d6f244ad5efced49dcd467cbd5f41f89๐Ÿ”
Anonymous
6/27/2025, 7:18:40 PM No.105724368
>>105713122
You can't have it, because inlining doesn't happen at compilation time. Inlining is done by the JIT and the runtime. The runtime actually instruments method execution to figure out if it'd be worth it to attempt to inline a method, then recompiles the outer methods with the inner method call inlined and swaps out the implementation on-the-fly. If instrumentation shows an improvement, it sticks, if not it's evicted again.

(This might surprise you; inlining a method does NOT always lead to better performance.)
Anonymous
6/27/2025, 7:22:01 PM No.105724429
>>105724284
Graydon Hoare, Rust, Canadian.
Martin Odersky, Scala, German?
Dennis Ritchie, C, American.
James Gosling, Java, American (He is of English, Welsh, Scottish, and Icelandic descent).
Replies: >>105724507 >>105725122
Anonymous
6/27/2025, 7:23:08 PM No.105724450
>>105713889
>The file format is a complete mess so you can't open one in a file and make sense of anything or manually change anything.
https://devblogs.microsoft.com/visualstudio/new-simpler-solution-file-format/

>And after you compile you don't get a native executable, if you wanna ship your software you still have to have your users install a runtime anyway.
Retards will reply that there is infact an option to compile to native code but that is as slow as compiling rust if not slower.
You also have the option of building a self-contained binary. This puts a portable version of the .NET runtime into the executable, rather than compiling to native code.
Anonymous
6/27/2025, 7:26:58 PM No.105724507
Screenshot from 2025-04-13 02-48-48
Screenshot from 2025-04-13 02-48-48
md5: 438eaab63c265bef212e65241d00013f๐Ÿ”
>>105724429
>Rust
.....
Replies: >>105724634
Anonymous
6/27/2025, 7:35:58 PM No.105724634
>>105724507
The strange thing is what Graydon Hoare says about his own language. I can't tell whether he likes his own language, or furiously hates what it has become and is just hiding his true views in plain sight for whatever reasons.
old.reddit.com/r/rust/comments/1gaihlw/comment/luakun9/
Anonymous
6/27/2025, 7:38:16 PM No.105724657
https://www.youtube.com/watch?v=IVK6mQn0SX8
Anonymous
6/27/2025, 7:41:41 PM No.105724704
>>105713912
>Then you end up with tons of interfaces that function more like headers in C, except that now every call is a virtual function call at runtime.
Modern versions of .NET use tiered compilation and profile guided optimization (PGO) to attempt devirtualization of interface calls. I.e. if the runtime sees that particular methods that take particular interface parameters are only ever called with a few different concrete types, it will JIT versions of those methods with the concrete types instead, and call those for the relevant cases.
Anonymous
6/27/2025, 7:51:35 PM No.105724842
>>105715061
I'm stuck with CompanyName.ProductFamilyName.ProductName.ProductVerticalName.Library.Core

I have ONE other guy on a team of 20 who realizes it's an absolute shit scheme to work with, but everyone else doesn't see the problem with it. Not even after it started causing problems with maximum path depth in Win32 filesystem APIs. In fact, the guy who invented the scheme (and is a senior high up the pecking order, of course...) doubled-down on it and told everyone to just check out the solution code to a separate partition e.g D:/code to make the path as short as possible and 'then it just works.'

KNOW - MY - PAIN !!
Replies: >>105725049
Anonymous
6/27/2025, 7:52:45 PM No.105724857
>>105715038
>all the tooling insists on autofixing/syncing namespaces to match the directory structure
You can turn that off. Iirc you can even turn it off in a portable fashion shared between your entire dev team nowadays, because it's a setting you can include in an .editorconfig file committed into the code repo.
Replies: >>105727323
Anonymous
6/27/2025, 7:58:32 PM No.105724928
>>105716120
God damn, I have a codebase that could do with having ad-hoc unions support in the language.
Anonymous
6/27/2025, 8:04:34 PM No.105724978
>>105716685
>As for overlaying structs onto a byte array, its possible, but very clunky and requires unsafe features.

Supported since .NET Core 2.1 without requiring unsafe code or clunky wrapping via MemoryMarshal.Cast<TFrom, TTo>(Span<TFrom>)
https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.memorymarshal.cast

Welcome to the year 2018.
Anonymous
6/27/2025, 8:08:35 PM No.105725016
>>105721842
EcmaScript has better localization features than .NET nowadays.
I shit you not.
Anonymous
6/27/2025, 8:11:34 PM No.105725049
>>105724842
the purpose of namespace is to avoid symbol names collisions between different libraries. this is just like optional name prefix.
encoding directory structure in namespace don't do anything.

microsoft does this too. like, there System.Collections and System.Collections.Generic. why? it's just make namespaces more annoying to use.
this is one of the rare C# team fuckups in my opinion.
Replies: >>105725156
Anonymous
6/27/2025, 8:17:22 PM No.105725122
>>105724429
>Dennis Ritchie, C, American.
C is simply an upgraded B, which Ritchie and Thompson created by reapprorpriating BCPL - a language normally used for compiler design. BCPL was invented at Cambridge by Martin Richards, a Brit.
Anonymous
6/27/2025, 8:20:46 PM No.105725156
>>105725049
there is System.Collections.Immutable namespace that contains type ImmutableArray.
so they added new namespace, bu because namespaces suck in C#, they also added a hardoced prefix to all names inside Immutable namespace. Imuttable.ImmutableArray
Replies: >>105725278 >>105725297
Anonymous
6/27/2025, 8:32:20 PM No.105725278
d433fc2123964a730fc8b028380df335cffa11278b8740dd1c077a7d442db0d0-1673750499
>>105725156
Yo Dawg, I heard you like prefixes so I System.Collections.Immutable.ImmutableArray.ToImmutableArray
>https://learn.microsoft.com/en-us/dotnet/api/system.collections.immutable.immutablearray.toimmutablearray?view=net-9.0
Replies: >>105725329
Anonymous
6/27/2025, 8:33:42 PM No.105725297
>>105725156
>they also added a hardoced prefix to all names inside Immutable namespace. Imuttable.ImmutableArray
It's funny you mention that specifically, but if the .NET team didn't prefix immutable collection types with Immutable, those types would have collided with the types from System.Collections.Generic, and type collisions suck major dick (to resolve a conflict you have to either use type aliases or fully qualify the type name). I guess the .NET team figured that if you use System.Collections.Immutable, you're most likely to use System.Collections.Generic too
Anonymous
6/27/2025, 8:37:04 PM No.105725329
>>105725278
fair, but you aren't going to type all that shit out, so what is your point?
int[] n = [1,2,3];
var immutable = n.ToImmutableArray();
Anonymous
6/27/2025, 8:39:05 PM No.105725347
>>105716120
Does that proposal propose both tagged unions and also untagged unions? I am not sure that I understand it.
Anonymous
6/27/2025, 8:52:35 PM No.105725512
>>105722387
>better than average
The "average" chess engine is already a hyper-tuned piece of software so it's a given that going beyond it will require exceptional intricacy
Anonymous
6/27/2025, 9:49:57 PM No.105726128
>>105722387
C# supports manual management like C. you can always allocate memory manually and use unamanaged structs and pointers like in C.
>void* buf = NativeMemory.Alloc(100);
>T t = *(T*)(buf + 10);
Anonymous
6/27/2025, 10:12:47 PM No.105726397
>>105724247
Lahey ya drunk bastard
Anonymous
6/27/2025, 10:23:27 PM No.105726505
>>105721942
The more I look at the top row syntax in figure 12, the more I hate it. Maybe I am just not used to it, and it does address the "right drift problem", but the syntax feels wrong and off to me. I have several first impression issues with it:
- The syntax feels less like an expression with branching and with "simple control flow", and more like it has its own kind of control flow "return", in the form of "then".
- It feels less easy for me to visually inspect whether the pattern matching is testing the patterns in an exhaustive way. There are ways to use pattern matching that enables the compiler to do exhaustiveness checking in many programming languages, and there are ways that prevents the compiler from being able to do these checks.
- The bindings introduced by "is" and "leaking" to latter parts may be OK. Some people dislike it, and Rust language developers argued about it being too implicit, most of them preferring if-let chains over "is", recently stabilized. In the discussions, they highlighted that if-let chains are much clearer that bindings are introduced and "leaked", and if-let bindings are more constrained and limited (both good and bad). On the other hand, C#'s "is" is popular as I gather it, and several Rust developers are still hoping to include "is" in Rust.

Maybe I am just not used to it.

The bottom row of figure 12 I can more easily get on board with. It can also be covered by both if-let chains and "is", and is more or less matching a specific, "nested" through structures and computations, value. It also has less "then".
Replies: >>105726515 >>105726586
Anonymous
6/27/2025, 10:24:43 PM No.105726515
>>105726505
>prevents
prevent
Anonymous
6/27/2025, 10:34:03 PM No.105726586
>>105721942
>>105726505
I should that while I have not carefully studied the paper, it looks nice overall.
Replies: >>105726595
Anonymous
6/27/2025, 10:35:04 PM No.105726595
>>105726586
*should add
Anonymous
6/27/2025, 10:59:12 PM No.105726843
>>105715015
>>105713912
>>105713899
>>105713889
> Skill issues
I give you that VS2022 sometimes can be a bitch, but mostly on massive codebases designed by retards.
> aot slow
Only if you're compiling for all the possible mobile platforms, which is expected, other than that consider upgrading your PC.
Anonymous
6/27/2025, 11:59:58 PM No.105727323
>>105724857
We have an editorconfig, but just disabling the warning isn't enough, there needs to be an option to change the style to "one namespace per project" otherwise it does more harm than good and everyone does whatever they want and one bastard can "sync all namespaces" on a project and undo what everyone else was doing.
I had to make things like that compile errors to prevent the retards on my team from just mixing and matching 7 different ways of doing things in a single file.