What is your favorite programming language?

I don’t think we did this here, so let’s talk about our favorite programming languages. I’m guessing that most of the readers here are tech minded people, who know at least one. So if you do, let me know what it is. Btw, I’m not trying to start a flame war or anything like that. I’m just curious what people around here program in. For this exercise let’s assume all languages are roughly equal.

I think the two languages I have most experience in are Java and PHP. Java was the language of choice at my university, so I used it for every programming project in the 6 years I was there (BS, then MS). This is also the language I used for my thesis. It’s a great language, and I love it to death, but it’s by no means perfect.

Currently I’m doing most of my programming for work in PHP. Similarly to it’s cousin Perl, PHP is deceptively easy to pick up, and it gives you plenty of rope to hang yourself and write working, but ugly and unmaintainable web applications. I know cause I tend to write crazy-ass all the time when I’m in a hurry and then go back and refactor them.

I actually don’t even consider Perl as programming language anymore. It’s my everyday tool that I use almost without thinking mostly for hacking stuff that is just to big for shell scripts. I did use it to do some bio-infomatics related stuff in school and it was tons of fun. I probably wouldn’t use it for huge projects, but that’s probably because I don’t trust myself to write readable code and document it in this language. ;)

I’m trying to write more stuff in Ruby these days because I really like the way this language works. In fact, the more I use it, the more I like it. The syntax clean, pretty and expressible. It kinda reminds me of Python in the way it works, but it avoids the funky stuff like that whitespace thing, or forcing you to pass “self” as the first parameter of functions that belong to a class. The Ruby community is great, and it has all these killer apps like gems and rails that I always kinda wished Python had. So yeah, Ruby is something that I see myself using more and more in the future.

I do have a soft spot for Python as well. I’m probably not as fluent in it as I’m in Java and PHP/Perl but I do enjoy messing around with it. Once you get past that white space thing, it’s really a great language. I actually do have a small Python project in the works, and it may eventually work it’s way to this blog if I ever manage to get it into state of workability and presentability.

The one language that I fell in love with in college was Lisp – I found it tons of fun, because it required a completely different way of thinning than almost everything else. I don’t actually get to do a lot of programming in this language, but it’s always a fun break to use it. And wen it comes to raw power, elegance and simplicity Lisp really has no contenders. The syntax looks bizarre for the uninitiated, but it is really quite brilliant.

So there you have it – I’m a Java/PHP/Python/Ruby/Lisp person. How about you?

[tags]programming, java, php, perl, python, ruby, lisp[/tags]

This entry was posted in programming, technology. Bookmark the permalink.



25 Responses to What is your favorite programming language?

  1. Craig Betts UNITED STATES Mozilla Firefox Solaris Terminalist says:

    My favorite all-time language is Pascal. I actually learned it on Apple ][s and ///s back in my early years. I haven’t touched it in a while, so my memory of syntax is clouded by perl, bash and C.

    Next in line is assembly. Never got beyond the eight-bit era, so I have no idea how to use more than one accumulator.I wrote lots of code on the 6502 and 8088.

    Reply  |  Quote
  2. Wikke BELGIUM Mozilla Firefox Windows says:

    I began in PHP (ok, Visual Basic, but that didn’t took long): Quick, got the job done, but as you said: unmaintainable if you don’t take the time to refactor

    Then I learnt Java in school: powerfull, but it took soooo long to write even a simple GUI, which annoyed the hell out of me…

    Now, i swear by Adobe Flex: GUIs are easy and amazingly quick if you come from Java. Integrates perfectly with coldfusion for webservice funcionality.
    Only problems i’ve encountered are: garbage collection is far from perfect imo, flash player dependant, maybe slower than a native Java app.
    But for the rest: Winner :)

    Reply  |  Quote
  3. jambarama UNITED STATES K-Meleon Windows Terminalist says:

    Ah pascal – my second “hello world” was pascal (first was basic). What do I use most frequently? Unfortunately for work I use a lot of vba. Yuck. What do I like most? Ruby and bash scripting. I don’t much like perl – its fine writing it, but a royal pain to read. I have no problems with javascript, python, java, or C++, but thats where my experience ends. I’ve never used php or lisp. I’d like to know C a lot better, but school demands eat most of my big chunks of time.

    Reply  |  Quote
  4. Luke Maciak UNITED STATES Mozilla Firefox Ubuntu Linux Terminalist says:

    @jambarama – I took a course in C++ in HS, but we kinda danced around the memory management issues, and the instructor pretended he doesn’t know anything about OO so I really didn’t get much C specific knowledge out of it. What I got was a good grasp on control strictures, data type and all the other basic stuff.

    So I don’t really have a strong background in that language, and to this day I need to look up the proper usage * and $ when passing by value/reference. :P

    @Craig – I did some SPARC assembly back in college. That was fun – you had like 32 general purpose registers to mess around with. Then they showed us the x86 architecture and we decided that it sucks ass.

    @Wikke – yeah, GUI stuff in Java is atrocious. I got burned by Swing so many times I swore never to use it again like 3 times already. Then I go and use it anyway, because the alternatives are either not as portable, or pain in the ass.

    Reply  |  Quote
  5. Jenn UNITED STATES Mozilla Firefox Windows says:

    Visual Basic.

    Just kidding.

    I can’t believe my anti-spam word for this comment was “rickroll.”

    Reply  |  Quote
  6. Craig Betts UNITED STATES Mozilla Firefox Solaris Terminalist says:

    [quote post=”2134″]I did some SPARC assembly back in college. That was fun – you had like 32 general purpose registers to mess around with. Then they showed us the x86 architecture and we decided that it sucks ass.[/quote]

    Wow . . . imagine a little-endian processor that suck ass . . .

    Reply  |  Quote
  7. Luke Maciak UNITED STATES Mozilla Firefox Ubuntu Linux Terminalist says:

    [quote comment=”7284″]Wow . . . imagine a little-endian processor that suck ass . . .[/quote]

    I don’t get it. I hate to be the guy that asks to have a joke explained to him, but… :/

    Seriously though, after working with SPARC for a while, we looked on the x86 architecture and went “UGH!”. It really looked ugly, and inelegant for us – mainly because it had:

    1. not enough registers
    2. all registers had some special purposes
    3. SPARC was risc architecture with nice, clean and consistent commands.

    There were like 4 or 5 different types, and all of them were the same length. You grabbed registers as needed – there were no accumulators, counters or anything like that. Just the instruction pointer and oodles of registers for you to use whichever way you please.

    Next to that x86 assembly looked like some odd, ritualized, arcane, archaic ritual.

    Oh, and we also did the fake Java assembly thing. All it had was the stack. You push things onto the stack to do operations, and pop results of the top.

    Reply  |  Quote
  8. Craig Betts UNITED STATES Mozilla Firefox Solaris Terminalist says:

    Sorry, I will tone down the sarcasm . . .

    Many companies are attracted to Intel/AMD systems merely because of the price. What many people don’t know is that the big-endian/RISC type processors can handle calculations much better. There is a good reason that all the serious computing type systems are running SPARC, PA-RISC and PowerPC processors. Even a high-end VME chassis is all PowerPC.

    I am now operating quite a few Intel boxes with Solaris 10. It is okay for basic computing needs, but it can never replace the pure number-crunching power of an old-fashioned RISC chip.

    Reply  |  Quote
  9. Craig Betts UNITED STATES Mozilla Firefox Solaris Terminalist says:

    Hmmmm. Just noticed that I was running an EXTREMELY old version of Firefox. Thanks for displaying that info. I borked a symlink and had it pointing to the wrong Firefox . . . :-(

    Reply  |  Quote
  10. Luke Maciak UNITED STATES Mozilla Firefox Ubuntu Linux Terminalist says:

    Ah, ok. Got it. :)

    And yeah, one thing I got out of that class was that Intel/AMD platform is so popular is not because the x86 architecture is so great but because it is open and thus you don’t need to worry about licensing and etc.

    Reply  |  Quote
  11. Matt` UNITED KINGDOM Mozilla Firefox Windows Terminalist says:

    I know enough about programming languages to know that Visual Basic isn’t a real one (and that goto commands will attract raptor attacks), but that’s what I’m being taught in school at the moment.

    Hopefully it won’t scar my mind too horribly…

    Reply  |  Quote
  12. Craig Betts UNITED STATES Mozilla Firefox Solaris Terminalist says:

    [quote post=”2134″]And yeah, one thing I got out of that class was that Intel/AMD platform is so popular is not because the x86 architecture is so great but because it is open and thus you don’t need to worry about licensing and etc.[/quote]

    Funny thing is . . . SPARC is open!
    OpenSPARC

    Reply  |  Quote
  13. Dave UNITED STATES Mozilla Firefox Mac OS says:

    Matlab all the way!

    Reply  |  Quote
  14. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @Craig – yes, now it is. When I was taking that class OpenSparc didn’t exist yet. ;) The thing started in 2005 according to the all knowing wikipedia.

    @Matt` – well, the thing about VB is that while it sucks, it is Turing complete and expressive enough to be effective. With VB.NET you get the full power of the .NET framework and all the nice things that come with it. It’s scary, but there are tons of jobs out there for VB programmers – in fact many more than for programmer who know much more awesome languages like Lisp or Python.

    So I can see why they would teach it.

    C might be difficult to grasp because of memory management. Java may be difficult because you must understand OO to get anywhere with it. C# is essentially Java with different set of libraries.

    VB is quick and dirty – no compiling, it has garbage collection and lets you use .NET libraries. I wouldn’t use it for teaching, but I can see how some schools would pick it as the introductory language.

    @Dave – I never coded in Matlab but I saw it in action and was impressed.

    Reply  |  Quote
  15. Ben UNITED STATES Mozilla Firefox Ubuntu Linux says:

    I have ten years professional C++ experience (real C++, not an MS version), and I’ve been doing C# for a couple years now. What I look for in a language is flexibility. I need to be able to write a design as it is in my head, not as the language originator thought I should. For that reason, I find Java painful, and dread whenever I have to work in it. I liked doing C++ at the time I was doing it, but it takes a lot of code generating tools to handle the repetitive tasks. C# is nicer about that, and has turned into a real programming language in .NET 3 (it didn’t qualify in .NET 1.1), but I am uncomfortable with languages that bind keywords (foreach) to library types – it just seems wrong. Also every times a new version of .NET comes out, I lose a few potential variable names in new reserved words. Ruby is fun, but ultimately suffers from the same scaling issues that perl does (please don’t flame me ruby fans!)
    So, given all that, Lisp is my baby. I love it. It can be painful to set up a development environment, but it is well worth being able to put code on the screen as it appears in your head. Check out cusp if you don’t want to use emacs.

    Reply  |  Quote
  16. Miloš UNITED STATES Mozilla Firefox Windows says:

    hmmmm…Luke, some of the courses you took in your undergrad career are very similar to mine :) Probably cause we took some of them together.
    Other than Java, JavaScript, Assembly (wow did I really say that!?) I have experience with C++ (Borland Compiler) and a bit of Perl/PHP

    Reply  |  Quote
  17. Tummblr UNITED STATES Mozilla Firefox Windows says:

    I’m a total programming noob compared to you and most of the readers here.

    I’ve taken some college intermediate-level computer science courses taught in C, C++, and Scheme, but I’ve since lost any proficiency I had in those languages (though I’ll probably always be able to read basic C-style code). The only language I can claim any proficiency in is PHP, and there’s one simple reason for that: PHP has awesome documentation!

    So my favorite language is PHP; my favorite feature of PHP is its documentation.

    Reply  |  Quote
  18. J. Judas UNITED STATES Konqueror Debian GNU/Linux says:

    Oh, crap… I’m getting old….

    When I need to do quick and dirty things, I use bash shellscripting

    For a real programming language, I use C.
    I learned on K&R C [pre-ANSI-C]

    I guess I’m an old-timer.

    Reply  |  Quote
  19. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @Ben – ooh! I didn’t know about cusp. Nice find! I will definitely check it out.

    @Miloš – assembly with Bredlau FTW! lol

    Btw, my HS C++ class also used Bordland. My other C experience is working on Zaritski’s cluster with gcc. It was fun, but I loved when he scribbled ARRAY BOUNDS!!! and MEMORY LEAK!!! in red pen all over our code. :P

    @Tummblr = btw Scheme ⊂ (is a subset of) Lisp.

    Reply  |  Quote
  20. ths GERMANY Mozilla Firefox Windows Terminalist says:

    I learnt computers with a self-built 6502 (elektor junior), then I got a Sinclair ZX81, Apple II+ clone (soldered the mainboard myself), and later on for fun of old games I bought a C64 in the 90s. We had old CBM 4016 in school, later replaced by “professional” CBM 8296 with memory bankswitching (I think 2 banks of 48 KB each). I learnt basic and pascal, and very soon switched to 6502 and Z80 assembler. I still know most of the 6502 hex opcodes by heart, and I wrote a CP/M like OS for the Apple, which had no big success, since there was no software for it ;). I still can calculate hex in my head, but stopped short of square roots.

    For participating in Fido I wrote most of the software myself with emx Gnu C on OS/2, which I loved at that time. I never got the hang of C++ and Java, but I do like perl’s OO approach, and often use it.

    When I met unix at university I was doomed ;). I applied for a job at the computing centre there and had my own SGI IRIX4 desktop workstation, and we had lots of AIX, and DNS was running on 2 sunos boxes. I learnt TeX, ksh and perl (I think it was v4 then) and awk and sed and m4 and all the other goodies, goldies, oldies ;). Oh yes, and of course I took courses in Fortran, Cobol, Scheme (a lisp dialect) and some other strange things not even Lovecraft would talk about.

    I had a HP calculator once with RPN, and I used a bit of Forth for fun, but never found a real use for it.

    Since 92 I’m a professional consultant, and since 97 I work with Tivoli, mostly on unix with scripting languages around it. For one Tivoli product I had to reactivate my prolog knowledge from the university, and I still like it for this dedicated purpose, although I never understood what to use it for elsewhere.

    I’m a total commandline guy, I despise GUIs, and I hate it when there is no other choice than to use a GUI. I think I’d still browse the web with wget and lynx if it wasn’t for youtube ;)

    For real programmers, tare only 2 questions to ask when learning a new language:
    what’s the comment sign, and what’s the end-of-statement character?

    For some fun, here is a link to
    nerdtests.com
    and my result

    Reply  |  Quote
  21. Gunni FRANCE Mozilla Firefox Linux says:

    I’ve just discovered Python and I like it a lot so far. I haven’t got much experience with programming languages, the only ones I’ve done serious work in are Java, c++ and matlab, but Python seems more fun than those.

    I keep waiting to have the free time to learn Lisp seriously though. Talk about sexy. :D

    Reply  |  Quote
  22. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @ths – hehe, one of my professors used to have one of those RPN calculators. He would always volunteer to lend it to students who forgot to bring their own, and then sinker as they were trying to figure it out.

    Gunni – yeah, python is very fun. The whitespace thing is bit annoying at first, but you get used to it. Also, I always forget to pass self in methods but other than that it is a great language.

    And definitely check out lisp. Makes the brain hurt, but in a good way. :)

    Reply  |  Quote
  23. Jaba ITALY Mozilla Firefox Ubuntu Linux says:

    :D lol I’m actually in love with LISP, and my anti-spam word is FOOBAR! :D great!
    Nowadays I’m researching on soft computing algorithms (mostly evolutionary algorithms: genetics, swarm intelligence, etc), and working in LISP gives you a boost that no other language so far does: you only have to write down the problem, and nothing else (but for lots of parenthesis ;p ).
    Not joking, I have years of experience in Java, C, C++, Php and Python, but nothing’s more elegant than functional programming.
    Hello world: (format t “Hello world”)
    Print all keys from an hash table: (loop for key being the hash-keys of *my-hash* do (print key))

    Reply  |  Quote
  24. Adam Kahtava CANADA Mozilla Firefox Windows says:

    I was weaned on C/C++, muddled around with some Java, COBOL, Visual Basic, PHP, and a couple other languages. Today I do most of my “paid” work in C#, ASP.NET, and JavaScript using the ASP.NET AJAX client-side libraries. My favorite language (as of this year) is JavaScript, it’s an incredibly powerful language (depending on how you approach it). JavaScript is a mainstream functional (lambda), object oriented language, based on prototypical inheritance – I like it cause it’s different then many of the class-based programming languages like the C family of languages. I enjoy the mental shift JavaScript induces. I’ve been playing around with Ruby and F# (a functional language for the .NET stack) in my spare time.

    Reply  |  Quote
  25. Luke Maciak UNITED STATES Mozilla Firefox Ubuntu Linux Terminalist says:

    @Jaba – I don’t think that last line is actual lisp code. Or is it? Not enough parentheses there!

    @Adam – Javascript is cool, but it has this unique way of pissing me off. Often it’s just hard to debug even with stuff like Firebug and etc.

    I never saw F# but I guess I’ll need to check it out just to see how that beast works. :P

    Reply  |  Quote

Leave a Reply

Your email address will not be published. Required fields are marked *