iX Programmieren heute 01/2013
7,99 €*
Lieferzeit Sofort lieferbar
Highlights:
- Programmiersprachen
- Big Data
- GUIs
- Parallelprogrammierung
- Spieleentwicklung
Programmiersprachen
Mit neuen Vorgehensweisen oder dem bewussten Rückgriff auf bewährte Ideen versucht man in der Softwareentwicklung, den aktuellen Marktanforderungen besser gerecht zu werden. Der Trend macht sich auch bei den Programmiersprachen deutlich bemerkbar, vor allem bei JavaScript, das nun professionellen Ansprüchen genügt.
Big Data
Die größte Bedeutung der NoSQL-Bewegung liegt darin, den alteingesessenen Datenbanken ihre Schwachstellen aufgezeigt zu haben. Genau das hat zu viel Bewegung auf „beiden Seiten“ geführt. Gemein ist ihnen das Bestreben, Anbindungen an den prominentesten Vertreter der Big-Data-Welt zu schaffen – an Apache Hadoop.
GUIs
Apps sind speziell für den Einsatz auf mobilen Endgeräten konzipiert. Sie lassen sich im Allgemeinen gegenüber Desktop-Anwendungen einfacher bedienen und bieten grundsätzlich andere Einsatzmöglichkeiten. Doch stopp! – Spätestens mit Windows 8 halten die Prinzipien mobiler Entwicklung auch auf dem Desktop Einzug.
Parallelprogrammierung
Programmierbare Grafikkarten ermöglichen große Geschwindigkeitssteigerungen im Vergleich zu Multicore-Systemen. Da sich inzwischen GPU-Kerne in den CPUs finden, wird nach der gewöhnlichen Parallelprogrammierung das GPU Computing künftig ein fester Bestandteil der Softwareentwicklung sein.
-
Programmiersprachen
- Sprachkonzepte
Programmiersprachen im Wandel der Zeit - Sprachen-Design
Grundsätzliches zur Entwicklung von Programmiersprachen - Funktionale Programmierung
Wo Haskell und Co objektorientierten Sprachen Überlegen sind - C++-Entwicklung
C++11 – der Sprachstandard ein Jahr später - Java-Entwicklung
Gegenwart und Zukunft der Java-Plattform - Java Virtual Machine
Programmiersprachen für die JVM im Zusammenspiel mit Java - Professionelles JavaScript
Skriptsprache für Industrie- und Geschäftsanwendungen - JavaScript-Alternativen
CoffeeScript – das bessere JavaScript?
TypeScript: Microsofts neue typisierte Skriptsprache
Dart – Googles zweite Programmiersprache - Serverside JavaScript
Zeitgemäße Webanwendungen mit Node.js entwickeln
Big Data
- DBMS
NoSQL-Datenbanken ergänzen relationale Datenbank-Systeme - NewSQL
Relationale Datenbanken schlagen zurück - Hauptspeicherdatenbanken
In-Memory Computing als Treiber neuartiger Geschäftsanwendungen - Interview
Franz Färber im Gespräch Über In-Memory Computing und SAP HANA - Hadoop
Das Ökosystem der MapReduce-Implementierung unter dem Apache-Dach
Big Data im Praxiseinsatz
Einblick in die nächste Generation des Apache-Frameworks
GUI
- Design Patterns für Mobile
Wege für eine erfolgreiche mobile Oberflächenentwicklung - Mobilprogrammierung
Best Practices für die Entwicklung mobiler Unternehmens-Apps - Windows 8
Windows Store Apps – Überblick der Frontend-Techniken - Interview
Brandon Bray im Gespräch zu .NET und WinRT - Web-Clients
Wie HTML5 Rich Internet Applications verändert
- Sprachkonzepte
Parallelprogrammierung
- Multicore
Programmieren mit Tasks und parallelen Schleifen - GPU Computing
Grundlagen der GPU-Programmierung - GPU-Frameworks
GPU-Programmierung in der Praxis mit CUDA
Heterogene Programmierung mit OpenCL
Trends
- Agilität
Entwicklung und Betrieb verzahnen mit DevOps - Eingebettete Systeme
Trends der Embedded-Entwicklung - Spieleentwicklung
Der Unterbau von Computerspielen - Unternehmensprozesse
Crowdsourcing – absehbarer Trend in der Softwareentwicklung
Sonstiges
- Editorial
- DVD-Inhalt
- Gewinnspiel
- Inserentenverzeichnis
- Impressum
Vielfalt erwünscht
Programmiersprachen bekommen allem Anschein nach wieder eine größere Bedeutung, nachdem für einige Zeit der Fokus vieler vermehrt auf funktionsreichen Tools und Frameworks lag. Das liegt sicherlich auch daran, dass nach langer Entwicklung innerhalb kurzer Zeit neue Sprachversionen der verbreiteten Programmierplattformen C, C++ und Java erschienen sind. Die lange Entwicklungszeit nicht nur bei diesen „Großen“ war aber einer der Gründe, warum auf einmal neue verheißungsvolle Sprachen die Bühne betreten haben. Für die einen dauerte es zu lange, bis ein als wichtig erachtetes Sprach-Feature oder ein den Umständen angemessener Umgang mit Anforderungen – etwa durch das Aufkommen der Mehrkernsysteme – in den Sprachstandard einzog. Andere vermissten grundsätzliche Konzepte wie den funktionalen Programmierstil in ihren bis dato präferierten Sprachen.
Im Umfeld der Java-Plattform dürfen hier Scala, Groovy, JRuby und Clojure bereits als arriviert gelten, neuerdings hinzugekommen sind das von Red Hat entwickelte Project Ceylon und JetBrains’ Kotlin, die wiederum aggressiv gegen die zuerst genannten Sprachen positioniert werden. Im Umfeld der C/C++-Programmierung haben vor allem D und Go die Aufmerksamkeit auf sich gezogen. Während es um D mittlerweile wieder still geworden ist, taucht das von Google entworfene Go regelmäßig in der Berichterstattung auf und gewinnt nicht nur an Interesse, sondern auch an Verbreitung. Letztlich ist jedoch allen Emporkömmlingen anzusehen, woher sie stammen, und daran ist abzulesen, dass die im Artikel auf Seite 8 skizzierte Basisarbeit in den früheren Jahrzehnten keine so schlechte gewesen sein kann.
Die neue Konkurrenz ist jedoch insofern zu begrüßen, dass viele der in den „neuen“ Sprachen erarbeiteten Ideen Über kurz oder lang in den „Muttersprachen“ landen. Scala und natürlich Clojure sind implizit mit dem Einsatz der aus der funktionalen Programmierung stammenden Closures vertraut. Diese ziehen nun nach mehrmaligem Anlauf endlich (als Project Lambda) in Java 8 ein. Der Einfluss der Konkurrenz oder der Alternativen lässt sich auch bei der Weiterentwicklung von JavaScript beziehungsweise ECMAScript beobachten, in deren Version 6 bereits in CoffeeScript und TypeScript umgesetzte Ideen wie Klassen und Klassenvererbung landen sollen. Dessen ungeachtet ist JavaScript so etwas wie der neue unerwartete Stern am Programmiersprachenhimmel. Microsoft hat es zum „first-class citizen“ in Visual Studio 2012 ernannt – die Windows Store Apps lassen sich wohl bevorzugt in dieser Skriptsprache schreiben. Selbst in der Entwicklung für mobile Geräte hat sich das Dreigespann aus HTML5, CSS und JavaScript zur dritten ernst zu nehmenden Plattform gemausert.
Nun heißt das nicht, dass der Entwickler gleich sieben Programmiersprachen in sieben Wochen erlernen muss,1 vielleicht reicht es schon, sich für jedes Jahr gewissenhaft eine neue Sprache vorzunehmen, wie es Eberhard Wolff, Autor in diesem Sonderheft, zu einem früheren Zeitpunkt geschrieben hat. Das vierte „Programmieren heute“-Sonderheft mag als Anreiz dienen, sich mit der einen oder anderen Sprache eingehender zu beschäftigen.
Selbiges gilt für die anderen Themen des Hefts: Beispielhaft sei der gegenwärtige Hype Big Data genannt, zu dem die Redaktion nahezu täglich neue Pressemeldungen erhält. Für Apache Hadoop, das als De-facto-Standard für Big-Data-Projekte gelten darf, haben Marktforscher prognostiziert, dass der Markt rund um das MapReduce-Framework bis 2016 auf etwas mehr als 810 Millionen US-Dollar anwachsen werde. Das entspräche einer jährlichen Steigerungsrate von rund 60 Prozent. Angesichts der weiter fortschreitenden Explosion der Datenmengen mag es also geraten sein, sich mit dem ab Seite 84 beschriebenen Hadoop-Ökosystem vertraut zu machen.
iX und heise Developer wünschen viel Spaß beim Vertiefen aller Trendthemen des iX-Developer-Sonderhefts.
ALEXANDER NEUMANN
1 Bruce A. Tate; Seven Languages in Seven Weeks; A Pragmatic Guide to Learning Programming Languages; Pragmatic Programmers, 2010
Sponsored Software
Intel Parallel Studio XE 2013 Update 1
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 Amplifier XE. Die neue Version enthält jetzt auch Intels Parallel Advisor und unterstützt die neuen Intel-Prozessoren einschließlich Intel Xeon Phi.
Auf der Heft-DVD findet man kombinierte 32- und 64-Bit-Versionen für Windows und Linux. Diese sind identisch mit den Kaufversionen, laufen allerdings nur 30 Tage. (Hierfür ist explizit die Option „30-Tage-Eval“ auszuwählen.) Die Windows-Version setzt zudem die Installation von Visual Studio 2010 voraus.
Tools
Visual Studio 2012 für Web, Windows 8 und Desktop
Microsofts Entwicklungsumgebung in den kostenlosen Express-Versionen für Web-, Desktop- und Windows-8-Entwickler als ISO-Image.
Eclipse Orion 1.0
Die sich den Browser integrierende IDE eignet sich für die Entwicklung mit JavaScript, HTML und CSS.
Cloudera’s Distribution Including Hadoop (CDH) 4.0.1
Die Open-Source-Sammlung umfasst die Kernkomponenten von Hadoop zur verteilten und ausfallsicheren Speicherung und Verarbeitung großer Datenmengen. Darüber hinaus sind Werkzeuge für Sicherheit, Hochverfügbarkeit und Integration in bestehende Datenlandschaften enthalten. CDH ist unter der Apache-Lizenz verfügbar und eine der verbreitetsten Hadoop-Distribution und wird für Tests, Entwicklung und den Betrieb großer Cluster verwendet. Auf der DVD befindet sich ein VMware-Image, das insbesondere Einsteigern helfen kann, sich schnell einen Überblick zu verschaffen.
Literatur
Programmierer – eine Geschichte zur Gegenwart und Zukunft der IT
Eine fiktionale Geschichte zur Softwareprogrammierung in den Formaten PDF, EPUB oder Mobi (Kindle): Genauer gesagt präsentiert der Protagonist im Rahmen einer großen CeBIT-Show seine bahnbrechenden Erfindungen in den Gebieten Künstliche Intelligenz und Robotik. Autor der 76 Seiten langen Geschichte ist Hans Meyer, ein erfahrener Softwareentwickler und IT-Projektleiter, der seine rund 40 Jahre Erfahrung in der Softwareentwicklung auf teilweise bitter-ironische, aber auch gesellschaftskritische Weise in seine Programmierergeschichte einfließen lassen hat.
SoftwareArchitekTOUR
37 Episoden des renommierten Podcasts auf heise Developer zu Themen wie:
- ROCA (Resource-oriented Client Architecture)
- leichtgewichtige Webapplikationen
- Ausbildung zum Architekten
- Rolle des Softwarearchitekten
- Business Process Management
- Webarchitekturen
- Product Line Engineering
- Cloud Computing
- Lisp
- domänenenspezifische Sprachen
- Systems Engineering
- Testing
- NoSQL
- funktionale Programmierung
- REST
- Architektur-Reviews
- Architekturdokumentation
- Entwicklung für Multicore-Systeme
- serviceorientierte Architekturen
- modellgetriebene Softwareentwicklung
- Middleware
- Patterns
Listings und Lizenzen
Die Listings zu den Heftartikeln und die Lizenzen zu den Softwarepaketen.
Anmelden