Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Too many languages

Name: Anonymous 2014-03-09 9:44

There are thousands of programming languages.

The purpose of a programming language is to express programs. The
purpose of learning programming languages is to build up a toolbox for
reasoning about and synthesizing programs in any one given language.

There are diminishing returns on learning programming languages, and
time is scarce.

Therefore one must select between programming languages to study.

A good selection of languages has both
+ breadth
  + satisfies a number of real world economic needs.
+ focus
  + exploits similarity between languages and incremental learning.
  + some unifying basis

A good member of a particular selection meets a number of the
following criteria:
+ Satisfies one particular school of thought on programming languages.
+ Significant difference from predecessors
+ Significant influence on successors
+ Economically significant
+ Advanced i.e. no direct, established and proven heir.
+ A good language.
  + Easy to express programs with
  + Easy to read programs expressed with
  + Easy to reason about programms expressed with

No one of these criteria are sufficient or even necessary conditions.

A bad member satisfies the opposite criteria.

Name: Anonymous 2014-03-17 2:47

>>105
Do you have any idea how GCs work? How different GCs work?
GCs have a root of reachable objects and follow pointers, saving only what's reachable. A hardware GC collection could happen on a cache miss or page miss.
Parallel, refcounting, generational, incremental?
Parallel (one per core), generational (related to cache hierarchy and swap system), and incremental (works while you do other stuff).
Today's GCs don't get along with swapping or the cache hierarchy. Software GCs actually swap garbage out to disk but with hardware GC, some garbage may never leave L1 cache. It never even has to be written to RAM. Usually, not even stack allocation has that guarantee. That's the kind of speed-up hardware GC can give you.
The first is strictly hardening against buggy code.
Both are strictly hardening against buggy code, but the truth is code is buggy. MS-DOS and "real mode" Windows 1.x-3.x didn't have any protection or paging at all.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List