views:

234

answers:

7

Hello,

I was thinking about all of the different programming languages and wondering about which programming language is best suited for certain jobs. I am in web development and we were using coldfusion but now have switched over to .net. So for web I would think a small list of the main languages would be like php, asp.net, coldfusion, perl. I would also think that gaming is usually C++. More computational science might require C. My question is what language would you associate with what job and more specifically, does anyone still use C and what for?

A: 

I would associate PHP/Javascript with the web developer (my) role. Throw in a healthy dose of CSS too!

I've never written any C code in any professional capacity, so I shan't comment further.

Wayne Khan
+1  A: 

In terms of web development, you could also add Ruby and Python as two increasingly popular languages.

Andy Hume
A: 

Wasabi - Bug Tracking/Software Project Management

(someone had to say it)

benlumley
+1  A: 

To the question about C:

I use C with anything remotely low level, like directly interacting with binary formats. I use a scripting language to clue those smaller programs together.

To the broader question:

I think the most important point is to factor your skill with the language into the suitability of the language. I happen to use PHP as my general purpose glue/scripting language (and I don't mean web stuff). Not because it's the best choice out there, but because my familiarity with it at the moment makes it the most appropriate language for me to use.

I emphasize at the moment because the second most important part is to constantly be refining your tool set by learning new languages. Just like polyglots are more expressive in one spoken language because they know others, a programmer who knows many languages knows many approaches to a problem.

Ryan Graham
A: 

The traditional application domain for C has been system software and other programs where performance is so critical that it's worth the tradeoff in higher development and maintenance costs. If you were writing a production-quality virtual machine, you might consider C.

Some still argue that it has a place in environments constrained in other ways, such as limited-resource embedded systems.

If by "computational science" you mean computer science / computer engineering education, you may still find C in environments which want to expose students to "the bare metal". If you mean computing in support of scientific research, you might be surprised at how much FORTRAN code is around.

You might also be amazed at the amount of cycles still spent on COBOL.

I tend to think of the above as "taxicab" languages. They aren't glamorous by any stretch of the imagination, but are still found all over the place due to their workaday utility.

As for other languages, one often finds Java in the big-server corporate/enterprise environment, as well as in many open-source projects. The JVM-as-platform is host for a rapidly-growing variety of alternate languages, many of which leverage the wide range of available Java libraries to avoid reinventing the wheel. These alternative languages may be open-source projects, academic efforts, or individual efforts; examples include Scala, Fan, JRuby, Jython, Clojure, Groovy, and hundreds more.

All of Python, Ruby, Perl, Lisp, Squeak, etc. have active, enthusiastic user communities with applications all over the landscape, especially including web development.

Functional languages, such as Haskell, OCaml, Scala, Erlang, F#, etc. were primarily academic, research, or niche efforts in the past, but are seeing much more interest in a wide range of application areas due to the increasing interest in high reliability, high code re-use, and multi-core/parallel programming.

The list goes ever on...

joel.neely
A: 

Haskell, OCaml, and Python have all made big inroads in scientific computing.

Games, robots, and jet engines are written in C++.

Crashworks
A: 

"...Please don't assume Lisp is only useful for Animation and Graphics, AI, Bioinformatics, B2B and E-Commerce, Data Mining, EDA/Semiconductor applications, Expert Systems, Finance, Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation, Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom, and Web Authoring just because these are the only things they happened to list." -- Kent Pitman

Svante