Live data from Hacker News

How to Sell Excellence

docs.google.com

51–60 of 124 posts

Re: How to Sell Excellence

#51

Earlier quoted context omitted.

I would use strongly typed functional programming languages for everything if I could. However, to be productive, you're usually constrained by what the dominant language is for your domain. For example, Android apps are usually written in Java and web apps are usually written in JavaScript. Each has a huge ecosystem of tools and libraries based around these languages. I'm sure there's some way I could use Haskell or…

> 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.

Re: How to Sell Excellence

#52
post #28

Earlier quoted context omitted.

Well OP asked about Clojure so Erlang fits the profile. But you make an interesting point in a way. One can ask, ok here are two non-strictly functional languages that seem to be fairly practical. Used for large distributed mission critical systems. Would they be better off written in Haskell? Would they have been written at all if creators only knew about Haskell? How large is the relationship between fault tolerant…

>But you make an interesting point in a way. One can ask, ok here are two non-strictly functional languages that seem to be fairly practical. Used for large distributed mission critical systems. I think there're at least these problems with Haskell: * The language is badly designed. See the number of extensions which aren't standardized but widely used. See also obvious problems such as requirement to use renames whe…

> the number of extensions which aren't standardized but widely used.

Actually, I think this is something that Haskell did right. It allows experimentation with new language ideas in a way that allows them to be tested safely with existing codebases. Edward Kmett recently had this to say about it:

> I appreciate Haskell's willingness to take a very very long view, and explore the design options, before committing to a path. In many ways, it is this feature of our community and our language that keeps other programming languages looking to us for features and designs to steal.

> The language is already obsolete.

By that argument so are C, C++, Java, etc. But it's about the existence of a mature ecosystem, not about what is theoretically known.

> Pure script

PureScript is great, but its compile to JS basis makes it inappropriate as a general purpose language.

> Idris

Idris looks promising, but it doesn't have a large enough ecosystem yet. I would certainly be willing to switch from Haskell to Idris in the future, but Haskell already is at least a little bit dependently typed [1] and as hinted at above I wouldn't be surprised if Haskell is able to continue improving its dependent typing capability as research advances.

[1] https://www.youtube.com/watch?v=OZWYohmLKuU

Re: How to Sell Excellence

#53
post #35

Earlier quoted context omitted.

OCaml, if that passes your "mainstream" test.

Since OCaml doesn't have first-class higher-kinded types in the way Scala and Haskell do, I didn't think it would be acceptable by ekmett standards.

That's probably fair.

Re: How to Sell Excellence

#54

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'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.

Re: How to Sell Excellence

#55

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.

All writes to Facebook—on the order of billions per day—go through the Sigma site integrity service, whose rules are written in Haskell.

Re: How to Sell Excellence

#56

Earlier quoted context omitted.

I've seen people say this but never any real source. Maybe they're mixing up Twitter and Linkedin?

Can you people not google? I just typed "twitter scala" and got the following results on the first page: https://www.redfin.com/devblog/2010/05/how_and_why_twitter_u... http://readwrite.com/2011/07/06/twitter-java-scala http://www.slideshare.net/al3x/the-how-and-why-of-scala-at-t... https://github.com/twitter/effectivescala

None of the links you just shared have any mention of Twitter moving away from Scala, which is presumably the question.

Re: How to Sell Excellence

#57
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 would use strongly typed functional programming languages for everything if I could. However, to be productive, you're usually constrained by what the dominant language is for your domain. For example, Android apps are usually written in Java and web apps are usually written in JavaScript. Each has a huge ecosystem of tools and libraries based around these languages. I'm sure there's some way I could use Haskell or…

> However, to be productive, you're usually constrained by what the dominant language is for your domain.

For the code running on the server side, you are free to use whatever you want. Are you using strongly typed FP there?

Re: How to Sell Excellence

#58

Earlier quoted context omitted.

>But you make an interesting point in a way. One can ask, ok here are two non-strictly functional languages that seem to be fairly practical. Used for large distributed mission critical systems. I think there're at least these problems with Haskell: * The language is badly designed. See the number of extensions which aren't standardized but widely used. See also obvious problems such as requirement to use renames whe…

> the number of extensions which aren't standardized but widely used. Actually, I think this is something that Haskell did right. It allows experimentation with new language ideas in a way that allows them to be tested safely with existing codebases. Edward Kmett recently had this to say about it: > I appreciate Haskell's willingness to take a very very long view, and explore the design options, before committing to…

Given that not even basic functional programming has become popular yet, I can't see dependent types being widely adopted for decades. The learning curve for using dependent types is incredibly steep and capturing interesting properties in types inevitably requires you to understand and write tricky maths proofs.

Re: How to Sell Excellence

#59

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.

Ah, that's new! Is there any documentation on Reflex? A quick google search isn't working.

Re: How to Sell Excellence

#60

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…

So why are you using Python now and not C/C++?
Post reply on HN