Live data from Hacker News

How to Sell Excellence

docs.google.com

41–50 of 124 posts

Re: How to Sell Excellence

#41

Earlier quoted context omitted.

> Twitter using Scala and they ended up completely backing away from it. Yikes. What are you talking about, I just searched and found zero supporting sources

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

Re: How to Sell Excellence

#42
post #28

Earlier quoted context omitted.

> How about Erlang. Let's try it, just from the top of my head. Erlang isn' purely functional language in the same sense as Haskell is. It's much more mainstream compared to it. Clojure has even less of it. It's basically LISP which is about 60 years old.

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 when importing code, and problem with record names conflicts which isn't solved for years.

* The focus of the language isn't correct. Lazy evaluations creates a lot of problems both in program performance and complexity of the compiler. The most important parts are pureness and side effect control.

* The language is already obsolete. Many its constructions and related complexities are redundant if we unify type and expression level, and get as a result dependently typed system.

I hope some language in the future will implement these ideas, and we will have a widely used pure functional dependently typed language with explicit control of effects.

I see two candidates for such a language:

* Pure script - it's Haskell done right, compiledd to JS. Unfortunately, it doesn't support dependent types.

* Idris - it's the language which I describe, but I fear that it's impossible to create a widely used commercial language without major industry players' support.

Re: How to Sell Excellence

#43
post #28

Earlier quoted context omitted.

> How about Erlang. Let's try it, just from the top of my head. Erlang isn' purely functional language in the same sense as Haskell is. It's much more mainstream compared to it. Clojure has even less of it. It's basically LISP which is about 60 years old.

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…

[deleted]

Re: How to Sell Excellence

#44
post #38

Earlier quoted context omitted.

Lisp, Haskell and other FP are currently killing it in the quiet world of DSLs, especially Mining, Oil & Gas industries which need to parse petaflops of seismic data and reservoir simulations, need rapid prototyping, need formally verified drilling platform components that field engineers can interact with easily, and HPC algorithms for financial trading. As for Hacker News UX I wish every site was this simple instea…

Do you have a link for the Oil & Gas DSL? A search for "Haskell oil gas dsl" didn't turn up much.

I work for a stealth mode startup that writes DSLs in Haskell and Scheme for the O&G industry. We aren't the only outfits doing this https://angel.co/tachyus/jobs/26411-junior-software-engineer

Re: How to Sell Excellence

#45
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 OCaml to write Android and web apps. However, by going against the grain, it's likely to be very time consuming and frustrating to integrate with existing libraries and tools. I'm therefore going to lose any advantage I was hoping to gain from using a functional language.

Re: How to Sell Excellence

#46

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…

I really could not have said it better. Programmers seem much more likely to feel the need to prove they are smarter than their peers than the average population and functional languages seem to be a very popular I'm-smarter-than-you badge to bandy about. I think the penetration of functional programming speaks for itself. If a tool is clearly superior, you'd expect it to do great things, and to do it often. I hear t…

Going philosophical (and I do this a lot), it's really about exploration of the solutions space. I think the whole profession has moved a step forward and we need metaphors, tools and architectures for systems where one computer (regardless of the number of CPUs or architecture) is just a component in our systems. Functional programming (not Functional design, think Map/Reduce) is a late attempt to improve on a "semi-solved" problem: to produce high quality systems that run inside a unique computer. Late attempts always can contribute, but they only offer some negligible benefits that doesn't balance properly with the added complexity (in technology or training... the famous learning curve). These attempts will always be welcome and will improve some layers on the systems we design, it's just that as move forward the benefits will go into a diminished returns dynamic.

Re: How to Sell Excellence

#47
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 truth is, at the end of the day almost everything is being built with Java, Python, Ruby, or JavaScript.

You need to normalize against the number of programmers writing in Java/Python/... compared to the number of programmers writing Haskell for this assertion to be meaningful. And when you do that, the picture starts to look a lot better.

In the past few years I have seen more and more people start writing real projects in Haskell and be successful. There was a presentation a couple years ago at CUFP [1] discussing one company's experience porting a 43k line Groovy app to 8200 lines of Haskell. You don't need someone to build a highly visible multi-million line piece of software in Haskell to be confident that it can benefit your project. I think there's enough evidence out there today to make a very compelling case.

[1] https://www.youtube.com/watch?v=BveDrw9CwEg#t=1207

Re: How to Sell Excellence

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

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

Re: How to Sell Excellence

#49

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.

I'm being paid more money at my current haskell job than any engineer I'm friends with who's under 30. And I know quite a few engineers.

Re: How to Sell Excellence

#50
post #35

Earlier quoted context omitted.

Sure maybe it's not good for FP if you're Edward Kmett. > The reason, I'm hesitant to give it a fifth star is ultimately that I don't believe that Scala is a good language in which to actually do functional programming. Literally the only other mainstream language that he would be able to say is capable of "fp" better than Scala would be Haskell.

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.
Post reply on HN