Live data from Hacker News

Learning Curves for Different Programming Languages

github.com

121–130 of 221 posts

Re: Learning Curves for Different Programming Languages

#121
post #62

Really don't understand the pure hatred that people have for PHP, I'm at network engineer and I don't have any desire to become a programmer because I love my job, however I've wrote some very useful applications that myself and my team use on a daily basis to make networking easier for us. For me it was simple to learn PHP and create something 'useful', basically every web server is capable of running it which makes…

I'm no mechanic and I have no desire to be one but I've changed my own brake pads, surely anyone can adjust their car's brakes and many other tasks with a few simple tools and a book. I don't understand why mechanics say some cars are better than others.

In addition to being obnoxious I don't even think your analogy is correct. Programming languages are the tools, and it makes sense a non mechanic wouldn't understand why some tools are better than others.

Re: Learning Curves for Different Programming Languages

#122

Earlier quoted context omitted.

There are a few startups out there who use it as their core tech. It's a sweet spot because you don't have any legacy code to support and it allows you to slap together fairly stable code fairly fast, at least once you get to know the basic tools. E.g. picking up Yesod (which, to be fair, isn't something you'll do in a couple hours) gives you all of the niceties and rapid prototyping of a tool like Rails, plus the ob…

I can't imagine ever using Haskell for a startup. Unlike pg's python paradox, the only programmers I could imagine applying would be programming language theorists, toy programmers, and people who think they are productive (because arrows!), without ever having built anything ever. I would only do it if it meant I could hire John Macfarlane.

We've actually had a pretty good time hiring for both Haskell and Clojure, it attracts a certain type of developer that a team like mine likes to work with.

There are certainly applicants from the groups you mentioned, and we do our best to filter them out.

It's interesting to hire people for stacks that most programmers have no production experience with (and have pretty much no way of getting), but it's certainly been done before.

In my view the tech in a startup pretty much doesn't matter. You either make something someone will pay for, or you don't, and then you die whether you use Fortran or Coq. Thus you might as well make yourself comfortable for the ride and use whatever you'll enjoy building stuff in, something you won't be easily bored of using and teaching others.

If you get to the stage where you need to quickly bring up to speed hundreds of developers, you pretty much already made it and you're experiencing growing pains, that's a good problem to have. Most of your code won't survive that scale without a serious rewrite anyway. You'll deal with that when you get there. The vast majority of people will never get that far.

Re: Learning Curves for Different Programming Languages

#124

Would learning Monads really come before learning Category Theory in Haskell?

I'm productive in Haskell and I don't know category theory. I didn't "learn" monads specifically, I used them in my projects and gained an intuition for monads followed by memorizing the 3 monad laws.

Re: Learning Curves for Different Programming Languages

#125

Would learning Monads really come before learning Category Theory in Haskell?

Monads are a construct from category theory, and one with a particularly significant use in idiomatic Haskell, so I'd expect learning Monads as used in Haskell to generally precede a broad understanding of category theory for most Haskell programmers.

Re: Learning Curves for Different Programming Languages

#126
It seems like a lot of people love to hate PHP, and I am not the biggest fan of PHP myself but some of the arguments are a bit off. My current consultancy focuses on coming into companies in a last ditch effort to fix problems with startups, generally after they have failed some sort of technical due diligence when being sold. I get a fairly even mix of most languages (Ruby, PHP, Python, .Net, Java) and they all have problems in the wrong hands.

In 2014 (so very recently, this year), I was brought into a company that was just about to be sold and failed a technical due diligence. One of the red flags was that most of the engineers were in the process of leaving having "accomplished a dream and sold their amazing system to a large organization". They left for really big, well known companies rather than finish the technical due diligence and take an aqui-hire position.

A look at the code showed why. While these were all honestly rather Senior level engineers, they had written some of the most horrible Ruby, JRuby, and Clojure code I have seen in my career. Often it seems they decided well known and good frameworks were just "not good enough" so they decided to write and not maintain their own. Their list of technical sins was quite long but the last I will mention is that they never could decide, from day to day, what the right architecture was, so they just changed it, over and over, on a whim.

The point of this story is, languages don't write poor code, engineers do. I know that people will say, "But PHP has an ecosystem of Junior developers just picking it up and pushing out bad code and never really learning." This may be true, but it's actually just as true with Ruby, Python, .Net, and Java. Those languages, Ruby and Python in particular, are just much better at the PR game of making themselves look "more mature" than PHP is.

Re: Learning Curves for Different Programming Languages

#127
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).

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

Re: Learning Curves for Different Programming Languages

#128

Earlier quoted context omitted.

There are a few startups out there who use it as their core tech. It's a sweet spot because you don't have any legacy code to support and it allows you to slap together fairly stable code fairly fast, at least once you get to know the basic tools. E.g. picking up Yesod (which, to be fair, isn't something you'll do in a couple hours) gives you all of the niceties and rapid prototyping of a tool like Rails, plus the ob…

I can't imagine ever using Haskell for a startup. Unlike pg's python paradox, the only programmers I could imagine applying would be programming language theorists, toy programmers, and people who think they are productive (because arrows!), without ever having built anything ever. I would only do it if it meant I could hire John Macfarlane.

You should kill that misinformation with some Haskell experience ;)

Re: Learning Curves for Different Programming Languages

#129
post #80

Earlier quoted context omitted.

"I have a moderate experience with Lisp, very little experience with Haskell and these days mostly program in Java, Julia and Python" I despise that people give their 2 cents for something they haven't experienced much.

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?

Re: Learning Curves for Different Programming Languages

#130
post #27

Earlier quoted context omitted.

> This is the common rebuttal of PHP jokes - but pointing to a sole outlier is rarely a solid defense. Sole outlier? Hardly. Half of the web is powered by PHP, including tons of websites with huge traffic and usage. > Especially when they have created Hack[1] and HHVM[2]. So it's not entirely accurate to say they "use PHP." Hack and HHVM do not show some inherent PHP issue that something like Ruby or Python would not…

> Sole outlier? Hardly. Half of the web is powered by PHP, including tons of websites with huge traffic and usage. Quality > quantity (just because a language is widely used doesn't mean it's well designed), a huge amount of this quantity are WordPress blogs, MediaWiki sites, or relatively low traffic e-commerce sites. It is not the dominant language of "tons of websites with huge traffic and usage."[1] [Facebook and…

> Quality > quantity (just because a language is widely used doesn't mean it's well designed)

I'm friendly to the argument that there are often better things than the popular things (and specifically things than notable advantages over PHP for developing software), but not to any pretense that PHP isn't "well-designed."

As far as I can tell, it's well-designed as a tool for moving in small conceptual steps from static web documents to dynamic documents to (nowadays, for those who want it) well-organized apps on easily available commodity hosting. There's little that competes with it here in terms of the deployment story and ease of the first part of the learning curve.

Moreover, despite the collection of warts and WTFs, it offers more or less the same commonly-used abstractions in its celebrated scripting siblings. Yes, yes, I know, there's all these differences -- you miss the syntax or Tennent correspondent blocks or monkeypatching or whatever is important to you. Rock on with that. Just don't be surprised when choosing PHP over Ruby or Python doesn't seem to turn out to make a difference between success and failure of a product/project.

> I'd suggest reading PHP: a fractal of bad design[4]

Like most good hit pieces, there's some truth, but it suffers from the focus illusion among other things.

Post reply on HN