Tools für alle Fälle

 Wer bei der Erstellung von C++-Anwendungen über das Niveau von einführenden Beispielen hinausgeht, wird schnell an einen Punkt kommen, an dem die Bestandteile aus dem offiziellen C++-Standard nicht mehr ausreichen. Auf der Suche nach komplett ausprogrammierten Algorithmen oder Lösungen für Spezialanforderungen begibt man sich dann in die Welt der externen Bibliotheken, die Sammlungen solcher in vielen Projekten bereits erfolgreich eingesetzter Tools sind. Mit Boost und Qt werden zwei der bekanntesten C++-Bibliotheken in diesem Artikel vorgestellt.

To XML or not to XML?

 Die breite Anwendbarkeit von XML und den darauf aufbauenden Techniken kann leicht die Sicht auf besser angepasste Lösungen verstellen. Deshalb ist es wichtig, gründlich zu prüfen, ob XML wirklich die passende und entwicklungsfähige Basis ist. Ansonsten kann es passieren, dass man sich in einer Situation wiederfindet, in der XML die Ursache ernster Probleme ist, aber praktisch nicht mehr ersetzt werden kann – dass man in der XML-Falle sitzt.

Kommunikations-Contest

  Mobile Endgeräte jeder Größe und Ausbaustufe sind allgegenwärtig. Sie bedingen Veränderungen in der Architektur hin zu echten verteilten Anwendungen mit Client-Server-Architektur. Die Folge: Effiziente, zuverlässige, einfach zu programmierende und möglichst sprach- und plattformübergreifende Kommunikationsprotokolle gewinnen eine immer größere Bedeutung Wir testen vier Kandidaten intensiv an einem praktischen Beispiel und erarbeiten nebenbei einen Fragenkatalog für das Design eines praxistauglichen Services.

Am Anfang war der Test

  Heute wird die meiste Software nach Anforderungs- und Spezifikationsdokumentationen entwickelt und – davon ausgehend – danach auf Basis von Testfällen geprüft. Beim Test-First-Ansatz realisiert der Softwareentwickler seinen Programmcode dergestalt, dass die zuvor definierten Testfälle nach einem Prüfungslauf das Ergebnis „passed“ liefern. Auf den ersten Blick scheint besagter Ansatz im Vergleich zu traditionellen Ansätzen das Pferd von hinten aufzuzäumen. Doch der Schein trügt: In Wahrheit ist diese Methode stringenter und führt – bei Beachtung einiger Grundsatzregeln – schneller zum angestrebten Entwicklungsziel.

Spielewelten XXL

  Uniform-Buffer-, Texture-Array- und Texture-Buffer-Objekte bilden die Grundlage für die Programmierung schneller 3-D-Anwendungen und die Darstellung von weitläufigen Spielewelten voller Details. Gute Gründe also, um sich mit der Funktionsweise und den Einsatzmöglichkeiten dieser OpenGL-Objekte eingehend vertraut zu machen.

Das Latein der Programmiersprachen

  Programmierung in C++!? Eine Anforderung, die man zwar häufig in Projekten und Stellenausschreibungen findet, die aber bei vielen leider immer noch den Eindruck erweckt, dass man sich dabei mit etwas Altmodischem beschäftigen muss. Sicher ist C++ nicht so „modern“ wie beispielsweise das gesamte Java-Ökosystem. Betrachtet man aber die Einsatzgebiete von C++, so erkennt man schnell die Relevanz dieser Sprache. Und auch die fachlichen Herausforderungen, denen man sich als Entwickler von C++-Anwendungen stellen muss bzw. darf, können aus dem Umgang mit C++ eine hochinteressante Angelegenheit machen.

Mit Leichtigkeit zur Vollversion

  Kaum ein Produkt kann heute vor dem Kauf so ausführlich getestet werden wie eine Anwendung für den PC. Üblich sind Test- und Trial-Versionen. Meistens sind diese entweder in der Laufzeit beschränkt oder weisen einen eingeschränkten Funktionsumfang auf. Wir haben uns des Themas auf theoretischer Ebene angenommen und zeigen Wege zur Implementierung eines effektiven und einfachen Kopierschutzverfahrens.

Closure öffne dich!

  Eine Closure ist ein funktionales Objekt, das sich Werte unabhängig seines Geltungsbereichs (Scope) merkt und zurückgibt. Andere meinen auch, sie sei schlicht ein anonymer Codeblock mit Widerverwendung. Wenn Sie jemals eine Funktion gebaut haben, die eine andere Funktion zurückgibt, hatten Sie bereits mit der Closure-Idee Kontakt. Dieser sprachübergreifende Bericht soll Licht in die Welt der Closures bringen und so ganz nebenbei einige Tatsachen zur funktionalen Programmierung liefern (Back to Function).

OpenCL verleiht Flügel, Ruder und Räder

  Im letzten Artikel haben wir den Aufbau und die Funktionsweise einer OpenCL-basierten Physik-Engine behandelt. Mit diesen Grundlagen wagen wir uns heute an ein deutlich interessanteres Thema heran – die Implementierung diverser Fahrzeugbewegungsmodelle.

Alles neu macht Windows 8

  Windows-8-Apps kann man nur mit HTML5 und JavaScript entwickeln. Die Windows Runtime (WinRT) bedeutet das sofortige Ende von .NET. In Windows 8 ist das Startmenü verschwunden und – überhaupt diese quadratischen Kacheln. Dass man die Testversion nicht sofort wieder beendet, liegt eher am gut versteckten „Herunterfahren“-Menü. Bevor jetzt der letzte Entwickler verschreckt wird: hier der Versuch eines Rundumblicks über die Herausforderungen und ein Plädoyer für die neuen Möglichkeiten der Windows-8-Entwicklung.

No signs? No problem!

  Alle numerischen Datentypen sind in Java vorzeichenbehaftet. Die bekannten vorzeichenlosen Datentypen unsigned char, unsigned short, unsigned int und unsigned long wie in C und C++ gibt es in Java nicht.

X
- Gib Deinen Standort ein -
- or -