Just wanted to give people who are interested in Elm a heads up. Manning is working on an Elm book called Elm in Action. It is a MEAP, but I don’t think it has been added to their website yet. I’m part of their Reviewer program and received an e-mail as to which book I’d like to review next and Elm in Action was one of the choices.
You can stay in pure F# until you need to use objects in the .NET framework. Which is to say that it will happen quite often. There are times where it will feel like there is a little impedance mismatch like when you have to account for the difference between statements and expressions. But for the most part, working between pure F# and OO is pretty seemless, like using the pipe operator with methods on objects. Using static classes will feel like you are using Module.function syntax but you pick up some features like multi-method dispatch through method overloading.
It’s a great language, but I’m also a big fan of syntax from the ML family of languages as much as I am a fan of elixir’s syntax.
Since you like ML syntax as well, you might want to keep an eye on facebook’s Reason project. https://facebook.github.io/reason/. Facebook is finally open sourcing it. It was an ocaml based internal language that they were using to generate javascript.
whoah, this looks awesome. Especially interesting since it’s made in my home country (and I believe most of Elixir has been coded in Poland too, since @josevalim lives here and we all know he’s responsible for like most of it ;))
I’m interested in Elixir
I graduated studies with Ruby on Rails project, then I discovered Python a bit. And I’m working in PHP/ColdFusion environment.
Smalltalk is quite nice as it allows for interactive development like Erlang/Elixir. Smalltalk does not use a repl. Instead the whole IDE is made for interactive development. Everything you change in any code browser or object inspector window becomes immediately effective. There is never a restart of the application required and no difference between development time and runtime.
Unhappily, Smalltalk is really dead. But I wished Erlang/Elixir would get a completely interactive IDE just like Smalltalk. Check out Squeak Smalltalk (squeak.org). This is a free Smalltalk system you can play with to understand the interactive ness in Smalltalk.
This is very interesting. I can’t wait to put my hands on that thing and play with it.
I actually suspect this will be similar to Smalltalk’s images, in terms of that you won’t operate on files. I have a hunch you will not use Vim but rather built in IDE.
I actually like how different many languages are. It is really horizon-broadening to learn multiple languages with varying paradigms.
But one language that stands out from the rest that I’d like to get more experience with, is Inform 7. This is a Domain Specific Language geared specifically to writing Text Adventures. As such, it is written very much like the english language.
For the curious, here is a code snippet:
The Living Room is a room. "A comfortably furnished living room."
The Kitchen is north of the Living Room.
The Front Door is south of the Living Room.
The Front Door is a door. The Front Door is closed and locked.
The insurance salesman is a man in the Living Room. The description is "An insurance salesman in a tacky polyester suit. He seems eager to speak to you." Understand "man" as the insurance salesman.
A briefcase is carried by the insurance salesman. The description is "A slightly worn, black briefcase." Understand "case" as the briefcase.
The insurance paperwork is in the briefcase. The description is "Page after page of small legalese." Understand "papers" or "documents" or "forms" as the paperwork.
Instead of listening to the insurance salesman:
say "The salesman bores you with a discussion of life insurance policies. From his briefcase he pulls some paperwork which he hands to you.";
move the insurance paperwork to the player.
I would love to create my own dialect similar to Inform 7 at one time to describe game worlds or other systems with.
DSL is good for writing tests :). Example from cucumber
Scenario: Eric wants to withdraw money from his bank account at an ATM
Given Eric has a valid Credit or Debit card
And his account balance is $100
When he inserts his card
And withdraws $45
Then the ATM should return $45
And his account balance is $55
I already learnt a little bit of Scheme, a little bit of Haskell, a little bit of Prolog. Now I’m into Elixir. I’m not planning to learn Elixir just for a little bit, though. The language really makes me hooked. Haha
On the topic of Prolog: I find it a very interesting language, but I have never found any use for it outside of small academical examples (mostly having to do with Natural Language Processing). I know, of course, that the first version(s) of Erlang have been written in Prolog (which amazes me greatly! ^^), but what would be the domains where Prolog would be your go-to language?