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.

Can you describe in few sentences or bullets program language you know best? It should be concise, not too long, lets say for one or two slides in presentation, but that contains important classifications of that language. Some details about usage and spread, supported platforms and available libraries. Some strengths and weaknesses. Most important concepts that language offers. Maybe some future expectations or plans in development. You can give score 1-10 if it helps you to grade things like speed or portability. I'm trying to find best descriptions of popular programming languages.

share|improve this question
1  
I don't think you'll get what you want; this crucially depends on how and to what purpose the language is used. – mbq Sep 22 '10 at 15:12

closed as not constructive by gnat, Robert Harvey, MichaelT, BЈовић, Kilian Foth May 29 at 6:31

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.

5 Answers

HelloWorld

An unreleased language designed by Jon Skeet. Here is its specification, quoted verbatim:

Very simple:

h

This is from my unreleased "HelloWorld" language. It's an interpreted language, so there's no real compiled form. The language is very simple though - the above is the only valid program, with the well-defined behaviour of printing "Hello World".

Arguably I could have designed it to only accept an empty file as input, but that would have been silly.

Some details about usage and spread, supported platforms and available libraries.

Because Jon's reference implementation has not been released, the language is probably not used heavily in industry. It is conceivable that third parties may have written their own implementations. However, because of ambiguities in the specification (does it print Hello World or "Hello World"?), one can only hope that this has not happened until further clarification has been provided.

The language itself does not appear to have any explicit dependencies on any platform, thereby making it a viable candidate for cross-platform development.

There are no known libraries for the language, as the language does not support such functionality.

Some strengths and weaknesses.

The language features an incredibly terse syntax. Jon admitted that it could be been made shorter, accepting an empty file as input. However, that would have been silly.

Unfortunately, the language does not adhere to proper English.

Most important concepts that language offers.

The language is arguably the definitive solution to printing Hello World* to output. Until now, the act of printing Hello World has been replicated time and time again in countless languages and platforms, none of which have reached this language's level of expressiveness.

Maybe some future expectations or plans in development.

There is only speculation at this point with regards to the future of the language. It is conceivable that internationalization may be an important addition.

You can give score 1-10 if it helps you to grade things like speed or portability.

Unfortunately, performance benchmarks have not been released. However, I have implemented an interpreter in Java and can speak to its performance (requires the Guava libraries):

public class Interpreter {

    public static void main(String... args) throws Exception {
        String fileContent = Files.toString(new File(args[0]), Charsets.US_ASCII);

        if (!fileContent.equals("h")) {
            throw new IllegalArgumentException("Malformed source file");
        }

        System.out.println("Hello World");
    }

}

A rudimentary benchmark completed in 1.057634 milliseconds. Performance gains may be obtained by re-writing it from scratch in C or assembly. However, it is probably I/O-bound rather than CPU-bound so minimal improvement is to be expected.

* Or "Hello World", depending on the interpretation of the specification. See Some details about usage and spread...

share|improve this answer

C++ — multiparadigm language that conveys generic and object-oriented programming to domain of low-level computation. C++ has all benefits and shortcomings that a low-level language (such as C) has:

  • fast execution
  • the effect of certain code is predictable and not obscure
  • its code is unsafe by default
  • its memory model is low-level (changing the order of class fields makes difference)

...while providing high-level features:

  • object-oriented programming (though not the best, it's object model is powerful)
  • templates (compile-time generation of functions and types, based on other types, with negligible overhead)—while having all benefits of being a statically-typed language
  • multiparadigm-ness (you can even write functional code with C++!)
share|improve this answer

Objective-C: The result of a drunken late-night tryst between C and Smalltalk.

share|improve this answer
1  
Objective-C's a nice kid, even being illegitimate. – Jon Purdy Oct 1 '10 at 22:27
awww, Obj-C is just misunderstood. :( – Stephen Furlani Dec 10 '10 at 18:47

PHP

Originally taken to stand for Personal Home Page, now a recursive acronym: PHP: Hypertext Preprocessor. Used mainly in web development, though it can be used in desktop programming.

Very widely available. Almost any web server will support PHP, on Linux or Windows.

Many well-known web applications, such as blogs and CMSs, including Wordpress, Joomla, and Drupal, are built in PHP.

Weaknesses: It's a hostage to its history. The language was not well planned in its initial stages, and the syntax is inconsistent. Function names and argument order are all over the place. However, the documentation is excellent with many real world examples of code in use.

It's slow, compared to compiled languages. Fast enough for most purposes, but maybe not for web applications with very high server load. HipHop, which converts PHP into C, is available. (HipHop exists only because PHP programmers are easier to find than C programmers for web applications.)

share|improve this answer

The wikipedia page for each language (Java) would be a good place to start

share|improve this answer
I was looking Wikipedia for many languages, but I can not decide what is most important to mention for some language and still keep short. – watbywbarif Sep 22 '10 at 14:56
@watbywbarif: Unfortunately, not everything can be condensed into such a small space/description without losing significant precision. I suspect that the descriptions you'll find will be woefully incomplete. Short descriptions of C#/Java could be so close as to be indiscernible. – Steve Evers Sep 22 '10 at 17:20

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