Live data from Hacker News

Frege: A JVM pure functional programming language in the spirit of Haskell

github.com

31–40 of 112 posts

Re: Frege: A JVM pure functional programming language in the spirit of Haskell

#31
post #24

Earlier quoted context omitted.

What would you prefer? A language that doesn't need a runtime, like C? A language that has only one available runtime, like node.js? A language that has a choice of runtimes but there are incompatibilities between them like Python or Ruby? A language that has a choice of runtimes from a choice of vendors like Java?

A runtime that can be used for a wide-variety of types of applications. JVM can really only be used for writing web servers and possibly daemons.

and Android apps...

Re: Frege: A JVM pure functional programming language in the spirit of Haskell

#33
post #29

Earlier quoted context omitted.

What would you prefer? A language that doesn't need a runtime, like C? A language that has only one available runtime, like node.js? A language that has a choice of runtimes but there are incompatibilities between them like Python or Ruby? A language that has a choice of runtimes from a choice of vendors like Java?

"A language that doesn't need a runtime, like C?" The language perhaps doesn't, but most actual programs do. I'm definitely not going to write my own standard library just because I can.

I wasn't advocating one choice or another. It's just the person I replied to just said "JVM ugh", which isn't necessarily reasonable.

Re: Frege: A JVM pure functional programming language in the spirit of Haskell

#34
post #8

The conclusions of http://fregepl.blogspot.jp/2013/03/adding-concurrency-to-fre... lead me to believe that the author knows significantly more about Haskell than about either the JVM or concurrency. I hope that the language is able to attract a healthy number of contributors in those areas before it begins to accrete it's own idiomatic concurrency patterns.

Your comment would be more useful if you elaborated on these claims.

The section on forkIO vs forkOS is interesting because the author does not mention implementing green threads atop the JVM. It would be feasible for Frege and its core libraries to use an implementation of "green threads" based on Promises or CPS under the covers in order to implement a concurrency model indistinguishable from Haskell's.

While it is true that the vast majority of JVM code you interact with is blocking and expects to own whatever OS thread it is running on, that could be treated as a concern of FFI, where untrusted/blocking code in Java land gets dedicated OS threads (similar to FuturePools/execution-contexts for scala Futures, or how you would manually isolate blocking code for Erlang or Go FFI.)

Additionally, the comment dismissing STM seems like an afterthought, because there are at least three JVM implementations (Clojure's, Scala's, and Multiverse)

But the main comment I was referring to was:

  To do serious concurrent work in an JVM environment is
  different and it will thus require different knowledge
... which suggests that the author isn't interested in supporting Haskell's idiomatic concurrency model atop the JVM, and is instead fine with the status quo of blocking code.

Re: Frege: A JVM pure functional programming language in the spirit of Haskell

#36
post #24

Earlier quoted context omitted.

A runtime that can be used for a wide-variety of types of applications. JVM can really only be used for writing web servers and possibly daemons.

and Android apps...

Android doesn't run JVM.

Re: Frege: A JVM pure functional programming language in the spirit of Haskell

#37
post #24

Earlier quoted context omitted.

What would you prefer? A language that doesn't need a runtime, like C? A language that has only one available runtime, like node.js? A language that has a choice of runtimes but there are incompatibilities between them like Python or Ruby? A language that has a choice of runtimes from a choice of vendors like Java?

A runtime that can be used for a wide-variety of types of applications. JVM can really only be used for writing web servers and possibly daemons.

And building Twitter [1], and big-data next-generation databases [2], and android apps, and desktop apps, and big data [3], and as a platform for new languages (Clojure, Scala, Frege), and many more applications.

Really, the JVM can be used for anything that _computers_ can be used for, and it does so in a way that the code is runnable across all major platforms and still maintains a top-5 language performance spot, even beating C/C++ in some specific cases.

Why do you feel that the JVM is limited in its applications as a development platform?

[1] http://blog.redfin.com/devblog/2010/05/how_and_why_twitter_u... [2] http://www.datomic.com/about.html [3] http://hadoop.apache.org/

Re: Frege: A JVM pure functional programming language in the spirit of Haskell

#38
post #24

Earlier quoted context omitted.

What would you prefer? A language that doesn't need a runtime, like C? A language that has only one available runtime, like node.js? A language that has a choice of runtimes but there are incompatibilities between them like Python or Ruby? A language that has a choice of runtimes from a choice of vendors like Java?

A runtime that can be used for a wide-variety of types of applications. JVM can really only be used for writing web servers and possibly daemons.

Really? Plenty of apps run on the JVM (everything from enterprise apps to games to IDEs etc...). I'm no JVM evangelist (I use Haskell with the GHC), but this is just a false statement.

Re: Frege: A JVM pure functional programming language in the spirit of Haskell

#39

Cute name. I wonder to what extent the language has anything to do with Frege's work in logic. I mean Haskell's last name was Curry, and currying is a big deal in FP. Thankfully that wasn't named after Moses Schoenfinkel.

Hey, I'd love to use a language named Moses. You'd have all sorts of great puns and iconography available for library names.

Re: Frege: A JVM pure functional programming language in the spirit of Haskell

#40
post #36

Earlier quoted context omitted.

and Android apps...

Android doesn't run JVM.

Not technically, but practically speaking, you compile to JVM code & then it gets translated. This makes targeting the JVM & Android trivial.
Post reply on HN