PDXfunc Functional Language question

8 views
Skip to first unread message

Mark Koenig

unread,
Feb 13, 2012, 11:36:36 PM2/13/12
to pdx...@googlegroups.com
Its good to hear the groups commitment to a multi-language forum.  Hopefully this beginner question finds a few comments.

What functional language would you choose if you wanted -

To develop a server app that uses smartphones for the client side.
To scale for thousands or tens of thousands of clients (ie Amazon services, etc).
To manage a failsafe database of all clients/transactions.
Have great performance.

It should also have -

Regular version releases (active development community).
Many practicing professionals (preferably in Oregon).
A commercial grade library with comprehensive documentation

I appreciate the response.
Mark in Eugene

Robert D Pitts

unread,
Feb 13, 2012, 11:41:25 PM2/13/12
to pdx...@googlegroups.com
I'm not sure how many practitioners there are in Oregon, but OCaml seems like it would be a good fit.

Alternatively there's Scala which does seem to have some presence locally.

While it may be heresy to recommend a MSFT product, F# seems to me that it would satisfy your requirements as well.

That said, most any of the larger FP languages could probably fit your needs as well.



--
You received this message because you are subscribed to the Google Groups "pdxfunc" group.
To post to this group, send email to pdx...@googlegroups.com.
To unsubscribe from this group, send email to pdxfunc+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/pdxfunc?hl=en.

Jesse Hallett

unread,
Feb 14, 2012, 12:15:56 AM2/14/12
to pdx...@googlegroups.com
It seems to me that most of your requirements could be met by pretty
much any language. The large scale suggests to me that you would want
something that supports non-blocking IO; but most languages support
that in one way or another nowadays. I think that the criteria to
focus on are your last three: an active development community,
availability of programmers, and good documentation.

I second the suggestion of Scala, based on those criteria. It seems
to have some good libraries available - and its interoperation with
Java provides a lot of options to fall back on. There also seem to be
a bunch of Scala programmers in Portland. For example, there is a
local user group dedicated to Scala <http://pdxscala.org/>.

Other languages that I think would work perfectly well include Erlang,
Clojure, Haskell, and NodeJS.

Phil Tomson

unread,
Feb 15, 2012, 12:51:12 PM2/15/12
to pdx...@googlegroups.com
On Mon, Feb 13, 2012 at 8:41 PM, Robert D Pitts <rbxb...@gmail.com> wrote:
> I'm not sure how many practitioners there are in Oregon, but OCaml seems
> like it would be a good fit.

There's lots of us OCaml-ists around PDX, right? :)

Another option for the OP could be Opa a functional language for web
dev (which is a different language based on OCaml):
http://opalang.org/

Chris Tilt

unread,
Feb 15, 2012, 1:10:16 PM2/15/12
to pdx...@googlegroups.com
I have some experience shipping products using both OCaml and Erlang.
Both are extremely well supported languages and have some local
practitioners. For building a highly scalable system that is
industrial strength, my personal preference would be Erlang - it is
designed specifically to meet these system requirements. But OCaml is
so wonderful too! You would just need to create more of the
infrastructure to go highly parallel. Erlang makes that easy "out of
the box". I have no experience shipping products with other FP
languages, so I can't comment on them.

Cheers, Chris

Thomas Lockney

unread,
Feb 15, 2012, 3:56:12 PM2/15/12
to pdx...@googlegroups.com
On Feb 13, 2012, at 9:15 PM, Jesse Hallett wrote:

> I second the suggestion of Scala, based on those criteria. It seems
> to have some good libraries available - and its interoperation with
> Java provides a lot of options to fall back on. There also seem to be
> a bunch of Scala programmers in Portland. For example, there is a
> local user group dedicated to Scala <http://pdxscala.org/>.

If you have JVM experience, in particular, Scala is a good choice. The tooling is fairly mature at this point (there are rough spots, but no more so than any of the other FP languages I've seen and/or tried out). As Jesse mentioned, PDXScala exists, though it has been fairly quite of late -- mostly because we're all so damn busy. Bet there are plenty of us who can help point you in the right direction should you choose that path. I know of quite a few mobile services that have backends powered by Scala.

~thomas

Matt Youell

unread,
Feb 15, 2012, 6:06:07 PM2/15/12
to pdx...@googlegroups.com
My first choice would be Erlang, but I definitely would look into Clojure.


Alex Payne

unread,
Feb 15, 2012, 8:45:52 PM2/15/12
to pdx...@googlegroups.com
Hi Mark,

None of your requirements strictly dictate a functional language. But, of the FP languages out there, it sounds like you'd probably want something that runs on the JVM, since that's going to give you the broadest options as far as libraries for interfacing with AWS, databases, etc. So, that basically means Scala or Clojure, both of which have regular version releases.

I wouldn't say that either of those languages have "comprehensive documentation", but both have enough community support that one can muddle through. No FP languages have what you could reasonably call "many practicing professionals" when compared with more mainstream languages.

One factor you may want to consider is how your mobile app will talk to the server app: HTTP? If so, REST or SOAP? Thrift? (Evernote does Thrift over the public Internet, for example.)

Matt's suggestion of Erlang might also be a good one, but you'll have a harder time finding battle-tested libraries for everything under the sun in Erlang-land.

Good luck!

--
You received this message because you are subscribed to the Google Groups "pdxfunc" group.
To post to this group, send email to pdx...@googlegroups.com.
To unsubscribe from this group, send email to pdxfunc+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/pdxfunc?hl=en.



--
Alex Payne
http://al3x.net/
Reply all
Reply to author
Forward
0 new messages