The Elixir experience on Windows is deteriorating

I’m on Erlang / OTP 21 & Elixir 1.8.1 on windows and had no problems, although it was obviously a few months back so maybe things have changed since. The main annoyance has been Windows itself, and its interactions with my coding environment. Visual Code with ElixirLS is great, but gets unstable when I plug / unplug an external monitor (42" Dell - awesome BTW). I’ve been in MacOS land since 2005 so I’m out of the habit of rebooting 3 times a day to reinitialise the graphics subsystem. I’ve settled on Visual Code until it becomes unstable then flick over to atom with more limited Elixir tooling until I’m forced to reboot again.

I know this may sound weird to the world of open source developers, but I introduced a career .Net developer to Elixir recently and he was amazed that you could download and install a development environment in less than a day, in less than a Gb and with no install related reboots.

4 Likes

In case anyone finds this thread, here is a known recipe for getting Phoenix up and running on Windows:

  1. Install Chocolatey: Chocolatey Software | Installing Chocolatey
  2. Launch PowerShell as Administrator and install the packages:
choco install erlang
choco install elixir
choco install mingw
choco install nodejs
choco install postgresql
  1. Once this is done, open a new unprivileged PowerShell and install Phoenix:
mix local.hex
mix archive.install hex phx_new 1.4.10

From there you can follow the Phoenix Tutorial as normal (Up and Running — Phoenix v1.7.10)

If you are following the tutorial, the Postgres password can be found in the install log (C:\ProgramData\chocolatey\logs\chocolatey.log).

One final note: iex is a built in command of PowerShell as well. To use the Elixir iex, use iex.bat

To get tab completion, use iex.bat --werl

16 Likes

This thread reminded me of Current state of Elixir on Windows?

I have to say that I can relate with the sentiment but from another perspective…

My background for the past 8 years is basically around Microsoft technologies, specifically C# and ASPNET - which is needless to say a very smooth experience on Windows.
So, I’ve been flirting with the idea of migrating to elixir since 2017 (with only recently having the opportunity of doing so). A curious thing is that at the time, I saw this as a chance to express a previous desire to migrate to Ruby (which has a very poor history with Windows) and the fact that Elixir runs on a virtual machine was one of my highest hopes to avoid the “Ruby effect”.

Following the community from distance, I have to say that was a huge shock for me because the culture was different from what I was used to (very close to Ruby’s community). It sounded too separatist for my taste in contrast with what Microsoft has beeing doing - actively advertising, encouraging and supporting development on other platforms.
Let me explain that: Microsoft’s motto is (arguably) facilitating everything for the developer (environment, tools, services, etc) and for the past 3 years or so this also translates to systems other than Windows (with .NET Core), which the community has made tremendous efforts to make it as smooth as it can be for people not working on Windows - changing the compiler, the APIs and improving the general community culture. And a great thing is that the vast majority of the community has ported, forked and worked on adapting packages to the news APIs, which is very encouraged since you have tools to do that as easily as doing it without being compatible. So, there’s that. The way I see is much more about direction and culture other than the overall degradation of experience, which is a side effect.

Overall, it’s very frustrating to have to care more about friction with the OS you’re running other than the product you want to build. Also, having people inside the community strongly encouraging you to change your OS of choice because the experience is not remotely the same - I wish we have passed that at this point with modern tools.
Beyond that, there’s nothing more infuriating than start learning a technology that supposedly is compatible with your system and than, most of the guides you see on the internet assume you’re using a NIX based system - mostly MacOs.

To be fair, Windows has it’s fair share on the whole thing, but if other communities can provide better experiences why can’t we too?
I’ve watched at least three different talks of José saying that Elixir is pretty much done and that there’s nothing else to add to the language. So, following the focus on extensibility, what about tackling this problem of fragmented user experience? A good place to start would be doing something like the Omnisharp project for Elixir.

PS.: And please, take all of I’m saying with a huge grain of salt. It’s based on my experience and I don’t mean it in a wrong way, I don’t think I’m in any place to demand work that is provided freely. But I think that it is important to give this feedback if it’s important to the community to tackle these issues.

Now, about the environment, I always recommend using Chocolatey for Windows development (almost the same as @michaelkschmidt pointed out):

choco install elixir
choco install postgresql
choco install visualstudio2019buildtools

Using vagrant, docker or WSL to be honest, it’s too much friction compared to the native experience. For me, WSL is a last resort tool.
Also talking about iex, the ugly werl GUI and console support on Windows, there’s this Powershell package called PSReadLine that I use to get better completion and history using git on Powershell with Posh-Git (it does not work with iex, but it could be a place to look at since it aims to provide a bash-like experience)

3 Likes

Some people have a memory that extends beyond those 3 years.

Microsoft Windows to this day is still a proprietary operating system - from a consumer perspective it may seem like it might as well be free as it seems to come standard with most PC hardware - but it isn’t and it is Microsoft’s prerogative to do with its intellectual property as it pleases.

When the .NET Framework was introduced in 2002 it was part of a strategic initiative to push Windows on any hardware platform conceivable - while the JVM ecosystem was focusing on building application servers that could work on a range of operating systems, open or proprietary, Microsoft chose to push the Windows Server is the application server concept - i.e. the CLR wasn’t meant to be a “write once, run everywhere” runtime because the goal was push (proprietary) Windows (Server) everywhere.

During that period, there was comparatively little open source activity for the .NET ecosystem. The community primarily expected (in a consumer fashion) Microsoft to deliver the necessary support - and whatever Microsoft came up with had to be good enough. Open source projects decided on a case by case whether or not Windows was supported.

In the general case people using their free time to create software will not do so for a proprietary, locked in operating system. However occasionally some Windows power users will be interested in having certain open-source software available on their platform - enough interest to take on the burden of bringing it to and maintaining it on Windows.

The current situation with .NET Core is ironically comical. Cross-platform software was one of the big motivators behind Java and the JVM for Sun Microsystems - a company famous for its anti-Microsoft practices (which included open-sourcing Java-based software) often to its own detriment which partially set the stage to it being acquired by Oracle in 2009. Now Microsoft is going cross-platform with .NET Core while Oracle continues to tighten the noose on JVM commercial licenses.

I see the cross-platform move as indicative of the recognition that the relevance of Windows is no longer increasing which to a large extent can be blamed on cloud-computing (Linux on Azure).

most of the guides you see on the internet assume you’re using a NIX based system - mostly MacOs.

Ultimately I see this as a failing of the Windows user community to garner enough interest in the “open-source product” to marshal the resources necessary to ensure that the experience on their platform of choice is as smooth as possible.

It is only natural that open-source software will primarily target open-source operating systems. Open-source software maintainers are under no obligation to support anything - much less a proprietary operating system. It only makes sense that the people with a vested interest (and competency) in the platform spend their time and effort on supporting the software on it. Other developers want to spend their time on something that matters to them.

Sure, from a single developer’s viewpoint who wants to take advantage of open-source software and is stuck on Windows that sucks - but there are virtual machines, dual-boot or putting Linux on that PC that is collecting dust over there.

After 20+ years of letting myself be constrained by Windows I finally had enough after the continuous problems with nodejs on Windows 7 during my AngularJS adventure. I took advantage of the quasi-obligatory Windows 10 upgrade in 2015 when I enabled dual boot and also installed Arch Linux and used that for development instead. A year later I was on MacOS (with probably one of the worst hardware iterations of the MBP) because I didn’t want to have to switch the OS for my “consumer activities”.

4 Likes

Some people have a memory that extends beyond those 3 years.

And this an indicator of what exactly? I mean, thanks for sharing some of your knowledge on Windows history and Microsoft’s business model, but I don’t see how this contributes to ease the pain of those users. I think that if the question is how to promote Elixir more, make it more accessible, relevant and cater to more developers - hence growing the community, this is definitely something that will have to be addressed at some point, unless this is NOT the intention - which I don’t think it’s true - since I’ve seen other discussions about it.

During that period, there was comparatively little open source activity for the .NET ecosystem. The community primarily expected (in a consumer fashion) Microsoft to deliver the necessary support - and whatever Microsoft came up with had to be good enough

Maybe at the time, but this has not been true for at least the past 10 years, even before .NET Core. It happens that the popularity of open-source along with a new wave of developers has provided great growth regarding that aspect. Also, Microsoft used that trend in her favor and it happens that supporting developers in their preferred environment is just a really neat way to get more people invested in your technology (who’d knew). Ironically, Microsoft is leading by example.

It is only natural that open-source software will primarily target open-source operating systems. Open-source software maintainers are under no obligation to support anything - much less a proprietary operating system. It only makes sense that the people with a vested interest (and competency) in the platform spend their time and effort on supporting the software on it. Other developers want to spend their time on something that matters to them

You know, I wonder how relevant Linux would be for the end-user if the same premise would still be applied for developers that publish proprietary software there (drivers, games, etc). Or am I under the impression that this is not a problem that the community tries to solve for decades to improve Linux’s overall acceptance!?

I mean, you are right when you say that a developer is not obliged to support anything, but don’t you think this is drastically different when you’re trying to build/ expand a community? In this case, specifically, Elixir already supports Windows out of the box because of the Erlang VM, the overall experience is something that may need a little bit more attention though - we could argue interest in doing so.

Sure, from a single developer’s viewpoint who wants to take advantage of open-source software and is stuck on Windows that sucks - but there are virtual machines, dual-boot or putting Linux on that PC that is collecting dust over there.

Much of this line of thought is what I was referring to as the “Ruby effect”…
Many developers actually like to use Windows (for whatever reason it may be), they are not “stuck” with it. Of course, some are stuck using Windows, maybe because they don’t have the money to buy a Mac (if they want to) or because they don’t want to scratch their heads all day making Linux 100% compatible with their hardware or applications (because of time, interest of even knowledge). Saying to those developers to use subpar alternatives like VMs or emulators (which in my experience hinders more than helps) is the easy way out and only improves the disparity we already see here.

Also, this has nothing to do with taking advantage of open-source software, it’s about expanding the horizons. Elixir is a really good piece of tech, I know there is interest in making it more popular and normalizing user experience is a nice way to achieve that. Did it cross your mind that a lot of people not currently in the community are being deprived of something that could make their lives better and the lives of people in the community better by extension? The behavior of “our way or no way” is a terrible postcard.

Again, everything I’m talking about here is under the premise that is a real interest in improving that for users. Piggybacking on the original post about the current user experience in Windows and also on the shared blog post.

4 Likes

Thankfully this is something that the community actively strives to avoid. I think the reply from @josevalim further up the thread illustrates that, and identifies the root cause of the Windows situation. The question is who has the time & skills, or is willing to put up the funding required to make it happen - unfortunately the organisations behind Elixir & Phoenix don’t have Microsoft-sized marketing, community engagement and development budgets so have to be pretty focused on where they spend their time & effort.

4 Likes

To be honest, coming from the Visual Studio world, Elixir development on Windows feels like going 10 years back in time :sweat:

To say that “just use VIM” (as I’ve seen people say in other places) is kind of, well, unenlightened…

It’s 2019, as a productive developer you expect that things like go to/peek definition, rename functions, refactoring, extract code to methods, intellisense/autocomplete with documentation, code analysis etc etc.

I’m not saying that we need to have AI-enabled suggestions (like in VS), but there really “needs” to be better cross-platform IDE support nowadays.

Sure, if I have some time over I could try enhance the Windows experience for Elixir, but I would need some help through the journey. Mostly because I’ve never really written Erlang/Elixir for production :eyes:

Cross-platform means also Windows.

Well, my rant is over. Let’s get everyone happy!

4 Likes

To be clear, my point was that the language core is done, and it is everyone’s job to build on top of the core. Don’t expect us to build X or Y. Go ahead and do it, because the foundation is stable! For example, from my understanding you have been looking at Elixir from the sidelines, maybe doing an Omnisharp for Elixir is a great place to get started.

This may be what you meant all along but I wanted to clarify. :slight_smile:

We now have the Erlang Ecosystem Foundation which may provide us funds if we ask for a grant. So if someone has the knowledge and is interested in improving the Windows experience, feel free to ping me privately, and we can figure out the next steps.

My understanding is that Visual Studio Code provides one of the best experience for Elixir developers and it provides go to definitions, intellisense/autocomplete, documentation, dialyzer integration and more.

9 Likes

Yes, that’s the best I found so far. Didn’t mean to be negative, it’s just that when you’re used to something that complete I guess you only see what’s missing…

Actually no.

What version of windows? The one that would have the least amount of issues would be the windows Server chain. Which a typical window user doesn’t have installed. The windows 10 have too much wrong with it, and its used to experiment and test as its the company’s last R&D step. They don’t do this on the Server platform. only the consumer’s versions. They started this behavior on win 8.1 +.

So the windows 10 packages would have issues.

If you must use Microsoft based software, use the windows server branch. The packages are stable builds.

To be precise, ElixirLS Fork plugin does.

4 Likes

Could you further illustrate in your opinion what is being done to avoid this? Because I have reasons to think otherwise based on behavior I’ve seen on the forum. Just to make sure I’m been understood: I’m not saying this is the default mindset of the whole community, but some users make it seem like it.

Hey @josevalim, of course, I know that objectively that’s what you meant. But pragmatically there are quality-of-life things that the core team could implement to improve this experience across platforms, don’t you think? I mean, what I’m saying is that if there’s interest in doing so, that would be a natural step forward on providing a better ecosystem.

A note on your comment:

For example, from my understanding you have been looking at Elixir from the sidelines

If you mean not actively contributing to any open-source project, yes. But I’ve been following the community for the past 2 years as an “outsider” mainly because I was expecting that the things we are discussing here would be naturally addressed at some point.

So, when you say:

So, how people that use Windows should take that? Lack of resource, interest or anything else?
Just referencing what I’ve talked before about the “Ruby effect”… There are things that developers usually expect to work right of the box for their environment and when these things don’t, there are two things that happen: a) Person gives up on the ecosystem or; b) Person changes operation system.
Just to point out that, even though Elixir is a fantastic language, many developers don’t have the necessary knowledge to improve the bad experience they’re having and by the point they do, chances are that they have dropped Windows long ago because of the problems they faced regarding support in the beginning. It is almost like a “chicken or the egg” situation.

Either way, this is something that suppresses developers from engaging in the community in a diverse fashion. Propagating the separatist behavior I’ve mentioned before of focusing on one kind of platform. So, the question that remains is: How hard would, how much would cost and what could be done to improve that?

This is something nice to hear José. But don’t you think that if the core team takes as a goal to find that person and the necessary funding, would be a better sign that there’s a real interest in improving Windows experience? IMHO, actively acting on it instead of casually mentioning it is a better way to show that you care about this situation. (I don’t mean it as a rant)

What pain?

Who is forcing you to use Elixir on Windows?

I understand that you want to try it out and that it would be inconvenient to have to do that on an OS that isn’t the one you are immediately familiar with. But as it is there is enough on Windows to get the feel of it.

If you want a comfortable life on Windows you stick to

  • paid software by Microsoft or vendors who specifically support Windows
  • open source software actively developed or funded by Microsoft
  • open source software with a substantial contingent of maintainers from the Windows user community

But if you are among the curious you have to venture out beyond of Windows at some point in time.

I’m to this day surprised that there even is a version of the BEAM that runs on Windows as I doubt that the BEAM would be used in production on a Windows Server (you could, but would you want to?). So the Windows BEAM may simply exist for demonstration and education purposes (I could be wrong though).

I think that if the question is how to promote Elixir more, make it more accessible, relevant and cater to more developers.

Yes, but at what (opportunity) cost?

According to this ASP.NET is only being used on 13% of public sites. Granted for internal sites that percentage is probably much higher.

While Windows has a lead as a desktop OS, it isn’t in the lead when it comes to “the cloud”.

Ironically, Microsoft is leading by example.

Another perspective would be that they realized that they would have to take OSS more seriously and invigorate that part of the their ecosystem in order to prevent their existing customer base from wandering off and trying OSS that doesn’t involve Windows in the short term. In the long term they are adjusting their entire business model - even if it means running more Linux on Azure than Windows. Looks more like a sound business decision.

You know, I wonder how relevant Linux would be for the end-user

Linux doesn’t typically have any relevance to a desktop end-user unless they are Microsoft-haters. Most desktop end-users just want to do their “computer stuff” (to which the desktop PC is becoming increasingly less relevant) and get on with their life.

Going by this use of Android is already neck and neck with Windows, so it wouldn’t be too surprising if Chrome OS is going to eat even further into Windows’s share of the pie for the for the “wanna surf the 'net and do emails” crowd.

you think this is drastically different when you’re trying to build/ expand a community?

Given how constrained the resources within most OSS communities are, intentionally directing effort toward expansion can be risky given that it can be wasteful. So most expansion efforts will tend to focus on interacting with people, people who are may be willing to put some of their time behind the community effort.

Much of this line of thought is what I was referring to as the “Ruby effect”…

And the “Ruby effect” is really only a thing from an “unwilling to explore beyond the boundaries of Windows” perspective. Ruby only really became famous because of Rails and Rails just like LAMP was designed for use on *NIX servers - on Windows you stuck to ASP Classic and later ASP.NET.

Saying to those developers to use subpar alternatives like VMs or emulators (which in my experience hinders more than helps) is the easy way out and only improves the disparity we already see here.

Sorry but you just went on and on about that Windows developers shouldn’t be inconvenienced or shouldn’t need to go out of their way to try something new and then promptly turned around suggesting that non-Windows developers should make more of an effort to be more inclusive of Windows developers. I see a disparity there.

it’s about expanding the horizons

As long as it’s on Windows?

Did it cross your mind that a lot of people not currently in the community are being deprived of something

My perspective is that they are depriving themselves.

To summarize once again:

  • The lazy path: Switch your OS, or at least learn how to run another OS in a VM on Windows.
  • The hard work path: If the Windows experience is important to you become a contributing member for the Windows tooling. And more importantly, help to recruit other Windows users to that same end.

The behavior of “our way or no way” is a terrible postcard.

Has it occurred to you that it may be you who is taking that stance?

Windows is my way, therefore it is the way … ???

that is a real interest in improving that for users.

OSS is about people (and some companies) sharing their hard work with others - it’s not a some kind of service industry.

Microsoft Visual Studio is a paid-for product which has been in development for over 20 years.

The IDE Divide

If you want to be a Tool-Maven, fine.

The downside is that IDEs only appear much later in the adoption curve.

As it is there is intellij-elixir (in the Clojure world you have to pay a license fee for something similar).

To say that “just use VIM” (as I’ve seen people say in other places) is kind of, well, unenlightened

How so - given that it works in so many places.

I’m not saying that we need to have AI-enabled suggestions (like in VS), but there really “needs” to be better cross-platform IDE support nowadays.

Have you ever considered using JetBrains products?

Cross-platform means also Windows.

Visual Studio for Mac is the only non-Windows version of Microsoft Visual Studio (IDE) I’m aware of.

All I’m really asking for is that OSS users manage their expectations - the only real way to influence anything is by contributing in some way (and some corporate OSS won’t even allow that).

6 Likes

Just to “quickly” respond to some of your observations:

If the experience of users on Windows is a goal to the core team of Elixir regarding everything I’ve already mentioned. It is important to both describe where it falls short and what could be done to change it. Otherwise, this whole thread is pointless and Elixir could just drop Windows support for good.
Everything I’m saying is just relevant to if there are concerns about language adoption and popularity, which I think is a good thing for the community as a whole. Elixir is not just an open-source project is a product that could be benefited from those initiatives.

Yes, but why does it seem you take this as a bad thing? A lot of developers were benefited from that decision which circled back to Microsoft. At worst there’s a lesson to be learned here about community building.

This perspective may represent part of the reality you see, but it’s far from the truth as a whole. Linux distros have been proactively improving the end-user experience to become a viable alternative to Windows for a long time - and they have been doing so with much success for the past years, not without a lot of help from vendors and people willing to invest time and money - part from profit and part from personal interest.

Let’s take the gaming scenario on Linux for example, Valve has helped a lot with expanding the horizons in that regard. If this decision was taken purely on an objective approach, Linux would never be worth it because it represents such a small percentage of the market. But someone saw an opportunity and acted on it and the world is a better place for people that can enjoy that (and also the overall market).

Simply no, not at all. By any means, I’m suggesting what you have said. I’m simply saying that it would be nicer to have a normalized experience independently of the OS you are running. I’m also pointing out Microsoft’s example of not making this distinction you are making regarding “Windows developers” and “non-Windows developers”; this “Us vs Them” kind of mentality is really dangerous for growth and would be a lot nicer if by default you didn’t have to care about that at all (like .NET core is striving).

Besides the work that is done by the core team, this could be achieved by encouraging developers to create compatible libraries and enabling them with tools to do so in a way that this friction is greatly reduced. If you check CSharp’s team on Github for example, you can see that they greatly care about compatibility while developing new APIs, and if I remember correctly Microsoft has still lots of documentation and guidelines to make this as inclusive as possible for all platforms.

Elixir has already a great advantage over other languages regarding cross-platform because of the VM and if I understand well it covers a lot of the issues.

Of course, I’m talking about an idealistic scenario, but the whole point is that If you take the OS out of the equation (except of course for real OS-specific work), it’s a win-win scenario for people running Windows, Linux, macOS or whatever else. The community above everything else would benefit from this. It’s not a rant about making it work for “me”, it’s about making it more accessible for everyone and also as a community harvesting the results of this action.

About the rest, I think your text pretty much falls under the points I’ve already addressed and there are also some assumptions I think you made because you misunderstood my point. I hope I made it a bit more clear.

1 Like

Support of any one platform has to be expected to stay within reason and within the capabilities of the core team (sometimes even some *NIX distros that run into problems). Anything beyond that would have to be handled by platform specific maintainers - and such a group apparently hasn’t materialized for Windows at this point. And again OSS software is always provided as is.

Otherwise, this whole thread is pointless and Elixir could just drop Windows support for good.

At this point things can be made to work on Windows - it’s just not all sunshine and roses.

And as was already pointed out earlier:

i.e. Windows support is non-trivial and addressing these issues means something else isn’t getting done.

which I think is a good thing for the community as a whole

“I want this, so there must be plenty of others who want it too” is a very common attitude among OSS users - but that doesn’t mean that adding the requested feature will invariably and effectively increase adoption.

The BEAM is a server technology and evidently some places use it on Windows Server because that is all they use. But if you are asking me they are asking for additional headaches by going that route. I’m more familiar with environments where legacy software runs on Windows Server within a VM on *NIX servers. In that environment accommodating software that is more at home on *NIX isn’t a problem.

Yes, but why does it seem you take this as a bad thing?

I’m not. I’m simply highlighting Microsoft hasn’t all of a sudden gotten all magnanimous and charitable but that its change in behaviour can be traced back to valid business reasons.

At worst there’s a lesson to be learned here about community building.

Mmmm - Microsoft’s interest in community is largely linked to keeping paying customers around Azure instead of them going to AWS or Google Cloud.

Linux distros have been proactively improving the end-user experience

So it shouldn’t be too much of a chore to give an Ubuntu LTS distro a spin, right?

Valve has helped a lot with expanding the horizons in that regard.

Valve only started that once there was plenty of cash flow from their Windows-gaming business. To some degree they were also creating a contingency in case something was going to negatively impact their Windows based business - and it was also connected to their Steam Machines effort in response to the growing (Microsoft/Sony/Nintendo) console gaming market.

Apparently now a fork of WINE (OSS which has existed since 1993) is an experimental part of their Linux platform.

Valve’s core business is still largely Windows based because that’s where the majority of their customers are - but now they have options.

this “Us vs Them” kind of mentality is really dangerous for growth

The thing is, by insisting that an OSS project support your particular OS (Windows) you are pegging yourself as a “Windows developer”.

For example in the past I have been tasked with:

  • implementing some business capability within a 4GL RAD tool to be deployed to Windows desktop client machines
  • moving/porting that functionality to a HP-UX (a less than progressive *NIX) daemon to reduce API licensing cost
  • again moving that functionality into a Windows service because the product vendor decided to stop supporting HP-UX

Stuff like that happens all the time so I don’t get attached to tools (which includes OSs). A developer is supposed to solve business problems, not just be some sort of tools virtuoso.

If you check CSharp’s team on Github for example, you can see that they greatly care about compatibility while developing new APIs, and if I remember correctly Microsoft has still lots of documentation and guidelines to make this as inclusive as possible for all platforms.

Are you seriously comparing the resources of the Elixir core team to what Microsoft can throw at a problem here?

Lets please be realistic.

Erlang crossplatform (2011)

A softer problem is that windows-specific questions to the mailing list often go without an answer for a long time. Maybe there aren’t many windows users who are able or inclined.

4 Likes

This is my last comment in the discussion because I don’t think I am gaining anything from this interaction.

But I want to be clear that we already put a huge amount of effort into the Windows experience every week in. We make sure all features are Windows compatible, run multiple CI environments on Windows, discuss security efforts, etc.

Elixir v1.9 included support for releases and we have written all of the integration code with Windows, spending dozens of hours in development, writing batch files, and testing all of the different integrations (WSL, console, powershell, cygwin, etc). We put more effort developing this feature on Windows than on all other platforms combined.

Have you maybe considered that improving the “Windows experience” is too much for a small team of people that is already developing and maintaining the language for multiple platforms (including Windows)?

I will gladly accept that the work we have done is not enough, but saying “if there is a real interest” or “otherwise Elixir could just drop Windows support for good” is a slap on the face while we are actively working on it. How do you think the installer came to be?!

Ironically, all Linux distributions work on their own packaging for Elixir, without zero input from the Elixir team. Recently, we even made improvements to our process based on pull requests from SUSE users.

For the Elixir team, I can say with 100% confidence that there is no “us vs them” view on Windows. It is always considered in our development and maintenance discussions. I suspect there is no separation for the Erlang team either. But it is extremely unrealistic to expect the Elixir team to address the whole Windows experience, especially when this is handled on other platforms by interested groups, without our input. Still, I have made myself available multiple times and in multiple occasions to anyone who is interested in pushing this forward. If this is not real interest in your opinion, then you should probably come to terms your expectations won’t be met.

29 Likes

@josevalim Even though you are not responding to this thread anymore, I want to clarify one thing from the reader perspective (even though my comments are not targeted on the work being done by the core team)…

When you say this:

And then, this (I also have read similar responses on problems with Windows terminal regarding iex coloring and history/ completion and other stuff, so it got me wondering):

It’s confusing, because from the previous context, it does suggest that the team is coming short regarding Windows support and may sound like nothing is/ will be done about it. It’s nice to hear otherwise and that the core team is doing everything you have mentioned, this reassures the commitment you already have made by supporting Windows.

I just want to make myself clear for people reading this that my comment is a general perception about some aspects of the community as a whole, not about the work the core team has been doing per se, so please don’t take this personally - actually, forgive me if by any means what I’ve said can be interpreted like this - was not the intention, it’s just a report on one’s perspective.

The way I see it, this kind of discussion tends to get blurry because a lot of people, coming from different backgrounds will take it differently. That’s why I tried to make myself clear about this beeing my perception, experience and therefore opinions - do take it with a huge grain of salt. Every input has it’s merit, even if it’s to be completely discarded.

1 Like

Maybe we owe the Elixir team an apology…

They are obviously trying their best to take this problem seriously.

Let’s be friends guys :grin: