Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As an opposite of Which programming language do you really hate?, whats your favorite programming language to work with? What is the one programming language that you get somewhat excited for if a new project comes up that uses it?

Before you say "The best language for the task", thats not what I meant. We all like a language, this is simply asking for that. This is not about what task it would be used for


I can't believe this hasn't been asked before

share|improve this question
5  
Poll questions work better in this system if they're community wiki. – David Thornley Sep 23 '10 at 22:03
1  
@David: No, not really. meta.programmers.stackexchange.com/questions/8/… – TheLQ Sep 23 '10 at 22:04
4  
If there were ever a question that's too subjective, even for Programmers, this would be it. I'm rather disgusted that someone has earned 200 rep points just for posting "C#" and a generic placeholder comment about how great it is (one that could easily be substituted for any other language.) – Aaronaught Sep 24 '10 at 14:22
8  
The reason for CW for poll questions is to cut down on the rep-whore abuse that can happen. Polls in this system work best if one person gives one answer ("LOLCODE!") and other people vote it up. Without CW, that one person stands to rake in a lot of rep just for being the first with the popular choice, while others are tempted to post their own identical answers rather than upvote somebody else's. – David Thornley Sep 24 '10 at 14:50
1  
@Nick: That is incorrect. No one earns reputation on questions that were started as CW. Already-submitted answers only become CW if a moderator converts the entire beast. And is it any surprise that the answerers aren't rushing to convert their answers to CW? – Aaronaught Sep 25 '10 at 13:38
show 8 more comments

closed as not constructive by ChrisF Dec 28 '10 at 14:35

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

44 Answers

1 2

DNA & RNA

OK, so it isn't easy to write original code in, but think about this: it only takes 80m of genome to exert mind control.

And HIV is only 9749 nucleotides long...

share|improve this answer

C/C++

The C and C++ languages have the largest codebase (the Unix, Linux and Windows Operating Systems and most of the application for them), are fast, efficient, powerful. The one and only possible choice for a real programmer.

share|improve this answer

Anything other than what I'm using at the moment, whatever that may be.

share|improve this answer
show 1 more comment

C

(not C++)

Just simple and elegant, but still powerful. C++ is just a mess.

share|improve this answer
10  
I would like to upvote C, but I don't because of the attached C++ rant. – Lorenzo Nov 19 '10 at 19:34

C#

I have enjoyed programming since I was little, but I genuinely believe that ever since I know C#, it has become even more fun, and going back to anything inferior now would be painful.

share|improve this answer
11  
I would enjoy C# fine if it weren't for blasted Visual Studio. – Jon Purdy Sep 23 '10 at 21:38
42  
@Jon I mainly enjoy C# because of the wonderful Visual Studio. – romkyns Sep 23 '10 at 21:50
6  
@this.Daniel: I can deny that. VS is painful to work with because it's missing so many features, both in the editor and the debugger, that I tend to take for granted and rely on in Delphi. – Mason Wheeler Sep 23 '10 at 22:21
9  
@this.Daniel: I'm serious, though I'm the opposite of @Mason Wheeler. Give me a console and a plain old editor with syntax highlighting and I'm happy. Huge development environments with loads of features may be great for a lot of people, but I've learned that it's best for my psychological well-being if I avoid fighting an editor that wants to do more things for me than there are options I can disable. – Jon Purdy Sep 23 '10 at 22:33
8  
And lambdas/LINQ/the whole functional bit is my favourite part of C#. – Callum Rogers Sep 23 '10 at 23:42
show 31 more comments

Groovy

It's extremely approachable and intuitive for a Java programmer, and with Grails, you can create and modify a web application extremely easily.

share|improve this answer

Whatever has the best debugger

I think this criteria is different from "The best language for the task" enough that it warrants a mention.

My choice languages are whatever languages have a good debugger.

I find myself spending a lot more time debugging rather than writing code.

For that reason, I pick C# because of Visual Studio, and Python because of the ipython interpreter.

share|improve this answer
show 1 more comment

C

It used to be C, Python and Go since Go's introduction. Now I see myself slowly moving toward C, Go and then Python. Go code is simply more readable. But I simply love the small, potent and sharp C.

share|improve this answer

LiveCode

A modern descendent of HyperTalk that helps programmers be more productive than many traditional languages by requiring a lot less code to do the same action. While it may appear verbose at first, the high level coding and lack of punctuation and braces actually makes it quick to code in.

share|improve this answer

Forth

because it lets you create your own words that function as a subroutine.

share|improve this answer
show 1 more comment

I can't believe no one has said this yet...

LOLCODE

share|improve this answer
8  
IM UPPIN YR VOTE KTHXBYE – Dan Moulding Oct 23 '10 at 0:46
show 7 more comments

Ada

For those times when you actually care whether the program works right, and will keep on working right, because lives depend on it working right.

Yes, Ada is a royal pain to use, if you're a wild-eyed cowboy hacker fresh out of school. I've seen (and had to modify and maintain) enough of the code produced by such people that Ada being a royal pain for them is a Good Thing. It makes them learn How To Do It Right.

share|improve this answer
show 3 more comments

My favorite programming language is Scala - Pure awesomeness!

alt text


Reasons:

  • Elegant and seamless unification of object-oriented paradigm and functional paradigm.
  • Seamless Java interoperability. You can access any Java library easily from a Scala program in a fairly straightforward way.
  • Pure OO. No more primitives and statics.
  • Powerful type inference.
  • Lambda expressions.
  • case classes. Boilerplate is yesterday's news now!
  • Properties. Like in C#, just a bit better.
  • Mixin composition, made possible by cool class-like devices called traits.
  • Self-type annotations. (No more 3rd party frameworks for DI!)
  • Uber-powerful static type system.
  • Ease of creating internal DSLs. (thanks to the extremely flexible syntax of the language)
  • Ease of creating external DSLs. (thanks to the beautiful parser combinator library)
  • Type-classes, an ad hoc polymorphism device from the world of Haskell.
  • Pattern matching.

... the list goes on and on!

I just can't stress enough how goddamn awesome this language is!!! :-)

share|improve this answer
show 1 more comment

Delphi

It's the standard, imperative, object-oriented paradigm that most coders are familiar with, but it gets all the little details right that the C family always gets wrong. Plus the more recent versions have started to add support for mixing in functional programming concepts, without running into the ugly abstraction inversions that typically come with functional languages.

For all these reasons too.

share|improve this answer
7  
Can you give an example of such an abstraction inversion? (No, I'm not trolling.) – Frank Shearar Sep 24 '10 at 11:30
9  
@Frank: Wow, where to start? OK, in Haskell, doing things as fundamental as IO and state management, the entire point of using a computer at all, requires the use of monads, horribly complicated abstraction inversions that nobody understands. That's probably the most infamous example, but really, anywhere and everywhere an abstraction exists that you cannot get underneath of when needed. How many functional languages offer access to the power of inline assembly, for example? How many allow you to control the lifespan of your objects deterministically? – Mason Wheeler Sep 24 '10 at 13:07
8  
Delphi also admits a lot of low-level fun for those who like that. For instance, you can play as you wish with pointers, play around with the heap manually, use the native Windows API, and inline ASM code and write pure ASM functions/procedures. – Andreas Rejbrand Sep 24 '10 at 21:38
14  
6  
So, this has got to be the awesomest community ever. Can't wait till someone asks "Is Delphi Dead?" and the dam bursts on 'em. – Peter Turner Oct 6 '10 at 4:08
show 15 more comments

LiveCode (originally Revolution) hands down. Nothing comes close.

share|improve this answer
6  
Warning: you are inviting downvotes if you are duplicating an existing answer. Rather you should upvote that answer. – grokus Oct 6 '10 at 14:57
show 1 more comment

LiveCode/RunRev

Has served me for just about every possible eventuality for the last 10 years; it is sufficiently flexible that there are always a multiplicity of ways to get things done, so one doesn't spend donkey's ages scratching about for the 'exact' syntax.

share|improve this answer

Unix Command Language: sh/bash/zsh

The UNIX shell is most people's main access to the UNIX operating system. The Bourne shell (sh) and it's decenents (bash/zsh) have a strong and powerful syntactical language built in supplying various features usually found only in more sophisticated general-purpose programming languages, such as control-flow constructs, variables, comments, arrays, subroutines, and so on. With these sorts of features available, it is possible to write reasonably sophisticated applications as shell scripts. Often, writing a shell script is much quicker than writing the equivalent code in other programming languages. The many advantages include easy program or file selection, quick start, and interactive debugging. A shell script can be used to provide a sequencing and decision-making linkage around existing programs, and for moderately-sized scripts the absence of a compilation step is an advantage. Interpretive running makes it easy to write debugging code into a script and rerun it to detect and fix bugs. Non-expert users can use scripting to tailor the behavior of programs, and shell scripting provides some limited scope for multiprocessing.

share|improve this answer
1  
I absolutely hate bash scripts. Terrible syntax, confusing syntax, evolved and forked so much you don't know what works where, terribly verbose, case sensitive with little documentation, and space sensitive. I'm not saying its not useful, I'm just saying that its horrible and painful. – TheLQ Oct 6 '10 at 14:35
show 1 more comment

Make

(The language of Linux Makefiles)

It's the most widespread somewhat declarative language today. Coupled with standard Linux console utils, it is capable of integrating several components into one complex system, with just a moderate need to write a lot of accompanying cruft.

share|improve this answer

Ruby (1.9)

I'm just starting to learn it, but it is the most interesting language I have ever worked with. (In the past, I have used FORTRAN, SNOBOL4, PL/I, C, Lisp, Pascal, C++, Perl, PHP, Java, Delphi, JavaScript and C# in pretty much that order.)

share|improve this answer
5  
Why the version number? Is 1.9 so magnificently better than the previous versions? – Rene Saarsoo Sep 24 '10 at 12:32
2  
Not a big fan of Ruby. It just doesn't have the fun factor that other languages have for me. The fact that I don't really like Rails (the way I work it feels kind of clunky bouncing around between so many source files all the time) surely impacts my feelings about Ruby too. – Brian Knoblauch Sep 27 '10 at 17:54
show 8 more comments

PHP

It's a love/hate relationship. Overall PHP is loosly typed, quick and dirty language. I like it because it's quick to learn, easy to put something out, and if a decent framework or coding convention is used it can be easy enough to maintain. Plus PHP web servers are cheap.

PHP is also widly hated

share|improve this answer
1  
I'd also add the one thing that PHP has going for it, despite it's flaws, is it's ubiquity these days. There are a ton of libraries & frameworks available in the language, and a lot of jobs out there for it. If you work it web development, I think it's a must-have tool to have in your arsenal, even if it's not your best one – GSto Oct 6 '10 at 13:02
show 1 more comment

ActionScript (3)

I have started my programming experience with ActionScript 1 quite a while ago and followed the development of the language with much pleasure. In my opinion, ActionScript 3 combines many good things from different languages and forms a strict yet very flexible language.

While I use many other languages and each of them has some better point (this can be applied to every single programming language though), like Python with its great simplicity, I still have the most fun when working with ActionScript.

share|improve this answer
show 2 more comments

F#

I'm new to the language but it's already my favorite programming language. I like functional languages and have used a few before, like Erlang, Haskell and Standard ML. F# is a new language with many modern features. Interesting features are asynchronous workflows and reactive GUI programming together with WPF. Before, functional languages hasn't had great GUI frameworks and libraries but F# has the .NET Framework, and Silverlight is also supported.

share|improve this answer
show 1 more comment

PROLOG

  • Code as data, data as code.
  • Multi-use procedures (*).
  • Head/tail recursion.

No other language stretched my mind more.

(*) The same procedure - say, append/3 may be used in multiple ways: "append [1,2] and [3,4]", or "what list, appended with [3,4], gives, [1,2,3,4]", or "what ways are there to append two lists to give [1,2,3,4]?" or "does [1,2] appended to [3,4], give [1,2,3,4]?"

share|improve this answer
2  
It certainly made me work harder than any other language. I think Prolog's why I never had that "Aha!" moment that ESR promised I'd get from learning Lisp. I've had many minor epiphanies, like "object = struct + closures", but nothing earth-shattering like I had with Prolog. – Frank Shearar Sep 28 '10 at 6:17
show 2 more comments

Brainf*ck

Minimalistic and with a name that says it all (actually the name applies to most languages I know, sometimes your just stare at the code wondering why it doesn't work or why it does works).

As it's a Turing-complete language, it is (with enough memory) capable of computing any computable function or simulating any other computational model.

It's not a practical language, but for academic exercises it's great.

share|improve this answer
3  
Are you sure your not talking about C? It sounds awfully like it... – Joe D Oct 24 '10 at 12:52

Befunge

Useful? No. Easy to use? No. Fun and interesting? Hell yes.

share|improve this answer

Scheme

An alternative Lisp. My preferred implementation is Guile.

share|improve this answer

Forth

Because it is so malleable, it facilitates implementing domain specific languages.

Forth love if honk then

share|improve this answer
1  
+1, Factor seems nicer though. – missingfaktor Oct 17 '10 at 6:40

JavaScript

You can do some really fun things JavaScript, and the language itself it pretty brilliant. The whole prototype system, where you can alter how functions work at run time makes the possibilities endless.

share|improve this answer
4  
Pretty simple and powerful, yet I'm unhappy whenever I'm forced to use it. – Brian Knoblauch Sep 27 '10 at 17:58
1  
Really powerful and flexible, I enjoy programming with it. – ncardeli Oct 16 '10 at 17:43
show 1 more comment

IEC 61131-3

It's a language for programming PLCs. It combines 5 different languages (graphical programming and text based languages) with one data model. For every object or function you write you can choose the appropriate language individually.

It is perfect for programming complex real time controllers. The newest version is fully object orientated.

For me it is a pleasure to program in that language.

share|improve this answer
1  
-1: First, IEC 61131-3 is not a language, it's a spec for the capabilities of 5 languages. But the capability is like, "you will be able to do x, and maybe y, and still call yourself compliant." You have no hope of porting any given implementation from one to another. About the only useful thing the spec did was standardize the data types. Now if you'd said one particular implementation of the "standard", like Allen-Bradley's, etc., then OK, but the spec itself is terrible compared with main stream PC programming languages. – Scott Whitlock Nov 17 '10 at 3:37
1  
Scott, maybe I should have said CoDeSys - an implementation of the 61131-3 standard - which is quite common in Europe and runs on many different PLCs (not on Siemens, of course...). I think a comparison of a highly specialized language with a very common main stream PC language is unfair. The standard may be bad and far away from a common PC language, but it's much better than nothing. Show me any better alternative in the PLC world. – chrmue Nov 17 '10 at 11:54
show 1 more comment
1 2

Not the answer you're looking for? Browse other questions tagged or ask your own question.