5 ms·
Really surprised on your comment when it has so many amazing things going for it. - state of the art language features from .net (linq, async&await,powerful ge
by pnloyd 8y ago
Really surprised on your comment when it has so many amazing things going for it.
- state of the art language features from .net (linq, async&await,powerful generics)
- Multiplatform runtime and SDK, even development is great via Vscode + omnisharp.
- MIT license
- llvm backend via Ryu jit compiling straight to machine code (Wow!)
- unparalleled language server capabilities via Roslyn's API, even available on Linux / Osx via omnisharp.
And more stuff I'm not thinking of. Almost everywhere you turn .net is the toughest beast in the arena if you exclude ecosystem. I don't see how you could possibly think it doesn't have a fighting chance.
- maxxxxx 8y agoC# is great, no question. The Roslyn stuff is also great. But if you also need other libraries or systems then things get thinner. For most cloud providers that aren't called Azure the .NET support usually is behind. A lot of popular libraries are either written in Java, Javascript or Python with maybe an outdated unmaintained .NET wrapper. Most CI/CD pipelines are not geared towards .NET. To me MS is a warm cozy place but the open source world is more chaotic and much richer.
- scarface74 8y agoI'm using AWS, the SDKs for the most part are in lock step with Boto3. The SDK for Python. There are a few gaps like troposphere for cloud formation. What do you mean most CI/CD platforms aren't "geared" for .Net? Which CI/CD platform are you using?
- maxxxxx 8y agoI was looking at Jenkins a while ago. All samples were for git and PHP, JavaScript and others. .NET, TFS and windows just felt like second class citizens. You can make it work but I feel that the main work is done for things other than .NET. Same for AWS. C# is a fantastic language, .NET framework is good but in my view the ecosystem is too weak.
- scarface74 8y agoI’ve seen companies do it for years. There is both an MSBuild plug-in and an Nunit plug-in for Jenkins. I really hope no one in 2018 is using whatever Microsoft’s old version control system is with TFS. TFS has had first class support for git for years. As far as AWS, using CodeBuild and CodeDeploy, AWS has provided a .Net Core Docker Build image for Linux for awhile (https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html https://docs.aws.amazon.com/codebuild/latest/userguide/build...) They just recently added Windows support for CodeBuild, they have a prebuilt image for .Net Core for Windows and they have instructions for how to create a .Net framework image (https://aws.amazon.com/about-aws/whats-new/2018/05/aws-codebuild-adds-support-for-windows-builds/ https://aws.amazon.com/about-aws/whats-new/2018/05/aws-codeb...) I had never used Docker before and I was able to create the .Net Framework Docker image following their instructions. For deployment, AWS has a code deploy agent for Windows and Linux. There is no “support” for any language. Just a yml file that you use to specify the batch files/Shell scripts you want to run during each stage. Actually the same is true for CodeBuild. You just specify the commands you want to run in a yml file and the output srtifacts.
- maxxxxx 8y agoSure you can make things work. My original point was that if I had to start from scratch I wouldn't use .NET. What would be the advantage of using .NET over open source stacks? I just don't see why I would want to do that.
- scarface74 8y agoYou "make things work" with .Net the same way you "make things work" with any other language. In the case of Jenkins, you choose the correct plug in, in the case of AWS, you choose the correct Docker image.
- adambard 8y agoCompared to popular open-source options like Python, Javascript, and Java: - Linq is great but less unique than it once was, and almost everyone has async and await (or some equivalent) now -- javascript & friends and python almost exactly, and Java has a wealth of options in this arena. - .NET is "multiplatform", but clearly second-class in terms of tooling and perf on non-windows platforms. - Congratulations on the open-source licence? - This one is legit, but other languages do some pretty interesting stuff too - VS might be ahead in this regard, but Java IDE's aren't far behind, and even the dynamic languages are starting to get really impressive tooling. I have used and liked .NET, but I have no need to pay the premium it imposes. .NET is just another very capable platform among very capable platforms -- and then throw in the single-ecosystem thing.
- pnloyd 8y agoCongratulations on the open source license because.. > Compared to popular >> open-source << options like Python, Javascript, and Java: Even in your comment you can see there is still that stigma that separates .Net from the rest of the languages. .Net core has many non MS contributors. It truly is a project in the spirit of open-source.
- scarface74 8y agoPeople who think Linq is "less unique" think of Linq as just pretty syntax to work with collections. No other language that I'm aware of has duplicated the fundamental power of Linq -- expression trees. Expression trees allow you to express your query logic in Linq and let a provider at runtime translate that expression tree to SQL, MongoQuery, REST calls, etc.
- WorldMaker 8y agoWell, C# LINQ inherits laterally from F# which pulls it from a long tradition of ML languages, which in turn inherits it from granddaddy Lisp and it's OG code-is-data-is-code principle. I agree that most people that think of LINQ as "just another set of collection functions" miss the "code-as-data" bit that can make it truly shine, but .NET isn't the only place that can be found. The most unique thing about it is that C# was the first ALGOL descendant deigning to add some modest code-as-data chunks to its compiler. ;)
- scarface74 8y agoI am very much a .Net fan and have been using it for most of my work for the past 10 years and with .Net Core, I can leave Windows without leaving .Net. Technically, I think .Net Core is better than the reasonable marketable alternatives in every way. But, when you look at the jobs that are out there, while there is no salary difference between .Net and NodeJS, at least in my market, there are a lot more jobs from well funded small companies for Node. Besides, JavaScript isn't going anywhere because of the web. I plan to stay up to date on C#, but also add Node to my tool belt - just to increase my options.