Computer Science Canada

Language comparison chart: suggestions?

Author:  wtd [ Sat Dec 13, 2008 4:31 am ]
Post subject:  Language comparison chart: suggestions?

Which aspects of various languages would you like to see compared, particularly in relation to students looking for a language to learn.

Please, try to keep it simple with "has this or not" features.

Author:  btiffin [ Sat Dec 13, 2008 9:47 am ]
Post subject:  Re: Language comparison chart: suggestions?


  • wtd's world famous Difficulty Rating (not famous yet perhaps, but go big)
  • Compiled vs interactive
  • Native vs VM
  • Main Category; Functional, Logic, Array,OO etc...
  • Garbage Collector?
  • Declarative?
  • Mainly Console vs Graphical
  • Mainly IDE?
  • Age, how often things change, version incompatibilities
  • Reflective?
  • "Fast" runtime?
  • Unicode?
  • Main reason for being; Educational, System, General, Special Purpose
  • Bignums?
  • Higher types Y/N; Associated Arrays?, Structure IO? etc

  • Does Dan like it/approve its use at school, at home, at work?
  • Does Tony ...?
  • Does md ...?
  • Most importantly Does wtd ...?

Cheers
P.S. As the old guy, I look forward to reading the first and last ... it'll carry weight imho Smile

Author:  Insectoid [ Sat Dec 13, 2008 1:33 pm ]
Post subject:  RE:Language comparison chart: suggestions?

Applications of the language (what said language is primarily used for)

Author:  gianni [ Sat Dec 13, 2008 1:40 pm ]
Post subject:  Re: RE:Language comparison chart: suggestions?

insectoid @ Sat Dec 13, 2008 1:33 pm wrote:
Applications of the language (what said language is primarily used for)

That could be very broad, and might be more fitting for a detailed overview of a language and not a quick comparison chart. Although some languages do have a specific purpose, many have a multitude of applications.

Author:  Vermette [ Sat Dec 13, 2008 2:12 pm ]
Post subject:  RE:Language comparison chart: suggestions?

To add to points already mentioned:

  • What is the type system (not a yes/no but good to consider)
  • Quality free compiler/interpreter
  • Active community
  • Quality intro literature

Author:  md [ Sat Dec 13, 2008 4:23 pm ]
Post subject:  RE:Language comparison chart: suggestions?

age
siblings/parents

Author:  wtd [ Sat Dec 13, 2008 4:42 pm ]
Post subject:  Re: Language comparison chart: suggestions?

A first draft.

Reasons for languages included:


  • Turing - it's popularity here. For better or worse, it's what aspiring students here are going to have as their benchmark.
  • Ruby - one of my favorites, and it has a fairly devoted community here.
  • Python - quite popular in education and industry.
  • C - students are likely to encounter this either in class, or as a friend's suggestion.
  • C++ - much the same reasons as C.
  • Java - see C and C++, except they're even more likely to see it in class.
  • C# - less likely to see it in class, more likely to see massive coercive Microsoft marketing.
  • O'Caml - one of my favorites, as it was what made functional programming understandable with its nice support of both functional and imperative approaches and good tools.
  • Pascal - an old educational standby.

Author:  Tony [ Sat Dec 13, 2008 4:48 pm ]
Post subject:  RE:Language comparison chart: suggestions?

shouldn't Ruby's "compiled" also be "sort of", considering the availability of jRuby (and to a much lesser degree, IronRuby)?

Author:  wtd [ Sat Dec 13, 2008 5:12 pm ]
Post subject:  RE:Language comparison chart: suggestions?

Possibly. I am, however, listing information as it pertains to the "mainstream" implementation of each. This is purely a pragmatic consideration, as the comparison is skewed toward those learning the language. Experimentation with alternate implementations tends to follow.

This is also one reason I have not listed Scheme. The various implementations all have varying characteristics, and there is nothing that can reasonably be considered the default.

Author:  btiffin [ Sat Dec 13, 2008 7:00 pm ]
Post subject:  RE:Language comparison chart: suggestions?

wtd; Old guy jokey smurf
What? No BOLs? Where are the BOLs? SNOBOL, COBOL, REBOL. Come on, like the Tetris Bear said ... "What ever happened to the Unicon ... and the BOL?"

I'd like to say "Good list so far", but Konqueror shows the PDF as a hex dump. So I'll pretend;
Good list so far. Wink

Cheers

Author:  wtd [ Sat Dec 13, 2008 9:18 pm ]
Post subject:  RE:Language comparison chart: suggestions?

Save it and open it with whatever KDE uses for opening PDFs?

Author:  Insectoid [ Sat Dec 13, 2008 11:06 pm ]
Post subject:  RE:Language comparison chart: suggestions?

Technically, couldn't any language have a compiler written for it to make a permanent binary?

Author:  Tony [ Sat Dec 13, 2008 11:23 pm ]
Post subject:  RE:Language comparison chart: suggestions?

Not if the language allows for evaluation of arbitrary code at runtime (eval statement). A "binary" would have to come with an interpreter build in.

Author:  DanielG [ Sat Dec 13, 2008 11:28 pm ]
Post subject:  RE:Language comparison chart: suggestions?

I think relative running time of programs should also be included.

Author:  gianni [ Sat Dec 13, 2008 11:53 pm ]
Post subject:  Re: RE:Language comparison chart: suggestions?

DanielG @ Sat Dec 13, 2008 11:28 pm wrote:
I think relative running time of programs should also be included.

What do you mean?

Author:  Zeroth [ Sun Dec 14, 2008 12:00 am ]
Post subject:  Re: Language comparison chart: suggestions?

Well, actually, "relative running times" of programs is an extremely loaded, and flameworthy meaning. Some languages do number crunching really, really fast(Fortran and Forth are the absolute kings at this). Some languages also give speed performances in other areas. Really, if you want to see this, just check out http://shootout.alioth.debian.org/ It has the source code, full information available. Oddly enough, python is faster than straight C in one thing: regexes.

Some more suggestions of stuff to look at:
-humour(Does the documentation/community have a good sense of humour?)
-Approach to backwards compatibility

Author:  Euphoracle [ Sun Dec 14, 2008 12:01 am ]
Post subject:  Re: RE:Language comparison chart: suggestions?

gianni @ Sat Dec 13, 2008 11:53 pm wrote:
DanielG @ Sat Dec 13, 2008 11:28 pm wrote:
I think relative running time of programs should also be included.

What do you mean?


I think he means "Python is slow" and variants thereof.

Author:  gianni [ Sun Dec 14, 2008 12:18 am ]
Post subject:  Re: RE:Language comparison chart: suggestions?

Euphoracle @ Sun Dec 14, 2008 12:01 am wrote:
gianni @ Sat Dec 13, 2008 11:53 pm wrote:
DanielG @ Sat Dec 13, 2008 11:28 pm wrote:
I think relative running time of programs should also be included.

What do you mean?


I think he means "Python is slow" and variants thereof.

I think it's to be expected that interpreted languages will be slower than compiled. A lot has to do with efficient code as well, which is usually where the problem lies - for both interpreted and compiled languages.

Author:  btiffin [ Sun Dec 14, 2008 10:46 am ]
Post subject:  Re: RE:Language comparison chart: suggestions?

wtd @ Sat Dec 13, 2008 9:18 pm wrote:
Save it and open it with whatever KDE uses for opening PDFs?

Konqueror wants to save download.php on a right-click and click "outsmarts" the system and as the proper add-on isn't in place for PDF 1.4 when it's named .php, I get the hex dump. No worries wtd, I'll use FF to snag it.

Cheers
Edit; typos

Author:  michaelp [ Sun Dec 14, 2008 11:15 am ]
Post subject:  RE:Language comparison chart: suggestions?

D should be included in the list. Razz

Author:  OneOffDriveByPoster [ Sun Dec 14, 2008 5:27 pm ]
Post subject:  Re: Language comparison chart: suggestions?

Separate Compilation -- what is required to qualify? why not C or C++?
Type Annotations Required -- new C++ draft standard has type inferencing using "auto"
List/Array literal Syntax -- C99 has compound literals
Lambdas -- new C++ draft standard has lambdas

A recent C++ draft standard: N2798

Author:  wtd [ Sun Dec 14, 2008 5:57 pm ]
Post subject:  Re: Language comparison chart: suggestions?

OneOffDriveByPoster @ Mon Dec 15, 2008 6:27 am wrote:
Separate Compilation -- what is required to qualify? why not C or C++?


The context I am constructing this in is suitability as a (relatively) introductory programming language.

In that context I feel that separate compilation in C and C++ is fraught with enough gotchas that it cannot be touted.

Quote:
Type Annotations Required -- new C++ draft standard has type inferencing using "auto"


Does any mainstream compiler yet support this? If I tell someone to download the latest easily obtainable port of GCC for Windows, for instance, will it allow this?

Quote:
List/Array literal Syntax -- C99 has compound literals


Same as the above, plus I would ask if this can be used anywhere one would expect an array or struct, or is it just initialization syntax for a variable?

Quote:
Lambdas -- new C++ draft standard has lambdas


Mainstream compiler support?


: