On Thu, 27 Dec 2007, Ragu wrote: > > I never learned Perl, but it was one of the first languages I looked at > when I realized I need to think beyond C/C++. I bumped into the sweet > Ruby instead, and never looked at perl again. I stayed farther away from > perl when I came across perl code now and then (the perl code was > presented as a comparison to ruby, so there may be pro-ruby bias in it). > > Here is my question, is it really worthwhile to look at Perl now? I > understand that different languages would induce different kind of > thinking about programming problem. But I would probably look at > Haskell, and/or Erlang for that purpose than Perl. > > So I am wondering what are the voids in Ruby that could be ably filled > by Perl. The answer to this could motivate me to learn Perl. > > Your opinions welcome. > > Cheers, > Ragu >
Hi Ragu: Syntactic sugar is what most of the programmer's look at when dating a language ! Most of programming is about modeling a scenario or abstraction. Usually the abstraction is supplied by an algorithm. Rest of the code is - processing input - error handling - logging - presenting the output (on stdout or updating the view in user interface). Pragmatically speaking, the choice of the language to learn is decided by *market opportunities*. If it pays more to be a Java programmer, then most of the people will learn Java. This also means that more companies will write software in Java, since that's a readily available skill set. Given, the above logic, it won't be surprising to see Artificial intelligence software written in Java. On technical merit alone, one should use a language that supports first order logic, lambda calculus and classifiers ! Every time, i see design of webapps, i feel like modeling them using continuations. Please see Abhijit's article on IBM Developer works http://www.ibm.com/developerworks/library/j-contin.html The only suggestion that i have for any programmer including myself is this: "In your given domain, select/learn the language whose throw-away-the-code affordability is highest". By this logic, for [system administration], scripts that can be cron'd, work across large number of platforms, have mature library support and can be copied and improved upon are valuable. There are admin folks, who have 300+ scripts that they wrote and then improvised upon and later some more. Today those scripts are indispensable. The pattern matching engine of PERL (NFA) is so sophisticated that it beats a similar handwritten program in C. PERL's approach of using 'closures' for accomplishing object-orientedness is a pragmatic one. The ROI provided by PERL beats Ruby any day, inspite of how the syntax looks. for modeling [functional behaviour], haskell is very good, particularly list comprehensions. Later in the same program when you need to do i/o monad is an excellent design device for handling the introduced impurity. within the monad you are free to introduce all optimizations you can think off. Ruby as manifested in Rails does quite well when used with scaffolding, convention and agile model (to handle requirements). The Rails framework helps create demonstrable value and yet one can afford to throw away the prototype code. Hence the agility. Hence the great popularity of web framework and webservice platforms built on Rails. Consider this. You are new game programmer and is looking out for a job. You go for an interview. Chances are you will be interviewed on Lua, in case 'game level design, UI layout' related discussions comes up. Other languages don't make the cut here. Thanks for reading this far. thanks Saifi.

