Live data from Hacker News

Adopting a new programming language

annema.me

11–20 of 20 posts

Re: Adopting a new programming language

#11

Maybe another way of saying "Staying Idiomatic" is "What made you great before won't this time." I had to do a C++ project a while back and got my hands on "Advanced C++ Programming Styles and Idioms" by James Coplien through a friend's recommendation. Best thing I ever did to really understand the soul of the language. I am sure there is such "soul identifying" book for each language. What would those books be? If y…

Yes. I believe such a book exists (or should at least) for every language as well.

Effective Java — http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp...

POODR (Ruby) — http://www.poodr.com/

Javascript the good parts — http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockfor...

There is of course also the gang of 4 language agnostic classic on design patterns http://www.amazon.com/Design-Patterns-Elements-Reusable-Obje...

Re: Adopting a new programming language

#12

Maybe another way of saying "Staying Idiomatic" is "What made you great before won't this time." I had to do a C++ project a while back and got my hands on "Advanced C++ Programming Styles and Idioms" by James Coplien through a friend's recommendation. Best thing I ever did to really understand the soul of the language. I am sure there is such "soul identifying" book for each language. What would those books be? If y…

Richard Bird's Pearls of Functional Algorithm Design is probably close for Haskell.

http://www.amazon.com/gp/aw/d/0521513383?pc_redir=1404313638...

Re: Adopting a new programming language

#13
I definitely agree. Furthermore, I think being multi-lingual in terms of spoken languages also helps understanding and being open to new paradigms and idioms. And this works both ways. After spending a semester programming in Scheme, I was much more open to the idioms and syntax of Chinese. I think this effect is super exciting and not discussed enough.

Re: Adopting a new programming language

#14
post #2

To the author's points of committing and staying idiomatic, I'd recommend rewriting an existing application in your new language of choice. It doesn't need to be a 1:1 port, but by porting over the basic/foundational pieces, you really learn a lot about a new language and its idioms. For me, it's a much more concrete way of learning a new language.

Yes, there's a lot of friction when I try to write a new program at the same time I learn a new language: designing a new program is also a learning process.

Re: Adopting a new programming language

#18

I think learning the frameworks isn't nearly as important as trying to learn the standard library. If you start to rely on frameworks, it's entirely possible you'll bypass some pretty spectacular features built right in to your new language.

When I said framework I meant standard library. The most important thing to learn is not the syntax of the language but the standard library. They know everything the language can do and will most likely use all of it's features somewhere.

Thanks for clearing it up, I think standard library is a better term :)

Re: Adopting a new programming language

#19

I think learning the frameworks isn't nearly as important as trying to learn the standard library. If you start to rely on frameworks, it's entirely possible you'll bypass some pretty spectacular features built right in to your new language.

When I said framework I meant standard library. The most important thing to learn is not the syntax of the language but the standard library. They know everything the language can do and will most likely use all of it's features somewhere. Thanks for clearing it up, I think standard library is a better term :)

MUCH better term! :) I'd submit that learning a framework will actually do you a disservice as far as learning a new language goes.

Re: Adopting a new programming language

#20
post #6

Earlier quoted context omitted.

My "Hello, world" for this is to create a personal URL shortener. If an adequate third-party library for it exists I will use redis as the backend, otherwise I'll use a hash that I'll write to a file when new entries are added and load when the application starts.

That's a pretty cool idea, at a base, create something useful and force yourself to look through the standard library. I am learning GO right now and I am blown away with what comes out of the box.

Me too! I was shocked to have my Go url shortener come in several lines shorter than node.js one, and it felt much cleaner. I was pretty much sold at that point.
Post reply on HN