Live data from Hacker News

How to Sell Excellence

docs.google.com

91–100 of 124 posts

Re: How to Sell Excellence

#91
post #60

Earlier quoted context omitted.

So why are you using Python now and not C/C++?

Balance, c/c++ (and even to some extend Java), are not appropriated for what I normally build: web systems. The balance that Python offers me, where performance is achieved by other means than the programming language (systems), with an access to libraries (data analytics, web frameworks, devops...) that cannot be easily matched by C/C++/Java. And about Haskell... well, I suppose it offers amazing performance and tec…

> the first engine in Google was implemented (at least in part) in Python ;) Later they had the cash/resources to afford rewrites in C++/Java.

It seems Larry Page started trying to write it in Java then gave up and switched to Python for version one. Guess Python's easier, Java runs faster.

http://carlcheo.com/fascinating-posts-from-tech-founders-who...

Re: How to Sell Excellence

#92

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…

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

Except that Javascript is rapidly making inroads on everything except systems programming. If Java is a general purpose language (can't be used for systems without translation due to the JVM), then so is anything-which-compiles-to-JS.

I think the really important thing is that, while I've been enthusiastic and interested in Haskell for a long time now (~8 years?), the vast majority of people will never understand even a comparatively simple concept like monads, let alone anything higher level than that.

Until you can 'get work done' without the equivalent of graduate-level math classes, there's simply no way to develop that 'mature ecosystem' that everyone is hoping for. People have been using 'better if you understand the complication' languages for a long time now, and there's a good reason they're still niche, unfortunately.

Erlang is a great language, but it's very definitely not of the same scale of difficulty to understand as Haskell. You can noodle around with Erlang and end up with something that works reasonably well - in my experience with Haskell, if you can't mathematically formalize what you're talking about, you're going to have a bad time, unless you do go the 'embedded scheme interpreter' route, which is a fun project, but why not just use Racket to begin with?

Re: How to Sell Excellence

#93
post #32
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…

> Java, Python, Ruby, or JavaScript You mean .NET, PHP, and Java?[0] [0] - http://trends.builtwith.com/framework ps - For the record, I'm a rails/js guy

Wordpress runs on PHP, therefore a majority of the internet is PHP, that's the whole story right there.

Re: How to Sell Excellence

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

Scala isn't a good language for FP at all. http://www.quora.com/Reviews-of-Functional-Programming-in-Sc...

At least people use it, which is more than what could ever be said about Haskell, so it had a larger impact overall ... while getting things done at the same time.

You only need to have one look at it's module system/Cabal/Hackage to see that it was never intended for larger code bases than people's PhD thesis.

Yes, it can scale: In the same way PHP and JavaScript does.

Re: How to Sell Excellence

#95

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…

I'm shocked by your comment.

Lisp was a language that precisely gained great adoption due to the power it allowed to the individual programmer. The lack of syntax was it's biggest advantage.

Viable ecosystems coalesced around Lisp! Emacs? Lisp Machines? Tons of scientific software? Big AI projects? The whole open source revolution started due to the appeal of the commercial world for Lisp and it's success.

Lisp was a academic and commercial success. The reasons for its decline are multiple, and yet it even was able to come back as Clojure.

And then you have Haskell. A programming language created exclusively by and for the academia. I don't know if you realise that Paul Graham launched his startup using Common Lisp... at a time when Haskell was available as open source too. I'm just using Paul's name as an example of the large community of people who thought (and think) that Lisp languages gave them a productivity and power that couldn't be compared. You even have some commercial video games programmed in Lisp languages! (the famous and repeated example of Naughty Dog). Lisp in finances? Yeap, there are still system using it after many years. Remote probes in deep space? Check. So there must be something to Lisp that helped people to create reusable and maintainable code. And in all these cases it was individual geniouses who pushed for the use of Lisp.

I think that the problem with Haskell is the single promise of its type system. Every single language that boasts to have the silver bullet that will allow people to tame programming (what is nothing more than hard complicated work) has failed to gain adoption by some reason. Diminished returns, maybe. The world is complicated and single techniques that promise to solve everything tend to fall short to the promised benefits. So, how is Haskell going to help me with network protocols? To build better generic software? To interface with the IoT? To create better AI or explore data with Machine Learning? If the answer to these and other questions is "through a hard fully capable type system", then I cannot but laugh.

Then you have languages like R, that are gaining wild adoption in the academia (even if it's a "specific" language) because people feel powerful with them. They can achieve so much more with the same effort that it's a no brainer to use it. Code reuse? Yeah!!!! Thousands of libraries available that work like a charm. Ugly? As hell! but who cares? Oh yes, dogmatic showing-off aestetically/academic inclined posh programmers that represent a small part of the industry, they seem to care a lot (I include myself in this group). And yet smart people is using R every day to the point of forcing people like me (yes I programmed in Haskell in the past) to recognise that there must be something to it. A programming language that transfer a unseen amount of power to the normal user (even if it's an opensource copy of previous software).

As I said, I would like to be able to use the «I reject your reality and substitute my own» card... but after that many years I think that doing so would be just plain naîve.

PD: I would never put maintainability above power (power being defined as "now I can do X easily in half the time"), it seems to never work when it's achieved through "training" and "complexity" (as in for instance "large learning curve").

Re: How to Sell Excellence

#97
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 who uses OCaml page is pretty impressive. https://ocaml.org/learn/companies.html Looks like it is mostly used for compilers, cryptography, and risk assessment.

Be careful what you mean by 'mostly'. Though there may be many small outfits that use it for this particular features, there are others that use it very differently (and at completely different scales). Examples such as Facebook, Jane Street and Esper come to mind. There are likely many other companies who have less of a web-presence too (cf defence industries, as mentioned in the slide deck).

Re: How to Sell Excellence

#98

Earlier quoted context omitted.

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…

>(a) there are good business people out there IMO, good business people are people who are doing good for their business not using technology which their developers want them to use. They should consider things such as: ability to find developers, availability of training and books, availability well supported libraries, maturity of tools, code maintainability, etc. >(b) the fact that they trust idiots on tech is our…

"IMO, good business people are people who are doing good for their business not using technology which their developers want them to use. They should consider things such as: ability to find developers, availability of training and books, availability well supported libraries, maturity of tools, code maintainability, etc."

Business people should not be making tech decisions. Most good business people don't know a damn thing about code maintainability etc and they shouldn't have to.

Re: How to Sell Excellence

#99

Earlier quoted context omitted.

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

> PureScript is great, but its compile to JS basis makes it inappropriate as a general purpose language. Except that Javascript is rapidly making inroads on everything except systems programming. If Java is a general purpose language (can't be used for systems without translation due to the JVM), then so is anything-which-compiles-to-JS. I think the really important thing is that, while I've been enthusiastic and int…

> If Java is a general purpose language (can't be used for systems without translation due to the JVM), then so is anything-which-compiles-to-JS.

Fair point. I guess my thinking here is that PureScript is unlikely to replace Haskell. It is possible, but I think there are a few reasons that probably won't happen. The first is that it's mission statement "PureScript is a small strongly typed programming language that compiles to JavaScript" points it in the wrong direction. Maybe Javascript is the counter to this, but that feels like an anomaly. Second is that it is way behind Haskell in terms of infrastructure, ecosystem, and a lot of core language/compiler features that enable general purpose programming. Could swarms of people come in and change this? Sure. But if they did, it seems to me that PureScript is similar enough to Haskell that people could just switch to Haskell and avoid that work.

> Until you can 'get work done' without the equivalent of graduate-level math classes

This is a big misconception that is demonstrably untrue. I know many people who have developed a solid working grasp of monads without doing graduate-level math.

Re: How to Sell Excellence

#100

Earlier quoted context omitted.

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

> PureScript is great, but its compile to JS basis makes it inappropriate as a general purpose language. Except that Javascript is rapidly making inroads on everything except systems programming. If Java is a general purpose language (can't be used for systems without translation due to the JVM), then so is anything-which-compiles-to-JS. I think the really important thing is that, while I've been enthusiastic and int…

Until you can 'get work done' without the equivalent of graduate-level math classes

The problem is the name "monad", not the concept itself. You don't actually need to know anything about category theory to do I/O. You just need enough exposure to the concepts to know why the Monad type class is so repeatedly relevant as to be given a named abstraction.

People have a hard time getting past the name. You don't need to be a category theorist to use monads in Haskell.

Post reply on HN