4 ms·
> The downside of the emphasis on practicality was that the language always suffered from incoherence IMHO, it was coherent. But the syntax is wierd (may be us
by huherto 12y ago
> The downside of the emphasis on practicality was that the language always suffered from incoherence
IMHO, it was coherent. But the syntax is wierd (may be usage of symbols $%@{}[] ) for people unfamiliar with it.
I haven't done big projects with perl in the last 12 years. But when I need it, it is like riding a bike.
- danielweber 12y agoPerl optimized itself to death. They wanted a new feature, realized they could save 3 keystrokes per day by using $‽ for some new feature, all the experts agreed, and they go with it. I'm really afraid that Rails is going the same way, that the DRY mantra is going to eventually lead to a Huffman encoding only parseable by Rails experts, and then no one new will want to get on board.
- treehau5 12y agoRails is a framework. You can still write Ruby without the cryptic DSLs.
- danielweber 12y agoYes, I love Ruby, and use it a lot outside of Rails. I have some issues with Ruby "helpfully" letting you leave out more and more syntax, like parentheses from multi-argument function calls, or saying you don't need {} if the last argument is a hash, which are easy to grok if you already know Ruby but can be yet-another-confusing-rule for newbs. But those are relatively minor.
- treehau5 12y agoWhen I first learned ruby, it was my first dynamic language I ever fully experienced. I never found the poetry mode to be an issue, and in fact the community was so new and vibrant, they made it very clear to me what was going on. I believe every ruby tutorial I have ever seen made it very clear what was going on. as far as the hash, you can always inspect the actual arguments being passed, which doubles as a nice learning exercise for beginners.
- rlucas 12y agoPerl's "magic" variables like "$?" were not named to optimize keystrokes. Most of Perl 5's syntax comes from well established (for perhaps a decade) UNIX culture, from shell, awk, sed, and C syntax conventions. Vanishingly little is actually novel to Perl. Rails, which is obviously not a peer to Perl, but which you bring up as "going the same way," does similarly have a huge emphasis on convention. But most of its conventions are de novo, made up within the Rails/Ruby community. You can hate Perl (5) all you like; no accounting for taste and all. But if you find parts of it unfamiliar, it's probably because you are ignoring (or ignorant of) where it came from.
- raiph 12y agoStandard Perl 6 has just these non-English variables: * $_ means "it" * @_ means "args" * $! means "current exception/error" * $/ means "last match" * $0 means $/[0], the first captured value of the last match All other system variables have understandable English names, eg: * $IN means the STDIN object/handle $OUT means the STDOUT object/handle %ENV means a hash (dict) of system environment variables $PID means the system process id $*KERNEL means the operating system kernel running under Etc.
- raiph 12y agoRepeat post with better formatting: Standard Perl 6 has just these non-English variables: - $_ means "it" - @_ means "args" - $! means "current exception/error" - $/ means "last match" - $0 means $/[0], the first captured value of the last match All other system variables have understandable English names, eg: - $IN means the STDIN object/handle - $OUT means the STDOUT object/handle - %ENV means a hash (dict, associative array) of system environment variables - $PID means the system process id - $*KERNEL means the operating system kernel running under Etc.