Hacker Newsnew | past | comments | ask | show | jobs | submit | more mcmire's commentslogin

So, the next next next next SourceForge, then...


I knew the original was somehow different too.

Also, couldn't you right-click in the air to do tricks or something?


You could press up or down while mid-air to have the player flip back and forwards.


That's what I was going to say. I found the constant reformatting of the math stuff in the right pane extremely jarring.

Otherwise, nice and simple.


yeah -- we'll try to smooth this out!


I don't know too much about the underlying technology and/or science but I do know that more people should be getting excited about this. A warp drive!! What!!!


Oh, this is cool. I'm trying to make an interactive web thing that basically builds a musical sequence from input - it builds what you like, essentially. How do you get a computer to compose music? How do we deconstruct music? When a section of music piques our interest, what is that we like? These are the sorts of things I've been thinking about lately.


A couple of questions:

1) Is this a subset of Haskell, or a brand new language inspired by Haskell?

2) It appears that FRP (which by the way is a cool idea) isn't necessarily language-specific, is this true? My guess is that Elm just brings FRP to the forefront in the same way Lisp brings FP to the forefront?


1) Brand new language inspired by Haskell's syntax, but it is really much closer to ML (strict evaluation, no type classes). More info: http://www.testblogpleaseignore.com/2012/06/21/why-elm/

2) That is totally true! The idea is quite general. I think it works best in a strongly typed language like OCaml or Haskell, but it could work anywhere. FrTime is a Scheme/Lisp/Racket version of FRP. My personal opinion is that it works best in Elm though :P


Briefly, how would you summarize the semantics of FRP in your language as compared to Yampa in Haskell?


A generalization. Arrowized FRP (as introduced in Yampa) can be entirely embedded in Elm.

The Automaton library is the beginnings of such an embedding: http://elm-lang.org/docs/Automaton.elm

To be more concrete, in Elm you can work directly with signals if you want. In Yampa you cannot; you only get "signal functions" (which Elm has as well in the form of Automatons).


Flapjax[1], an FRP library for JavaScript, has been around for several years and can be used purely as a JS library[2], or you can use its compile-to-js DSL to build page/app templates[3]:

[1] https://github.com/brownplt/flapjax

[2] http://www.flapjax-lang.org/docs/

[3] http://www.cs.brown.edu/~sk/Publications/Papers/Published/mg...

A couple of years ago, I began (somewhat naively, on my own) hacking together a "next gen" version which was intended to generalize the functionality of Flapjax-as-a-library. I learned a lot, and ended up coming face-to-face with monads and monad transformers (though I didn't realize it at the time) and the limitations and complications that mutable data structures (as opposed to immutable ones) imply for dataflow/FRP frameworks. My work on that library stopped when I shifted from NodeJS to Clojure/ClojureScript for my day-to-day work. Now that I'm a bit more experienced with functional programming, monads, etc., I hope to find some time to restart that effort, using ClojureScript (and protocol-monads[4]?) as the foundation.

[4] https://github.com/michaelsbradleyjr/protocol-monads


Does anyone else think this is a tremendous waste of time for Facebook? I mean, obviously PHP powers a lot of stuff at Facebook, I'm sure there are zillions of lines of code they can't just replace today, and now they're forced to make it scale. I don't mean to be negative -- building faster, better systems is inspiring, and the stuff they are doing with PHP is pretty neat, and there are really smart people trying to figure this stuff out. But, you have to ask, why are they still using PHP?? Why not use some of the new stuff that's out there now or heck, why not go with the JVM instead of reinventing the wheel here?

No I'm genuinely asking. Isn't some of the stuff here already being done by other languages, or is Facebook really breaking new ground here? (yes lbrandy I saw your earlier comment)


My personal opinion on it is that this is in fact a very efficient way of doing things at Facebook. Facebook probably doesn't hire more than a couple people working on HHVM. Let's say their salaries individually are around $100,000 a year. That's cheap for them versus the value they're getting out of it.

Facebook probably has millions of lines of PHP code, PHP code proven to work. This isn't just Facebook.com, but internal websites, their bug tracker software (that is open source), analytical software for PHP, etc. etc. Rewriting all that would be _expensive_.

Running it on normal Zend PHP, based on the benchmarks they get on HipHop, requires _way_ more hardware at the scale of Facebook, so again, very expensive.

PHP developers are abundant, PHP is a relatively easy language to teach, resources are everywhere. Due to their abundance, PHP developers (even at Facebook quality) are probably less expensive than other languages. Easier hiring and lower cost developers, cheaper.


> But, you have to ask, why are they still using PHP??

If you read the comments, you'll find the answer further down. They do address it. At their scale, all languages/platforms break and they would need to invest the same amount of time and effort getting it to work.

It won't make a difference if you switch to the latest hipster language. You'll still need an effort of this magnitude to get it to scale the way they need it to.

Furthermore, rewriting an entire code-base is a monumental undertaking that is both expensive and complex. Especially for something as large and diverse as Facebook. It also makes zero business sense and Facebook is a business.

Why should they take a risk with a new code-base, when what they're doing is clearly working? PHP just works.


Because you also need to consider the human factor.

Changing languages in the scale of Facebook, means that everyone, internal or external, need to know the new language.

This transition is a big process, which usually costs much more money in trainings and loss of productivity, than having a dedicated team improving the performance of existing tools.


So if English is derived from Middle English which arose when the existing inhabitants of the British Isles took on the language of the newly arrived Scandinavians... where did Old English come from?


Second paragraph:

    Old English, or Anglo-Saxon, is a West Germanic language,
    which the Angles and Saxons brought with them from
    Northern Germany and Southern Jylland when they settled
    in the British Isles in the fifth century.


Actually its still not 100% understood and still being studied


Wow, that is cool for sure. One comment: set the default scrolling behavior to "paged". I found that real-time movement was too blurry. Otherwise, great job!


Ah what I didn't know there was a WebMIDI draft... do any browsers plan to support this?


Chris Wilson is an author of this and at Google so I guess Chrome at least will implement. No idea beyond that.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: