Tag-Archive for » Programmiersprache «

D-Referenzkompiler jetzt unter freier Lizenz

Für die DConf in Berlin, wo sich im Mai D-Entwickler aus aller Welt treffen, hat der Erfinder der Programmiersprache D, Walter Bright, eine ganz besondere Überraschung zu bieten:

Ab sofort steht nämlich auch das Backend des Referenzcompilers DMD unter freier Lizenz. Bisher stand er nicht unter Open-Source-Lizenz, weil Bright Teile davon geschrieben hatte, während er noch Angestellter von Symantec war.

Deshalb wurden schon ernsthaft Alternativen zu dem halbproprietären Referenzcompiler diskutiert. Weil DMD aber deutlich schneller kompiliert als die Konkurrenz, mochte aber offenbar niemand ernsthaft auf diesen Compiler verzichten. So gesehen hat sich das Warten für die Community gelohnt.

Rückgabe in PHP 7.1

php7-1Außer den internen Veränderungen, die die beliebte Programmiersprache deutlich beschleunigt haben, brachte Version 7 von PHP viel Neues im Umgang mit dem Typsystem der Sprache.

Mit dem ersten großen Sprachupdate PHP 7.1 erweiterten die Entwickler PHP um Funktionen, die man so auch aus anderen Sprachen kennt. Dazu gehört unter anderem beispielsweise der explizite Verzicht auf einen echten Rückgabewert.

Nirwana-Rückgabe: Nullen oder Nichts

Denn jetzt gehört zu den sogenannten Typehints auch das Schlüsselwort void. Der Typehint zum Beispiel für den Datentyp int gibt ja auch an, dass der Typ des betreffenden Rückgabewerts ein Integer (Ganzzahl) sein soll. Genauso gibt in PHP 7.1 der Typehint void an, dass die Funktion eben nichts zurückgibt, sondern ausschließlich prozedural arbeitet.

Wie in den Sprachen C und C++ kann aus einer Methode durch die Angabe von return; zurückgekehrt werden. Auch auf diese Angabe kann verzichtet werden. Sinnvoll sei die Verwendung von void vor allem zur Dokumentation und zur Fehlerüberprüfung. Es macht in jedem Fall deutlich, „dass eine Funktion eine Aktion ausführt und kein Ergebnis erzeugt“.

Bis jetzt hatte PHP unter bestimmten Umständen Probleme bei Rückgabewerten, die keinen Standardwert haben, weshalb das Team eine einheitliche Syntax eingeführt hat, um zu zeigen, dass der Wert auch null sein kann. Dies ist ab der Version 7.1 für alle erlaubten Typen möglich, indem den Typen ein Fragezeichen vorangestellt ist, also zum Beispiel ?int.

Iterationen und Konstanten

Als neuer Pseudotyp ist das Keyword iterable neu hinzugekommen. Bisher konnte man keinen Typ für iterierbare Rückgaben festlegen und musste tricksen, wenn man eine Funktion innerhalb einer Foreach-Schleife nutzen wollte.

Auch aus dem Umfeld von C und C++ kommt die neue Zugriffsmodifikation, die neben Funktionen jetzt auch für Klassenkonstanten genutzt werden kann. Das Team löse damit eine bisher bestehende Inkonsistenz recht einfach auf. Als Schlüsselworte dazu kann man publicprotected und private nutzen. Konstanten, die ohne eines dieser Schlüsselworte deklariert werden, sind wie schon bisher immer public.

Neuer Tiobe-Index der Programmiersprachen

tiobe201611Es ist wieder soweit: Wie in jedem Monat hat TIOBE seinen Programmiersprachenindex auf der Basis von Ergebnissen verschiedener Suchmaschinen soeben veröffentlicht. In dieser aktuellen Rangliste können die schonim Juli in die Top 10 eingezogenen Assemblersprachen ihre Position weiter festigen.

Offensichtlich gibt es auch weiterhin einen deutlichen Bedarf an hardwarenaher Programmierung – zum Beispiel im Internet der Dinge (IoT – Internet of Things). In der Spitzengruppe fällt ganz besonders die gestärkte Position von Microsofts Visual Basic .NET zu Lasten von JavaScript und PHP auf.

Projekt Quantum: Mozillas künftige Browser-Engine

projectquantumBrowserhersteller Mozilla gibt einen Ausblick auf die Zukunft seiner Browser-Engine Gecko: Bis zum Ende des nächsten Jahres sollen „erhebliche Verbesserungen“ bei den Nutzern ankommen, verspricht Chef-Entwickler David Bryant in einem Blogeintrag.

Die „Project Quantum“ getaufte Entwicklung soll Gecko auf PCs und Mobilgeräten merklich beschleunigen, insbesondere durch Parallelisierung und Nutzung  von GPUs. Dazu wolle man einige Komponenten von Servo übernehmen, der Engine, an der Mozilla schon seit 2013 arbeitet. Vor drei Monaten veröffentlichte Mozilla schon eine erste Preview-Version von Servo.

Einige der Neuerungen werden in Mozillas Programmiersprache Rust geschrieben, die im Vergleich zu C++ mehr Geschwindigkeit und Sicherheit bringen kann.  Erste in Rust entwickelte Bestandteile haben schon im August Einzug in Mozillas Browser Firefox gehalten.

Microsoft bringt Typescript 2.0 RC

TypeScript2.0Die Betaphase von Microsofts Programmiersprache Typescript 2.0 ist zwar schon zu Ende, aber der Konzern hat noch einen Release Candidate für letzte Tests freigegeben. TypeScript ist eine Obermenge von JavaScript, die inzwischen unter anderem durch das JavaScript-Framework Angular2 eine größere Verbreitung erfahren hat.

Nach dem Release der Betaversion haben die Entwickler nicht nur Bugfixes durchgeführt, sondern auch noch mehrere Neuerungen eingeführt.

So sind nun beispielsweise Platzhalter in den Pfadangaben der Konfigurationsdatei tsconfig.js zulässig, so daß sie sich sowohl in deren exclude- als auch im neuen include-Feld nutzen lassen.

Außer dem kennt TypeScript jetzt auch sogenannte Tagged Unions, die man auch als algebraische Datentypen kennt.

Den Release Candidate kann man via NuGet oder npm beziehen, sich TypeScript 2.0 RC for Visual Studio 2015 herunterladen oder ihn sich in Visual Studio Code installieren.

Neues in Google Go 1.7

Google hat gerade die Version 1.7 seiner Programmiersprache Go freigegebenGo ist eine von Google gepushte Sprache, die der Konzern erstmals 2009 vorstellte. Seinerzeit platzierte Google Go als Alternative zur Sprache C.

2015 befreite sich das Projekt dann allerdings von letzten C-Überbleibseln in seinem eigenen Code. Zu den bekannteren Systemen, die in Go geschrieben wurden, gehören beispielsweise die MongoDB-Tools und Docker. Go kommt auch bei Google selbst zum Einsatz, aber auch zum Beispiel bei SoundCloud. Das vorherige Release Go 1.6 erschien im Februar .

Das neue Release Go 1.7 hat jetzt unter anderem einen neuen Port für IBMs Mainframe System z (s390x) und wurde auf Compilerebene stark überarbeitet. Es gibt nun auch ein neues, kompakteres Format für den Export von Daten. Außerdem ist von Beschleunigungen bei der Garbage Collection und von Änderungen beim Erzeugen von Metadaten und Stack Frame Pointers für Profiling-Werkzeuge wie perf unter Linux oder VTune von Intel die Rede.

Auch die Standardbibliotheken wurden deutlich überarbeitet. Es gibt auch eine kleine Änderung bei der Sprachdefinition: An die Stelle des bisherigen, nicht präzise definierten „Final Statements“ tritt jetzt das „Terminating Statement„. Es ist formal so definiert, wie es dem Verhalten der gc– und gccgo-Compiler entspricht.

Perl 5.24 mit Unicode und mehr Leistung

Perl5.24Im Mai gibt es wieder eine neue Version der Programmiersprache Perl. Die Versionsnummer 5.24 verrät, dass es sich noch um den älteren 5er-Zweig handelt und nicht um die neue 6er Hauptversion.

Das jetzt verfügbare Perl 5.24 soll deutlich schneller sein und jetzt auch Unicode 8 beherrschen. Inzwischen wurde auch die bisher experimentelle Postfix-Dereferenzierung angenommen – die Funktionen der automatischen Dereferenzierung und lexikalischen Kontextvariablen (my $_) wurden also entfernt.

Gerade ein Jahr nach dem Erscheinen von Perl 6 versteht sich Perl 5 zunehmend als eine Art Arbeitspferd, das weiter auf Zuverlässigkeit und Fehlerfreiheit hin optimiert wird, statt mit Neuheiten glänzen zu müssen.

 

Java-Ersatz Kotlin 1.0 veröffentlicht

KotlinJavaEine gute Nachricht für Webschaffende mit Java-Schwerpunkt:

Nur gut eine Woche nach dem Erscheinen des Release Candidate ist jetzt die Version 1.0 der Programmiersprache Kotlin erschienen.

Version 1.0 sagt ja aus, dass die Kotlin-Entwickler bei JetBrains davon ausgehen, dass spätestens jetzt nichts mehr dagegen spreche, Kotlin auch in Produktivszenarien zu nutzen.

Die JVM-Sprache (Java Virtual Machine) ist inzwischen schon seit mehr als fünf Jahren in der Entwicklung und soll sich gegenüber Java insbesondere durch ihre gute Performance, die Sicherheit und ihre ausdrucksstarke und sehr gut lesbare Syntax auszeichnen.

Kotlin ist objektorientiert, statisch typisiert und mit Java kompatibel, wodurch der Kotlin-Compiler Java-Bytecode ausgeben beziehungsweise Java Kotlin-Code erzeugen und auch Java-Code aufrufen kann.

Den Markt auftrebender JVM-Sprachen teilt sich Kotlin unter anderem mit Scala, Clojure und Ceylon – sie alle sind Open Source.

Programmiersprache Python 3.5 veröffentlicht

Eineinhalb Jahre nach dem letzten größeren Release wurde jetzt die auch bei Webschaffenden beliebte Programmiersprache Python in der Version 3.5 freigegeben.

Zu den Neuerungen in Python 3.5 zählen unter anderem der neue @-Operator für Matrixmultipliationen (PEP 465), eine generalisierte Unpacking-Syntax für Containertypen und die neuen Schlüsselwörter async und await für asynchronen und nebenläufigen Code (PEP 492).

Python gibt es zwar schon seit über 25 Jahren, aber erst in den letzten Jahren hat sich diese Allzweck-Programmiersprache so richtig durchgesetzt. Da die Sprache auch recht einfach erlernt werden kann, wird Python  auch an vielen amerikanischen Universitäten als erste Sprache für Studienanfänger genutzt.

Twitters Diffy zeigt Fehler in Updates

Twitter setzt das in der Programmiersprache Scala geschriebene  Regressionswerkzeug Diffy schon längere Zeit als effizientere und effektivere Alternative zu selbstgeschriebenen Unit-Tests bei neuen Programmfunktionen ein.

Jetzt hat der Microblogging-Dienst Diffy für alle als Open Source freigegeben.

Diffy zeigt Fehler in Apache-Thrift- und HTTP-Services ganz automatisch an. Dabei agiert es wie ein Proxy, der den neuen und den alten Code Seite an Seite laufen lässt und dabei das Verhalten miteinander vergleicht und alle Unterschiede anzeigt.

Diffy

Wächst die Komplexität eines Systems, wird es schnell unmöglich, eine angemessene Testabdeckung über selbstgeschriebene Tests zu erreichen„, schreibt Puneet Khanduri, aus Twitters Tools- und Frameworks-Team: „Dann braucht man ambitioniertere automatisierte Techniken, bei denen Entwickler nur geringfügig eingreifen müssen.

Das Tool von Twitter könnte für die Pflege von komplexen Internetanwendungen sehr hilfreich sein und für kürzere Testzeiten und schnellere Updates sorgen.