Erlang Sucks. EUC 2012

Post on 20-Apr-2015

635 views 4 download

transcript

Erlang Sucksor How I Lost All Hope

The goal of this presentation was, basically, to commit suicide, since Joe Armstrong was in the audience

Covering Erlang news for the past 5 years

Moved to Sweden just to program in Erlang

Was a web programmer (PHP, Python, Coldfusion)

Who am I? Just a regular guy doing regular stuff

Where do I begin?To tell the story of how great Erlang could be...

Joe Armstrong: With Erlang it’s very easy to do the impossible and very hard to do the easy stuff

Erlang

Erlang is crazy weird wonderful stuff created by mad scientists to be used in crazy weird wonderful stuff created by other mad scientists. Just look at the topics at EUC

Rest of the world

Whereas other languages are these hipster kids showing off their new shiny toys.People coming from these languages keep asking: “Can you do this or that?” Let’s see if we can.

This here is a cricket. You know, when there’s silence or some vast empty space filled, well, with emptiness and scilence, that’s when you hear the crickets. I’ll use this cricket to illustrate a point

Package/library/dependency management

Perl

Python

Ruby

Node.js

CPAN

easy_install

gem

npm

How do you manage stuff in other languages? Easy

Package/library/dependency management

What about Erlang?

Package/library/dependency management

rebar

erlware

CEAN

agner

epm

Well, there have been attempts at that in the past and currently

Package/library/dependency management

gem install package_name

easy_install package_name

pear install package_name (PHP 0_o)

See, it’s insanely easy in some languages. For the love of all that’s good and holy, it’s even easy in PHP!

Package/library/dependency management

{deps, [application_name,

        {application_name, "1.0.*"},

        {application_name, "1.0.*",

        {git, "git://github.com/basho/rebar.git", {branch, "master"}}}]}.

Obviously, it’s as easy in Erlang... Or is it?

Package/library/dependency management

{deps, [application_name,

        {application_name, "1.0.*"},

        {application_name, "1.0.*",

        {git, "git://github.com/basho/rebar.git", {branch, "master"}}}]}.

1> agner fetch package_name

You can use agner, but there some problems with it

Libraries: ImagingPerl

Python

Ruby

Node.js

PHP

Haskell

Go

2971 hits on CPAN

PIL

105 hits on rubygems

37 entries in npm

built-in

242 entries on Hackage

5 packages

Ok, what about other stuff. Perl isn’t even funny, but even Go has 5 packages.

Libraries: Imaging

Erlang is on par with them, is it not?

Libraries: Imaging

erl_img

Well, if your goal is only to read EXIF data, then yes, of course

Libraries: Formatted TextMarkdown Textile BBCode ...

Python

Ruby

Haskell

Go

Erlang

What about some really basic stuff?

Libraries: The CloudAmazon Rackspace Heroku ...

Python

Ruby

Haskell

Node.js

Erlang

What about this next great thing everyone’s talking about: the cloud? I mean, c’mon. Node.js is two years old and it has everything

You see?

This really goes beyond just the few things I’ve shown here. If you need something insanely cool and hardcore, someone’s doing it with Erlang. If you want something simple that everyone in other languages seems to be using, you’r out of luck.

http://erlanger.ru/

News

Forum

Wiki

3 years PHP2 years Erlang

PHP

PHP

I know what I’m talking about, some of this stuff is impossible even today

Sucks Not

Frontend

“Mainstream” libraries

Small projects

Medium projects

GUI

Backbone

Some of backend

Management

If it ain’t 5 million hits a day, it’s not a project

I’d say that Erlang really doesn’t suck... in some pretty serious areas. And sucks in some less serious ones

Moral of the storyfunny and insightful at the same time

Really, there was no moral :) If we want Erlang to be more “mainstream”, we should really try and build some of the stuff the “hipster kids” take for granted. Obviously, I want someone else to do that :)