Live data from Hacker News

Advice From An Old Programmer

learnpythonthehardway.org

221–230 of 230 posts

Re: Advice From An Old Programmer

#221
post #33

If he thinks he can learn any programming language in a week, he's still ignorant about programming languages. I challenge his knowledge of/about Haskell, Agda, etc. Also, I am sure there are plenty of "old programmers" who are still excited about programming languages, and think they matter.

I've gone through http://learnyouahaskell.com/ and it wasn't too hard. About the only difficulty is the pointless and contradictory jargon like "point free" or the hand-waving about Monads and how they violate their purely functional execution model. Never heard of Agda, but then I sort of don't care. Obviously, there are old programmers who are into programming languages, but they usually sit around writing crappy p…

> About the only difficulty is the pointless and contradictory jargon like "point free"

It isn't pointless, and it isn't contradictory. If you think it's contradictory, then you don't know what the word "point" means in that context.

It is a useful way to describe the style of functions.

  f x = postProcess (businessLogic (foo (preProcess data)))
is a different style than:

  f = postProcess . businessLogic . foo . preProcess
It is useful to have words to describe the two styles.

> or the hand-waving about Monads and how they violate their purely functional execution model

What? You obviously weren't listening. Monads do not violate the pure functional execution model. Monads are used, amongst many other things, to functionally compose non-pure program specifications.

> Never heard of Agda, but then I sort of don't care.

Some of us care about the forefront of research about static guarantees. Agda is a language that makes it possible to guarantee arbitrary properties (of our choosing!) about our code. If you are not excited about such guarantees, then you are clearly not a PL guy, but those of us who are interesting in PL research find it fascinating.

> Obviously, there are old programmers who are into programming languages, but they usually sit around writing crappy programming languages that nobody can use because they never ask anyone if their programming languages are usable. You know, kind of like Haskell.

I sense your frustration and difficulty of picking up Haskell. Maybe if you give it a bit more time, you could understand it.

Re: Advice From An Old Programmer

#222

Earlier quoted context omitted.

"You know, kind of like Haskell." Ow ow - come on now, there are definitely practical applications of Haskell. It just has a painful learning curve, but it's very elegant in the end.

Hey, I have to call it like I see it. I find Haskell very unusable and their base philosophy just doesn't jibe with what I know of actual software development or logic.

How much did you try to use Haskell before declaring it "unusable"?

Haskell is very different from other languages, which means your expertise in other languages doesn't translate. That makes it harder to start off, almost like learning programming from scratch. But if you encounter this and decide it is "unusable" then you are describing your own lack of expertise in the language as an objective property of the language itself.

Haskell has interesting advantages and disadvantages. It is already used successfully in many contexts. It is a joy to program in, and it's one of the languages where successful compilation actually means a whole lot (bugs that go through the compilation process uncaught are an order of magnitude more rare than in other compiled languages).

It has some useful tools not found elsewhere (hoogle type search, djinn, pl/unpl).

It performs extremely well and manages to be more expressive/concise than Python while still far exceeding it in performance.

It's a pretty impressive piece of design.

Re: Advice From An Old Programmer

#223
post #18
post #9

Some good points buried among juvenile posturing, I guess the "old" part must be irony. Would you take programming language advice from someone who has learned the language in "a day or a week"? I realize the point is the language doesn't really matter but statements like that and the general tenor of the post don't inspire me.

No, most languages are isomorphic up to semantics. the outliers today are the logic languages, the HM typed languages and the macro languages. javascript, qbasic, java, c++, c, c#, ruby, python, perl, they are all very similar, some with their knobs exposed, some without, some with bad environments, some with better, some with closures, some without. Once you grok the inner similarity of software, it's just not very…

"At the time that I wrote this book I knew about 20 programming languages and could learn new ones in about a day to a week depending on how weird they were."

He's saying the entire range is a day to a week. The ones that are isomorphic would take a day or two, I agree.

But he's saying the ones that are not isomorphic also take just up to a week, and according to other discussions with him, it's not because he's already an expert in those other types of languages.

Re: Advice From An Old Programmer

#224
post #12
post #9

Some good points buried among juvenile posturing, I guess the "old" part must be irony. Would you take programming language advice from someone who has learned the language in "a day or a week"? I realize the point is the language doesn't really matter but statements like that and the general tenor of the post don't inspire me.

As an old programmer myself, who has learned many languages over the years, and written programs for pay in most of them, learning languages in a day or week is not at all unusual, or difficult. Especially after learning assembly for a few different machines, with widely different instruction set architectures.

Take a look at Agda (http://wiki.portal.chalmers.se/agda/pmwiki.php) and tell me if you could "learn it in a week".

Re: Advice From An Old Programmer

#225
post #14
post #9

Some good points buried among juvenile posturing, I guess the "old" part must be irony. Would you take programming language advice from someone who has learned the language in "a day or a week"? I realize the point is the language doesn't really matter but statements like that and the general tenor of the post don't inspire me.

When you get to the point where you understand that all programming languages are just implementations of turing machines (some more limited than others), and have much experience with a few languages, I'd say yes, you can give quite good advice regardless of the language, even if you've never once used it.

That's just false, though.

If you only measure the computational power of programming languages, then it is mostly equivalent (though there are some languages which are not Turing-complete, because they have proofs of termination).

If you also measure other properties, like what kinds of guarantees your language gives you, then they differ even more.

Re: Advice From An Old Programmer

#226
post #95

Programming as an intellectual activity is the only art Programming isn't an art. Programming is a craft. The difference is that you can use a craft to make art, but crafting isn't always artistic. Let's not get over our heads and consider ourselves artists because we can code...

Oh, I'm so glad you, the one arbiter of all that is art, is able to correct our misunderstanding of the definition of "art". The truth is, you can't define art, so in the same way I can use paint to paint my house, or use paint to create a portrait, I can use programming for art or just as a day job. Finally, everything that requires skill has craft, even art.

>>Programming as an intellectual activity is the only art form that allows you to create interactive art.

Not true! Live performances can be plenty interactive. Which doesn't devalue programming--you can do things in software you actually can't do anywhere else--but this was perhaps poorly thought out.

Re: Advice From An Old Programmer

#227
post #33

If he thinks he can learn any programming language in a week, he's still ignorant about programming languages. I challenge his knowledge of/about Haskell, Agda, etc. Also, I am sure there are plenty of "old programmers" who are still excited about programming languages, and think they matter.

I've gone through http://learnyouahaskell.com/ and it wasn't too hard. About the only difficulty is the pointless and contradictory jargon like "point free" or the hand-waving about Monads and how they violate their purely functional execution model. Never heard of Agda, but then I sort of don't care. Obviously, there are old programmers who are into programming languages, but they usually sit around writing crappy p…

Zed, I am also trying to learn Haskell and I must admit I have a hard time with it, so I am kind off jealous about you finding it not too hard and having the ability to learn so fast. Even though I used over 5 languages in the last 20 years, for me Haskell is so different and difficult, that I find myself put back to when I was 16 and learned the first language - C on MS-DOS. Still I find Haskell attractive and I hope I will be able to "tame" it. I am facing difficulties with all the terminology which seems strange.

I started with the book "Real World Haskell" (http://book.realworldhaskell.org/) which I find very good, but I got stuck after chapter 5. Then I discovered the Channel 9 lectures "Functional Programming Fundamentals" and I started to watch the videos. It helped me to grasp some of the terms and some of the beauty. But only at the 11th video (http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Gra...) I got kind of hooked. From this point on I started writing my own programs.

From every programming language I looked into so far I still find Haskell to be so different, unique and at the same time beautiful - nothing I had experienced since the first language that I learned.

Re: Advice From An Old Programmer

#228

http://en.wikipedia.org/wiki/Narcissism Coding and software engineering are not the same knowledge. Coding is just a small part of the big discipline. The difference between software engineer and a coder with even years of practice is the same as between a poet and a full-time typist. Memorizing syntax (and may be even some standard idioms) of 20 different languages doesn't make you a software engineer, and of course…

Wait, so you link to the wikipedia page on Narcissim, then spend 9 paragraphs pontificating on my experience and how you know all about me in a way that assumes everyone cares what you think? Right, I'm the narcissist.

I don't know what this way of expressing my ideas assumes. If you have something to say about these ideas - you're welcome.

Re: Advice From An Old Programmer

#229

"People who can code in the world of technology companies are a dime a dozen and get no respect." O RLY? http://blogs.forbes.com/nicoleperlroth/2011/06/07/winners-an...

O HAI! You found an article about programmers getting respect in Silicon Valley. You totally proved me wrong, since it's exactly like Silicon Valley in...New York.

Good to know, but if I'm a coder who wants respect, it seems like it'd be easier to move across the country than develop an entirely new set of skills.

Re: Advice From An Old Programmer

#230
post #78

Earlier quoted context omitted.

There are a lot of non-native-English HN participants, and I think this sort of language pedantry 1) accomplishes nothing, as OP will likely still use the wrong word, and 2) discourages those who lack confidence in their language skills from posting what may be very insightful comments.

I actually found a3camero's post informative! I am a native English speaker and I have never had any trouble differentiating between "effect" and "affect", but had never seen it written down as a rule. One of the fascinating things about language is that we "know" an awful lot of grammar rules without actually being able to explain how they work. Another example is the Spanish verbs "ser" and "estar", which both tran…

Thanks for the kind words. Appreciate it.

English is a language I'm always learning more about too!

Post reply on HN