Live data from Hacker News

How to Sell Excellence

docs.google.com

11–20 of 124 posts

Re: How to Sell Excellence

#11
post #4

At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…

That may be survivor's bias, though. How many software products end up not making it, at all? If you look at all software projects, everywhere, combined, and split them up: functional vs non-functional. The latter group would several orders of magnitude larger than the former.

Now what percentage of the non-functional ones ends up becoming successful enough for you to hear about them and know what they were built with? Apply that percentage to the functional projects, you might just be left with naught.

I have a feeling that if there's one thing more rare than functional programs, it's highly successful ones.

Re: How to Sell Excellence

#12

I disagree with the presentation a lot. * There's no widely used successful system written in Haskell. Yes, there's GHC, Agda, Idris and other research tools but they are marginal. * It's untrue that mutable state is the main reason of problems with code. You can manage state in Java and C# in any other language. * Haskell programmers are usually smarter than Java programmers, but they often don't want to work on tas…

> There's no widely used successful system written in Haskell. Yes, there's GHC, Agda, Idris and other research tools but they are marginal.

Google's Ganeti?

Microsoft's Bond?

> It's untrue that mutable state is the main reason of problems with code.

Its certainly one of the biggest, if not the single biggest (the only thing I can think of that gets cited nearly as much is multithreading/parallelism, and the main source of problems in that domain is also managing mutable state in that context.)

> You can manage state in Java and C# in any other language.

Sure, Turing equivalence means there is very little difference in what languages can do, just in how suitable the abstractions they present are to enabling humans to do it effectively.

> Haskell programmers are usually smarter than Java programmers, but they often don't want to work on tasks which they aren't very interested in, which are almost non existent, or have little business meaning.

So, take Java programmers (particularly smart ones) and teach them Haskell. Bang, you've got Haskell programmers without worrying about the interest distribution among pre-existing Haskell programmers. Learning PLs, for skilled programmers, isn't a huge deal -- the good Java programmers won't have much problem becoming good Haskell programmers.

Re: How to Sell Excellence

#13
post #4

At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…

> But where are all the successful large scale projects built with Haskell (or Clojure or whatever)?

How about Erlang. Let's try it, just from the top of my head:

* AXD 301 Switch -- Classic. Powers and control phone switch networks of whole countries. Claims 99.9999999% reliability.

* Basho Riak -- popular NoSQL database, highly scalable nodes are peers

* RabbitMQ -- popular message queue used by enterprises

* WhatsApp -- messaging application, processes billions of messages a day. Built and maintained by only a few engineers. Sold for billions of dollars.

* Klarna -- European payment processing

* Bet365 -- Sports bets

* Stock trading -- Allegedly Goldman Sachs uses it.

* Erlyvideo.org -- Video streaming service

* eNodeB -- Ericsson cell to internet gateway. There is a 50% if you want to look at cat pictures from your smartphone and Erlang breaks, you won't see your cat pictures.

* Wings3D -- A subdivision 3D modeler. I guess you can build your 3D cat and then send it over WhatsApp via a eNodeB to your friend.

Those are just I know of. So there you go. Maybe you should learn Erlang ;-)

Re: How to Sell Excellence

#14
post #13
post #4

At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…

> But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? How about Erlang. Let's try it, just from the top of my head: * AXD 301 Switch -- Classic. Powers and control phone switch networks of whole countries. Claims 99.9999999% reliability. * Basho Riak -- popular NoSQL database, highly scalable nodes are peers * RabbitMQ -- popular message queue used by enterprises * Whats…

Throw IRCCloud into that list, my go-to IRC client that I've been using for nearly two years.

Re: How to Sell Excellence

#15
post #4

At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…

I'd like to think that the Erlang has proven its value at building reliable, distributed applications. It's a go to language for distributed key value stores (Riak, Couch, et al), and it's in wide use in Motorola and Ericsson to build critical infrastructure. I call that successful.

That said, you do have a valid point: The presentation provides justifications for those that want to switch in the first place, but to be compelling, it needs evidence.

Re: How to Sell Excellence

#16
post #4

At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…

Apache Spark is written in Scala.

Whitepages is also Scala.

That's off the immediate top of my head.

Re: How to Sell Excellence

#17
post #4

At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…

WhatsApp was built on Erlang

Re: How to Sell Excellence

#18
I loved Haskell, seriously!

The year was 1997 and my uni professor was contributing to Hugs (do you remember it?). But, while I was working my way through Monads and stuff other people were running circles around me in C or C++. The basics were "simple" (even for basic C++) and they concentrated in getting things done.

Years later I launched my first start-up idea on Common Lisp. In both situation I learnt two hard truths:

a) libraries and support are very important

b) Architecture + basics >>>>> any particular technology

Now we are in 2015 (nearly 20 years later) and Haskell has advanced as much as Common Lisp on regards of usefulness for the general business. People still consider them elite (or 1337!) languages for showing off, meanwhile the rest of the world (with its mediocre programmers and tools) are running circles again. Programs now are distributed around dozens, hundreds or thousands of machines. Latency, networks, deployments, services, data communication,...

In the end I selected Python as my main programming language, following Norvig's advice that Python made for a good replacement for Lisp. I don't regret my decision not even a bit. Python paid/pays my bills. Yet, from time to time I read this posts and presentations and I feel a bit of envy for not being in a position where I could say «I reject your reality and substitute my own» and use Haskell or Common Lisp for main infrastructure to have the 1337 feeling again... like when I use obscure operative systems and end up in fruitless battles over how they are better even taking into account the lack of mainstream adoption (I'm staring at you Haiku-os!).

Re: How to Sell Excellence

#19
Reading the "How to Sell to Business" section convinced me as an engineer that I should not focus on Haskell. If Haskell programmers are a better deal for businesses because better programmers can be hired for less money, I should logically choose to be a Java programmer for the same reason.

Re: How to Sell Excellence

#20
post #15
post #4

At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…

I'd like to think that the Erlang has proven its value at building reliable, distributed applications. It's a go to language for distributed key value stores (Riak, Couch, et al), and it's in wide use in Motorola and Ericsson to build critical infrastructure. I call that successful. That said, you do have a valid point: The presentation provides justifications for those that want to switch in the first place, but to…

I work in Erlang and love it, but I would make the friendly argument that Erlang is really distinct (and special) even among the FP languages for a number of reasons. I always had the impression that Erlang was functional to support the guarantees made by the runtime rather than for ideological reasons. Some of the Functionistas I've run into seem to reject it out of hand for not being Haskell, but as a C guy I find it freaking amazing for writing stuff that has to stay running all the time. I guess I use in spite of it being functional rather than because of it, but it feels like I'm getting good value even when I run into things that are a pain in the ass to do functionally (which is not super often).
Post reply on HN