Live data from Hacker News

Learning Curves for Different Programming Languages

github.com

141–150 of 221 posts

Re: Learning Curves for Different Programming Languages

#141

Earlier quoted context omitted.

I wrote the core of our system in Clojure a couple of years ago, which is pretty high in productivity and actually quite pleasant to work with. Unfortunately as the scale goes up (hundreds of web application routes, sharing code among multiple projects etc) it doesn't feel nearly as nice anymore, and having static typing turns out to be pretty handy. Haskell to me felt exactly like what you described: I could get stu…

Oh ok, I can be wrong about Haskell. BTW, I really like Ceylon, it's very statically safe (more than Haskell I'd say) and very pragmatic (unlike Haskell IMHO, it doesn't seem to focus on maximizing productivity).

I think the only languages that are "statically safer" than Haskell are the theorem provers... (agda and coq come to mind)

Disclaimer: I do not have enough PL type theory under my belt to confidently make this argument.

Re: Learning Curves for Different Programming Languages

#142

Can you share what did you use to make those beautiful graphs ? I really like the fuzzy axis lines.

The author is using the Matplotlib Python library. [1]

Similar style charts to that used by Randall Munroe in XKCD.

See also this D3 style for producing similar charts by Dan Foreman-Mackey. [2]

[1] http://matplotlib.org/xkcd/examples/showcase/xkcd.html

[2] http://dan.iel.fm/xkcd/

Re: Learning Curves for Different Programming Languages

#143

Earlier quoted context omitted.

Do you know alot of Haskell programmers? Because I'm enjoying my typesafe SQL queries, typesafe intra-application linking, typesafe templating, etc. Haskell is capable of far more than "pure, mathematical problems"—indeed, typed IO is a premier feature of the language. edit: sorry, this was pretty defensive; I shouldn't have written this comment so hastily.

You know, C#/F# programmers are enjoying most of the above in spades, and the libraries are fully vetted and mature to boot; could say the same for Scala to some degree. Can we say the same for Haskell? Let's take a sample: you say, "I'm enjoying my typesafe SQL queries" There are 2 Haskell query DSLs worth talking about (read: that support joins): Esqueleto and OpalEye. The latter is fresh off the presses and not ye…

Hi virtualwhys, won't have time to respond to everything but wanted to mention Esqueleto supports MySQL/Postgres/SQLite, they're mentioned in the testing section of their Hackage page https://hackage.haskell.org/package/esqueleto.

Re: the techempower benchmarks, my understanding is that they used an old version of GHC which didn't include the MulticoreIO manager or something like that. It's since been fixed [1] but it's been awhile since a TechEmpower benchmark (iirc round 10 was pushed back but they're now working on it again [2]).

[1] https://github.com/TechEmpower/FrameworkBenchmarks/commit/9e...

[2] https://github.com/TechEmpower/FrameworkBenchmarks/issues/12...

Re: Learning Curves for Different Programming Languages

#144

Everyone seems to be focusing on the PHP vs Haskell thing and seem to be missing the other points. Here's a summary: Callbacks in Javascript make you feel more productive, but in fact you become less productive. Design patterns in Java don't actually make much of a difference in productivity, but you think they do. Templates in C++ seem hard but with a big payoff, but they don't accelerate productivity. Unit tests in…

It's funny that we feel PHP doesn't make you more productive, yet most of the web was running PHP apps until a few years ago when better languages gained momentum and we saw new web sites not built in PHP. Wordpress, phpBB, Drupal, IPB, Joomla, vBulletin, Facebook, Yahoo!, DeviantArt, etc... Now PHP making you a better programmer... that's a different matter.

The decision to use PHP is not represented in the graphs. What the graphs say is that as you gain more experience with PHP you don't necessarily become more productive. 1 yr PHP experience == 10 year PHP experience.

Re: Learning Curves for Different Programming Languages

#145

Earlier quoted context omitted.

Why? You assume that little experience with Haskell is not enough to make conclusions about its productivity. I disagree with this assumption, I think you can sometimes make a moderately confident conclusions from little experience. And I understand I can be wrong of course.

Can you list a few reasons you think Haskell isn't pragmatic?

She can't, given how little experience she have with the language.

Re: Learning Curves for Different Programming Languages

#146
post #25

It seems that it interchanges "productive" with "writing clean code". PHP is ugly but can be productive. Haskell is beautiful, but well, I know a lot of people encharmed by it, but no-one productive (i.e. delivering products quickly; it's not the same as solving pure, mathematical problems).

Interesting. I like working in Haskell precisely because it allows me to iterate faster than in something like Ruby/Java/Clojure/ . Granted, I'm not paid to write Haskell, but I think that's more ironic than anything else. Perhaps someone from industry can confirm my feelings here.

I will [subjectively] confirm it. I've rebuilt two startups from Scala / Python messes with Haskell. Turn around time was counted in weeks (original build time was > 6 months), code is clearer, many unhandled edge cases were illuminated by the type system (some simply due to the rewrite), bringing in another Haskell programmer was painless and he was able to safely refactor the entire code base to make it even cleaner and robust while operating in production with zero regressions and no unit tests.

We can iterate faster, the type system prevents us from doing dumb, fallible human things, it makes it easier for other programmers to get up to speed, it is fast, the community is brilliant, and because of its static guarantees open source tooling (even if abandoned) is possible to use because of the aforementioned ease of coming up to speed, the type system is a stringent form of documentation, and you can tweak without fear of introducing regressions (mostly, I can't say all but definitely most).

Re: Learning Curves for Different Programming Languages

#147
post #127

Earlier quoted context omitted.

>I know a lot of people encharmed by it, but no-one productive (i.e. delivering products quickly; it's not the same as solving pure, mathematical problems). Is this actually true, or is it "true in your heart"? Very few people use haskell for solving "pure mathematical problems". People use it for things like developing the fastest microkernel in existence, doing high volume trading, making games, and writing boring…

Links or it didn't happen. I don't imply that nobody uses it for solving practical problems. Just, I made my judgement based on: - friends (I know, it may be biased), - GitHub codes I use (and in general, popularity), - blog posts on Haskell (I encounter mostly language-oriented; less problem-oriented like "let's make a 3d game", "web scraping", "machine learning", "web dev" etc).

It sounds like imanaccount247 is from IMVU, they wrote up their experience with Haskell here: http://engineering.imvu.com/2014/03/24/what-its-like-to-use-...

It was previously discussed on HN here: https://news.ycombinator.com/item?id=7472452

Re: Learning Curves for Different Programming Languages

#148
post #20

Earlier quoted context omitted.

Facebook choosing to improve upon PHP is still, arguably, a (weak) argument for PHP as a language which is, at least, worth improving upon. Given their money and resources, they could have chosen to abandon it entirely, but they didn't. Maybe a more accurate form of this argument would be "Facebook still doesn't entirely hate PHP." And even so, there are obviously plenty of sites, and even startups, using PHP, but fa…

> Facebook choosing to improve upon PHP is still, arguably, a (weak) argument for PHP as a language which is, at least, worth improving upon. Or you can look at it another way: Facebook regretted their decision and PHP potentially made the switch to a different platform so hard that they were forced to improve the language, rather than leave. Don't forget that companies need to be able to justify the cost of moving f…

That's possible, although i'd expect a company with Facebook's resources to be able to justify a move more easily than others, if PHP turned out to be a bad enough decision to really matter. It's still one of the names practically anyone would want on their resume, so they wouldn't exactly be unable to find developers in any language they chose.

Re: Learning Curves for Different Programming Languages

#150
post #138

Earlier quoted context omitted.

I don't know with 100% certainity, but it's a moderately confident conclusion from my little experience.

It's an incorrect conclusion that requires further education and experience before you can be sure your subjective experience of productivity truly is that poor.

please, this is getting old. Haskell is one of those languages for people who want to show off how clever they are instead of just getting on with developing applications that actually do useful things efficiently.
Post reply on HN