Earlier quoted context omitted.
> My dream language is one with ML semantics running on top of BEAM. That seems like a natural progression for a platform that was designed to be reliable -- while there have been attempts to graft a more versatile type system onto the Erlang base language, the cleanest way forward seems to be a language purpose-built for the task. On the other hand, OCaml is pretty fast in most cases. BEAM doesn't have the same repu…
AliceML is worth a look, though development seems to have died out a few years ago :( http://www.ps.uni-saarland.de/alice/
Why the Cool Kids Don't Use Erlang [video]
51–60 of 69 posts
Re: Why the Cool Kids Don't Use Erlang [video]
#52Earlier quoted context omitted.
In an absolutely brilliant video[0] on Microsoft's Channel 9, called "Panel: Systems Programming in 2014 and Beyond" (with Charles Torre, Niko Matsakis, Andrei Alexandrescu, Rob Pike, and Bjarne Stroustrup), Rob Pike makes a comment (I'm paraphrasing) that in making Go, he realized that testing in general and the idea of TDD was due to dynamic languages not having any compile-time checking. The panel seemed to agree.…
Kent Beck invented TDD while programming in Smalltalk, having recalled reading a paper on using TDD with punched tape. I think Rob Pike is confused in his history/assertion.
Re: Why the Cool Kids Don't Use Erlang [video]
#53Earlier quoted context omitted.
Typing a the message-passing part of a language like Erlang is very much an open research problem. I spoke about this at length with the session type community. They are thinking about this, but it's at least a decade away.
Isn't Akka planning to add types w/ typed akka? If they can pull that off some subset of Erlang should be doable as well
Re: Why the Cool Kids Don't Use Erlang [video]
#54I tried to do a startup in Erlang a few years ago. Haven't been able to watch the video because there aren't subtitles or a transcript, but here is why I don't use Erlang anymore: the type system. Erlang/OTP does MANY things correctly, where "correctly" is taken to be "in line with my tastes", and yes this includes the inane issue of syntax. But the type system? Normally that wouldn't bother me, but I'm coming from O…
I'm in the same boat as far as dream languages go. But just out of curiosity, what is it about F# or Scala that you don't like? For me Scala is an amazing language that sacrificed what could have been a clean design for the sake of Java interop, while inheriting a bunch of the baggage of the Java ecosystem (no closures until recently, type erasure, needless boxing, etc). And F# is still a windows-first ecosystem, as…
You'd probably like OCaml, considering how F# is basically "OCaml for .NET". And it definitely cannot be accused of having a "Windows-first" ecosystem.
Re: Why the Cool Kids Don't Use Erlang [video]
#55Earlier quoted context omitted.
"while there have been attempts to graft a more versatile type system onto the Erlang base language, the cleanest way forward seems to be a language purpose-built for the task." Are you sure that's even possible? Erlang is fundamentally a dynamic system, with hot code (re)loading, processes starting and stopping (possibly crashing), and nodes attaching and detaching. Moreover, the idea that a message can be sent to a…
Typing a the message-passing part of a language like Erlang is very much an open research problem. I spoke about this at length with the session type community. They are thinking about this, but it's at least a decade away.
Re: Why the Cool Kids Don't Use Erlang [video]
#56Earlier quoted context omitted.
Absolutely brilliant video. One of the best parts was when Pike brings up Erlang, and everyone just kind of mutters and looks down. I also like the part where Pike was like "Yeah, we statically verified the Plan 9 kernel somewhere, but nobody cared. :(" The important thing to note, though, was the thing they all agreed on: type systems don't magically replace tests, and don't magically save you from things when you'r…
I agree. Thank goodness they're not mutually exclusive! I happen to be a Go fan, and thankful testing is well supported in the language and tooling. After having worked heavily in both compiled and dynamic software environments, I do like having compile-time checks on stupid things like typos. All my love to Python, which we use heavily, but my, what some compilation-like tooling would save me. (Nim has really caught…
But if you touch the standard library, which in a systems language is going to happen a bit, then isolating your own code is basically impossible. You are stuck with integration testing only.
Mocking, faking, stubbing and whatnot frequently blow your feet off if you use them indiscriminately. But sometimes they are the best way to test code because you can perform controlled experiments with variables that you control. Go's standard library is riddled with physical structs that cannot be substituted for any kind of double.
Basically, they don't follow their own advice to interface all the things.
Re: Why the Cool Kids Don't Use Erlang [video]
#57Earlier quoted context omitted.
>Compile time checking basically replaces a large chunk of unit tests one would have to write and maintain to cover the same issues. As does static analysis. You do use a ruby static analysis tool on your project, right?
The last ruby project that I worked on laughed at static analysis tools before pitching them into halting problems. You have to execute ruby code just to assemble the classes, it's quite resistant to static analysis unless you artificially restrict yourself to a subset of the language. If you're going to limit yourself to the statically checkable part of the language then you might as well just use a language that wa…
Or not, because that would still catch misspelled variables (the problem the OP complained of), and running a static analysis tool a little bit easier than rewriting your entire project in a different language.
Re: Why the Cool Kids Don't Use Erlang [video]
#58Warning: wall of text ahead. My Erlang experience is admittedly hobbyist, and mostly as a consequence of working my way through Fred's excellent http://learnyousomeerlang.com/ and fooling around with side projects. As I see it, Erlang does a lot of cool stuff, at a semantic and systems level, but utterly fails when it comes to things like approachability and marketing. These topics are universal to all languages, so…
That's pretty awesome in my opinion.
Re: Why the Cool Kids Don't Use Erlang [video]
#59Re: Why the Cool Kids Don't Use Erlang [video]
#60Earlier quoted context omitted.
> Given a mutually exclusive choice, I'll take a strong test suite over a strong type system any day That's great as long as you'll only ever work on that one project. A test-suite yields benefits for one project, a type-system yields benefits for every project.
True, however. Test suits tests things that a type system never is able to test. In general, if you reach a non trivial size of code you have to have unit tests in order to stay productive and speedy at a high quality level. A type-system only speeds you up in the beginning.