Live data from Hacker News

How to Sell Excellence

docs.google.com

81–90 of 124 posts

Re: How to Sell Excellence

#81

Michael, big fan of your work here. Can you talk a bit more about how to avoid subordinating or dominating?

My main point is to recognize that: (a) there are good business people out there, (b) the fact that they trust idiots on tech is our fault as much as theirs (we get too arrogant or too submissive and fail to convince them), (c) we need to recognize that we and they have orthogonal skill sets and aren't *prima facie* smarter, (d) and this requires understanding certain cultural differences. It's a long road, though. W…

What's your response to this comment: https://news.ycombinator.com/item?id=9318560 ?

Re: How to Sell Excellence

#82
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)? Standard Chartered has a huge amount of infrastructure in Haskell. Clojure's too young to have the types of stories you're looking for, but it's had plenty of moderate-sized successes (as has Haskell). The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes.…

HN is as good as it needs to be

It will be once it gets a decent mobile view akin to viewing reddit on /.compact.

Anyway, good point--I've heard people complain that Haskell is hard to learn/understand, but I've never heard of anyone actually using it in production and regretting that decision.

Re: How to Sell Excellence

#83
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…

> The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes.

You must be joking, Twitter is far and away the largest Scala shop in the world.

Presumably you're mixing up LinkedIn's recent move from Scala to Java. An important caveat is that they're still using the Play framework (Typesafe product), just now in Java instead of Scala.

It's unfortunate that Play serves two masters (i.e. Scala and Java), but industry demands it -- the argument that FP is the one true way goes out the window in face of current reality: enterprise by and large will go with mature tooling and cheap developers in a large-team-friendly language like Java over a paradigm shifting FP language like Scala, Clojure, or Haskell.

Re: How to Sell Excellence

#84

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 t…

Hm, I'm not sure about the parallels between Lisp and Haskell, and the conclusion that they are primarily valued for showing off. Yes, they are appealing to programmers with that mentality because they are powerful languages that are difficult to learn and use effectively. However beyond that they diverge dramatically.

Lisp is a language with no syntax, it is like an unshaped lump of clay. It gives you total freedom to implement any computational construct you can imagine. This does allow greater productivity for very small teams, and maybe it's the most powerful tool for the smartest programmer, however it doesn't offer anything to improve the practice of maintenance and reuse. This is why no viable ecosystem ever coalesced around Lisp, and in fact why there are so bloody many Lisps to begin with: because it is attractive primarily to individuals who want to build their own special flower.

Haskell gains its power in an almost opposite way by its type system, it's an extremely rigid structure which contributes tremendously to code reuse and maintainability. It works because great effort was put into the type inference so that it is strong yet lightweight.

IMHO as a seasoned programmer who has spent 5+ years and 7+ years on individual projects, I can definitely see that Haskell is addressing real world problems in a way that Lisp can not. I use ruby day to day, and frankly it's good enough in its meta-programming ability to solve most of the pain that Lisp solves compared to say Java or C++. However when I look at the problems which creep in over a period of years, the code rot, these are things which Haskell trivially prevents while half-hearted type systems like Java don't really put a dent in.

I think the reason Haskell hasn't seen more adoption is simply because of the current value of shipping fast. However we are in the midst of a Cambrian Explosion of software, and I believe that as the maintenance costs become apparent (as well as parallelization increasing), that the scales will tip towards many functional programming ideas. Maybe it won't be Haskell that sees mainstream adoption, but at the moment it has the most powerful embodiment of these ideas. I wouldn't bet against it based on the parable of Lisp.

Re: How to Sell Excellence

#85
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…

Well, Twitter didn't backed away from Scala, but it doesn't qualify as purely functional.

Turing completeness ensures there's no "true way", but some languages offer better abstractions than others. In my experience, once you learn the abstractions, the functional paradigm has an edge about the ability to reason about the code.

Of course, the adoption of new ideas and technologies takes time, they need to be explored and fully developed. But even right now, you see many mainstream languages adopting functional flavors.

I believe that eventually, there will be enough successful large scale projects build with pure functional languages to convince skeptics, there's nothing wrong with "playing it safe" and wait.

If Scala is good enough as an example, I see an increasing adoption. As an anecdote, one of the biggest and Very Serious(tm) investment bank, is using Scala for most of their new initiatives, with a big team spread across the world. And the language itself was selected by a committee. You can't get more serious than that...

Re: How to Sell Excellence

#86

Earlier quoted context omitted.

What framework are you using? I've investigated Dart, Flow and TypeScript to improve static checking but I'm still having pain points: they work fine when dealing with your own self-contained code but integrating with third party libraries isn't always straightforward.

I'm using GHCJS and Reflex. Reflex is a recently released FRP library that makes a huge difference in one's ability to abstract GUI code. I personally feel that this combination of GHCJS + Reflex is the first thing I've used that makes web front end programming tolerable. A week ago there was a presentation about it at the NY Haskell Meetup. Look for videos of it to be posted early next week.

Reflex looks awesome, and it's real FRP

Re: How to Sell Excellence

#87

Earlier quoted context omitted.

> I'm sure there's some way I could use Haskell or OCaml to write Android and web apps. I don't know about Android, but for Javascript apps the balance tipped for me just last month. I'm probably enough of an insider that it's not quite true yet for the average Haskell developer, but I believe that will change soon.

What framework are you using? I've investigated Dart, Flow and TypeScript to improve static checking but I'm still having pain points: they work fine when dealing with your own self-contained code but integrating with third party libraries isn't always straightforward.

I've used Purescript[0] and thermite[1] (purescript's react bindings):

0: http://www.purescript.org/

1: https://github.com/paf31/purescript-thermite

Re: How to Sell Excellence

#88

Earlier quoted context omitted.

And, so what? Sure, Haskell is less popular in industry many other languages. That was true of all the currently popular industrial languages before they became popular. But its certainly not the case that there are no succesfull uses of Haskell in significant systems.

>That was true of all the currently popular industrial languages before they became popular. The most popular language, namely C#, Java and C++ became popular quite quickly. >But its certainly not the case that there are no succesfull uses of Haskell in significant systems. I didn't say that. I am sure there are successful uses for Haskell, but there're no killer apps for it.

> The most popular language, namely C#, Java and C++ became popular quite quickly.

But those languages had corporate backing. Haskell doesn't have corporate backing, so shouldn't you compare it to languages that became popular and didn't have corporate backing?

Re: How to Sell Excellence

#89
That chart on slides 29-35 which claims you will be 600% more productive with Haskell than C#/Java after 5 years...

Its just made up isn't it? This is part of the problem. If you try to convince someone smart, experienced but skeptical by making things up, you hurt your own case.

Re: How to Sell Excellence

#90

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.

The paradox is that if you are focused on how to make the most money to the point that you are choosing your programming language based on estimated market value, you are likely not the caliber of developer that the top-tier tech companies are looking for. In other words, you can probably make $150k under an insufferable pointy-hair at any Fortune 500 company, but you won't get to work on cool stuff at Google or Face…

If great engineers didn't care about money Facebook and Google wouldn't have to pay them 250k :).
Post reply on HN