Tag-Archive for » C «

Microsoft gibt Visual Studio Test frei

Microsoft hat jetzt die zentrale Unit-Test-Komponente Visual Studio Test Platform (VS Test) als Open-Source-Software freigegeben. Wie schon bei vielen anderen Software-Entwicklungsprojekten findet sich der Quellcode auf der Hosting-Plattform GitHub. Für VS Test nutzt Microsoft die MIT-Lizenz.

Mit der neuen, in Microsofts Entwicklungsumgebung Visual Studio integrierten Testplattform kann man Unit-Tests für Programmiersprachen wie C#, C++, JavaScript und Python laufen lassen, darüber hinaus Testdaten sammeln und Testberichte dazu ausgeben. Außerdem gibt es Erweiterungen für andere wichtige Testframeworks wie beispielsweise NUnit, xUnit, Google Tests, Jasmine und Karma, Code Coverage und Test-Impact-Analysen.

Das obige Diagramm zeigt, dass jetzt auch die zentralen Komponenten Cross-Platform-Runner und Host-Prozess zum Erkennen, Laden und Ausführen der Tests Open Source geworden sind. Ganz links stehen Visual Studio und Visual Studio Code als die wichtigsten Clients, aber die Tests kann man auch von der Befehlszeile aus durchführen.

Neue Testadapter hat Microsoft leider nicht quelloffen zur Verfügung gestellt. aber die überwiegende Mehrzahl dieser Adapter stamme sowieso nicht von Microsoft, meint dazu Brian Harry, Microsoft Corporate Vice President, in seiner Ankündigung zur Open-Source-Legung.

Der wichtigste Adapter von Microsoft selbst, MSTestV2, soll aber auch schon bald Open-Source-Software werden. Weiterführende Informationen zu Microsofts Strategie für VS Test können Sie in einem Dokument zur Roadmap nachlesen.

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.

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.

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.

Rogue Wave hat PHP-Company Zend übernommen

PHP_RogueWave_ZendDas Softwarehaus Rogue Wave hat soeben den PHP-Spezialisten Zend Technologies übernommen.

Mit dieser Übernahme von PHP-Knowhow erweitert Rogue Wave sein Portfolio vor allem in die Bereiche Web und Mobile. Zend Technologies gehört zu den bekanntesten Unternehmen, wenn es um die beliebteste Scriptsprache im Internet PHP geht – das Unternehmen ist selbst an der PHP-Entwicklung beteiligt.

Der komerzielle Fokus der Firma Rogue Wave liegt mehr im Bereich High Performance Computing mit Entwicklerwerkzeugen für C, C++, Java und C#.

Zend-CEO Andi Gutmans, verspricht sich für den PHP-Protagonisten Zend Technologies eine breitere Kundenbasis im Enterprise-Segment. In seinem Blog-Beitrag auf LinkedIn unterstreicht er auch, dass der Zusammenschluss keine Abwendung von der Open-Source-Strategie bedeute, sondern dass er weiterhin zu PHP, dem Zend Framework und Eclipse PDT (PHP Development Tools) stehe. Seine Firma arbeite sehr hart an der Qualität von PHP 7, das Mitte November released werden soll, und der darauf folgenden Zend Engine.

Zu den finanziellen und sonstigen Details der Übernahme haben sich die Beteiligten bisher nicht geäußert.

Meistgenutzte Programmiersprachen: JavaScript und Java

GithubLangages201508Der webbasierte Filehosting-Dienst für Software-Entwicklungsprojekte Github hat die populärsten dort genutzten Programmiersprachen nach Häufigkeit ihrer Benutzung in den dort gehosteten Projekten bewertet.

Das Resultat ist die nebenstehende Tabelle. Aktueller Top-Favorit ist eindeutig Javascript – gefolgt von Java.

Wer als Webworker gelegentlich in interaktiven Seiten auch programmieren muss, stellt sich ja regelmäßig die Frage, ob er das Coding in PHP oder JaveScript oder gar im früher proprietären Microsoft-Dialekt C# erledigen sollte.

Daß man eine Programmiersprache gut beherrscht, darf heute nicht mehr der Hauptgrund für die Auswahl sein. Die Github-Tabelle kann hier helfen, sich an den Präferenzen anderer Programmierer zeitgemäßer Projekte zu orientieren.

Weitere Informationen zur Entwicklung der einzelnen Sprachen finden Sie bei Heise.

Microsoft unterstützt Programmiersprache Rust

Die Programmiersprache Rust bekommt jetzt auch von Microsoft volle Aufmerksamkeit. Der Konzern hat nämlich inzwischen in seine Entwicklungsumgebung Visual Studio die Unterstützung für die bei Mozilla entstandene Sprache eingebaut.

RustQuellcodeDazu wurde mit Visual Rust ein Plug-in entwickelt, nach dessen Einrichtung ein Projekt-Template alles Wesentliche zum Aufbau von Rust-Projekten bereit stellt.

Darüber hinaus kann auch Microsofts Cross-Plattform-Editor Visual Studio Code schon das Arbeiten mit Rust-Code durch Syntax-Highlighting vereinfachen. Dessen Rust-Unterstützung wurde im Juni mit der Freigabe von Version 3.0 bekannt gegeben.

Informationen zu Rust

Rust wurde 2012 von Mozilla vorgestellt und ihre Syntax ist der von C und C++ recht ähnlich. Semantisch gibt es aber signifikante Unterschiede. Rust ist vor allem für Aufgaben in der Browserentwicklung, Spieleentwicklung, bei Embedded-Systemen und auch als Endpunkt einer nativen Schnittstelle mit Skriptsprachen gedacht.

Anfänglich war Rust als Konkurrent für Googles neue Programmiersprache Go konzipiert. In den letzten Jahren ist die Sprache aber weiter zu einer Alternative für C und C++ gereift, besonders deshalb, weil sich die Entwickler von etlichen Features aus den Anfängen der Entwicklung verabschiedet haben. Seit Mitte Mai gibt es Rust in Version 1.0.

WebAssembly – eine schnelle Javascript-Alternative

Schnellere Internetseiten mit WebAssembly: Das neue, schnellere Binärformat für Webinhalte könnte auf lange Sicht JavaScript im Browser ablösen.

WebAssembly besteht aus Bytecode und soll mit Unterstützung der großen Browserhersteller kompilierte Programme ohne Notwendigkeit eines Browser-Plug-ins statt JavaScript-Code im Internet etablieren. Um diesen Anspruch zu verdeutlichen, koordiniert eine Community-Arbeitsgruppe des Internet-Standardisierungsgremiums W3C die Arbeit.

Zum Start des Projekts gab Brendan Eich auf seiner Website zahlreiche Details bekannt. Er gehört zum Entwicklerteam für WebAssembly. Für interessierte Ersteller von Webseiten ist die Web-Assembly-Dokumentation samt FAQ und ersten Code-Experimenten ist auf GitHub zugänglich.

WebAssembly (kurz „wasm“ genannt) kann auf verschiedenen Plattformen laufen: auf den x86-Prozessoren der PCs ebenso wie auf den ARM-CPUs in den Mobilgeräten. Es ist sehr kompakt und kann deshalb schneller geladen werden.

Da das zeitaufwendige Übersetzen im Browser zur Laufzeit wie bei JavaScript entfällt, soll wasm auch deutlich schneller laufen. Zum einfacheren Debuggen durch den Programmierer soll es neben dem Binärcode auch eine Repräsentation des Programmcodes als Text geben.

Ein LLVM-Backend erlaubt es den Entwicklern, C- und C++-Code in wasm zu übersetzen, und weiter Programmiersprachen könnten noch folgen.

Es gab zwar schon früher Versuche in dieser Richtung für schnelleren Code (Java, .Net, TypeScript), aber immer nur als Alleingänge einzelner Firmen, die dann von Plugins in den Browsern abhängig waren und deshalb auch keine nennenswerte Verbreitung erzielten. Dagegen hat WebAssembly, das von Microsoft, Mozilla, Google sowie WebKit, und somit auch Apples Browser Safari unterstützt wird, sich als schnelle und moderne Alternative zu JavaScript entwickeln könnte.

Javascript-Konferenz enterJS in Darmstadt

Nach der zum ersten Mal im letzten Jahr in Köln abgehaltenen Konferenz für Javascript enterJS 2014 wird die Folgeveranstaltung in diesem Jahr vom 17. Bis zum 19. Juni im Darmstadtium in Darmstatt abgehalten.

Wie von den letztjährigen Teilnehmern gewünscht, beginnt es gleich am 17. Jun mit einem Workshop-Tag, an dem für interessierte Entwickler Gelegenheit besteht, sich anhand praktischer Beispiele und Übungen intensiv mit den angesagten Themen aus dem JavaScript-Umfeld praktisch zu befassen.

Angeboten werden diesmal die Schwerpunkte „JavaScript für Java- und C#-Entwickler„, „Testgetriebene Entwicklung mit AngularJS„, „Node.js, io.js und Co.: Entwickeln für die Cloud„, „Eventgetriebene Programmierung und Architektur“ und „Der Docker-Basis-Workshop„.

Am 18. und 19. Juni läuft dann die eigentliche Konferenz mit knapp 40 Vorträgen zu verschiedenen Themen. Das Programm der enterJS 2015 ist nun online verfügbar und die Registrierung ist eröffnet.

Programmiersprachen-Ranking von RedMonk

Apple-swift-logoErstmals seit 6 Monaten hat RedMonk sein Programmiersprachen-Ranking wieder aktualisiert.

Die oberen Ränge der Statistik der meistgenutzten Sprachen im Netz führt JavaScript vor Java und PHP an. Python kommt auf den vierten Platz, den fünften teilen sich C#, C++ und Ruby.

An 22. Position findet sich die größte Überraschung: Apples Anfang Juni 2014 vorgestellte Sprache Swift hat eine bemerkenswerte Verbreitung gefunden. So schnell sei eine Sprache noch nie von den Programmierern angenommen worden, heißt es in Kommentaren von RedMonk. Vor sechs Monaten stand Swift als Newcomer schon auf Rang 68.

RedMonk sieht es als sicher an, dass das aus Objective-C hervorgegangene Apple-Idiom bis zum nächsten Ranking in einem halben Jahr unter die Top 20 aufgestiegen sein wird.