[erlang-questions] Time for OTP to be Renamed?

Garrett Smith g@REDACTED
Thu Feb 13 17:02:33 CET 2014


On Thu, Feb 13, 2014 at 7:47 AM, Fred Hebert <mononcqc@REDACTED> wrote:
> On 02/13, Garrett Smith wrote:
>> What sucks IMO is that OTP is treated as "advanced" by the community
>> and by book authors. I understand the history of this, but there's a
>> cost: programmers delay learning core Erlang principles of
>> *applications* -- i.e. supervisor trees -- because it's not taught up.
>> It's also incredibly complicated, if you don't use e2.
>>
>> The irony is that *advanced* Erlang programmers can get away
>> programming outside the OTP guard rails. Beginners should not even
>> consider doing this until they understand why OTP works and why they
>> should deviate.
>>
>
> To me that's often a required step. Plenty of programmers do not know or
> aren't comfortable with:
>
> - Pattern matching
> - Recursion
> - Higher Order Functions
> - Anonymous functions
> - Principles of concurrency
> - Principles of distribution
> - Prolog-like Syntax
> - Expression-based conditionals (case/if)
> - Single Assignment
> - Immutability (and the lack for while and for loops)
> - Not using objects

Fred, I completely agree with you and I should have be clearer. I'm
not suggesting that the predominating material, which starts with
lower level language constructs and moves up the complexity chain, is
wrong. It's right. It's the way most languages are taught.

Well, what's *right* is that everyone learns differently and there's
lots of ways to approach a problem.

I've just found that "OTP" is treated as the thing-you-learn later,
which has tended to result in a lot Erlang developers who write non
compliant OTP code, which basically means that processes aren't
properly supervised. That's a raw deal for these folks.

But the code you have to write to be OTP compliant is a bear. It's
silly complicated. I've *figuratively* seen student's heads explode
when OTP was introduced too soon. So you're 100% correct.

I think if we can get a vey simply hello world app going, that's a
full blown OTP application, we'd have the best of both worlds -- a
simple starting point that elaborates the essential principles of
supervised processes.

The hello world task here is not nearly simple enough, but it's a
*huge* improvement IMO over what you'd see using gen_server:

http://e2project.org/quick_start.html

It's an attempt to move things in what I think is an important directly.

There's no doubt that people can learn effectively taking different
angles at a problem -- and the exiting learning material, books,
online resources, etc. are the reason we have an Erlang community
today, at all. I didn't mean to take a shot at any of this.

Garrett



More information about the erlang-questions mailing list