This is a really hard poll for me (no vote yet) because I'm very much a linguistically diverse person at heart.

I began learning about programming through a tutorial on C++ about November 2005 and have always been largely self-educating with it like everything else I do in computers... I pick up languages pretty easy and like learning them, especially ones that take different approaches to problems.

As far as language design goes, I would say my favorite is probably Java. It's a nice language, most things in Java I've seen just 'make sense', and comes with a large collection of classes -> the only problem I have is the design is so OOP focused.

I especially love Javas interfaces, although I'm indifferent to whether a language uses single/multi-inheritance but I like the concept of interfaces.

Although I must admit, I generally do my best to _avoid_ writing any Java code!!!

If I had to pick a single favorite, I probably would pick either C or Perl.

C is to me, a perfect language without flaws. It is small, you can fit the entire language into your head w/o problems and use a reference to look for functions you use rarely. The only problem is the best parts of what make C so perfect also mean I tend to be more productive the less I use it :|

Perl I might pick, because it is the closest to natural language and I often can use it to do a lot of stuff. While still having a lot of familiar and logically thought up syntax. Not to mention for various tasks I often find it most effective to write a perl script to deal with it, define and refine a command line interface to the problem, and quickly document the entire thing in POD. Perl is like a best friend in my toolbox, not sure if I'd want to work with 10 thousands of lines of it but it's a great language for working on my machines.

When it comes to actually writing code, I usually use whatever I am using the most of at the moment, what I feel like (the oh let's just do XYZ in Foo for the sake of doing it in Foo), or the language I have to (e.g. working a websites CMS or a given library)

A lot of times I try to use the simplest solution first, if I can do it in Bourne I usually will -> the utilities provided on a unix box are to good to write my own!

If I need more then that can do, I'll often apply Perl, Python, or Ruby -> which ever I'm using most of at the time or feel most like using^^

PHP is also a great scripting language and recently has transitioned from most hated to debug to very handy since I learned it had an interactive mode . Because my introduction to the language was having to edit someone else's sludge without even learning the language first lol. Since then I've had to grab the manual and start writing a library for a website that has lacked anyone with a brain behind the code.

I could swear... My predecessor is the first "know nothing" in terms of HTML/CSS/JS/PHP/SQL we've had as a webmaster but most of the code was written by his predecessors (now a graduate of Cambridge) predecessor (who became a MCSE). And I'm probably the first moron on the website to ever hear of doing things "properly" instead of the half rear-ended way!

GUI related projects usually end up in Python with Qt because I don't like C++ for a lot of stuff I'd rather do in C or Perl/Python/Ruby. Most command line driven projects I do end up in Perl or C.

My vote's for PERL, but it's obviously not for everyone or every situation. In my situation, as a network administrator, it's been invaluable in the past. And the fact that most network administrators are just that ("that" being network administrators), and not programmers, means PERL fits well because you don't have to be a complete evil genius to crank out some useful scripts. You can cook something up pretty quickly, and then get back to your life.

I'm seriously on-again-off-again with PERL. I won't touch it for months at a time, then there will be some migration project (like migrating away from MS-DNS to BIND, with 7k domains spread across 30+ DNS servers) and suddenly there's PERL, staring at me with that look on it's face that's saying "Now can I come out and play?"

Laugh as much as you wish, but I still use Mumps, Snobol, FORTRAN and APL for little home projects. I'm turning 64 next week, by way of explanation. 'Never have understood why GOTO is such a bad thing. Cheers to your choices from an old fart.

Laugh as much as you wish, but I still use Mumps, Snobol, FORTRAN and APL for little home projects.

Well designed & well implemented code using older tools is a whole lot better than bad code slapped together with trendy tools. Ultimately, it comes down to getting the best out of what tools are available, & this comes from knowing the tools through experience.

Quote:

'Never have understood why GOTO is such a bad thing. Cheers to your choices from an old fart.

As opposed to the platitudes taught in schools, goto has its place, however, it takes significant time to develop the insight needed to know when to use it in a disciplined manner. Paraphrasing Dijkstra, gratuitous use of goto doesn't scale well, & it can make the maintenance job of the next guy inheriting the code a living hell. Given that most code ends up being write-only (It only made sense to whoever wrote it...), & given that most code lives in a maintenance phase, it behooves programmers to have a solid reasoning for using it. If you are maintaining your own code, then you understand why various decisions were made.

As for my experience, I can't recall that I have intentionally used goto's in original code, but I have perpetuated the practice when extending the work of others.

... And the fact that most network administrators are just that ("that" being network administrators), and not programmers, ...

+1
never have been a programmer (never will be) myself but since i've started using bsd at home/work i had to automate certain tasks and there it comes the efficiency of bourne shell. since i'm at the start of my bsd experience and career in net admin i don't know what will happen with my "programming skills" but bourne shell will always be my "first love".
I am also thinking of perl in the future

/v

__________________
Stop! think! ... the problem is somewhere between the monitor and chair..."First they ignore you, then they laugh at you, then they fight you, then you win."Gandhilinks: spreadbsdsyk