5 ms·
One way of reading what he is saying is that if you are thinking of using pure FP for your application and it is not primarily a calculator (e.g. Jane Street) t
by discreteevent 14y ago
One way of reading what he is saying is that if you are thinking of using pure FP for your application and it is not primarily a calculator (e.g. Jane Street) then be careful - nobody has proved that it will be quick to prototype, iterable, maintainable, understandable, flexible etc. Surely the academic community should feel more obliged to test their theories and follow things up further than toy examples or examples that match the paradigm exactly? What are they being paid for? In the meantime if someone does want to be at the cutting edge what would be interesting to see would be a word processor, a CAD program or a photoshop developed using a functional language (not a hybrid like Scala but something like Haskell where state is completely isolated using monads or whatever).
- tikhonj 14y agoI don't know, there are some other pretty compelling examples out there already. The application I like most is programming languages--not just compilers and interpreters but also various tools and analysis. I think quite a lot of software related to languages gets written in functional languages, and in my experience Haskell is much better for that sort of thing than Python or JavaScript. I've actually written very similar interpreters in all three languages so I think I have a particularly useful perspective here. Another field is web development. There was an article recently about Yesod's being as productive as Rails; I think a functional language would be a safe choice for your next web app. I think there has even been some 3D modelling software written in a functional language--Wings3D is written in Erlang unless I'm much mistaken. I haven't really been paying much attention to other fields--all my time recently has been spent almost equally between language stuff and web stuff--but I think there are other cases where functional programming is a fairly safe choice that are not just calculations. Coincidentally, I doubt that we will see Photoshop or a word processor in a functional language any time soon. Not because functional languages are particularly unsuitable but because word and image processing software is rather big, boring and requires a lot of specialized knowledge; I imagine the intersection between "functional programming enthusiasts" and "word processor enthusiasts" is not very big. In fact, most of the people I know who like functional programming use something like LaTeX rather than a word processor and don't do much image manipulation either.
- gaius 14y agoI thought GIMP came with a Scheme interpreter built in? And of course AutoCAD has AutoLisp.
- batista 14y agothose are just for customization, invoking pre-determined functionality endpoints... He asks about software WRITTEN in a FL.
- cageface 14y agoWriting a word processor may indeed be boring but a lot of very cutting edge tech goes into something like Photoshop. I doubt you could write an acceptably fast Photoshop in Haskell but I'd be happy to be wrong.
- icarus127 14y agoI'm honestly surprised to see people make this claim still. I only pay substantial attention to the Haskell community and there are a lot of high quality non trival projects built in Haskell. As another comment mentioned, Yesod is one, but there are also Happstack and Snap for web frameworks. Leksah is a functional but still very early IDE, Gloss is a great data visualization toolkit, Threadscope is a nice tool for postmortem program analysis, Yi is a Alpha/Beta stage Emacs/Vi clone. The list goes on, there are also (literally) 100's of libraries for doing all sorts of things that have nothing to do with glorified calculators. And that's just Haskell, I know that the Clojure folks are doing lots of interesting stuff, and the Erlang folks too. I honestly have no idea what is being done in F# but I assume it's being supported for a reason. I don't think anyone has _proven_ that FP strictly better than imperative style (though I think it is). However, I think it's been amply proven that it's at least _as good as_ imperative programming. The argument that no one has ever built more than a glorified calculator hasn't been true for a long long time.
- dons 14y ago> (literally) 100's of libraries We passed 4000 libraries last month :)
- deleted 14y ago[deleted]