• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Perl/Python/Pike/TCL. et al.

 
Tim Uckun
Ranch Hand
Posts: 88
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have just had to take a kind of a crash course in PERL. It's hard to tell you what a liberating experience PERL is. I feel like I have been wearing shoes two sizes too small for the last 5 years (using VB). Anyways I have heard that python is also a great language. Does anybody here have experience with a wide array of scripting languages? Should I continue with PERL and learn the rest of it or switch to something else? I know each language has it's advocates but any guidance would be appreciated. P.S. check out www.rebol.com it's a new language sounds pretty cool.
------------------
"There are some who call me TIM?"
 
paul wheaton
Trailboss
Pie
Posts: 21181
Firefox Browser IntelliJ IDE Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm a strong advocate of "go with the flow". You can never tell when a perfectly good, yet unpopular program ends up biting the dust. Look at beta vs. VHS. My advice is to not spend too much time with a language if it isn't popular. Perl and Java are good choices right now. Python and the others have their plusses, but ...
Perl is a great language. It isn't too pretty for big programs. I suggest that you get "the camel book" and it wouldn't hurt to get a coupla others too.
 
Tim Uckun
Ranch Hand
Posts: 88
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am liking PERL a lot. Why do you think it's unsuitable for large projects. It seems to me all the elements are there. Ability to write modules in PERL or C, Object orientation (kinda ), ability to break up code into smaller files, support for EVERYTHING under the sun, true cross platform capability.
I realize that it's possible to write gobbledygook with it with code looking like some alien language but you don't have to do it that way. When I showed my simple little program to a PERL friend he was surprised I was naming all my sub parameters and not relying on the $_ (ever) but I get confused by all the "hidden" variables so I don't use them. I would think PERL would be suitable for large projects if certain standards were used.
What I really like about PERL is that it more closely mimics the way we use english. We often leave things unsaid or use words like it or them. We say things like "get the jar and open it" instead of "get the jar and open the jar". The hidden variables in PERL correspond to the "it" in this case.


------------------
"There are some who call me TIM?"
 
JD Childs
Greenhorn
Posts: 8
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am not a programmer!
With that out of the way, I've done some rudimentary programming stuff in C, Perl, Python, Tcl/TK, *sh, awk/sed (you'd be amazed at what you can do in three lines of awk) and even modula3. I haven't touched anything to do with BASIC (visual or otherwise) in 5 years I've seen Java/script, and tried taking a ZDU class on it, but got lost in a time crunch at work. http://www.denver.net/stats has a PERL network monitoring program called SPONG which I hacked up quite a bit from the original and I'm seriously contemplating releasing (since the original developer stopped maintaining it about two years ago).
I think Java/script brings C coders the convenience of abstraction that perl coders have enjoyed for years without the learning curve of C++/Modula3. String handling, for instance, is one of Perl's greatest strengths and is an absolute p.i.t.a in C/C++. Java/script doesn't seem as easy as Perl in this regard, but is a whole lot better than C/C++!
My opinion on Perl is, like Paul, that it's great for small programs...but sucks for big ones because of memory consumption and speed. It's an absolute pig compared to Java/script. Python has some great modules and handles "objects" better than Perl, but you can't take your code with you everywhere. Tcl/TK is fantastic for coding X-Windows/Athena Widgets, network monitoring, conditional loops/arrays. http://www.neoscript.com runs a webserver completely written in Tcl/TK (yeah, AOL uses it too, btw). But Tcl/TK has lingered as a "hacker language" in the background while Perl and Java/script have received all the press. Based on my limited experience, I'd rather code in Python than anything else, but I just don't think it'll gain enough market share to spend time on!
 
paul wheaton
Trailboss
Pie
Posts: 21181
Firefox Browser IntelliJ IDE Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
First, I feel the need to point out that Java and JavaScript are two totally different languages!
Perl for big projects: The OOP stuff in it is pretty weak. Plus, all of the global variable stuff does not lend itself well to OO or large program development. I think that when you have developed some programs that take five or more programmers three or more months to develop, then the little things stand out as to why Perl is not a good language for large programs. I think OO abstraction has to be the biggest reason.
 
Tim Uckun
Ranch Hand
Posts: 88
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am certainly enjoying this discussion and learning a lot.
At the www.perl.org site there are some good comparisons of languages if you feel like reading them.
Sounds like we need yet another language! here is my wish list..
Open source
object oriented
loosely typed like perl (or even looser!)
cross platform
networked like java with strong support for distributed programming.
extensible with modules but able to statically link them when you want to ship your code
compilation option
obfuscation option
easy to learn
built in standard ui tools.
Feel free to add to the list.

------------------
"There are some who call me TIM?"
 
paul wheaton
Trailboss
Pie
Posts: 21181
Firefox Browser IntelliJ IDE Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm finding that the more time I spend with Java, the more I think it is rather ultimate. Rather than starting with a whole new language, there are times I would just like a few enhancements to Java.
 
Tim Uckun
Ranch Hand
Posts: 88
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If Sun lets go of it's control over java and turns it over to some standards body or goes open source then those kinds of improvements would be more likely. This would also further the interests of SUN because it would increase the popularity of the language. If Java was open source I believe that it would be the de-facto language of Linux. Right now a lot of Linux advocates do not like it because it's not open source.
What I would like to see in java is some sort of "default" method like com has. You should be able to say.
String that= "goo goo"
// Notice all the implied steps in the above.
string this = that
if the default method of String returned the primitive string then the language would be a lot more elegant.

------------------
"There are some who call me TIM?"
 
paul wheaton
Trailboss
Pie
Posts: 21181
Firefox Browser IntelliJ IDE Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I don't understand what you are suggesting. Your code is all valid.
 
Tim Uckun
Ranch Hand
Posts: 88
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sorry my bad. String was a bad example.
Let's take integers. There are two types of integers the primitive integer and the object integer (ignore the cases for now). It is impossible to compare one with other or assign one to the other. What I am saying applies when an object is used in a comparison or an assignment with another object or a primitive data type. In that case if the the concept of a "default" method existed comparison would be a little more elegant.
EX: I can create object Tim with a method called value which returns an integer and mark this method as being default. Then I create an object called Paul which has a method called somevalue which also returns an integer and is also marked default. Then the comparison would be.
if ( Tim == Paul ). This is kind of a bad example but the idea of a default value makes a lot of sense to me.
P.S one of my pet peeves about the current batch of languages is their inadequate representation of equivalance. There should be at least two kinds of operators. A "SAME" operator as in this the object the SAME as that object. And EQUAL operator which says object A is not the SAME as object B but is the EQUAVALENT of it. SAME would refer to two pointer which refer to the SAME object and EQUALS would describe two separate objects which contain the same information. Of course there is "EQUAVALENT" as in Coke IS not Pepsi but they are equavalent to each other.
------------------
"There are some who call me TIM?"
 
paul wheaton
Trailboss
Pie
Posts: 21181
Firefox Browser IntelliJ IDE Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One of the things that first annoyed me about Java but now makes sense is the idea of not being able to overload operators like I could in C++. I could create an elegance like you suggest. BUT! What now makes sense is that when you go to look at somebody elses code and they're library does things differently than your library, it is a breeding ground for you(me) to introduce bugs. This way, when you see "==" you know exactly what operation is being performed. Then you can make your own methods called same() or equals().
 
Carl Trusiak
Sheriff
Posts: 3340
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I guess we sould count Pike in.
 
shailesh sonavadekar
Ranch Hand
Posts: 1874
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
it is all about perception & where are you located. see Ruby was developed in Japan , developed in japanese. nobody was knowing about it till " Pragamatic Programmer " guys went there & saw the exploits of the language. Nobody was using python in japan.
So , there will be so many languages in the world & we may not know about them. isn't it ? languages will come & go , but , fundamentals remain the same.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic