iX Developer Programmieren heute 01/2012

7,99 €*

Lieferzeit Sofort lieferbar

Sofort lieferbar
Highlights:
  • Parallelprogrammierung
  • Webentwicklung
  • Softwarearchitektur
  • Programmiersprachen
  • Agile ALM & Kanban
Format
Anzahl:
Inhaltsverzeichnis

Parallelprogrammierung

Sollen Softwareentwickler die Kunst der Multi-Core-Programmierung erlernen oder gelingt es, die Komplexität der Parallelisierung hinter der sequenziellen Illusion zu verstecken? Die Community weiß die Antwort (noch) nicht. Darum sollte jeder die grundlegenden Begriffe, Probleme, Lösungsansätze und Paradigmen kennen.


Agile ALM

Vor allem durch den Erfolg von Open-Source-Software und die Verbreitung agiler Praktiken hat sich die Landschaft des Application Lifecycle Management in den letzten Jahren grundlegend verändert. Trotz der damit einhergehenden Innovation bleibt die große Herausforderung die Integration zwischen den Tools.

Webentwicklung

Dynamische Webapplikationen vollgepackt mit Mobile und Echtzeit setzen neue Techniken voraus. Webentwickler müssen sich daher mit den damit einhergehenden Konzepten vertraut machen. Das Wichtigste über die neue Webwelt aus HTML5, Serverside JavaScript, Browser-IDEs und mobilen Webframeworks


  • Parallelprogrammierung

    • Multi-Core-Programmierung
      Grundsätzliches zur nebenläufigen und parallelen Programmierung
    • STM
      Software Transactional Memory in Clojure
    • Aktoren
      Aktor-Programmierung am Beispiel von Akka
    • MapReduce
      Nebenläufigkeit in Googles Programmiersprache Go
    • Dataflow
      Nebenläufigkeit am Beispiel von Groovy
    • Multithreading
      Concurrency-Bibliotheken bei .Net und Java
    • Thread-Programmierung
      Nebenläufige Programmstrukturen in C++11

    Agile ALM

    • Application Lifecyle
      Von Open Source zu Enterprise: Das neue Gesicht von ALM
    • Versionskontrolle
      Über den Status quo verteilter Versionsverwaltungssysteme
    • Build-Tools
      SBT und Gradle: Aufstrebende Konkurrenz für Ant und Maven
    • Continuous Integration
      Kontinuierliches Integrieren in Zeiten agiler Programmierung
    • Build-Management
      Pünktliche Releases mit Continuous Delivery
    • Qualitätssicherung
      Auswertung der Umfrage „Softwaretest in der Praxis“
    • Security
      Softwaresicherheit durch Application Lifecycle Management
    • Recht
      Vertragliche Tücken der agilen Softwareentwicklung

Webentwicklung

  • HTML5 I
    Bedeutung und Einsatz von HTML5 in der Praxis
  • HTML5 II
    WebSocket: Annäherung an Echtzeit im Web
  • Tools
    Browser-Entwicklungsumgebungen im Vergleich
  • Skriptsprache
    Objektorientiert, integriert, effizient entwickeln in JavaScript
  • Serverside JavaScript
    Programmierung mit Node.js
  • Mobile Plattformen
    Aktuelle UI- und Hybrid-Frameworks für mobile Webapplikationen

Trends

  • Programmiersprachen
    Aktuelles zur Entwicklung von Programmiersprachen
  • Domain Specific Languages
    Interne DSLs: Programmiersprachen in Programmiersprachen einbetten
  • Softwarearchitektur
    Event Based Components: Softwarearchitektur in neuem Licht
  • Big Data
    Datenverarbeitung im Zeitalter des Web 2.0
  • RAD
    Renaissance des Rapid Application Development
  • PaaS
    Platform as a Service – eine Übersicht der Angebote

Methoden

  • DevOps
    Neuartige Zusammenarbeit zwischen Softwareentwicklung und Betrieb
  • Kanban
    Software-Kanban im Einsatz
  • Weiterbildung
    Bessere Softwareentwickler dank Coding-Dojos und Code-Katas

Parallel und agil


Dass das Internet die Art und Weise, wie Menschen leben, denken, arbeiten und ihre Umgebung wahrnehmen, maßgeblich verändert hat, ist eine Binsenweisheit. Davon am meisten betroffen war und ist die IT-Branche, liegt es doch in ihrer Aufgabe, die Wünsche und Anforderungen webaffiner Individuen und Unternehmen zu befriedigen. Das hat zu komplexen Softwarearchitekturen und riesigen Datenmengen geführt – und wer glaubt, dass das Datenaufkommen im Internet über die letzten 20 Jahre weitgehend gleichmäßig gestiegen ist, irrt gewaltig. So sahen Experten für die letzten fünf Jahre eine Datenexplosion um den Faktor 10, und das wird sich wohl auch in den nächsten Jahren exponentiell weiter vervielfachen.


Zur Bewältigung dieser Aufgabe sind die eingeschlagenen Wege verschieden. Mittlerweile gibt es zum Beispiel zahlreiche Verfahren, den Datentransfer softwareseitig zu beschleunigen, auf der Hardwareseite sind etwa Multi-Core- und Many-Core-Plattformen en vogue. Laut den Analysten von IDC sind 2011 bereits die Hälfte der gelieferten Prozessoren Dual-Core-Systeme; Plattformen mit einem Kern werden mit nur noch etwa 10 Prozent Anteil fast zum Nischenprodukt. Doch schon 2013 sollen die Dual-Cores das gleiche Schicksal erfahren. Die Marktforscher sehen dann 30 bis 35 Prozent Quad-Cores und circa 50 Prozent für Systeme mit mehr als vier Kernen.


Heißt das nun, dass sämtliche Software für die neuen Prozessorarchitekturen neu oder umzuschreiben ist? Sicherlich nicht. Allerdings sollten sich Entwickler jetzt mit den zahlreichen Konzepten in der parallelen Programmierung auseinandersetzen, um abwägen zu können, ob sie aus ihren neuen oder bestehenden Applikationen dank der Mehrkernsysteme mehr Leistung herausholen können.


Die Konzepte zur parallelen und nebenläufigen Programmierung – die wichtigsten werden in diesem Heft vorgestellt – sind größtenteils gar nicht so neu. Sie erfahren jedoch durch die mittlerweile bestehenden Hardwarevoraussetzungen eine neue, berechtigte Aufmerksamkeit. Gewisse Vorteile bei ihrer Implementierung haben sicherlich junge Sprachen wie Clojure, Scala und Go, die eben zu einer Zeit entstanden sind, als abzusehen war, dass Moore’s Law zur Verdopplung der Geschwindigkeit der Prozessoren alle 18 bis 24 Monate nur noch bedingt greift. Sie werden teilweise explizit zur Parallelisierung entwickelt. Schwieriger haben es hingegen verbreitete Plattformen wie Java und C++, die den Ballast mehrjähriger Entwicklungen mittragen müssen und dadurch hinsichtlich des Innovationsgrads behäbig erscheinen. Deswegen dauert es bei ihnen länger, die Konzepte paralleler und nebenläufiger Programmierung zu realisieren. Dafür können Anwender frühzeitig auf eine Vielzahl an Bibliotheken zurückgreifen, die es wie Fork/Join bei Java 7 oder Boost.Thread in C++11 endlich in die Standards gepackt haben.

Es ist jedoch nicht allein damit getan, die Beschleunigung nur bei Prozessoren und Programmiersprachen zu suchen. Agile Praktiken tragen ebenfalls zu einer effizienteren und schnelleren Softwareentwicklung bei. Von daher ist es nicht verwunderlich, dass gerade Entwickler von Open-Source-Software versuchen, die mit „Agile“ einhergehenden Prinzipien in ihren Werkzeugen zu berücksichtigen. Mit Erfolg – wie an den in diesem Heft genannten Agile-ALM-Werkzeugen zu sehen ist. Sogar so erfolgreich, dass die Hersteller kommerzieller Plattformen für das Application Lifecycle Management damit werben, jetzt Open-Source-Versionskontrollsystem X, Open-Source-Build-Tool Y oder Open-Source-Continuous-Integration-Server Z zu unterstützen.


iX und heise Developer wünschen viel Spaß beim Vertiefen auch in die anderen Trendthemen des dritten iX Developer-Sonderhefts.

Alexander Neumann


PS: iX, heise Developer und der dpunkt.verlag bieten im kommenden Mai mit der parallel 2012 übrigens eine Konferenz zur Parallelprogrammierung an.

    Intel Parallel Studio XE 2011:

    Die Toolsuite für die Parallelprogrammierung kombiniert Intels C++- und Fortran-Compiler, Performance- und Parallel-Bibliotheken mit den Profiling-Werkzeugen Intel Inspector XE und Intel VTune Amplifyer XE (30-tägige Testversion).


    Eclipse 3.7.1 für Java-Entwickler:

    Das erste Service Pack der aktuellen Version der Java-Entwicklungsumgebung berücksichtigt die mit Java 7 eingeführten neuen Sprach-Features.

Visual Studio 2010 Ultimate Edition:

Die Entwicklungsumgebung für das Application Lifecycle Development bietet Teams ein umfassendes Paket von Verwaltungstools für den gesamten Lebenszyklus von Anwendungen (30-tägige Testversion).


Tasktop Dev 2.1.0:

bietet eine Integration von ALM-Tools innerhalb von Eclipse und Visual Studio (30-tägige Testversion).


Kaazing WebSocket Gateway:

ein WebSocket-Server, der verschiedene Protokolle und Client SDKs anbietet.


31 Episoden des SoftwareArchitekTOUR-Podcasts

Artikel-Details
Anbieter:
Heise Medien GmbH & Co. KG
Artikelnummer:
4018837040119
Veröffentlicht:
03.12.2011

0 von 0 Bewertungen

Geben Sie eine Bewertung ab!

Teilen Sie Ihre Erfahrungen mit dem Produkt mit anderen Kunden.