abstraction   1817

« earlier    

Designing and evaluating programming languages: Dagstuhl trip report
Take, for example, the idea of variable names found in most modern languages. Languages didn’t always have user-defined names; we used to write assembly language with a fixed set of registers with predefined names or no names at all. Why are names useful? One theory is that they are conceptual shorthand for the semantics of a program’s behavior, accelerating our ability to read and reason about it’s behavior. For example, the name kitten_count clearly refers to some quantity of kittens, and implies that we are counting them. In contrast, the name x could refer to anything. Having names that evoke concepts help us reason about the role of the variable in the larger purpose of an algorithm, accelerating our inference of that purpose. On the other hand, bad names might serve to build a wrong model of the role of a variable and behavior of an algorithm, slowing program comprehension, debugging, or modification of a program.


One idea that emerged is that learnability appears to concern the complexity of abstractions embedded in a language. For example, consider indefinite loops, which require someone to reason about potentially infinite executions of a block of code. What about this possibility of the infinite is hard and why is it hard? We need methods to discover these hard concepts in languages, so that we can precisely define what is irreducibly difficult about them.

Abstractions also interact with people’s prior knowledge, making the mental modeling of that complexity more or less difficult. For example, when one sees the symbol = in mathematics, it means one thing, but when one sees it in JavaScript, it means another. Are these conflicts purely syntactic, or are they also semantic?
andy-j-ko  programming-language  programming-environments  abstraction  metaphor 
15 days ago by jbrennan
The Road to Abstraction – tecosystems
While it’s unusual to stop to think about abstraction explicitly as a driving force, neither is it a surprise when pointed out. It’s taken for granted, not completely unknown. What can be interesting, however, is the pace of these cycles of abstraction and what they tell us about the future of the industry for buyers and sellers.
talks  abstraction  redmonk 
22 days ago by ntschutta

« earlier    

related tags

1990s  1994  20014  2007  2011  2014  2015  2017  2018  5*  :/  abstratction_wrong  acceleration  acm  action  adapter  adversarial  ai  ai_design  alinear  andy-j-ko  animation  anniversary  anonymity  anonymization  antoninegri  api  architecture  art  article  artificial-intelligence  avatar  babel  bestpractice  bestpractices  bigdata  blockchain  blogs  branch  bretvictor  broadcast  build  by  capitalism  career  cathyoneil  change  chaos  civilrights  classification  cloud  code  codex  coding  collage  communication  community  complexity  composition-decomposition  computation  computer-science  computer-vision  computing  concurrency  conference  connectivity  containers  contemporary_art  control  controlsociety  conversation  conway  cooperunion  counterexample  cpu  cpu_architecture  critique  csstricks  culturalturn  culture  cyberfeminism  danabramov  data  dataviz  deep-learning  design  designpatterns  dev  development  difference  digital  discipline  distribution  docker  document  documentation  donnaharaway  doreashton  dougashord  draw  drawing  dry  duplication  dynamic  economics  education  elixir  emancipatory  embed  embodiment  emergence  emulation  endurance  engineering  english  error  essay  evolution  exemplary  explanans  explanation  extend  extension  extensive  facebook  features  feedbackloops  flow  folklore  form  fourier  frameworks  france  frequency  fridayfrontend  functor  game_of_life  gamedesign  games  gaming  gender  generalization  gillesdeleuze  git  glass  global  go  golang  gordonmattaclark  gui  hash  haskell-template-haskell  haskell  have_read  helenhester  history  hmm  horn  how-to-solve-it  howto  hypertext  idris  illustration  imagination  immigration  important  indexdb  indirection  information  intangibleculturalheritage  integration  intensive  interaction  interconnected  interconnectedness  interface  interfaces  inversion-of-control  jackwitten  janetsobel  jargon  javascript  johndewey  jquery  js  jsx  jula-evans  khan  labor  langsec  language  languages  learn  learning  lists  local  localstorage  longnow  loop  loopiness  lower-bounds  lowlevel  machine-learning  machine  machine_learning  macros  mapping  maps  marcelduchamp  market  material  materiality  mckenziewark  media  mediation  meltdown  memory  metaphor  michaelhardt  mind  model-class  model  models  monad  monoid  monopoly  movement  multi-tenancy  multiples  museum  music  mvc  naacp  name  naming  network  networking  networks  neural_networks  news  nibble  nicky_case  nickycase  online  ood  oop  opinio  optics  optimization  org:mat  pain  painting  papers  paulford  peggyguggenheim  perception  perturbation  photography  pht101  pl  politics  popculture  post  postmodern  postwar  precarity  predictions  preprint  press  probability  problemsolving  process  programming-environments  programming-language  programming  provocation  puremvc  purescript  purpose  python  quote  race  rahimi.ali  react  readability  realtime  redmonk  redux  refactor  refactoring  reference  relevance  remote  representation  response  retrieval  robertmotherwell  robust  roleplay  roni  ruby  sadieplant  sandimetz  science  scientific-method  sdn  secondlife  security  separation-of-concerns  sha  simplevseasy  simplicity  simulation  socialism  socialtrust  software-architecture  software-design  software  space  spectre  speedometer  spinoza  state-of-art  statistics  stewartbrand  storage  structure  suffer  systems  systemsthinking  talks  tasrillsieyes  tech  technology  technomaterial  telecommunications  thinking  time  timing  tomashijackson  tool  transformation  transformative.  transmission  tutorial  twitter  typescript  ui  unit  unix  unknown  vector  video  videos  virtual  virtualization  visualization  voting  walidraad  warelogging  waves  webpack  websql  wisdom  wrapper  writing  x86  xerox  yang02  zedshaw 

Copy this bookmark: