7 ms·
I’m in the process of porting a bunch of go code to dotnet core 2.1 on AWS lambda. I’m on a Mac using vscode. I never installed mono, just the dotnet sdk. Hone
by smashedtoatoms 8y ago
I’m in the process of porting a bunch of go code to dotnet core 2.1 on AWS lambda. I’m on a Mac using vscode. I never installed mono, just the dotnet sdk.
Honestly, I’ve been amazed at how good the tools have been. For cli and serverless dev, it’s been surprisingly great. It’s fast. C# is decent. The cold starts are not as fast as go, but not terrible. Memory usage is low.
It’s been a legitimately positive experience. When I started the port I was skeptical, but it is legit cross-platform. I would consider starting a project in it for lambda... I never thought I’d say that about a MS product.
Something over there is different, and I suppose it has been for awhile. I think it could get a lot more popular as non-ms devs realize that MS has built dotnet to work really well on Mac/Linux cli, far away from the weird tightly-coupled Windows/VisualStudio-hit-f5-to-do-the-magic-with-the-15-billion-auto-generated-magical-xml-files world. It feels well engineered instead of thrown together, which is nice.
Also, So far, I’ve pulled in no external libs other than the AWS sdk for the port either. C# with linq is a pretty complete toolset. I’m sure I’ll pull in more as I get more familiar, but it’s been solid on its own. Really nice surprise.
- spiderPig 8y agoDevdiv (org that builds .NET, C#, VC++, VS etc) has always been one of the top notch organizations within Microsoft with great engineers (although from what I hear, some of them have left recently). Nonetheless, as someone who now works at a company with an open source tech stack, I sorely miss the tooling I had when I worked at Microsoft.
- pjmlp 8y agoC++ belongs to WinDev, hence the whole politics WinDev vs DevTools, the torpedoing of Longhorn and WinRT.
- arethuza 8y agoI actually find the "f5-to-do-the-magic" experience in Visual Studio Code to be preferable (TypeScipt project with Mocha tests) to the Visual Studio experience :-)
- MarvelousWololo 8y agoI'm complete new to C# and Java but I'm looking into them to choose a new language to learn. I'm mostly worried about memory consumption since I often use a cheap $5 VPS. Would you happen to know which one would be a better fit for my use case? Thank you.
- kankroc 8y agoIf your end game is working professionally just check what is more in demand in your geographic location. Personal opinion C# is a lot better than Java. You have less boilerplate code (getter and setter in 2018, really?) and lambdas are great. But really both are similar so you can pretty much just start with one and still find your way in the other.
- lockje 8y agoHonestly, people still using the getter and setter argument in 2018 as a reason to pick a language should not be taken seriously. Indeed Java has more boilerplate, but honestly I've never been bothered by it (as you can generate most within your IDE) and because its explicitly written down it can make code more readable. And Java also has lambda's.
- wernercd 8y agoYeah... the bigger reason to move away from Java isn't Getters and Setters... The bigger reason is one word: Oracle Whether you go towards C# or other companies... Oracle is a horrible company.
- Accipitriform 8y agoOracle is only one player in the Java ecosystem. OpenJDK owns just about everything now, and most organizations are going to get support somewhere besides Oracle. There's been some good recent innovation with Java, and I think it'll continue due to the new accelerated release schedule. That reminds me, I want to experiment some with AOT compilation and also the new GC plugins.
- dev_north_east 8y agoAs someone eager to start (properly) learning C#, is doing so on Mac actually viable? It sounds like it from your post but would be eager to hear your thoughts (I only have a Mac at home to practice on).
- CyanLite2 8y agoMac + VSCode is my daily driver.
- robodale 8y agoI'm using a 2015 Macbook Air + vscode. Builds are fast, easy to debug code, even spinning up a local webserver to test my .NET MVC web app goes fast enough.
- alistairSH 8y agoYes. VS Code is probably the easy button to get started. With a few plugins, it's ready to write, build, and debug C# projects. I haven't built any production code in VS Code or .Net Core yet, but have started analysis for converting legacy .Net applications. I've also had interns doing some prototype work in .Net Core using VS Code, both on Macs and PCs. So far, so good. I also used VS Code to do some React development. That worked out well also. At this point, I'm hoping to get the legacy solutions converted in the next year or two, ditch my MSDN subscription, and move to VS Code full-time. Right now, I'm on a Mac, and running VS in VMWare.
- neurobashing 8y agoI've been doing C# on a Mac w/ Rider and it's been a delight. There's a few rough edges (using Windows/DOS style paths in the csproj breaks my muscle memory) but it's great.
- oaiey 8y agoTotally. .NET Core SDK, VS Code and the C# VS Code plugin are enough.
- uptownJimmy 8y ago.NET Core on Mac with Rider has been great here.
- albertzeyer 8y agoI'm curious: what was the problem with Go?
- kodablah 8y agoI'd be curious too, but one place might be cross-platform easy runtime shared library use. Go with non-Windows "plugins", or poor c-shared support w/ crappy Cgo that doesn't even work with MSVC, is very bad in this area. Of course I watch all the GitHub issues addressing these with hope, but it's clear this story in Go is terrible.
- smashedtoatoms 8y agoThe domain experts all write C#, and I don’t have strong language preferences, so it’s easier for me to switch to C# than it is for them to switch to Go. There isn’t a real technology reason, it’s just team ergonomics.
- oaiey 8y agoAnd that is very smart decision making. Professional!
- morrbo 8y agoI'm a huge C# advocate but we actually went the other way. Regardless of the tooling etc. we still have to use Golang for mission critical stuff. This is mainly due to the cold start times you mentioned - mainly the "first request" problem C# has with web related requests. I've been keeping up with the latest developments, and it seems that they're finally starting to address the problem with tiered compilation stuff, which is fantastic. However, for now, waiting for 5+ seconds for a simple controller method to fully complete on a first post - with no way of auto-warming up (without using major hacks) on startup is just not acceptable. Again, I really love .net, and contribute a fair bit to Signalr (core) myself, but feel this would really need to be addressed in an easy-to-integrate manner before it can be an absolute top tier language. They're addressing the other elephant in the room and providing a single-execuatable runtime-agnostic deployment option soon as well...which is amazing! Overall though, for a language, you can't beat C#/core in my opinion and would 100% recommend it.
- sebastienros 8y agoYou can usually cut the cold start performance in half by enabling Tiered Compilation. It's just one parameter in your project file, or via an environment variable. Disclaimer: I work on performance in the ASP.NET team.
- morrbo 8y agoSaid that in the post above :) however it doesnt seem to impact HTTP requests or requests to a signalr hub for the first time after boot. We've had tiered compilation enabled since it came out as an option, but the first requests are still dog slow
- ajryan 8y agoWhat are you disclaiming?
- malkia 8y agoOh, please - https://dictionary.cambridge.org/us/dictionary/english/disclaimer https://dictionary.cambridge.org/us/dictionary/english/discl...