Live data from Hacker News

The Weakness of the .NET OSS Ecosystem

aaronstannard.com

171–180 of 215 posts

Re: The Weakness of the .NET OSS Ecosystem

#171
post #79

Re: the Akka.Net stuff, there is indeed an implementation of an Actor model framework - Orleans. Now it was developed in house at Microsoft and hasn't gotten a lot of attention from developers other than Microsoft employees, but it's there. https://github.com/dotnet/orleans

It hasn't gotten a lot of attention because Orleans forces you down implementing odd boilerplate and static interfaces which feels very un-actor like.

What boilerplate is that? Grain state interfaces are better now, and the Roslyn-based runtime code generator (https://github.com/dotnet/orleans/pull/528) is so close to being merged (so you don't have to include anything in your .csproj, even though that's automatic with the NuGet packages).

Whatever it is, maybe we can fix it?

Re: The Weakness of the .NET OSS Ecosystem

#172
post #142
post #17

Yes, the author is correct. There is a distinct lack of OSS in .NET. I've been trying to find a project to contribute to among the graveyard on Github. However, I think the author falls flat explaining the why. I have a few thory on this. For so long C# has been a walled garden of closed source software. This closed source software, for the most part, works damn well. Why reinvent a square wheel when there is a shop…

> There is a distinct lack of OSS in .NET. I've been trying to find a project to contribute to among the graveyard on Github. However, I think the author falls flat explaining the why. Simple, Microsoft killed it with the transition to .NET. People have forgotten just how extensive both the open and paid ecosystems were around Visual Basic 6 circa 1999-2001. Those ecosystems were huge --they absolutely dwarfed open s…

The switch from older (VB6, etc) model to .NET could be compared to the switch from Python 2 to 3, only MS didn't wuss out and actually made the braking change instead of dragging everything out. You can call it "stabbing". I'd call it "necessary progress".

Just because an ecosystem is large doesn't mean it's good. I once tried to switch the automation in our team from batch files to Ruby. Huge mistake. Try finding any Ruby gem that: works, has the functionality you need, is well documented, and doesn't rely on Rails (honestly, I don't want to load a whole web framework to figure out a recurring schedule). Went with Powershell in the end and never looked back.

Re: The Weakness of the .NET OSS Ecosystem

#173
post #86

Earlier quoted context omitted.

"Microsoft's behavior for the last 10-15 years" The 'bad stuff' from an OSS point of view is, generally, longer ago than that. - "Embrace, Extend, Extinguish": 1995 - US vs. Microsoft Corp: 1998 - Halloween Documents: 1998 Scraping under the 15 year bar: - Microsoft vs Sun settlements: 2001-2002 - Ballmer "Linux is a Cancer": 2001 SCO vs IBM was 2003, so I guess fits into the '10-15' ballpark, but I think "over the l…

> Can we begin to move on a little? Why? Why should we forget that the entire company (currently) is funded by the crimes of the past? Are they a person who made mistakes when young and now deserves a second chance? I'm not anti-capitalistic but I'd never deal with, for example, a consultancy that cheated me in the past even if they had all new consultants and managers - some things just don't change. And even if...…

Only, Microsoft's competitors are not their customers.

Re: The Weakness of the .NET OSS Ecosystem

#174
Hmm... I only experienced one web-technology which was proprietary software and had a strong 'opensource' community, being flash. Always seemed to me, developers using proprietary technologies tend to not share their stuff.

Re: The Weakness of the .NET OSS Ecosystem

#175
post #85
post #9

Earlier quoted context omitted.

IKVM is slower than JVM and more error prone, so for big class of work why bother if you can directly use the JVM ?

Yes and I completely agree, but a slow AKKA seems easier than rewriting if from scratch in C#. e.g. seemed a smaller investment to me.

Akka.net wasnt really intended to be a complete port from the start, it was a weekend hack from my part that then grew into what later became akka.net when Aaron joined (akka.actor and akka.remote first). Then things took off and it got a life of its own. Now there is an entire sub-ecosystem growing around it in terms of persistence providers, testkits and dependency injection lib integrations. AWESOME to see :)

Re: The Weakness of the .NET OSS Ecosystem

#176

Earlier quoted context omitted.

It's got some severe built-in limitations. Firstly and most importantly, there is no support whatsoever for the proper tail calls (and F# is using the .tail prefix quite a lot). Secondly, no stack allocation (value types in .NET). Another thing which may harm optimisation significantly (although not sure if F# is using it - but the other functional languages most definitely would have benefited from this) is a very l…

Thanks for clarifying. I think tail call conversion to iteration for Java bytecode could be added to a JVM implementation without changing the spec, and you could also do it when converting F# to bytecode. Apparently it's on the todo list but not high priority. Stack allocation is trickier if it's specified in F# code, because it isn't part of the VM spec, but automatic stack allocation for Java has been demonstrated…

> I think tail call conversion to iteration

You cannot convert a tail call to an iteration in a generic case.

Consider the following:

`let f g x = g x`

Here, call `g x` is a tail call, and you've no idea what `g` is, so you cannot statically inline it or convert to a loop.

> JITs are free to inline beyond that as much as they want

JITs are primitive and do not have much time to do anything interesting. Inlining is very important alongside with partial evaluation - which is very heavyweight and must be done statically.

Anyway, without proper tail calls inlining on JIT level won't help much.

> it's fundamentally impractical

Everyone who ever tried implementing any ML-like language on top of JVM failed miserably.

Re: The Weakness of the .NET OSS Ecosystem

#177

Earlier quoted context omitted.

I've worked on open+closed source in enterprise startups with people that come from both MSFT- and Linux-centric worlds respectively. The MSFT centric-people tend (not all) poo-poo open source as a complete waste of time and/or lack of business savviness (helps competitors too much). There is some open source contributions in such shops, but usually only if it helps (and doesn't seem to hurt) the bottom-line. PS: Unf…

I understand your feelings but legally speaking the only abuse of that kind would be taking GPLed software, modifying it, distributing it and not sharing it back. If the software has been licensed with BSD or similar licenses that don't require to share modifications, then the original developers are perfectly fine with not seeing anything coming out from those corporations. Their choice, no abuses.

Absolutely. It is in their own interest to share contributions upstream. If they don't, they are forced to re-apply their patches over-and-over or just not upgrade.

Re: The Weakness of the .NET OSS Ecosystem

#178

I think it is important to realize that the .NET OSS ecosystem is not something that has been around for a long time. In the F# community, it truly started working as an "OSS ecosystem" only a couple of years ago - and the rest of .NET is following - and I'd say it is only starting to really exist now. Although .NET has been around for ages, people are only learning what OSS means and I think the F# community is lead…

What I'm seeing in all these comments is that there should be a better OSS ecosystem in the .NET community. I think the problem here is that we're trying to compare the Java OSS ecosystem with the .NET Framework community. Essentially .NET isn't the language here.

I think that the main problem is that developers stick to what's given in the .NET framework, instead of building awesome things outside that.

Re: The Weakness of the .NET OSS Ecosystem

#179

I asked on Twitter long ago for any prominent examples of open source software that originated on Windows and transitioned to other platforms. I think after some discussion we may have come up with an example. Maybe. I certainly can't recall what it was.

Reactive Extensions and ReactiveUI.

Re: The Weakness of the .NET OSS Ecosystem

#180

Earlier quoted context omitted.

You're not wrong. People who don't work in "enterprise" or even in small/medium business IT shops will never know it though. However, I think the downvotes are probably a reaction to the hint of attitude which suggests that you're not overzealous about OSS.

I wonder why, then, the enterprise-by-any-reasonable-standard place I'm currently consulting is moving away from .NET and Windows to a polyglot microservice architecture on Linux. Surely it isn't the severe drag of dealing with C# and the incredible mess of .NET deployment in a rapidly iterating environment (and, to be fair, this is also in part Windows's fault, there's no good disposable-server model for Windows in…

"polyglot microservice architectures" eh?

Hey Bill! We've got 20 years of legacy code that handles everything from Arrivals Boards to seat assignments in 1627 different aircraft configurations. We got a room full of .NET devs downstairs.

How about we re-write everything in multiple languages! Remember that time we went down for two days because we muffed up our NET 2.0 to 4.0 migration? Imagine how much fun we'll have when we're doing it with Python, Ruby, Rust, Swift, Javascript and Go!

We'll break out the seat assignments in Go. Do the signboards in Python. Web app for refunds in Ruby. I don't know what Rust is but one of the guys downstairs has a book on it with a woodcut of a beaver on the front. Think of all the time we'll save!

Plus our consultant says it's so much easier to spin up Linux VMs!

"Bill, it's the same damn button to spin up a Linux server anywhere. Even on Azure. You just check the Penguin instead of the four squares first. And our deploy scripts work just fine. Even our stupidest apps from the 1990s are one binary file and one text file now. And nobody but Tim is allowed to change the text file."

Post reply on HN