Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> So what you're saying is that if I don't know the recent trends in functional languages, I don't care about programming?

No, I'm saying that if you're not interested in different programming paradigms, you're not interested in programming. You don't have to know about "recent trends" in functional programming (it's not actually that recent -- Lisp has been around forever, and the Haskell standard is over a decade old). But if you're not interested in functional programming at all, then no, you're not interested in programming.

> This guy is laying out arbitrary things which appear in his domain of knowledge, and discounting others for not having the exact same set of experiences.

But I'm not doing that. I'm saying that programmers ought to have some familiarity with some of the basics of the technology they work with. Knowing nothing about functional programming is like knowing nothing about HTML -- it is a big gap in one's knowledge.

> there is a lot to be said for mastery and focus.

I agree. Focus is good. But you can't have mastery without knowing the right programming techniques and paradigms -- these can change a 500 line program into a 100 line (and easier to understand) one, or a 5000 line program into a 500 line one.

> why is it that there is an expectation in software that my job has to also be my hobby

I have no such expectation. I neither know nor care what you do for a living or in your spare time. What I am saying is:

1. some skills take a lot of effort to master.

2. programming is one such skill

3. you're more likely to take the time and effort to learn a skill if you like doing it

4. therefore, programmers who program because they like doing it are going on average to be better at it than programmers who program because it's just a job



> I'm saying that if you're not interested in different programming paradigms, you're not interested in programming.

I'm going to go ahead and call B.S. on that. At my most interested, I've had no interest (nor awareness) in functional programming.

Now I'm aware of it, but still not particularly interested in it. What I am interested in is working with a platform that has better foundations (e.g. .Net vs raw C++).

> Knowing nothing about functional programming is like knowing nothing about HTML -- it is a big gap in one's knowledge.

Completely arbitrary. A lack of HTML knowledge would be shocking only due to its ubiquity.

> Focus is good. But you can't have mastery without knowing the right programming techniques and paradigms

You seem to be saying that functional programming can be used to greatly reduce code. But if my employer doesn't allow it, and my teammates aren't experienced in it, what good is it to me?

> therefore, programmers who program because they like doing it are going on average to be better at it than programmers who program because it's just a job

I agree with this statement, which is nothing like your earlier statements.


> > I'm saying that if you're not interested in different programming paradigms, you're not interested in programming.

> I'm going to go ahead and call B.S. on that. At my most interested, I've had no interest (nor awareness) in functional programming.

FP is just one programming paradigm. Other important concepts in programming include: object orientation, stack based languages, model-view-controller, macros, templates/generics, structured programming, lazy evaluation / dataflow-based programming, interrupts, cooperative v. coercive multitasking, memory protection, pipes between processes, serialisation, event loops, modularity / seperation of concerns, common data structures such as lists, arrays, binary trees, hash tables, etc.

My contention is that a programmer who doesn't have a large number of concepts such as these is likely to build bad software when confronted with a large, complex software project.

> You seem to be saying that functional programming can be used to greatly reduce code. But if my employer doesn't allow it, and my teammates aren't experienced in it, what good is it to me?

Functional programming doesn't just mean esoterica like Haskell. In the wider sense of the term, it means anywhere where you're passing a function as a parameter or the return value form another function. You can do it in such mainstream languages as Python, Ruby, C#, and JavaScript. They're even adding closures to Java.

I'd be very surprised if your employer has a blanket edict against higher-order functions, because employers are either clueful or clueless -- clueful ones will allow it, clueless ones won't know what it is.


> FP is just one programming paradigm. ...

Right, but this article was bashing people for not knowing, specifically, about functional programming. My entire point has been that it is ridiculous and petty to do this. Let's say you know A, B, C, and E. Aha! What about D, I ask. You're clearly an idiot, I can't believe you don't know about D. And here you get F, which is related to D, and you act like it's something new to the world. Pssh!

See?

> I'd be very surprised if your employer has a blanket edict against higher-order functions

Er, every employer I've ever had has been very strict about the introduction of any new technology, library, language, etc. This is because every employer I've had is concerned with maximizing productivity and shipping product. Tinkering with new stuff on the job can be rather dangerous to one's employment.

Again, I'm not promoting ignorance, what I'm doing is speaking out against this alpha-nerd judgment of others.


> Er, every employer I've ever had has been very strict about the introduction of any new technology, library, language, etc.

Your experience differs from mine. For me, while I've often been told what language to write code in, I've never been told what features of the language I am or am not allowed to use. Regarding libraries, I've always used relevant open source ones, paying attention to licensing issues as appropriate.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: