GNUstep

Da Wikipedia, l'enciclopedia libera.
GNUstep
Logo
GNUstep-applicazioni con la classica interfaccia NeXTStep
GNUstep-applicazioni con la classica interfaccia NeXTStep
Sviluppatore Progetto GNU
Ultima versione 1.14.0 cioè 0.12.0 (15 aprile 2007)
Sistema operativo Unix-like
Microsoft Windows
Mac OS X
Linguaggio Objective C
Genere Integrated development environment
Licenza GPL e LGPL
(Licenza libera)
Sito web gnustep.org

GNUstep è un'implementazione delle librerie (chiamate "framework") OpenStep in Objective C di NeXT (attualmente Apple), inoltre offre strumenti di sviluppo non solo per sistemi operativi di tipo Unix ma anche per Microsoft Windows. GNUstep è parte del progetto GNU.

GNUstep offre un ambiente di sviluppo multi-piattaforma orientato agli oggetti compatibile con le specifiche OpenStep sviluppate da NeXT (ora comprata da Apple Computer). Al pari di Cocoa GNUstep ha anche un'interfaccia per Java come anche per Ruby e Scheme. Gli sviluppatori di GNUstep hanno ultimamente aggiunto alcune funzioni che Apple ha introdotto in Cocoa così da garantirne la compatibilità. Le origini delle API GNUstep sono le stesse radici di Cocoa: NeXT e OpenStep. GNUstep anticipa Cocoa.

Storia[modifica | modifica wikitesto]

La storia di GNUstep inizia quando Paul Kunz e altri allo SLAC vollero eseguire il porting di HippoDraw da NEXTSTEP verso una nuova piattaforma. Invece di riscrivere HippoDraw da zero riusando soltanto l'architettura dell'applicazione, decisero di riscrivere lo strato di oggetti NeXTSTEP su cui l'applicazione dipendeva. Questa fu la prima versione di libobjcX. Permise di portare HippoDraw verso sistemi Unix che usavano il sistema grafico X Window senza cambiare una singola riga di codice dei sorgenti della loro applicazione. Dopo che le specifiche OpenStep furono rilasciate pubbliche nel 1994 essi decisero di scrivere un nuovo objcX che aderisse alle nuove API. Questo software divenne poi noto come GNUstep.

Paradigmi[modifica | modifica wikitesto]

GNUstep ricalca fedelmente OpenStep e per questo eredita alcuni dei principi di esso ed è coadiuvato dall'uso del linguaggio Objective C.

  • paradigma Model-View-Controller
  • Bersaglio-Azione (Target-Action)
  • Drag and Drop
  • Delegazione
  • inoltro dei messaggi (mediante NSInvocation)

potenzialità delle Classi[modifica | modifica wikitesto]

Foundation Kit[modifica | modifica wikitesto]

  • stringhe
  • collezioni (vettori, insiemi, dizionari) ed enumeratori
  • gestione degli archivi (file)
  • archiviazione degli oggetti
  • manipolazione avanzata delle date
  • oggetti distribuiti e comunicazione fra processi
  • gestione degli URL
  • notifiche (notifications) e notifiche distribuite
  • facile multi-threading
  • orologi (timers)
  • blocchi (locks)
  • gestione delle eccezioni

Application Kit[modifica | modifica wikitesto]

  • elementi dell'interfaccia (viste a tabella, browser, matrici, viste a scorrimento)
  • grafica (WYSIWYG, grafica in stile PostScript, curve di bezier, gestione delle immagini con diverse rappresentazioni, contesti grafici)
  • gestione del colore (colori calibrati e di dispositivo, CMYK, RGB, HSB, a scala di grigi e rappresentazioni nominative, trasparenza con canale alfa)
  • sistema di gestione del testo: Rich Text Format (RTF), allegati di testo, gestore di layout, compositore, righelli, stile dei paragarafi, gestione dei caratteri, controllo ortografico
  • gestione dei documenti
  • gestione della stampa: operazioni di stampa, pannello di stampa e layout di pagina
  • gestore dell'aiuto
  • servizi di copia e incolla (o clip board, appunti)
  • controllo ortografico
  • collegamenti per le applicazioni all'ambiente di lavoro
  • operazioni di drag-and-drop
  • condivisione di servizi fra applicazioni (services)

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Software libero Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero