GNUstep - GNUstep
Utvecklare | GNUstep -utvecklare |
---|---|
Stabil frisättning | göra 2.9.0, bas 1.28.0, gui 0.29, back 0.29 / 6 maj 2021
|
Förhandsversion | endast i SVN -programförvaret
|
Skrivet i | Mål-C |
Operativ system | Plattformsoberoende |
Typ | Widgetverktygssats |
Licens |
GNU General Public License för applikationerna GNU Lesser General Public License för biblioteken. |
Hemsida | www |
GNUstep är en kostnadsfri mjukvaruimplementering av Cocoa (tidigare OpenStep ) Objective-C- ramverk , widgetverktygssats och applikationsutvecklingsverktyg för Unix-liknande operativsystem och Microsoft Windows . Det är en del av GNU -projektet .
GNUstep har en plattformsoberoende, objektorienterad IDE . Förutom standardobjekt -C- gränssnittet har GNUstep också bindningar för Java , Ruby , GNU Guile och Scheme . GNUstep -utvecklarna spårar några tillägg till Apples kakao för att förbli kompatibla. Rötterna i GNUstep -applikationsgränssnittet är desamma som rötterna i Cocoa: NeXTSTEP och OpenStep . GNUstep föregår alltså Kakao, som uppstod när Apple förvärvade NeXT : s teknik och införlivade den med utvecklingen av den ursprungliga Mac OS X , medan GNUstep inledningsvis var ett försök från GNU- utvecklare att replikera de tekniskt ambitiösa NeXTSTEP: s programmerarvänliga funktioner.
Historia
GNUstep började när Paul Kunz och andra vid Stanford Linear Accelerator Center ville överföra HippoDraw från NeXTSTEP till en annan plattform. I stället för att skriva HippoDraw från grunden och återanvända bara ansökan design, de bestämde sig för att skriva det Nextstep objektlagret då ansökan berodde. Detta var den första versionen av libobjcX . Det gjorde det möjligt för dem att överföra HippoDraw till Unix -system som kör X Window System utan att ändra en enda rad i deras applikationskälla. Efter att OpenStep -specifikationen släpptes för allmänheten 1994 bestämde de sig för att skriva en ny objcX som skulle följa de nya API: erna. Programvaran skulle bli känd som "GNUstep".
Programvaruarkitektur
Tolkning
GNUstep innehåller en uppsättning grafiska kontrollelement skrivna på Objective-C programmeringsspråk.
Den grafiska användargränssnittet (GUI) av GNUMail består av grafik kontrollelement. GNUMail måste interagera med fönstersystemet , t.ex. X11 eller Wayland , och dess grafiska användargränssnitt måste återges . GNUsteps backend ger en liten uppsättning funktioner som användargränssnittsbiblioteket använder för att ansluta till det faktiska fönstersystemet . Den har också en återgivningsmotor som emulerar vanliga Postscript -funktioner. Paketet gnustep-back ger följande backends:
- cairo - standardbackend med hjälp av grafikbiblioteket i Kairo 2D.
- winlib - standardbackend på Microsoft Windows -system. Kairo och Windows API -varianter.
- art-gammal (utfasad) backend på unixliknande system. Använder det vektorbaserade PostScriptliknande 2d-grafikbiblioteket Libart .
- xlib - gammal (utfasad) X11 -backend.
Paradigm
GNUstep ärver vissa designprinciper som föreslås i OPENSTEP (GNUstep föregår kakao, men kakao är baserat på OPENSTEP) samt Objective-C- språket.
- Modell -view -controller paradigm
- Mål -handling
- Dra och släpp
- Delegation
- Vidarebefordran av meddelanden (via NSInvocation)
Andra gränssnitt
Förutom Objective-C-gränssnittet implementerar några små projekt under GNUstep-paraplyet andra API: er från Apple:
- Boron -biblioteket syftar till att implementera Carbon API . Det är mycket ofullständigt.
- CoreBase -biblioteket är utformat för att vara kompatibelt med Core Foundation . Det är inte tillräckligt komplett för att Base (Foundation Kit) -komponenten helt enkelt ska vara ett omslag runt den.
- QuartzCore -biblioteket implementerar Core Animation API: er. Opal -biblioteket implementerar Quartz 2D .
Från och med februari 2020 finns det inga projekt som bygger programmeringsspråket Swift mot GNUstep Objective-C-miljön.
Ansökningar
Här är några exempel på applikationer skrivna för eller överförda till GNUstep.
Skrivet från grunden
- Adresser, en adress/ kontakthanterare
- Étoilé, en skrivbordsmiljö
- GNUMail , en e-postklient
- GNUstep Database Library 2, en Enterprise Objects Framework -klon
- GNUstepWeb , en applikationsserver som är kompatibel med WebObjects 4.x
- Gorm , en gränssnittsbyggare
- GWorkspace, en arbetsyta och filhanterare
- Grr, en RSS -feedläsare
- Oolite , en klon av Elite , ett rymdsimuleringsspel med handelskomponenter
- PRIS, bildbehandling
- ProjectCenter, Project Builder eller motsvarande Xcode .
- TalkSoup, en IRC -klient
- Terminal
- Zipper, en fil archiver verktyg
Portad från NeXTSTEP, OPENSTEP eller macOS
- Adun
- BioCocoa
- Schack
- Cenon
- EdenMath
- Äggplanta
- Emacs
- Lyckligt lottad
- Gomoku
- NeXTGO
- PikoPixel
- TextEdit
- TimeMon
- DoomEd
Gafflar av GNUstep
- Universal Windows -plattform , som inkluderar en WinObjC -svit som består av olika delar av GNUstep och Microsofts egna implementeringar av saker som Cocoa Touch API.
Klassfunktioner
Foundation Kit
Den Foundation Kit ger grundläggande klasser såsom wrapper klasser och datastrukturklasser.
- strängar
- samlingar (matriser, uppsättningar, ordböcker) och räknare
- filhantering
- objektarkivering
- avancerad datummanipulation
- distribuerade objekt och kommunikation mellan processer
- URL -hantering
- aviseringar (och distribuerade aviseringar)
- enkel flertrådning
- timers
- lås
- undantagshantering
Applikationssats
Den Application Kit ger klasser orienterade kring grafiskt användargränssnitt kapacitet.
- element i användargränssnittet (tabellvyer, webbläsare, matriser, rullningsvyer)
- grafik ( WYSIWYG , efterskriftsliknande grafik, bezier-banor, bildhantering med flera representationer, grafiska sammanhang)
- färghantering (kalibrerade kontra enhetsfärger; CMYK , RGB , HSB , grå och namngivna färgåtergivningar; alfa -transparens)
- textsystemets funktioner: rich text -format , textbilagor, layouthanterare, skrivmaskin, regler, styckeformat, typsnittshantering, stavning
- dokumenthantering
- utskriftsfunktioner: utskriftsfunktioner, utskriftspanel och sidlayout
- hjälpansvarig
- pasteboardtjänster (aka klippkort)
- stavningskontroll
- arbetsytans bindningar för applikationer
- dra och släpp -operationer
- delning av tjänster mellan applikationer
Se även
- Darling (programvara) , ett kompatibilitetslager som bygger på GNUstep
- GNUstep Renaissance , ram för XML -beskrivning av bärbara GNUstep/Mac OS X användargränssnitt
- Miller Columns , metoden för filträd att bläddra i GWorkspace File Viewer
- Fastighetslista , ofta använt filformat för att lagra användarinställningar
- StepTalk , Scripting framework
- Window Maker , en fönsterhanterare utformad för att efterlikna NeXT GUI som en del av det större GNUstep -projektet
Referenser
externa länkar
- GNUstep.org -projektets hemsida
- GNUstep -applikationer och handledning för utvecklare
- GNUstep Application Project
- En intervju 2003 med GNUstep-utvecklaren Nicola Pero Arkiverad 2007-01-07 på Wayback Machine
- FLOSS Veckovis intervju med Gregory Casamento och Riccardo Mottola från GNUstep
- GNUstep på Debian , FreeBSD , MacPorts
- NEXTSPACE skrivbordsmiljö, baserat på GNUstep