14 ms·
Twenty years of C# with Anders Hejlsberg [audio]
- mdrzn 5y agoLearned C# in school, I still use it today if I have to hack together a quick app or something on Windows for myself. Wish it was more used around.
- binarynate 5y agoFor context, Anders is the creator of C# and TypeScript: https://en.wikipedia.org/wiki/Anders_Hejlsberg https://en.wikipedia.org/wiki/Anders_Hejlsberg
- ejb999 5y agoInteresting - never heard of him, that I can remember anyway, over my career my three favorite programming languages were (in order from oldest to newest) - Turbo Pascal, C# and now Typescript - and apparently he created all three.
- spaetzleesser 5y agoHe certainly knows how to create programming languages that last.
- Gene_Parmesan 5y agoI had the opportunity to hear him speak about language design at an MS Build conference and was very nearly actually fanboying; my coworkers were more than a little bemused.
- int_19h 5y agoHe also did Delphi, and you can actually see quite a bit of it in the original design of C#. Even more so when you look at stuff like WinForms - someone coming from VCL would see many familiar things.
- Reitet00 5y agoAnd also the author of Delphi and Turbo Pascal.
- ejb999 5y agoloved turbo pascal a long time ago - got my professional start there - but I will forgive him for Delphi anyway :>)
- lostmsu 5y agoWhat did you use between TurboPascal and C#? o-O
- ejb999 5y agoVB/VB6, with some Clipper and Foxpro mixed in. Switched to c# instead of picking up vb.net - in retrospect a good call.
- zwieback 5y agoClassic progression - some of us came from VB Classic to C# others from C++ (at least in the Windows world). Now we're all one big happy family.
- kingcharles 5y agoEven though I grew up with C as a kid, I still prefer VB.Net over C# as I believe the code is far more human-readable and less prone to technical errors - BUT, there is just no support for VB.Net. I got stick of having to convert code snippets I would find and this year I finally bit the bullet and moved to doing everything in C#.
- drittich 5y agoSimilar route here. I went from VB classic to JScript on the server (and client, so was doing isomorphic JavaScript 19 years ago!) and then to C3 a few years later.
- 5y ago
- softfalcon 5y agoWhy does the intro ad sound like it was recorded in an Elementary School hallway?
- deleted 5y ago[deleted]
- daok 5y agoThe lack of possibility to scroll in time (to skip that part) is what bothered me the most.
- hackerfromthefu 5y agoYou can download it as mp3!
- binarynate 5y agoI think they added some reverb to Richard's voice for part of the intro and accidentally reverbed all of the ads, too
- binarynate 5y agoI just sent Carl a heads-up about the reverb: https://twitter.com/binarynate/status/1491890009674244107 https://twitter.com/binarynate/status/1491890009674244107
- binarynate 5y agoUpdate: Carl fixed it, so no more bonus reverb
- deleted 5y ago[deleted]
- mikewarot 5y ago
- loic-sharma 5y agoWhy is supporting .NET evil?
- mikewarot 5y agoIt locks you in to Microsoft (or it did back then), it's unnecessary. It serves no actual purpose, other than to support that lockin. A win32 exe will run on Windows 95 through Windows 10, for the most part. You don't need .NET for that to happen. It's a trap, in other words.
- timomax2 5y agoC# is what python programmers wish they had.
- CodeGlitch 5y agoAs a Python programmer I completely agree. Only last week I started to look into C# and the cross platform capabilities. I have to say it looks really good these days. Wish I learnt C# years ago now...
- binarynate 5y agoMicrosoft's .NET runtime and C# compiler have been open source and cross platform for a long time now. Even before then, MS published ECMA standards for .NET and C# since the beginning, and the Mono runtime and compiler for C# have been open source and cross platform since the early 2000s: https://en.wikipedia.org/wiki/Mono_(software)#History https://en.wikipedia.org/wiki/Mono_(software)#History
- aninteger 5y agoYes, of course this is true but the tooling ecosystem still hasn't made great strides over to Linux. Rider does exist but is not open source. As far as I know the debugger is not open source as well.
- onemoresoop 5y agoI suggest downloading the file locally first so you can skip over the reverberated bathroom part.
- binarynate 5y agoIf you want to skip past the intro segments, you can use a different player like the Apple Podcasts site. The actual interview starts at 10:00: https://podcasts.apple.com/us/podcast/twenty-years-of-c-with-anders-hejlsberg/id130068596?i=1000550635436 https://podcasts.apple.com/us/podcast/twenty-years-of-c-with...
- mattferderer 5y agoYou can also use their website that's linked to. Just need to hit play & than close the pop up & you should see the player which you can skip around on. Not the best website user experience but it's a great podcast, even if you're not interested in .NET. Highly recommend all their Geek Out episodes.
- intrasight 5y agoI can't believe that I've been hacking C# for 20 years
- hackerfromthefu 5y agoI know right! And before that I used Delphi from which the vast majority of the language patterns evolved! I still miss some of the wonderful power of Delphi, mainly that it was a decade or more ahead of it's time and had a community culture of quality well architected code with lots of free libraries! I remember using 'WebBroker' in Delphi 5 and running it on Apache on Windows for a startup back in the day, it really was the best web framework I've ever used and I've used literally a dozen.
- polskibus 5y agoI wish he came back to evolving C#. Progress from v1 to v5 was enormous in contrast to v6 to v10.
- dgritsko 5y agoAs a fellow C# aficionado, what do you think it's lacking right now? The main thing I really would like to see is support for discriminated unions - but outside of that, it's pretty awesome.
- binarynate 5y agoI'd love to see support for structural typing. There are some proposals for that: - https://github.com/dotnet/csharplang/discussions/164 https://github.com/dotnet/csharplang/discussions/164 - https://github.com/dotnet/csharplang/discussions/2548 https://github.com/dotnet/csharplang/discussions/2548
- polskibus 5y agoNullable references are far from what they could be. When you use them a lot, you often have to override compiler with ! because it is too stupid. I’d also like to have better support for const references as in c++. I’d like to see more powerful generics, so that something akin to partial template specialisation is possible without going through boxing and unboxing too much. With regards to safety, well rust has shown what is possible. Async/ await has introduced function colouring which is a kind of bloat. All in all there are many things that could reduce the bloat, instead of some tiny features that help with value types or to optimise some rare case.
- tester756 5y ago>With regards to safety, well rust has shown what is possible. Async/ await has introduced function colouring which is a kind of bloat. I do wonder how much effort it'd require
- jayd16 5y agoPeople call async/await function coloring bloat but I think it's exactly where it needs to be. IMO execution yielding needs to be explicit not implicit for use cases where thread identity matters. How are you going to write a UI framework if thread context can change unexpectedly?
- binarynate 5y agoI thought it was interesting when Anders mentioned that 30% of C# developers use Unity. Unity doesn't use Microsoft's CoreCLR runtime, but instead uses the Mono runtime or an AOT compiler Unity created called IL2CPP, which converts IL code generated by the C# compiler to C++ that gets compiled to native code. One of the reasons for this is that CoreCLR supports Windows, macOS and Linux, whereas Mono and IL2CPP together support every platform, including consoles. Anyway, it's interesting to me that a significant number of developers are using C# but are using a runtime other than Microsoft's CoreCLR runtime.
- DizzyDoo 5y agoIt's worth mentioning that there's now a third way C# is utilised in Unity which is via their new 'Burst' compiler, part of their wider move to an Entity Component System they've called DOTS[1]. It supports a subset of C# that gets compiled into memory safe jobs that can run safely on and spread across different threads. I'm using the Burst compiler + jobs in my full-time game project and the performance is seriously good for whenever you just need to process a lot of data. You can use Burst with both Mono and IL2CPP script modes. The go-to deep dive on how DOTS/Burst works is pretty much everything Jackson Dunstan has ever written on the matter [2] but specifically the article that digs into how IL2CPP calls Burst is interesting.[3] [1] - https://docs.unity3d.com/Packages/com.unity.entities@0.17/manual/index.html https://docs.unity3d.com/Packages/com.unity.entities@0.17/ma... [2] - https://www.jacksondunstan.com/?s=burst https://www.jacksondunstan.com/?s=burst [3] - https://www.jacksondunstan.com/articles/5251 https://www.jacksondunstan.com/articles/5251
- no_wizard 5y agoI have to say, I wonder if this could be augmented into more general applications that need concurrency or parallelism, since this sounds like an optimal way to make realtime or semi real time systems, at least on the surface
- m12k 5y agoIt's also a bit of a curious coincidence that it's a company founded in Denmark, Unity, transpiling a language invented by a Dane, C#, into another language invented by a Dane, C++.
- zwieback 5y agoI vividly remember when I started using C#, I can say that 20 years later I only feel a little bit bad about leaving C++ (mostly) behind and glad I didn't have to go the Java route.
- robertwt7 5y agoI just wish more company adopt .net instead of java, the new .net core thing is a game changer. C# is a good language, combined with the runtime that can run anywhere? it's even better. The thing is enterprise companies mostly went with the safe route which is java, or most that use .net are stuck in the old version. Hopefully it will change for c#, MS needs something for startups / enterprise / new dev to excite them to choose .net core! (despite all the bad things in the past)
- bob1029 5y agoThe new .net has been amazing for us. Biggest QoL improvement would be the self contained deployments. We do B2B software, and being able to email a customer a zip that is guaranteed to work on any windows server without bullshit has been beyond incredible. Our customers love the experience too. We switched to SQLite for persistence, so there are literally zero prereqs to an install now.
- ed25519FUUU 5y agoOne of the reasons I love Go. Does the .zip file also contain the runtime? E.g., nothing is required to be installed on the remote system?
- codenesium 5y agoYes. .net now has self contained builds. The whole deploy can be a single executable with some caveats.
- rr808 5y agoI moved from C# to Java, largely because its more widely used and has more libraries out there. I miss C# though, Java has so many silly wrinkles. Java is getting better with records and ZGC and whatever they can copy from Kotlin. The worst part of Java is Spring and super elitist programmers that seem to look down on everyone else.
- pjmlp 5y ago.NET also has plenty of silly wrinkles, and C#11 is getting a couple of new ones, see twitter storm regarding !!.
- bouke 5y ago`!!` is rather difficult to search for, do you have a link?
- wigster 5y agoi think not. not.
- ulugbek7 5y agohttps://github.com/dotnet/csharplang/discussions/5735 https://github.com/dotnet/csharplang/discussions/5735 here is a discussion about this feature.
- pjmlp 5y agoThey even felt the need to address it yesterday's community standup on YouTube. https://www.youtube.com/watch?v=Fz4hViH5bGc https://www.youtube.com/watch?v=Fz4hViH5bGc
- kaba0 5y agoI don’t know where this “copy from kotlin” meme came from. Why would an elephant copy something completely non-novel from a mouse? Records, pattern matching and the general direction java is going in are standard ML features, dating decades back. But even then, Scala has been doing nigh everything kotlin did much earlier.
- VikingCoder 5y agoMy uncle was a developer, and every time he got a new Turbo Pascal / Borland Pascal / Delphi compiler, he would give me his old one to learn from. Totally got me started in my career.