3,337 karma · joined May 8, 2011
https://kaspar.systems
github.com/kasbah
hn@kaspar.systems ---
Will check out take-home more when I get a chance, I did see some murmurs on the Elm mailing list of how it would be easy to do server side rendering. What impressed me about React's was that I could just call a function and get the HTML as a string. My project is statically generated so that was exactly what I needed.
To clarify further: I normally work as a firmware/electronics engineer so this was a bit of an experiment all around. I didn't charge my normal rates either.
I think Coffeescript, TypeScript and Babel (ES6 and JSX) are completely different beasts to Elm though. I can look at the compiled output of these languages and debug that, I don't really need source maps (though they would be nice).
I guess the idea for Elm is, you won't need to debug as you won't get runtime errors.
Though on the subject of inter-op, Purescript might be what you are looking for if you want a strongly-typed, Haskell-like language, compiled to JS with a less cumbersome foreign function interface.
Your point still stands though, I hope Elm comes up with some good ways to say "trust me I know what I am doing" and "here is some JS, run it".
EDIT: Though it might be that that goes against the whole premise of the language.
I pushed to use it for a contract for an open source application [1]. Ultimately that wasn't a success due to various factors but it's interesting to note that the client dropped Elm after I left and hired people to re-write everything in JS.
In retrospect Elm really wasn't the right choice for that project because it wasn't mature enough (and maybe I hadn't been using it for long enough either). The lack of any kind continuation monad for managing effects at that point (later added to the language as Tasks) and the cumbersome interop with JS (still an issue) were real sticking points. It's just frustrating when you have a problem that can be solved trivially with a state-mutating for loop and you have no easy mechanism to do it. The boilerplate required to use Chrome's messaging within the app was really painful.
I tried to use Elm again for a personal project, a kind of gallery website with a JS search function [2]. After starting an initial prototype in Elm I switched to using React (which I had never used before) and found I was much more productive (even though the code is messier). Having a much bigger repository of re-usable modules and being able to take short cuts is really valuable at this stage of development (and the server-side compilation ability is really cool).
These experiences have made me wonder about the real-world place for Elm and how long it would take for it to rival something like React. I definitely think there is a lot of value in learning Elm to help you think about state in your application in a more higher level way but I would really hesitate in advocating to use it for real-world project at this stage (it does depend on the project of course).
[0] https://github.com/switchface/helm
[1] https://github.com/kasbah/mooltipass.hid-app
[2] http://kitnic.it/ | https://github.com/monostable/kitnic (work in progress)
Some of my Make build systems have gotten a bit unwieldy so recently I have been looking at using Ninja and ninja-build-gen from npm. This way I can still write my configure and my build tasks in JS/CoffeeScript and get to use a modern less cluttered version of Make that will scale well with the project.
General interest, science, philosophy, design and architecture:
* Radiolab: http://radiolab.org
* 99 Percent Invisible: http://99percentinvisible.org
Embedded systems/electronics:
* Sparkgap, focused on a specific technical topic each episode, sometimes with guests. http://thesparkgap.net
* Embedded.fm, focusued on technical and non-technical topics surrounding embedded systems software development but also often links with art and education, often with guests. http://embedded.fm
* AmpHour: Dave Jones and Chris Gammel ranting about whatever they feel like fairly often with guests. http://theamphour.com
GPL is good for software, HDL and circuit masks only. I have seen a lot of debate around what one is allowed to do with GPLed PCB footprints. Bit of a pain in the ass really.
[1]: http://web.archive.org/web/20130718051941/http://jipel.law.n...
It would have required a significant time effort from me to understand what is going on and get everything set up the way I want. I was just not willing to put that in at the time. I've gone back to Ubuntu for now.
I am doing more and more Haskell development so I'll take another run at it or, at least, set up nixpkgs on Ubuntu but I will probably give the project some time to mature.
At the same time I know of cases of people being imprisoned that should be receiving psychiatric care instead; so point 6 in the article struck me especially.
- https://github.com/faylang/fay
- https://github.com/ghcjs/ghcjs
Each has it's own focus and strengths and weaknesses.
There is a long page on the Haskell wiki on the subject: https://www.haskell.org/haskellwiki/The_JavaScript_Problem
Michael Snoyman gave a really good talk recently which covers GHCJS and Fay: https://www.youtube.com/watch?v=XfINRj5OzGw
>A vexing character himself, Mr. Grothendieck (pronounced GROAT-en-deek) turned away from mathematics at the height of his powers in the early 1970s
Math powers?