Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Other languages besides perl

by dimmesdale (Friar)
on Aug 05, 2002 at 14:55 UTC ( [id://187686]=perlmeditation: print w/replies, xml ) Need Help??

Through this post I hope to gain information from your wisdom and experience. Keep in mind that I am in High School, and will be attending college in two years. (One of) my intended majors is computer science.

I know C/C++ (a little over two and half years with that), Perl (of course! I learned this a year ago, but didn't really start using it till this summer), and good ol' Scheme (I've used this strongly for about a year, thanks to SICP). I've been exposed to Standard ML (some real basic stuff in the SICP class I took; just enough to understand a turing award presentation/paper on parsers, I forget the author, though he's real famous; something like Baukus?)

My question that I put up for discussion is this -- What different languages do you program in, and what do you find the strengths/weaknesses of those languages are?

I'd also be interested in some information about those languages and some I'll present briefly. I know the standard comparison: "perl's good for quick prototyping...c is good for low-level things and speed." I'm interested in learning some more languages (as, like with foreign languages, I've found the more you learn about a different approach to something, the more you learn about the first approach). However, there are a lot out there, and, naturally, everyone says there's is the best.

I've been hearing a lot about Ruby, and I'm interested in going in that direction (if only for the object orientedness of it). I've also been exposed, and therefore instantly became fond of Standard ML. I think I'd like to learn about that to (especially because its a functional programming language -- also what about Haskell). However, in a maze of words that hold little meaning, I'd appreciate some guidance: Phython, smalltalk, Java, Sather, Visual Basic, Common Lisp, and hordes and hordes of more languages. (You may note that I've left out some web languages like PHP, cold fusion, etc. I don't do much web programming, but I'd be interested in this aspect to).

I have varying degrees of familiarity/knowledge of some of those languages, and greatly want some guidance on the top x to learn (where x is a number, preferably less than 50 :)

There's been some good discussion that I've found useful on this site, and I'll provide some references here.

On Ruby-- 126047,121802,38627
Ovid gets his own category-- 162711
This isn't bad either: 74449,
And this couldn't even boast being fully thought out without this wonderful link Why I like functional programming by tilly

My take on OOP is C/C++. This is because it was the first language I took, and the only real (as far as real, C/C++ and OOP go together) OOP language I've learned. I don't know in what ways C++ is lacking in terms of OOP, though I've read some posts that seem to insinuate this, so advice as to some good OOP languages would be helpful (perhaps moreso would be what makes a language object oriented, and where/why C++ is lacking)

And, of course, feel free to compare anything to Perl...

(And in case the answer is 'it depends' I'd appreciate what it depends on and certain cases spelled out, if possible. Oh, and as I'm kind of young, i.e., haven't gotten out into the job market--well, I do have a summer job, and it is with perl, happily--a description of what you do, possibly with how perl relates to it if relavent would be very informative)

(Thanks to grinder and arturo -- and whoever that may have taken a great deal of time and as a result wasn't fast enough to be included -- for reading through this)

Replies are listed 'Best First'.
Re: Other languages besides perl
by Abigail-II (Bishop) on Aug 05, 2002 at 15:13 UTC
    I do the majority of my programming work in Perl. I like Perl because it's a power language. It has a lot of nooks and crannies, just the way I like it. Perl fits my twisted mind, and Perl lets me do anything with it they way it pleases *me*. Perl is my slave, and I'm not a slave of the language (therefore I strongly resist all attempts of people who say "this is the way you shall do it" - too bad perlmonks.org features too many of those people).

    Other languages I program in:

       shell:  I love its quoting style - it's better than Perl.      
       awk:   (Typically in combination with shell).
               Shell and awk are present on all Unix systems (and I
               don't give a rats ass about non-Unix systems), Perl
               isn't.
       C:      For speed, low memory usuage, and portability. It doesn't
               require Perl to be present.
       SQL:    Hated by many, adored by the few who understand the
               power of set algebra.
       LPC:    It's simple, and MUDs are fun.
    

    If I had more time, I would learn, or learn better: Python, REBOL, Haskell, Eiffel, Ada.

    Abigail

Re: Other languages besides perl
by dreadpiratepeter (Priest) on Aug 05, 2002 at 15:58 UTC
    Just a quick couple to look at:
  • SQL
    Knowing SQL really well allows you to solve problems simply and elegantly in the db, rather than with unnecessary and complicated code in your application.
  • Icon
    A very unique language. I would get the book 'The Icon Programming Language' (i forget who it's by). Icon is an interesting little language with neat things like, higher order functions, coroutines and coexpressions. And, much of it's beaury is going into Perl 6.
    Actually, that was my first question for both Larry and Damian at the 2001 O'Reilly con. Was Icon an inspiration for Perl 6? And they both answered an emphatic yes.
  • Postscript
    Everyone should know one stack based language. It make your brain more flexible.
  • Lex/Yacc or Parse::RecDescent
    Debatedly a tool, not a language. But learning about parsing and tokenizing and compilers will help you down the line. Once again, it makes your brain more flexible.

    -pete
    "Pain heals. Chicks dig scars. Glory lasts forever."
Re: Other languages besides perl
by thraxil (Prior) on Aug 05, 2002 at 16:13 UTC

    if programming languages interest you, you will probably enjoy reading Lambda the Ultimate on a regular basis. intelligent, well-reasoned language comparisons are common there.

    personally, i've coded in: C, C++, perl, java, javascript, ML, haskell, XSLT, rexx, SQL, bash, python and several flavors of assembly (MIPS, x86, and Z-80).

    i find perl to be the most pleasant to use for the widest variety of tasks. plenty of power without having to do lots of busy work type stuff (like memory management in C/C++ or the annoying type system in java) without forcing me into one particular programming style (functional, OO, procedural, etc). C, assembly, javascript, and SQL each have domains where they are the only option available so you're basically stuck with them. learning functional languages like haskell and ML did wonders for my ability to reason about programs. actually using them though, i found too many things that should have been simple but weren't (eg, basic IO and text processing). python is pretty nice too; python with TKinter makes GUI programming quite painless.

    it sounds like you already have a good grasp of functional and procedural programming. maybe a good next step for you would be to learn some assembly. becoming familiar with exactly how things work at that low level can't hurt. you probably won't actually do much assembly programming in your career but the understanding it creates is priceless.

    anders pearson

Re: Other languages besides perl
by FoxtrotUniform (Prior) on Aug 05, 2002 at 21:09 UTC

    Given the choice, I'd probably program mostly in Perl. It's a nice featureful idiomatic language, without peer for text munging (and 99% of my programs are text munging) and pretty good for most everything else.

    The major problem with Perl is that it's slow. (Yeah, yeah, programmer time vs. computer time, but if you have a ten-minute cron window and your script takes 15, you have a more serious problem.) For problems that require the speed of a language compiled to machine code by an optimizing compiler, I'd probably use Common LISP or Scheme. I haven't yet decided which I like more. Wonderful, comfortable languages, the both of them, once you get over your fear of parentheses. For most problems, they're about as quick to program in as Perl, sometimes better, sometimes worse. As usual, it's a matter of knowing the idioms, having a toolchest, and being comfortable with the language.

    If I have to write super-fast, low-level code, I'll use C, or maybe carefully-written C++ for an especially large project. C also seems to be the great common denominator of the hacking world: you're pretty much guaranteed that any even vaguely experienced programmer knows C, and that any even vaguely sane system has a C compiler installed. If these points are important to me, I'll probably use C. It sometimes feels like a step backwards coming from one of the languages I mentioned above, but once I've gotten into the swing of the language I do pretty well.

    I know (with varying degrees of familiarity) plenty of other languages: 80x86, 68k, and MIPS assembly languages, Haskell (fun!), Prolog (everyone should learn at least a little bit of Prolog), Pascal, and Java are the first that come to mind. They all have their plusses (well, maybe not x86 asm or Pascal :-), but in general, to solve an immediate, real-world problem, I'll pick one of the above.

    --
    F o x t r o t U n i f o r m
    Found a typo in this node? /msg me

Re: Other languages besides perl
by rinceWind (Monsignor) on Aug 06, 2002 at 11:05 UTC
    The main thing about choosing programming languages to study is that there is no right answer. The best approach here is to suck it and see (if it sucks or not :-). There are plenty of sites on the net providing documentation and example programs - go take a look.

    Two other considerations are:

    What will the CompSci course be teaching or using?

    This would be a good consideration. There are probably good reasons why they have chosen a particular language, as it may be good for introducing certain skills and algorithmic techniques. Also, you will steal a march on your classmates.

    Which languages are popular on the job market?

    This is less important at your stage, as your first job applications and resumés will not be able to count skills picked up in your own time - hobby programming. But, these skills come into fruition if you actually get to use a language or a technique on the job, if you have the understanding up-front.

    In particular, there are a few languages not mentioned by others:

    • Smalltalk

      This gives a very different, more dynamic feel of OO than C++, and Perl's OO is closer to this.

    • Prolog

      Prolog will give you a good introduction to predicate calculus and AI.

    • A pure functional language like SASL or Miranda.

      I agree, especially with the second point. I still use Delphi/Kylix, but could never find anyone that would pay me to do it around here.

      I have found work doing VB/Access VBA/VBScript programming, as much as I hate to admit it. You cannot say VB is a great or powerful language, but a lot of people are running Windows these days.

      My advice to you is to stick with Perl and C++ for now. Get some work on a few big projects to sharpen your programming skills. Build a strong foundation. Worry about other languages later.

Re: Other languages besides perl
by hding (Chaplain) on Aug 05, 2002 at 21:52 UTC

    My favorite is Common Lisp. The ones I use regularly for work are Common Lisp and Perl (mostly because of CPAN). I like Common Lisp because of interactive development, the large size of the language, the fact that it's easy to make abstractions, the fact that it's easy to write very readable code, it's multiparadigmatic nature, and many other reasons.

    Common Lisp will give you another take on OOP. So will (for example) Smalltalk (which I also use occasionally - for example, Dolphin Smalltalk gives one a good way to do the types of things (and others as well, of course) that Visual Basic is intended to do). Any specific Smalltalk you may choose is also likely to be a "large language".

Re: Other languages besides perl
by Anonymous Monk on Aug 06, 2002 at 06:17 UTC
    Hi, I am on my third "large" programming project. First I was using TTCN and ASN1 for testing (check it out) in the second one I was using classic C; and in my third, Perl. What I find interesting, is that once you have learned some C, Perl seemed to be easy to start with. Perl has been powerful tool for file/text handling in my case. I really enjoy Perl, most of things I have needed were available in www sites. Of course when you learn more you also notice how little you know. BR Hewarn
Re: Other languages besides perl
by dada (Chaplain) on Aug 19, 2002 at 09:41 UTC
    I love programming languages. my favourite one is Perl, but I love them all, really. including BASIC and Assembler. and I've spent a lot of time doing research and learning new languages, so I want to share some of my favorite bookmarks on the topic. many, many more links are available from the pages I've mentioned.

    PS. one language that I really liked a lot (and almost noone seems to know) is Pliant. really, really worth a look in my opinion.

    cheers,
    Aldo

    King of Laziness, Wizard of Impatience, Lord of Hubris

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://187686]
Approved by coreolyn
Front-paged by jarich
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2024-04-24 01:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found