[erlang-questions] What problem are we trying to solve here? [was Erland users group [was re: languages in use? [was: Time for OTP to be Renamed?]]]
Miles Fidelman
mfidelman@REDACTED
Sun Feb 16 14:56:54 CET 2014
Pieter Hintjens wrote:
> On Sat, Feb 15, 2014 at 6:08 PM, Fred Hebert <mononcqc@REDACTED> wrote:
>
>> That makes for quite a steep curve, doesn't it?
> This is a core problem. It is an uncanny valley; before you can get
> those theoretical productivity gains you have to make large
> investments.
That seems like a red herring to me. Is the learning curve really that
steep?
Yes, there can be a big hurdle involved in learning to think
functionally - but that's language independent. Same again for
thinking in terms of actors and massive concurrency rather than
procedures, or objects and classes - again, that's language independent.
Beyond that, most of the real learning time and investment for a new
language involves learning libraries, the build system, and run-time
environments:
- going from "hello, world" in c, to building complete, deployable,
maintainable systems involves quite a bit (what's the investment in
learning the gnu build system?)
- Java isn't appreciably better in that regard
- and so forth
And then there's all the brou ha ha about DevOps these days - building
tool chains for rapid deployment of code that keep changing.
Interpretive languages change the mix a bit - given that some steps are
dropped out. Platforms also change things a bit. (E.g., start with a
running copy of Apache, add a PHP script. Simplifies things a bit once
you've learned the ins and outs of Apache.)
It strikes me that Erlang might actually require less learning than many
environments - in that OTP provides a platform for wiring together
complex systems, and deploying them into a run-time environment that
also solves a lot of problems for you. Yes you have to learn how they
work, and how to use them - but then again, you don't have to re-invent
them.
> I'd love to learn Erlang, mainly because of the people who use it.
> However I'm lazy and modest in my investments and can't spend six
> months to see profit in a project. I won't use tools I can't improve
> myself. I won't join communities where I depend on others for decision
> making.
Or maybe you don't work on problems where the cost/benefit equation
makes it worth using Erlang? If your baseline is 'profit in six
months,' you're working pretty small projects. For me, it's been at
least a decade since I've worked anything where coding has started in
less than 6 months after contract award - there's always a huge amount
of system level design that goes first, including things like picking
which platform to work with.
The cost-benefit equation is VERY different when comparing, say:
- a small e-commerce site
- a large e-commerce site coupled to multi-vendor supply chain management
- a transaction processing system
- a telecom switch
- avionics for a new passenger jet
And with all but the first, long-term operation and maintenance
considerations dwarf the time and dollars required to develop the system
(or should - there are some great examples of spectacular failures that
have eaten up billions of dollars before being cancelled - like the FBI
case file system). For products (again, telecom switches come to mind),
a lot of time and capital go in before a dollar of profit is seen.
Somehow, I simply don't see Erlang being relevant if your decision
criteria is "can't spend six months to see profit in a project."
Miles Fidelman
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
More information about the erlang-questions
mailing list