The Best Programming Language Ever

Well? What is it?

Please note, the sensible answer of ‘There is no best, it depends on what you want to do’, is banned on pain of, well, pain. Don’t make me hunt you down and kill you. This is a purely subjective poll (except without the poll functionality, as I don’t want to restrict peeps and there are thousands of languages out there). So, those of you who have used more than one programming language, which is the one you like best. Please also state what you like about it, which other languages you have used and why it’s better, for your brain/needs, than them. Also its shortcomings if you like. And are you a professional programmer, or just someone who uses programming occasionally in your work, or a hobbyist?

Me, I’m a hobbyist, but will be programming at work when I get a job! Only as a bioinformatician, not a software developer. I’ve used C, various Basics and Perl quite a lot, and used R, Fortran, Java, C++ and J a little. If you count SQL as a programming language, that too. It’s a toughie but on balance I think I like Perl the best. I’ve found myself to be most productive in it, in terms of time between deciding what I want to do, and having a working program for it.

I like that you don’t have to be quite so finicky with data types as in say C or Java. I like that you don’t necessarily have to tack loads of garbage around the meat of the program (e.g. hello world is just ‘print "hello world
";’ without having to declare a main function or include libraries… Java, C, C++, I’m looking at you). I rather like hashes, regular expressions, and the ease in manipulating strings (C, you’re an arsehole). I like how much you can do in it without thinking in object-oriented terms (Java, jump off a cliff) - not a fan of o.o.p though I understand it’s probably extremely useful when writing huuuuge programs, much bigger and more important than the kind I hack out.

Having used R and J, I miss the transparent array manipulation when in Perl. And I would like the option of compiling the code into a standalone executable.
So, for me, Perl wins.

I’m a Perl nut, too. Even a CPAN contributor.

But I suspect most respondents will agree that there is no way you can objectively declare a given programming language the best. They all have different strengths and weaknesses, except for PHP, which has no strengths at all.

But if you ask what my favorite is, it’s definitely Perl, followed closely by Haskell which I’m still learning the basics of. Other favorites are C, Python and Prolog.

Deoxyribonucleic Acid?

There is a difference between what I am using and what I considered to be the best. But for me, if I have a choice, I would use C# for everything. However, I loath ASP, so for web application I am sticking to PHP. I hate C++ with the fury of a thousand suns, but give me QT 4.5 and I am happy enough to program on it.

So my choice is C# WinForms for application, C# SDL.NET for 2D games, a C# wrapper for a 3D engine for 3D games and etc. IRL, though, I don’t have the luxury of choice.

What I consider to be the best is are by those yard-stick: ease of use (I’m a lazy programmer), consistent and readable syntax and implementation, ease of deployment, over speed and security.

Right now my preferred language is C#.

The one I like best… It’s hard to choose, since they all have some annoying issues. Anyway, here are some of the ones I like and what’s wrong with them:

clojure - growing fast, so it can be hard to keep everything up to date. Also, the JVM puts some annoying restrictions on the language (no tail-call optimization!). Also also, I don’t always want to have to depend on the JVM.

common lisp - 40+ years of historical baggage and it shows. Also, portability between implementations isn’t as good as it should be.

perl 5 - collections should have been implemented like ruby’s. Also, perl 6. Just perl 6.

Ruby - slow and too fond of abusing OO for meta programming.

Javascript - whoever thought that the Constructor mechanism was better than just extending from a prototype? Lots and lots of confused design in a language that’s actually conceptually simple and flexible.

C - does too little.

C++ - does too much that practically nobody understands.

Java - way too OO-centric and conservative in its design.

Well it’s certainly powerful, but it relies too much on spaghetti code, and mixes up different levels of abstraction haphazardly. And they (soon to become we) still haven’t brought out the definitive specification yet. No facility for comments either, unless you consider “ATATATATATATATATATATAT” repeated a few hundred times to be a comment.

Python!
Almost anything I need to do I can do it it python, quickly.
The forced indentation makes the code a little cleaner I think.

Java - Nice if it is used well, can be terribly terribly abused.

I hate perl because it looks so ugly, good for quick hacks, but not easily maintained.
Almost every statement looks like a grawlix.

I’m a big fan of C++, because it is the most versatile for what I do, which is embedded programming. I will concede that it’s a PITA for web applications, and a bit clumsy for Windoze apps.

Not to mention the complete lack of obsolete code cleanout. Occasionally you can try to instantiate a Human object, but then for some reason reverts to old code for webbedFoot() or Tail(monkey)

I love C++. It is very expressive, and modern compilers can generate extremely efficient code from it.

It does have a lot of disadvantages, however. It gives you a lot of rope to screw yourself over with if you don’t know what you’re doing. And chances are, at least some of your fellow cow-orkers indeed do not know what they’re doing, and you’ll need to clean up their mess.

There are aspects of its syntax inherited from C that could be done better. For example, seriously, the syntax for pointers and functions declaration, WTF? Also, the need to maintain declarations in separate header files can be cumbersome at times.

You’re going to need very decent compilers with a lot of optimizations in order to get any reasonable code out of modern C++. This is not a problem nowadays on most common operating systems for normal computers. This is, however, a problem for many smaller embedded environments. Many of them don’t even have any C++ compilers, never mind a good optimizing one.

Java/C# are nice for some stuff. For example, I think C# is great for simple GUI programming on Windows. However, I also dislike the fact that these programs typically need to be run through a virtual machine. I think this makes the programs consume much more system resources than they need to be. I can see why Sun originally decided to go the byte-code route: They have products for machines with different architectures, and they envisioned Java programs to be something that is write-once, run everywhere. Good for them. But why on earth did Microsoft do the same thing when they designed the .net framework? I think they should have designed them to be directly compiled into native binaries instead.

I think Python is very nice for some scripting jobs that need to be done quick and dirty. However, I think it may not be suitable for larger systems. The lack of static type checking inevitably leads to stupid, simple programming errors that could have been caught at compile time in other languages to blow up unexpectedly at runtime.

I do low-level and embedded programming for a living.

Php & c++

C. It’s simple, fast, free, runs on everything, and does everything I need.

Haskell. Everything in the language fits together so well. Type classes are perhaps the single greatest invention in programming language design in the last 20 years, and computing with lazy data is cool. An awful lot of new features in C# have been cribbed from Haskell and other functional languages.

Forth!

R for anything statistical, Python for manipulating data in ways that R can’t (or can’t do easily), and C for when that extra speed is vital.

ObjC and Cocoa

Pascal is, I think, far and away the best language for anyone learning to program. Extremely clean syntax, strongly encourages good programming practices, and Borland’s old DOS-based IDEs and compilers are available for free.

I haven’t done any serious programming since high school, but I always found it far easier to pick up new concepts in Pascal than C/C++. Once I learned it in Pascal, I could do it in C.

That said, I’m sure a well-designed curriculum and a good teacher can teach introductory programming skills in any language. Still, though - Pascal will always be the one for me. :slight_smile:

(Probably just as well I ended up going to law school, eh?)

At the moment my preferred language is C#, but I found Java to be quite impressive as well. Only a temporary state of utter confusion could account for the management’s decision, at my last job, to hand each of us a Java book and to install Java on our computers. They were, in fact, quire obviously confused because they apparently actually thought that we, the application programmers, might actually be able to build something. Of course they came to their senses and returned to their usual pattern of buy-not-build, and allowing us only minor configuration and migration tasks. Be that as it may, I found Java to be intuitive enough that I was able to produce a non-trivial application on my own, of a kind more advanced than I had done before. And I did that in the first couple of days, before we ever got to the training class.

C++ is the language in which I first learned OOP. I would have to say I liked it at the time, but I prefer a language without pointers.

C. A good language for learning to program basic algorithms and data structures (e.g. linked lists). Newer languages like Java give you this stuff pre-packaged, but every programmer should be able to do them by hand as an aid to understanding.

PL/SQL. A bit wordy.

COBOL. I will not touch this with a pole. Too damn wordy.

FORTRAN. My first ever programming language. Simple and straightforward.

Everyone is wrong. QBasic was the best language ever. Then everything had to get all complicated and me and my fleeting programmer aspirations were left in the dust.