#lambda's rambling
Explore tagged Tumblr posts
lambdas-interests · 6 months ago
Text
i like learning and research but mental health bad and feeling always behind
8 notes · View notes
navsstuff · 7 months ago
Text
Au where everything is the same but they kept this proposal. I wanted to see suspenders man (⁠˘⁠・⁠_⁠・⁠˘⁠)
Well I've been meaning to draw this for years now, finally got round to it! My take on the uniform designs; If they just didn't have to wear all white...
Tumblr media
If just they didn't have to wear all white in all occasions but death*
Black symbolising death (at least that's how I'd interpret it), the kids only being able to wear something different as a treat or to foreshadow an internal funeral in Isabella's mind + a hat to shelter from Him (or god, I guess. ) is a stunning decision I'll always praise
Tumblr media Tumblr media
Im also glad for the choice of architecture, use of candles and lanterns yet have futuristic technology. Even if it was a bit silly at first watch (you can have big ass screens and headphones but not a light switch? Quite funny)
Season 2 did us way too dirty but at least the boys got boots! I'm such a fan of season 1 boots choice and it's quite disappointing (but understandable) how the boys got a more stereotypical wear
Tumblr media
Sheesh. The manga really is better
They look a little...off ^ but I'm glad for the manga and the designs after grace field, they got something other than white that doesn't directly link to death
Cant really expect much if they're on the go though! That's for sure. Keeping their button ups was a great choice, too
Tumblr media Tumblr media
Norman tho.... Norman and his suit? It's so so so good. Makes him look older, matured and dependable. Business man through and throughout <⁠(⁠ ̄⁠︶⁠ ̄⁠)⁠>
Compared to Barbara, Cislo and Vincent, he really does come across as Boss, leader and someone they really look up to (to a dangerous degree)
Keeping himself prim n proper to feed off their God and superiority complex towards him. Barbara doesn't exactly put much effort in her clothes, that explains her brash personality
He's subconsciously wearing black and white despite them having some clothes with colours. guilt? Lambda squad got tortured physically, chained to the wall (thank you S2 I guess) while he did not..
Norman depriving himself from some joy and keeping his image high. at least that's my takeಡ⁠ ͜⁠ ⁠ʖ⁠ ⁠ಡ
Tumblr media Tumblr media
13 notes · View notes
mechahero · 2 months ago
Text
//Fun thing about doing the bio included in the last post is that the premise for it was "what if Lambda did get to fill it out like everyone did but he felt the need to lie about a couple of things so he didn't come off like a complete lameass to no one in particular and ending up looking like a lameass anyway".
2 notes · View notes
windor-truffle · 3 months ago
Text
I remembered Major Victoria not really playing much of a role in the story but I thought I had just forgotten some of her dialogue... nope, she only has 5 lines of very generic dialogue during the coup at Barona Castle 😭 canon did you so dirty girl imma try to give you some relevancy okay???
#dolphin noises#wips#2hcb1#back to tumblr posting bc i forgot how much discord's format scares me ._. im too introverted to figure out how to say things in a server#anyway victoria tho. canon LITERALLY just made her a pretty face we know so little abt her 😭#other than she seems a bit prideful and strict and has this tsundere denied attraction to malik. that's all ive gathered so far 😅#i hope it's not weird that im just flatout inventing an actual motive for why she fights against richard in my long fic 😅#at the moment ive decided she only joined the knights to protect and serve the citizens of windor not some arbitrary bloodline#she's honestly kinda based for hating the monarchy in general. they just drag their citizens into personal power feuds to use as pawns#and now the prince has brought an invading army against his own people. how utterly selfish of him.#lobbing this at richard mid-coup definitely rattles him as he already feels bad abt dragging asbel and sophie into this#but at the same time it's cruel of her to say 'you cant have your justice bc it inconveniences the rest of us go live in exile or smth'#like richard didn't ask his uncle to murder his father and drive him from his home with the promise of death should he return.#asbel has to point out that he's richard's friend not his pawn and he WANTS to fight for justice on richard's behalf#partly bc the alternative is to leave a man who'd do anything for power in charge of the entire country#and partly bc richard is a citizen of windor too and asbel wants to protect him alongside everyone else#they all want to end this w as little bloodshed as possible. lambda/cedric do not make this possible but that's beside the point 😅#victoria is also a little hypocritical bc she's ALSO seeking revenge for malik who is presumed dead atm and she blames richard for that too#as an example of a tragic casualty of his petty family quarrel. throwing away the lives of good people or hiding behind them.#SHE fights for herself. nevermind that the royal guard is also on her side bc they share a cause thats DIFFERENT from what richard is doing#anyway im just rambling in the tags rubberducking this plot point bc victoria is introduced in ch 5 AKA the one i still need to finish 😅#i need to make sure im foreshadowing this properly. if canon will give her nothing i'll invent smth relevant to my own plots and themes 😤
2 notes · View notes
404-art-found · 1 year ago
Text
Tumblr media
I keep forgetting to post this acrylic painting of Lambda (and a "horse"); I'm still not pleased with it, but it's not like it's ever getting finished.
The earliest photo I have of this guy is from September 26, 2023; the latest, November 8, 2023. I never did finish it nor will I ever, because this painting completely vanished over Thanksgiving break from my school's art closet and I have zero clue where it went.
Apparently over the break there was a leak (rainy weather; the building had multiple leaks throughout the month) in the closet and there was a good inch of water over the floor, including where I normally rested this after working on it. So, in all likelihood, it probably got water damaged and tossed out. Funny how that happens to the painting of my very water/sea-oriented OC.
I am sad of course that it vanished; hell, someone could've stolen the thing. I'd rather it got water damaged and tossed out than stolen, honestly; fits Lambda better. But since I felt like I was going nowhere with it, resigning myself to the disappearance didn't mortally wound me. But fitting, I suppose, that the last time I saw this was a day before my birthday, and he promptly up and vanished and probably got water damaged.
So, enjoy all that remains of this painting of Lambda: Progress photos.
Tumblr media Tumblr media Tumblr media Tumblr media
18 notes · View notes
insertcleverurl · 2 years ago
Text
at the beginning of Black Mesa's Residue Processing, I've decided to start carrying a Bucket around everywhere. Gordon's had it pretty rough and, famously, Buckets are known for their grounding and reassuring properties.
Tumblr media
[ID: A bucket being carried through the second map of Residue Processing, a factory for grinding waste. /end ID]
8 notes · View notes
once-in-a-half-life · 1 year ago
Text
so I study translation and interpreting, and there's two types of interpreting, consecutive and simultaneous... in simultaneous the interpreter translates at the same time as the speaker (very difficult and exhausting) and during consecutive the interpreter translates after the speaker is done saving a few sentences or giving their whole speech, and he has time to take notes and stuff. But because there is very little time, we don't write whole words, but abbreviations and symbols, which can look like this.
Tumblr media
(and yeah the list is in german because I'm german, lol)
so we were looking at this list of notation symbols in class and suddenly a student raises her hand and asks "why is the symbol for freedom a lambda of all things?" The teacher had no answer but...
Tumblr media
(yes, Freiheit is the german word for freedom.)
It all made sense to me. what else would be the symbol for freedom? xD
3 notes · View notes
nniiqs · 1 year ago
Text
i havent cleaned it up at all like i said i would but heres my artfight page anyway in case some of yall wanna attack me once it starts i guess
4 notes · View notes
insertpinkchiphere · 2 days ago
Text
Tumblr media
@anestofmuses asked- Truth- do you feel like it's easier or harder having sex or kink with Yuki due to him being a sex worker and thus, more experienced? TRUTH SERUM TIME !  (accepting!)
Tumblr media
"I mean, I guess?" The cyborg shrugged. "I don't really care about the whole uh, thing, he does. That ain't really much of my business."
Not quite an actual answer, if the tug at his brain indicated anything. Lambda's jaw clenches, fingers digging into the fabric of his pants. He clicks his tongue and sighs, forcing himself to go slack in his seat.
"I think it's more like, it's easier to have it with him 'cause he makes things so, I dunno, comfortable? The only problem here is with me."
1 note · View note
gyeomsweetgyeom · 2 months ago
Note
i’m such a sucker for sulky jealous jae, so can we get sweets tutoring new incoming brothers (jisung?) and he has a lil crush on her like haechan did, but it’s sweet and innocent, and she sees him as her baby, a sweet younger boy to help out, but to jaehyun he’s a jealous boy bc some little new kid is getting sweets attention
Sweets 🤝 You guys
causing Jae stress
. ݁₊ ⊹ . ݁ ⟡ ݁ . ⊹ ₊ ݁.
[3:01 pm]
(cw: f!reader, threats of violence)
Fratboy!Jaehyun wouldn't have ever thought that he'd be jealous of a freshman. A pledge. A dumb one at that, yet here he was, jealous of Park Jisung. Some pledge that he was hoping would fail every test set before him. Recite every house on Greek Row? More like, recite the address of every school in the city. Recite the Greek Alphabet? Well, why stop at just Greek? Why not every other Mediterranean language while he's at it!
Jaehyun knew that Jisung failing wouldn't be the case though. Stupid Jisung who had been studying with you and stealing your attention for a while week now, so there was clearly no way he was going to fail. He could hear your gorgeous voice now, repeating all the Greek letters in the alphabet, pausing so Jisung's annoying, grating voice could repeat them.
He watches you from the kitchen where you sit cross legged on the nice rug the Nu Chi girlfriends had picked out with Jisung sitting adjacent to you. You smile, far too warmly Jaehyun thinks, at Jisung, "alright now you try."
Jisung blushes, ducking his head as he begins to repeat the alphabet. Even Jaehyun has to admit that he does pretty decent until this little dummy says, "kappa, lambda, M, nu..."
Your giggle rings through the air as you stop Jisung with a gentle hand on his shoulder. He can see Jisung's shoulders raise with bashfulness and his cheeks flush all over again, turning even brighter red as you tell him, "oh, you're just the cutest thing ever! Alright, I know it looks like an M, but its actually mu. You'll be fine though, you just have to recite the letters, not identify them."
Jaehyun can't help but zero in on where your hand touches Jisung, your words echoing in his head, 'cutest thing ever!' How is this scrawny freshman even cuter than your own boyfriend? If anything, it's your fault that he's smart now! He can go back to being dumb if that's what you think is cute! Fine! He'll fail his business classes that he needs to graduate. He'll lose all his muscle too, but you can't complain when the abs are gone or you have no more bicep muscle to bite! You've forced his hand!
Jisung ducks his head nervously, "ha, thank you, Sweets. I-I'm sorry, I know I'm just a pledge. Is it alright if I call you that? I can call you by your name if you'd like. Maybe Sweetheart, or um- I've heard Jaehyun call you Sweet Girl. I mean, that sounds a bit intimate, and you are very sweet. And a girl. I think you're one of the sweetest girls I've ever met and you're really pretty- um. I need to shut up now."
Your face falls into a pout as coo, hands reaching out to squeeze Jisung's cheeks. Jaehyun feels bitter envy bubbling in his stomach. You have only ever squeezed his cheeks like this like four times! That's not even a full hand's worth! And you've been together for like two years now! His body is just itching to move across the room and punch Jisung for flirting with you. He can at least flirt well, it's what you deserve at the very least...
However, as the mature senior that he is, Jaehyun doesn't resort to violence. He knows that you wouldn't choose Jisung over him. You've told him that you just think Jisung is cute like a child, and Jisung is shit at flirting anyway. There's no way his nerdy, awkward, bumbling rambling would ever convince you to leave your Adonis of a boyfriend.
Jaehyun sighs quietly, refocusing his thoughts as he listens to Jisung recite the alphabet slowly, his eyes staring at the ceiling as he tries to recall. As jealous as he feels, Jaehyun also feels a little proud. You're going to be such a great teacher. He knows it. You're doing such a great job helping Jisung, probably employing a bunch of methods from your classes that Jisung hasn't picked up on. Maybe not cooing at your students and squeezing their cheeks... but he knows you mean well.
Jaehyun nearly jumps out of his skin, when he hears, "want me to kill him?"
"Geez! No, Haechan! What the hell is your problem?!"
404 notes · View notes
risestarkiss · 1 year ago
Text
Nicknames
Rise Ramblings #351
One of my favorite things about Rise is the utilization of nicknames in the show. This is the first iteration of the TMNT that really dived deep into nicknaming the boys. ❤️🧡💙💜
Also, the fandom has come up with quite a few great names of their own!
I wanted to list off some of the names from the show, some names I’ve heard around the interwebs, and some of the ones I’ve personally made up.
(Yeah. Those get a little out of hand. I’m apologizing from now. 😌)
Tumblr media
LEONARDO: Leo Nardo Leon Neon Leon Primetime The Blue One Baby Blue Bluey Cyan Blue Boy Lee Pepino Fruit Ninja & Blueberry (I’m sorry. 😞)
Tumblr media
MICHEALANGELO: Mikey Micheal Miguel Mike Magic Mike Orange Orange Pawn Orange Peel Doctor Delicate Touch Doctor Feelings Doctor Positive Doctor Rude One Love Angelo Angie Angel & Alan (I’m sorry. 😞)
Tumblr media
RAPHAEL: Raph Raphie Raph-a-roni The Red One Big Red Red Rover Red Reign R-Dawg The Red Angel of Preventing Harm Raphela Ella Ellie Strawberry Strawberry Jam Strawberry Cupcake & Cinnamon (I’m so sorry. 😔)
Tumblr media
DONATELLO: *takes a deep breath* Don Dee Deedee Dondon Donnie Donnie-D Donald Donna “Don, I tell you.” Dynamite Don DonTron Donathan Donnifer Donstantinople Don Stasinopoulos Dontertelli Don Tortellini Donatelli Spinelli Don Quixote Donkeytello Don Jamba Lambda “Don, a fellow.” *takes another breath* Vomitello Othello Othello Von Ryan ‘Thello Tello Hortense Mr. Science Bootyyyshaker9000 Alpha-Bootyyyshaker-9000 The Funny One The Purple One Purple Purple Knight Purple Boy Purple Jam Purple Jambalaya Grape Jelly Grapes Ube Smarts Brains Eyebrows & “The scientist formally known as, D.” (I will not apologize for any of these. Fight me.)
Bonus: DUOS! Raph & Don: Brains & Brawn, Strawberry Jam & Grape Jelly Leo & Raph: Sunrise Duo Mikey & Raph: Sunset Duo Leo & Mikey: Baja Blast, Portal Pals Leo & Donnie: The Disaster Twins & Double Trouble Donnie & Mikey: Smarts & Crafts, PB&J
Are there any that I missed? 😁
1K notes · View notes
lambdas-interests · 2 months ago
Text
Tumblr media
trying to process new contents after sitting the first exam earlier this week. always trying to organise things in my mind somehow !
3 notes · View notes
sheepasture · 4 months ago
Text
A friend asked a question so I felt like adding to it under this post would be rad "anyone's horns in particular or just whatver ones she could grab thatd fit" Yes indeed! So the Lambda family is different breeds and generations mixed in but the current era that Lambda resides from are Hebridean so most her specific family has four horns. She took a pair from a late father (he wasn't really present but he was alive) so they aren't noticeable seen as "missing" since a pair is there. Only those who go looking specifically for his information would notice, but he was never popular nor had good wool so nobody cares.
---(talking about one of the other timelines with Lambda---
In the timeline where Lambda never goes to the ship immediately to strangle her sibling Bicorne, she continues to be raided under the restrictive hand of Diantha (biological grandmother but raised with her as her mom) and Lambda takes Diantha's horns as her own when she starts running the family.
---about tagging sys characters--- I think I'm going to use their full names since I use things interchangeably. Some people have codenames but they aren't always being used in the current timeline so its better for clarity. I'll make another post talking about everyone's names.
Starting with Lambda, im either thinking that she was born with stunted horns or no horns at all.
She feels insecure about this fact. The Lambda family, when people die ~~they are killed~~ their horns are removed and hung in a hall to display their family tree.
Having no horns/little horns is seen as inferior so Lambda stole a pair off the wall and wears those.
Meanwhile I'm actually thinking Bicorne cuts off their horns for convenience so I can imagine the siblings having that conflict of the importance of cultural horns.
1 note · View note
mechahero · 1 year ago
Text
Tumblr media
//Let's also not forget the discourse that would be "hurr durr trans character existing bad".
8 notes · View notes
windor-truffle · 9 months ago
Text
It occurred to me the other day that Asbel is the only party member without *any* sort of spell artes. I guess friendship really is his magic 😅
4 notes · View notes
anheliotrope · 8 months ago
Text
Rambling About C# Being Alright
I think C# is an alright language. This is one of the highest distinctions I can give to a language.
Warning: This post is verbose and rambly and probably only good at telling you why someone might like C# and not much else.
~~~
There's something I hate about every other language. Worst, there's things I hate about other languages that I know will never get better. Even worse, some of those things ALSO feel like unforced errors.
With C# there's a few things I dislike or that are missing. C#'s feature set does not obviously excel at anything, but it avoids making any huge misstep in things I care about. Nothing in C# makes me feel like the language designer has personally harmed me.
C# is a very tolerable language.
C# is multi-paradigm.
C# is the Full Middle Malcomist language.
C# will try to not hurt you.
A good way to describe C# is "what if Java sucked less". This, of course, already sounds unappealing to many, but that's alright. I'm not trying to gas it up too much here.
C# has sins, but let's try to put them into some context here and perhaps the reason why I'm posting will become more obvious:
C# didn't try to avoid generics and then implement them in a way that is very limiting (cough Go).
C# doesn't hamstring your ability to have statement lambdas because the language designer dislikes them and also because the language designer decided to have semantic whitespace making statement lambdas harder to deal with (cough Python).
C# doesn't require you to explicitly wrap value types into reference types so you can put value types into collections (cough Java).
C# doesn't ruin your ability to interact with memory efficiently because it forbids you from creating custom value types, ergo everything goes to the heap (cough cough Java, Minecraft).
C# doesn't have insane implicit type coercions that have become the subject of language design comedy (cough JavaScript).
C# doesn't keep privacy accessors as a suggestion and has the developers pinkie swear about it instead of actually enforcing it (cough cough Python).
Plainly put, a lot of the time I find C# to be alright by process of elimination. I'm not trying to shit on your favorite language. Everyone has different things they find tolerable. I have the Buddha nature so I wish for all things to find their tolerable language.
I do also think that C# is notable for being a mainstream language (aka not Haskell) that has a smaller amount of egregious mistakes, quirks and Faustian bargains.
The Typerrrrr
C# is statically typed, but the typing is largely effortless to navigate unlike something like Rust, and the GC gives a greater degree of safety than something like C++.
Of course, the typing being easy to work it also makes it less safe than Rust. But this is an appropriate trade-off for certain kinds of applications, especially considering that C# is memory safe by virtue of running on a VM. Don't come at me, I'm a Rust respecter!!
You know how some people talk about Python being amazing for prototyping? That's how I feel about C#. No matter how much time I would dedicate to Python, C# would still be a more productive language for me. The type system would genuinely make me faster for the vast majority of cases. Of course Python has gradual typing now, so any comparison gets more difficult when you consider that. But what I'm trying to say is that I never understood the idea that doing away entirely with static typing is good for fast iteration.
Also yes, C# can be used as a repl. Leave me alone with your repls. Also, while the debugger is active you can also evaluate arbitrary code within the current scope.
I think that going full dynamic typing is a mistake in almost every situation. The fact that C# doesn't do that already puts it above other languages for me. This stance on typing is controversial, but it's my opinion that is really shouldn't be. And the wind has constantly been blowing towards adding gradual typing to dynamic languages.
The modest typing capabilities C# coupled with OOP and inheritance lets you create pretty awful OOP slop. But that's whatever. At work we use inheritance in very few places where it results in neat code reuse, and then it's just mostly interfaces getting implemented.
C#'s typing and generic system is powerful enough to offer you a plethora of super-ergonomic collection transformation methods via the LINQ library. There's a lot of functional-style programming you can do with that. You know, map, filter, reduce, that stuff?
Even if you make a completely new collection type, if it implements IEnumerable<T> it will benefit from LINQ automatically. Every language these days has something like this, but it's so ridiculously easy to use in C#. Coupled with how C# lets you (1) easily define immutable data types, (2) explicitly control access to struct or class members, (3) do pattern matching, you can end up with code that flows really well.
A Friendly Kitchen Sink
Some people have described C#'s feature set as bloated. It is getting some syntactic diversity which makes it a bit harder to read someone else's code. But it doesn't make C# harder to learn, since it takes roughly the same amount of effort to get to a point where you can be effective in it.
Most of the more specific features can be effortlessly ignored. The ones that can't be effortlessly ignored tend to bring something genuinely useful to the language -- such as tuples and destructuring. Tuples have their own syntax, the syntax is pretty intuitive, but the first time you run into it, you will have to do a bit of learning.
C# has an immense amount of small features meant to make the language more ergonomic. They're too numerous to mention and they just keep getting added.
I'd like to draw attention to some features not because they're the most important but rather because it feels like they communicate the "personality" of C#. Not sure what level of detail was appropriate, so feel free to skim.
Stricter Null Handling. If you think not having to explicitly deal with null is the billion dollar mistake, then C# tries to fix a bit of the problem by allowing you to enable a strict context where you have to explicitly tell it that something can be null, otherwise it will assume that the possibility of a reference type being null is an error. It's a bit more complicated than that, but it definitely helps with safety around nullability.
Default Interface Implementation. A problem in C# which drives usage of inheritance is that with just interfaces there is no way to reuse code outside of passing function pointers. A lot of people don't get this and think that inheritance is just used because other people are stupid or something. If you have a couple of methods that would be implemented exactly the same for classes 1 through 99, but somewhat differently for classes 100 through 110, then without inheritance you're fucked. A much better way would be Rust's trait system, but for that to work you need really powerful generics, so it's too different of a path for C# to trod it. Instead what C# did was make it so that you can write an implementation for methods declared in an interface, as long as that implementation only uses members defined in the interface (this makes sense, why would it have access to anything else?). So now you can have a default implementation for the 1 through 99 case and save some of your sanity. Of course, it's not a panacea, if the implementation of the method requires access to the internal state of the 1 through 99 case, default interface implementation won't save you. But it can still make it easier via some techniques I won't get into. The important part is that default interface implementation allows code reuse and reduces reasons to use inheritance.
Performance Optimization. C# has a plethora of features regarding that. Most of which will never be encountered by the average programmer. Examples: (1) stackalloc - forcibly allocate reference types to the stack if you know they won't outlive the current scope. (2) Specialized APIs for avoiding memory allocations in happy paths. (3) Lazy initialization APIs. (4) APIs for dealing with memory more directly that allow high performance when interoping with C/C++ while still keeping a degree of safety.
Fine Control Over Async Runtime. C# lets you write your own... async builder and scheduler? It's a bit esoteric and hard to describe. But basically all the functionality of async/await that does magic under the hood? You can override that magic to do some very specific things that you'll rarely need. Unity3D takes advantage of this in order to allow async/await to work on WASM even though it is a single-threaded environment. It implements a cooperative scheduler so the program doesn't immediately freeze the moment you do await in a single-threaded environment. Most people don't know this capability exists and it doesn't affect them.
Tremendous Amount Of Synchronization Primitives and API. This ones does actually make multithreaded code harder to deal with, but basically C# erred a lot in favor of having many different ways to do multithreading because they wanted to suit different usecases. Most people just deal with idiomatic async/await code, but a very small minority of C# coders deal with locks, atomics, semaphores, mutex, monitors, interlocked, spin waiting etc. They knew they couldn't make this shit safe, so they tried to at least let you have ready-made options for your specific use case, even if it causes some balkanization.
Shortly Begging For Tagged Unions
What I miss from C# is more powerful generic bounds/constraints and tagged unions (or sum types or discriminated unions or type unions or any of the other 5 names this concept has).
The generic constraints you can use in C# are anemic and combined with the lack of tagged unions this is rather painful at times.
I remember seeing Microsoft devs saying they don't see enough of a usecase for tagged unions. I've at times wanted to strangle certain people. These two facts are related to one another.
My stance is that if you think your language doesn't need or benefit from tagged unions, either your language is very weird, or, more likely you're out of your goddamn mind. You are making me do really stupid things every time I need to represent a structure that can EITHER have a value of type A or a value of type B.
But I think C# will eventually get tagged unions. There's a proposal for it here. I would be overjoyed if it got implemented. It seems like it's been getting traction.
Also there was an entire section on unchecked exceptions that I removed because it wasn't interesting enough. Yes, C# could probably have checked exceptions and it didn't and it's a mistake. But ultimately it doesn't seem to have caused any make-or-break in a comparison with Java, which has them. They'd all be better off with returning an Error<T>. Short story is that the consequences of unchecked exceptions have been highly tolerable in practice.
Ecosystem State & FOSSness
C# is better than ever and the tooling ecosystem is better than ever. This is true of almost every language, but I think C# receives a rather high amount of improvements per version. Additionally the FOSS story is at its peak.
Roslyn, the bedrock of the toolchain, the compiler and analysis provider, is under MIT license. The fact that it does analysis as well is important, because this means you can use the wealth of Roslyn analyzers to do linting.
If your FOSS tooling lets you compile but you don't get any checking as you type, then your development experience is wildly substandard.
A lot of stupid crap with cross-platform compilation that used to be confusing or difficult is now rather easy to deal with. It's basically as easy as (1) use NET Core, (2) tell dotnet to build for Linux. These steps take no extra effort and the first step is the default way to write C# these days.
Dotnet is part of the SDK and contains functionality to create NET Core projects and to use other tools to build said projects. Dotnet is published under MIT, because the whole SDK and runtime are published under MIT.
Yes, the debugger situation is still bad -- there's no FOSS option for it, but this is more because nobody cares enough to go and solve it. Jetbrains proved anyone can do it if they have enough development time, since they wrote a debugger from scratch for their proprietary C# IDE Rider.
Where C# falls flat on its face is the "userspace" ecosystem. Plainly put, because C# is a Microsoft product, people with FOSS inclinations have steered clear of it to such a degree that the packages you have available are not even 10% of what packages a Python user has available, for example. People with FOSS inclinations are generally the people who write packages for your language!!
I guess if you really really hate leftpad, you might think this is a small bonus though.
Where-in I talk about Cross-Platform
The biggest thing the ecosystem has been lacking for me is a package, preferably FOSS, for developing cross-platform applications. Even if it's just cross-platform desktop applications.
Like yes, you can build C# to many platforms, no sweat. The same way you can build Rust to many platforms, some sweat. But if you can't show a good GUI on Linux, then it's not practically-speaking cross-platform for that purpose.
Microsoft has repeatedly done GUI stuff that, predictably, only works on Windows. And yes, Linux desktop is like 4%, but that 4% contains >50% of the people who create packages for your language's ecosystem, almost the exact point I made earlier. If a developer runs Linux and they can't have their app run on Linux, they are not going to touch your language with a ten foot pole for that purpose. I think this largely explains why C#'s ecosystem feels stunted.
The thing is, I'm not actually sure how bad or good the situation is, since most people just don't even try using C# for this usecase. There's a general... ecosystem malaise where few care to use the language for this, chiefly because of the tone that Microsoft set a decade ago. It's sad.
HOWEVER.
Avalonia, A New Hope?
Today we have Avalonia. Avalonia is an open-source framework that lets you build cross-platform applications in C#. It's MIT licensed. It will work on Windows, macOS, Linux, iOS, Android and also somehow in the browser. It seems to this by actually drawing pixels via SkiaSharp (or optionally Direct2D on Windows).
They make money by offering migration services from WPF app to Avalonia. Plus general support.
I can't say how good Avalonia is yet. I've researched a bit and it's not obviously bad, which is distinct from being good. But if it's actually good, this would be a holy grail for the ecosystem:
You could use a statically typed language that is productive for this type of software development to create cross-platform applications that have higher performance than the Electron slop. That's valuable!
This possibility warrants a much higher level of enthusiasm than I've seen, especially within the ecosystem itself. This is an ecosystem that was, for a while, entirely landlocked, only able to make Windows desktop applications.
I cannot overstate how important it is for a language's ecosystem to have a package like this and have it be good. Rust is still missing a good option. Gnome is unpleasant to use and buggy. Falling back to using Electron while writing Rust just seems like a bad joke. A lot of the Rust crates that are neither Electron nor Gnome tend to be really really undercooked.
And now I've actually talked myself into checking out Avalonia... I mean after writing all of that I feel like a charlatan for not having investigated it already.
72 notes · View notes