19 kwietnia 2009

Newsqueak - programuj z przyjemnością swoje kanały danych działające w procesach

Dziś obejrzałem kolejny odcinek cotygodniowego zawodowego serialu na video.google.pl z serii Advanced Topics in Programming Languages p.t.
Advanced Topics in Programming Languages: Concurrency/message passing Newsqueak. Dotyczył on języka Newsqueak, który podobnie jak Haskell oraz Erlang stanowią dla mnie wielką zagadkę poznawczą :)

Oto omawiany filmik, gdyby ktoś się skusił:



Ogólnie wiadomo, że założenia konstrukcyjne mogą szokować. Tak też jest w przypadku języka Newsqueak, który dość jasno określa zasady:



  • odrzuć koncepcje programowania wielowątkowego bazującej na Andrew Birrell's ''An Introduction to Programming with Threads.''

  • odrzuć typowe podejście w programowaniu z maszyną stanów

  • zastanów się nad swoimi interfejsami i potraktuj je jako struktura danych zawierająca kanały komunikacyjne

  • pozwól swoim interfejsom działać jako procesy

  • spróbuj utworzyć kanały komunikacyjne (bazując na interfejsach), które w dedykowanych (odrębnych) procesach enkapsulują kanały informacyjne (transmisje Twoich danych)

  • stwórz oprogramowanie bez myślenia, że popełniasz błędy - nie tracąc czasu na debugowanie

  • nie zamartwiaj się zbytnio obciążeniem stworzonego systemu - to kwestia balancingu działających procesów




Materiały dodatkowe:

Montage: Breaking Windows into Small Pieces

Video example

Rob Pike wikipedia page Rob Pike

A Concurrent Window System

The Good, the Bad, and the Ugly: The Unix Legacy - Slides of his presentation at the commemoration of 1000000000 seconds of the Unix clock.

Newsqueak: A Language for Communicating with Mice article 2

Resources about threaded programming in the Bell Labs CSP style

WikiProject Plan 9

Genuinely Functional User Interfaces - Theories of Programming Languages, Cambridge University

Limbo programming language

Squinting at Power Series

Acme is a text editor and graphical shell from the Plan 9 from Bell Labs operating system, designed and implemented by Rob Pike.

List of Plan 9 applications plan9 papers

Rob Pike on newsqueak

Declarative event-oriented programming

The lecture notes about the Plan 9 window system

Inferno Programming With Limbo Inferno Programming With Limbo rapidfx

Brak komentarzy: