Product SiteDocumentation Site

4. Veranderingen in Fedora voor ontwikkelaars

4.1. Ontwikkeling

4.1.1. Scratch

Fedora 19 bevat Scratch, de grafische programmeeromgeving van de Lifelong Kindergarten Group van het IT Media Lab. Scratch maakt het eenvoudig om je eigen interactieve verhalen, spellen, animaties, muziek en kunt te maken.
Installeer Scratch met
        yum install scratch
en voer het uit vanuit het toepassingenmenu van je bureaublad (onder Programmeren) of door `scratch` in te typen in een terminal venster.

4.1.2. Nieuwe Ruby 2.0.0

Ruby is beschikbaar in Fedora 19. De nieuwe vrijgave biedt toevoegingen aan de kern taal, nieuwe ingebouwde bibliotheken, verbeterde debug ondersteuning en performanceverbeteringen.
Het Ruby project heeft gedetailleerde veranderingen en compatibiliteit richtlijnen uitgegeven in de vrijgave aankondiging op http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/

4.1.3. JRuby 1.7

JRuby is vernieuwd naar versie 1.7 en bevat verbeterde verpakking. Details over de vrijgave zijn beschikbaar op http://jruby.org/2012/10/22/jruby-1-7-0.html

4.1.4. Erlang

De concurrent programmeertaal en runtime voor algemene doeleinden Erlang is vernieuwd naar R16B. De volledige verander log is beschikbaar op http://www.erlang.org/download/otp_src_R16A_RELEASE_CANDIDATE.readme en http://www.erlang.org/download/otp_src_R16B.readme. Documentatie omvat http://vimeo.com/44790646 en http://www.erlang.org/download_release/17

4.1.5. Boost vernieuwd naar 1.53

Fedora 19 bevat Boost versie 1.53. Vergeleken met 1.50 meegeleverd met Fedora 18, heeft Boost 1.53 verschillende nieuwe bibliotheken:
Context, voor context omschakelen
Coroutine, een co-routine bibliotheek
Lockfree, lockfree datastructuren
Multiprecision, extended precisie aritmetische types voor drijvende komma, integer en rationele aritmetiek
Atomic, C++11-style atomic<>
Odeint, voor het oplossen van gewone differentieel vergelijkingen
Vele andere bibliotheken werden vernieuwd. De gedetailleerde release notes zijn beschikbaar voor Boost 1.51.0, 1.52.0 en 1.53.0:
Boost 1.50.0 Release Notes
Boost 1.51.0 Release Notes:
Boost 1.52.0 Release Notes:
Boost 1.53.0 Release Notes

Backwards compatibiliteit

Merk op dat noch API, noch ABI compatibiliteit met Boost 1.50 mag worden aangenomen. Toepassingen van derden gebouwd met oudere versies van Boost moeten opnieuw gecompileerd worden en moeten misschien aangepast worden om goed met Boost 1.53 te werken.

4.1.6. GNU Guile vernieuwd naar versie 2.0.7

GNU Guile is vernieuwd naar versie 2.0.7 . Toepassingen van derden die afhangen van legacy guile kunnen het compat-guile18 pakket gebruiken. Meer informatie over Guile 2 kan gevonden worden op http://www.gnu.org/software/guile/download.html#releases

4.1.7. Python

4.1.7.1. Pillow vervangt PIL
De Python Imaging Library, of PIL, is vervangen door Pillow, een actief onderhouden afsplitsing, welke ook Python 3 compatibele modules aanbiedt. Pillow is a drop-in vervanging voor PIL, behalve dat het importeren van modules nu vereist
          from PIL import <Module>
syntax in plaats van simply
          import <Module>
Deze verandering verbreekt de terugwaartse compatibiliteit net de legacy PIL niet. Documentatie is beschikbaar op https://github.com/python-imaging/Pillow/
4.1.7.2. PyXML is verwijderd, gebruik stdlib
Python programmeurs die de xml module gebruiken, zullen ontdekken dat een paar onderdelen ervan anders werken dan in het verleden. Dit komt omdat Fedora PyXML niet meer mee levert. Deze verandering maakt het mogelijk dat de python stdlib xml module zichtbaar is voor programmeurs. PyXML verving de stdlib code met zijn eigen, minder onderhouden code en en het weglaten van PyXML zorgt ervoor dar stlib functies de voorkeur krijgen.

4.2. Ontwikkelgereedschappen

4.2.1. Checkpoint en herstellen met crtools

Het CRIU (Checkpoint/Restore in User-space) project biedt een gebruikersruimte implementatie van proces en procesgroep checkpoint/herstel. Met de gebruikersruimte gereedschappen crtools beschikbaar in deze vrijgave, is het mogelijk om een checkpoint van processen te maken en ze later weer te herstellen (bijv. na een crash) of de checkpoint van proces of procesgroep te migreren naar een ander systeem. CRIU streeft ernaar om zo transparant mogelijk te zijn zodat geen instrumentatie of opnieuw compileren van de checkpoint processen nodig is.
TOm een proces te dumpen, gebruik je het commando:
        crtools dump -D /pad/naar/dump-map -t <PID>
Om een proces te herstellen, gebruik je het commando:
        crtools restore -D /pad/naar/dump-map -t <PID>
Het CRIU project kan gevonden worden op http://criu.org

4.2.2. Developer's Assistant

Nieuwe ontwikkelaars krijgen een snelle start met Developer's Assistant, een set gereedschappen voor het snel starten van projecten met een verscheidenheid aan talen en kaders. Het devassistant pakket ondersteunt op dit moment:
C en C++
python inclusief django en flask
java inclusief jsf en maven

4.2.3. MEMSTOMP

Fedora 19 biedt MEMSTOMP, een DSO die voor-geladen kan worden in een toepassing voor het ontdekken van overlappende geheugenargumenten voor bepaalde functies met lagere runtime kosten dan valgrind.

4.2.4. Nieuwe gereedschappen

recode voegt de mogelijkheid toe om bestanden te converteren tussen karaktersets en gebruik
comdemod is een gereedschap voor assistentie met code base refactors op grote schaal.
jimtcl, een lichtgewicht Tcl implementatie.
fox, een C++ gebaseerde gereedschapskist voor het eenvoudig en efficiënt ontwikkelen van grafische gebruikersinterfaces.

4.3. GCC gereedschappen

4.3.1. GCC 4.8.x

Met ingang van Fedora 19 wordt GCC 4.8.x meegeleverd als de standaard GCC. Bovendien zijn alle Fedora pakketten opnieuw gebouwd met GCC 4.8.x (en GLIBC 2.17; zie hieronder)
Gebruikers kunnen gecompileerde code verbeteringen onderzoeken en de nieuw toegevoegde eigenschappen gebruiken, zoals verbeterde C++11 en C11 ondersteuning, verbeterde vectorisatie ondersteuning, enzovoort.
Vernieuwingen in GCC omvat de MinGW cross-compiler. Een van de meest opvallende veranderingen is dat het standaard exception handling model voor het win64 doel veranderd is van SjLj naar SEH. Het win32 doel gebruikt het SjLj exception handling model nog steeds. Hierdoor zullen alle binaire programma's voor het win64 doel die exception handling gebruiken afhangen van libgcc_s_seh-1.dll in plaats van libgcc_s_sjlj-1.dll.
Voor meer informatie over de veranderingen in GCC 4.8.x, refereer je naar http://gcc.gnu.org/gcc-4.8/changes.html

4.3.2. GLIBC 2.17

Met ingang van Fedora 19 wordt GLIBC 2.17 meegeleverd als de standaard GLIBC. Alle Fedora pakketten zijn opnieuw gebouwd met GLIBC 2.17 (en GCC 4.8.x; zie hierboven).
Voor meer informatie over de veranderingen in GLIBC 2.17, refereer je naar http://sourceware.org/ml/libc-announce/2012/msg00001.html

4.4. D

4.5. Haskell

GHC is vernieuwd naar 7.4.2, Haskell Platform naar 2012.4 en er zijn vele andere bibliotheek vernieuwingen.

4.6. Java

4.6.1. Java 8 technische preview

Deze vrijgave van Fedora bevat een technische preview van Java 8, aangeboden met de java-1.8.0-openjdk en java-1.8.0-openjdk-devel pakketten.
Java 7 blijft de standaard JDK voor deze vrijgave. Het opnemen van Java 8 en OpenJDK8 laat ontwikkelaars hun toepassingen parallel ontwikkelen en testen voor de volgende versie van Java terwijl iedereen nog steeds de stabiele Java 7 voor dagelijks gebruik gebruiken.
Nieuwe eigenschappen van OpenJDK8 worden getoond op http://openjdk.java.net/projects/jdk8/features/

4.6.2. Vereenvoudigd verpakken met Maven

Een verbeterde en vereenvoudigde manier is geïntroduceerd om RPM pakketten aan te maken van Apache Maven projecten. Details en conversie recepten van oude spec bestanden kunnen op http://mizdebsk.fedorapeople.org/xmvn/cookbook/ gevonden worden

4.6.3. Thermostat 1.0

Fedora 19 bevat Thermostat 1.0, de eerste vrijgave van thermostat met een stabiele API, een OpenJDK gereedschap voor bewaking, instrumentatie en onderhoudsgemak.
Voor gebruiksinformatie raadpleeg je de Thermostat gebruikersgids op http://icedtea.classpath.org/wiki/Thermostat/UserGuide

4.7. Web ontwikkeling

4.7.1. PHP is vernieuwd naar 5.5.0

De populaire programmeertaal PHP is vernieuwd naar versie 5.5.0. Dit omvat een aantal belangrijke nieuwe functies, inclusief ondersteuning voor Generators, de nieuwe Zend Optimizer+ Opcode cache en ook een aantal performanceverbeteringen.
Voor de complete details refereer je naar Migrating from PHP 5.4.x to PHP 5.5.x. PHP ontwikkelaars moeten /usr/share/doc/php-common-*/NEWS lezen om meet te weten te komen over de veranderingen en de migratiegids consulteren op http://www.php.net/manual/en/migration55.php.

4.7.2. Node.js

Fedora 19 bevat nu de Node.js JavaScript runtime omgeving voor het ontwikkelen van snelle en schaalbare netwerktoepassingen met gebruik van de JavaScript programmeertaal. Ook is de npm pakketbeheerder opgenomen, welke toegang biedt tot meer dan 20.000 bibliotheken en toepassingen die beschikbaar zijn met vrije en open bron licenties.
Voor meer informatie over Node.js, refereer je naar http://nodejs.org of je bekijkt de documentatie in het nodejs-docs pakket.
Voor meer informatie over npm, inclusief een map met beschikbare bibliotheken en programma's, bezoek je http://npmjs.org/.

4.7.3. Django 1.5

Fedora 19 bevat versie 1.5 van het populaire Django webapplicatie framewerk. Deze versie bevat verbeteringen voor het gemakkelijker aanbieden van aangepaste authenticatie functionaliteit, verbeterde cache ondersteuning, een nieuwe template tag om het gebruik van JavaScript templates in Django templates eenvoudiger te maken, en nog meer.
Voor de volledige details, bekijk je de Django 1.5 vrijgave informatie op https://docs.djangoproject.com/en/dev/releases/1.5/.