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

the times when it gets out of my way to let me think about the problem and then everything else seems clearer.

There are two different ways languages accomplish this.

Smalltalk and Lisp accomplish this through odd-looking minimal syntaxes. The code may not look like anything familiar (outside of longish intention-revealing names) but there are so few syntactic rules to process that a smart person should be able to master them in a few days or weeks at most. (Despite the lack of familiar operator precedence for arithmetic operations.)

Python and Ruby accomplish this by having moderate amounts of syntax. (Ruby has about 3X more syntax than Python, but you can ignore much of Ruby syntax for general purpose programming and leave it in the "sysadmin toolshed.") However, the moderate amounts of syntax are designed to closely resemble pseudocode your professor used to scrawl on the chalkboard. Hence, the language can stay out of the way while you focus on the problem domain.

On the other end of the spectrum are languages that expose everything. C, C++, and Assembly are like this. Everything is available in raw form or as powerful and arcane tools. The beginner might be a little lost, but the rewards to the virtuoso are tremendous.

This is an oversimplification, of course. Python and Ruby also give the power-programmer access to powerful, arcane, and easily-abused tools. It's also quite possible to write very clean pseudocode-resembling code in C or C++. (See the Taligent coding standards.) The difference is really only in design-focus of the languages. (Smalltalk as another example. Smalltalk was designed to be simple to the complete novice -- as in a grade school aged kid. This is why it's minimalist, yet manages to look odd to the hard-core Unix geek.)



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

Search: