Yeah, there are defaults, but they don’t enforce anything to you.
And of course you are right, currently there is an overwhelming majority of relational databases in there, thats just because the whole architecture of ecto is much more suitable to them. Its hard to wrap something else into it.
But of course, you may swap ecto with whatever you want.
Defaults are just a suggestion, to make it easier to people who want to stick with them, but you can override pretty much everything in Phoenix (except for Phoenix and Plug).
Another solution were to not provide any defaults, which would make it hard for beginners to get started and so removes the fun out of programming, which again is against the spirit of elixir.
One downside of Linux is that most distributions ship terrible, hacked together amateur code and ill-thought out monstrosities like systemd, pulseaudio and so forth. This is getting markedly worse over time and infecting more and more distributions.
By comparison, FreeBSD is clean and OpenBSD is immaculate. Neither one has the sexy latest features, but for servers, that’s a strong plus. And, programs are frequently faster and have less jitter on the BSDs, owing to better networking stacks, better drivers, and better schedulers.
Sure, but honestly, when it’s just a matter of git clone/wget/rsync & using mix,
There’s no real difference with Linux systems
Of course, administrating a FreeBSD is way more pleasant with a far more documented manual.
FreeBSD has a network stack that is more reliable under heavy loads and has better tooling for tuning. If you have a machine with dozens of cores and you’re trying to saturate the network cards with millions of socket connections(like WhatsApp) then FreeBSD is a natural fit.
I’d like to add that I think FreeBSD is a more superior operating system, mostly because of stability and documentation. I’ve had a few production CentOS and Debian Linux systems break on me for no apparent reasons in the last 5 years. I’ve started using FreeBSD 4 years ago and have never had any major issues, servers all running stable.
However, if you’re used to Linux and good at managing Linux servers, just use that.
As long as you install Elixir it’s a win for our community anyway
For those of you interested in promoting FreeBSD, you are welcome to start a Wiki with info (and reasons etc) about using it with Elixir here on the forum if you like
If you’re up for it, go ahead and start the thread and I’ll make a wiki for you and add it to our list of stickies
For myself, I think I’m going to keep it in this thread for now and in the “experimentation” realm, since a Wiki sounds more like a dependable information and I can’t provide that as a beginner.
It would be great if someone with professional experience is willing to share their know-how in a Wiki though
Also, better kernel polling, DTrace, better schedulers, integrated OS, ZFS, Jails. Those are options you don’t find in the GNU/Linux world. The network stack is faster and more reliable (as others have pointed out).
I run FreeBSD on my laptop, on my workstation and on my deploy servers. We run FreeBSD at work in production and we deploy Elixir and Erlang applications with a breeze. We are now moving forward to containers using http://www.tredly.com/
@thinkpadder1 PC-BSD is fine and it has a lot of 3rd-party software available for installation but there is nothing wrong with plain FreeBSD. You can install a desktop environment like KDE or GNOME using the FreeBSD package manager. PC-BSD is friendlier to the end user though.
I’d recommend using FreeBSD over any Linux distro for a production environment for several reasons:
Better integration of OS apps/utilities/libs
Security audits/alerts/updates are thus more holistic
Configuration just feels more sane and thought out
Improved stability, based on the above
Excellent features - from jails to network stack
Great cross-pollination between BSDs - easy to a lib from another BSD in your preferred one.
Linux compatibility
Supportive community
Bonus is, if you are using OS X, much of the userland/dir system, libs, etc, should appear familiar.
It’s why the general trend appears for companies appears to migrate from Linux distros to FreeBSD for their server environment.
If you want a desktop environment, then Linux may be the best choice still, but PC-BSD (the last time I looked), has come a long way), but my preference would be for OS X unless you are doing scientific work that requires Linux.
Here’s a link with a few of the big name organisations/companies using FreeBSD - from Apache Foundation to Netflix to WhatsApp: Welcome to FreeBSD!
Oddly, I find people new to Linux are often more apprehensive of learning and using FreeBSD, as many developers are of postgresql - choosing mysql over it, when my experience of Postgresql and FreeBSD are less frustrating, and FreeBSD much easier to keep up-to-date with changes/improvements and discuss solutions with the community.
If you want to build the next big thing, I’d suggest choosing FreeBSD over any Linux distro for all the above reasons, but if there’s something cutting edge that a Linux distro has that FreeBSD or any of the other BSDs can’t (yet) do, then go with Linux. Otherwise, FreeBSD will often take you further in regards to scaling, stability, and security.
/me has been a big FreeBSD user for decades, but nowadays I’d recommend some Illumos derivative for all the same reasons, except Illumos containers are BSD Jails but done right. ^.^