Slash Boxes

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 16 submissions in the queue.
posted by NCommander on Wednesday April 02 2014, @07:11PM   Printer-friendly
from the I-remember-Applesoft-BASIC dept.

An article was recently published that looks at evaluating First Programming Languages (FPL) the language to use for an introductory course of programming.

An existing issue is that formally assessing a programming language isn't really defined, with a lot of evidence being anecdotal. The proposed evaluation framework looks at technical and environmental feature sets. "The technical feature set covers the language theoretical aspects, whereas, the environmental feature set helps evaluating the external factors." These feature sets are covered in table 2 of the article (link to PDF) and consist of the following:

Technical Features

  • High Level
  • Orthogonality
  • Strongly Typed
  • Enforceability of Good Habits
  • Security
  • Feature Uniformity
  • Less Effort for writing simple programs

Environmental Features

  • Demand in Industry
  • Contemporary Features
  • Easy Transition
  • Readable Syntax
  • Quality Coding
  • User Friendly Integrated Development Environment

The article explains each of these points in details, and gives each of the languages being evaluated a rating based on this explanation, followed by a detailed explanation of how the scores of each rating can be compared this includes allowing an evaluator to weigh certain criteria they deem important against the others. As this is for choosing a language to teach someone to program with, different places will have different reasons and goals, so would want to weight things differently.

As the default weight settings do not conform to the original popularity index of the languages, so there should be a different weighting criterion. However, it is very hard to come up with a generic and correct weighting criterion. Therefore, the scoring function should be customizable and the user should be able to tune the weight of each feature based on her preferences. As an example, consider the fact that Ada holds 3rd position in overall scoring, but is not being considered among highly used FPLs as of now.

NCommander adds: lhsi was kind enough to include a summary of the results. I looked through the paper and it seems like a fairly interesting read.

Using the default weighting, the top five First Programming Languages evaluated are as follows:

  1. Python
  2. Java
  3. Pascal
  4. Ada
  5. Modula-2


  1. Java
  2. Ada
  3. Python
  4. C#
  5. C++


  1. Java
  2. Python
  3. Ada
  4. C#
  5. Modula-2
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 4, Interesting) by dx3bydt3 on Wednesday April 02 2014, @07:27PM

    by dx3bydt3 (82) on Wednesday April 02 2014, @07:27PM (#25096)

    The first language I used was BASIC on a vic-20. The first I had a course on was Fortran. I wonder if it had been C++ instead, would pointers and object oriented programming make more sense to me now, or would I have just got a poorer grade in the course.

    Starting Score:    1  point
    Moderation   +2  
       Interesting=2, Total=2
    Extra 'Interesting' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   4  
  • (Score: 2) by Blackmoore on Wednesday April 02 2014, @07:42PM

    by Blackmoore (57) on Wednesday April 02 2014, @07:42PM (#25109) Journal

    My first was BASIC, and when i was at college they pushed PASCAL and Modula 2. they didnt even OFFER a class on C. (assembly was in the engineering major)

    I'm sorry but the damn paper is so tilted tword academic that it hasnt even noticed what was being used in the workplace. (which then would target COBOL, Perl, PHP and a lot of others depending on the programming flavor of the year)

  • (Score: 2, Informative) by qwerty on Wednesday April 02 2014, @08:26PM

    by qwerty (861) on Wednesday April 02 2014, @08:26PM (#25142) Homepage

    My first language was flowcharts written in pencil on sheets of paper; then BASIC on sheets of paper. That was before the VIC-20 existed, but the VIC-20 was the first computer on which I eventually got to run the programs on my sheets of paper. This was followed by VIC-20 assembler via pokes using BASIC. This sequence helped me understand what was "inside" computers, before moving to abstracted languages. When I started CS-undergrad, it was Pascal and C on a VAX-11/780, at which point the insides of the computer started to became an opaque cloud when programming.

    When it came to time to show my son some programming at about 8 yrs old, I introduced him to VBScript; which is close-enough to BASIC to make me think that it would emulate my learning sequence. But of course, it didn't exactly. Today's PCs are very comfortable to use without ever needing to even imagine what's under the cover.

    If the goal is teaching computer architecture, then maybe assembler is the best first language. If the goal is teaching algorithms, then a teaching language like Pascal would be fine, or even Knuth's MMIX machine language. If the goal is teaching how to be a software engineer, then C++ is expected. If the goal is teaching scientists how to code, then C++ and maybe R and maybe even FORTRAN would be a good combination.

  • (Score: 1) by jackb_guppy on Wednesday April 02 2014, @11:42PM

    by jackb_guppy (3560) on Wednesday April 02 2014, @11:42PM (#25249)

    Basic on HP/200F
    Basic under CPM
    Z-80 Assembler
    PDP-11 Assembler - What C got it ideas from.

    OOP is a state of mind, any language will do.
    Pointers learn Assembler!