Sprachübersicht | Komentor

Die Wahl der richtigen Sprache für Ihre App ist ein wichtiger Entscheidungspunkt für Ihr Unternehmen. Es gibt fast unendlich viele starke Meinungen zu jeder Sprache und welche die beste ist. In diesem Artikel werde ich so objektiv wie möglich sein und Vor- und Nachteile für die wichtigsten Sprachen darlegen. Die meisten Sprachen eignen sich gut für einen bestimmten Anwendungsfall, und die oberen wenigen (Python, Node) sind in den meisten Fällen oft am besten.

Python

Beginnend mit den meisten Web-Apps und Backend-Systemen ist Python seit vielen Jahren die erste Wahl und wächst weiter. Python ist einfach zu lernen und einfach zu schreiben. Dies ist gut, um etwas schnell zu erledigen, kann jedoch zu verworrenem und komplexem Code führen, wenn es nicht sorgfältig durchgeführt wird. Viele Entwickler kennen Python, daher ist es relativ günstig, es einzubauen. Python ist eine robuste Sprache, die mit komplexen Backend-Systemen und Modularität umgehen kann. Es hat einige der höchsten Unterstützungs- und Community-Levels in seiner Bibliothek und seinen Integrationen. Für die meisten Backend-Systeme von Drittanbietern gibt es Python-Bindungen, wenn sie mehr als eine REST-Schnittstelle haben. Datenanalyse und ML-Bibliotheken verdienen eine besondere Erwähnung, da Python auch hier seit Jahren König ist. TensorFlow, Pandas und numpy sind wichtige Entwicklungsgemeinschaften, um Datenanforderungen zu erfüllen. Alles in allem ist Python eine vielseitige, robuste und kostengünstige Option.

Node.JS

NodeJS ist die Sprache des Javascript-Servers. Seine größte Stärke liegt in Web-Backends. Javascript könnte heutzutage die beliebteste Sprache im Internet sein, je nachdem, wie Sie messen. Auch hier ist die Entwicklung also relativ günstig. Die Art und Weise, wie der Code mit vielen asynchronen Callbacks strukturiert ist, kann beim Lesen an Spaghetti erinnern. Diese Schwäche ist jedoch größtenteils auch seine Stärke. Der Umgang mit asynchronen Ereignissen, verschiedenen Klicks in nicht verwandten Komponenten und ereignisgesteuerter Reaktionsfähigkeit wird am besten mit Node gehandhabt. Sockets und Chatten (asynchrone Nutzung) sind hier enthalten. Wenn das Frontend JS-lastig ist, in React, React Native, Angular oder TypeScript, dann kann Node eine gute Wahl sein.

Geh Lang

GoLang (oder einfach Go) ist wahrscheinlich die am schnellsten ausgeführte Backend-Sprache, die die meisten modernen Funktionen und genügend Popularität hat, um nützlich zu sein. Es kompiliert auch schneller als die meisten Sprachen. Wenn Sie viele Matrixoperationen, Zahlenverarbeitung oder Schleifen ausführen, ist Go möglicherweise die beste Wahl. Abhängig von den IO-Anforderungen können Sie die rechenintensive Komponente Ihrer App in Go erstellen und mit einer freundlicheren Sprache bereitstellen. Go wurde bei Google erfunden und wird weitgehend als *lesbare* Sprache angesehen. Als Google-Ingenieur verbringen Sie Ihre Zeit hauptsächlich mit dem Lesen von Code und nicht mit dem Schreiben neuer Codes. Diese Sprache wurde entwickelt, um die Wartung des Codes zu vereinfachen. Dies hat den Nachteil, dass es schwieriger zu lernen und länger zu schreiben ist.

Rubin auf Schienen

Ruby on Rails hat eine sehr offene Entwicklerbasis und hatte in den Anfangsjahren eine große Rivalität mit Python, die Zeit hat bewiesen, dass Python in mehr Situationen nützlicher ist. Ruby hat viel Kurzschrift, was den Code für Nicht-Muttersprachler relativ kryptisch macht. Aber es ist eine schnelle Prototyping-Sprache. Es gibt eine Infrastruktur wie Heroku, die es einfach macht, Apps bereitzustellen, obwohl die Preise von Heroku nicht gut skalieren.

.NETZ

.NET einschließlich C#, VB und F# ist ein Ökosystem von Sprachen von Microsoft. Sie können in Server-Backends sowie anderen Backend-Verarbeitungsaufgaben verwendet werden. Microsoft hat sein eigenes Ökosystem für Dinge, und die Bibliotheksunterstützung sowie die breite Open-Source-Unterstützung sind begrenzt. Wenn sich Ihre Anwendung stark an wichtige Säulen der Microsoft-Welt anlehnt, ob 360, Windows usw., können die .NET-Sprachen eine gute Wahl sein.

C++

C++ ist eine der ursprünglichen mächtigen Sprachen. Es ist normalerweise die am schnellsten ausgeführte Sprache von allen. Im Laufe der Jahre, als die Sprachdesigner weiterhin Funktionen wie Vorlagen hinzufügten, wurde die Sprache jedoch so komplex, dass sie fast unbrauchbar wurde. Es wird in mehreren verschiedenen Metaebenen (Hauptsprache und Templating) abgeschlossen. C++ kommt dann zum Einsatz, wenn das letzte Quäntchen Performance herausgefordert werden muss und Go nicht geeignet war.

Swift und Kotlin

Swift und Kotlin sind die modernen Sprachen, um native Apps auf iPhone bzw. Android zu programmieren. Ich habe in einem anderen Artikel ausführlicher über native App vs. mobiles Web geschrieben. Diese Sprachen sind in der Entwicklung etwas teurer als die älteren Sprachen für native Apps und im Allgemeinen prägnanter und haben modernere Funktionen.

Objective C und Android Java

Objective C und Android Java sind die älteren Sprachen für native Apps. Diese können manchmal flexibler sein als die neueren, da sie näher an der Hardware liegen, wenn einige Abstraktionen noch nicht vollständig für Swift/Kotlin entwickelt wurden.

Java

Java läuft auf der JVM, einer virtuellen Maschine zur plattformübergreifenden Ausführung von Java-Code. Es ist kompiliert und hat eine Leistung, die C++ näher kommt als die interpretierten Sprachen. Es kann für umfangreiche Berechnungen verwendet werden, wenn Sie ausführlichen Code (nicht unbedingt eine schlechte Sache) und Abhängigkeitsinjektion bevorzugen. Es bietet auch robuste Unterstützung für native Desktop-GUIs in Swing.

PHP

PHP war vor etwa einem Jahrzehnt die beliebteste Webtechnologie, und als solche gibt es immer noch viele Ingenieure, die normalerweise ausgelagert sind und sich damit auskennen. Es neigt dazu, schnell widerspenstig zu werden, aber es gibt Frameworks wie HACK von Facebook <, die es besser machen. Wenn Sie jedoch keine Entwickler oder eine vorhandene Codebasis in PHP haben, ist es normalerweise keine gute Wahl, neu anzufangen.

HTML und CSS

HTML und CSS sind keine Computersprachen, da sie nicht vollständig sind und Informationen nicht so manipulieren können, wie es andere können. Sie dienen in erster Linie dazu, Informationen im Browser ansprechend darzustellen. Fast jede Website benötigt diese Sprachen, um das Fleisch der Website anzuzeigen. Manchmal kann das Templating in Jinja oder SASS helfen, ist aber nicht immer notwendig.

R

R ist eine Datenverarbeitungssprache für Statistiken. Es wird hauptsächlich für die Offline- und kollaborative Verarbeitung verwendet. Oft werden die aus der R-Analyse gewonnenen Erkenntnisse dann in einer anderen Sprache kodifiziert, die in der Produktion eingesetzt wird. Datenwissenschaftler werden mit den Daten in R arbeiten, um Erkenntnisse zu entwirren und zu finden.

Matlab

Matlab ähnelt im Anwendungsfall R, hat aber eine starke grafische Komponente und wird hauptsächlich für die Matrixanalyse verwendet.

Skala

Scala läuft auf der JVM, ist aber eine funktionale Sprache. Es hat objektorientierte Komponenten, ist aber hauptsächlich für die Verwendung in einem funktionalen Framework gedacht. Funktional ist in diesem Zusammenhang spezifisch für idempotente Funktionen, die mit Daten arbeiten und die zugrunde liegende Datenstruktur nicht beeinflussen. Für bestimmte Anwendungen ist die Architektur in einem funktionalen Framework hilfreich, und Scala ist eine lesbare, beliebte und schnell auszuführende Wahl.

OCaml

OCaml ist eine hauptsächlich funktionale, stark typisierte Sprache, die hauptsächlich in akademischen Umgebungen verwendet wird. Es ist großartig, CS-Grundlagen zu lehren, und ist ziemlich sauber in seiner Präsentation und Verwendung wichtiger Konzepte. Es hat eine begrenzte Popularität und kommerzielle Nutzung außerhalb einiger weniger spezifischer Firmen wie Jane Street, einem Market Maker.

LabVIEW

LabVIEW ist eine spezialisierte grafische Sprache für Tests und Messungen. Sie können einige allgemeine Aufgaben in dieser Sprache erledigen, aber Sie wissen, ob Sie sie brauchen. Es dient hauptsächlich zum Testen und Messen, wenn Sie Hardware wie ein Oszilloskop oder einen Netzwerkanalysator verwenden. Seine größte Stärke ist die Integration mit diesen Tools.

Verilog

Verilog, VHDL und herstellerspezifische Hardwarebeschreibungssprachen kennen Sie wieder, wenn Sie sie brauchen. Diese beschreiben die physischen Hardware-Gates, die in Ihr Demogerät gedruckt werden. Erstellen Sie eine ultraschnelle Ausführung, da Ihre Hardware benutzerdefiniert ist. IOT und Wearables werden diese in erster Linie nutzen.

Jede Sprache hat einige Vorteile und sollte in einigen Fällen verwendet werden. Hoffentlich habe ich einige Überlegungen zur Auswahl der Sprache Ihrer App angestellt. Wenden Sie sich an uns, wenn Sie Hilfe beim Scoping und beim Treffen technischer Entscheidungen für Ihre neue Initiative benötigen.

Originalartikel veröffentlicht unter

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *