This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Other Languages and the fly likes Perl/Python/Pike/TCL. et al. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Languages » Other Languages
Bookmark "Perl/Python/Pike/TCL. et al." Watch "Perl/Python/Pike/TCL. et al." New topic
Author

Perl/Python/Pike/TCL. et al.

Tim Uckun
Ranch Hand

Joined: Jan 19, 1999
Posts: 88
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?"


"There are some who call me TIM?"
paul wheaton
Trailboss

Joined: Dec 14, 1998
Posts: 20494
    ∞

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.

permaculture Wood Burning Stoves 2.0 - 4-DVD set
Tim Uckun
Ranch Hand

Joined: Jan 19, 1999
Posts: 88
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

Joined: Feb 24, 1999
Posts: 8
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

Joined: Dec 14, 1998
Posts: 20494
    ∞

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

Joined: Jan 19, 1999
Posts: 88
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

Joined: Dec 14, 1998
Posts: 20494
    ∞

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

Joined: Jan 19, 1999
Posts: 88
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

Joined: Dec 14, 1998
Posts: 20494
    ∞

I don't understand what you are suggesting. Your code is all valid.
Tim Uckun
Ranch Hand

Joined: Jan 19, 1999
Posts: 88
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

Joined: Dec 14, 1998
Posts: 20494
    ∞

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

Joined: Jun 13, 2000
Posts: 3340
I guess we sould count Pike in.


I Hope This Helps
Carl Trusiak, SCJP2, SCWCD
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
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.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Perl/Python/Pike/TCL. et al.
 
Similar Threads
Jython?
which scripting language to learn?
why python ?
Perl/Python/Pike/TCL. et al.
Your experiences with scripting languages