[erlang-questions] Windows

Loïc Hoguin essen@REDACTED
Wed May 20 11:58:27 CEST 2015

On 05/20/2015 12:21 PM, José Valim wrote:
>     Now there's three ways Erlang could be more friendly to Windows
>     developers:
> Actually, if we really want to make Erlang more friendly to Windows
> developers, the best way is to NOT finish the e-mail where we discuss
> Windows support with "I know "real" developers use Unix". Even if "real"
> and "fake" are in quotes. How do you expect all Windows users to join
> the discussion if you have just called them "fake" developers?

Well I'm not calling them that, hence the quotes. I was actually trying 
to avoid debates on that, but I guess that was premature optimization.

> In my experience, Cygwin makes things easier if you are a Unix developer
> and you have to use Windows OR if you are a Unix developer and you don't
> care much about Windows, so telling people to use Cygwin is the easiest
> option for *you*. However, most Windows developers prefer to not use Cygwin.

It's the easiest option for developers who are targetting Linux servers, 
as it is an environment on Windows that mirrors best the server. 
Everyone I have come in contact with that stayed on Windows just ended 
up installing a Linux VM. Cygwin is a lightweight alternative compared 
to that.

> I said "in my experience" because we ran two polls via Google Forms in
> the Elixir mailing list targeted for Windows developers asking about
> their tool chain, how they installed erlang/elixir, what could be
> improved, etc.
> Since your mileage may vary, I recommend doing the same here. Open up a
> form, ask questions and collect feedback. It is going to yield a much
> better result than having a bunch of Unix folks deciding what is best
> for Windows.

My goal is to improve the lives of Windows developers who then deploy on 
Linux servers. This is something I can do.

I can't improve the lives of Windows developers who then deploy on 
Windows servers (or clients). I can't fix and maintain all the projects 
that don't work on Windows. That's something Windows developers should 
do if they want to.

As an added benefit of having Erlang work on Cygwin, you can just give a 
5 steps automated Cygwin installation instructions to people coming to 
your tutorial and then you don't have to worry about people using 
Windows machines having issues.

> Some may not like the answer though. My biggest complaint about
> erlang.mk <http://erlang.mk>, for example, has been exactly it is Unix
> centric.

It is also mine, and at some point in time it won't be Unix centric 
anymore. GNU make 4 gives me everything I need to not require a Unix 
environment. But it's probably still a little early to require make 4 so 
I am waiting for now.

However this wouldn't fix all the third party projects. Nor should it.

There will always be the problem of projects depending on libs not 
easily available on Windows. So the Windows/Windows developers have to 
step up at some point if they want nice things.

However this is not true for the Windows/Linux developers, as those libs 
are on Cygwin and so they can work in a Cygwin environment and then 
deploy to Linux.

> In Windows, if you want to provide good experience, you may
> need to provide a Makefile.win. In most cases though, Rebar works fine
> or with little adjustment. Here is one example of each case:
> * https://github.com/devinus/markdown
> * https://github.com/synrc/fs

Try to make this one work:

* https://github.com/basho/eleveldb

It's nowhere near close to compile with no or little adjustment. The 
same is true of the C library it uses, leveldb.

It's also one of the most used dependency in the nearly 380 packages in 
the erlang.mk package index. (Come to think of it, I will make some 
stats the next time I do a full run.)

> On the other hand, we could do a poll and conclude Cygwin support is the
> biggest problem, then that should be our focus. But without asking
> around and gathering information, it is all just shots in the dark.

It's not so much about what the biggest problem is, but more about 
what's the biggest problem I can fix. One step at a time...

Loïc Hoguin

More information about the erlang-questions mailing list