Warum sollte jemand seine eigene Sprache entwickeln, um sie nur innerhalb dieser Firma zu verwenden, wenn Sie XY andere Sprachen haben, die Ihnen bei ihren Bibliotheken, ihrer Logik usw. helfen können? Ist es nicht viel einfacher, mit irgendetwas anderem im Fluss zu bleiben, als eine eigene Sprache zu entwickeln?
programming-languages
Josip Ivic
quelle
quelle
Antworten:
Es ist viel einfacher zu verstehen, wenn man merkt, dass es oft ein Produkt eines langen Prozesses ist und nicht jemand, der nur sagt "Wir wollen eine neue Sprache machen".
Es beginnt normalerweise mit der Idee, dass ein Problem mit einer einfachen domänenspezifischen Sprache gelöst werden kann. Die Absicht ist oft, dass Nicht-Experten diese Sprache verwenden, daher ist sie einfach und es fehlen häufig Funktionen wie starkes Tippen und Module.
So weit, ist es gut. Aber dann stoßen die Leute auf Probleme, die von der Sprache nicht gelöst werden können. Daher werden langsam neue "Funktionen" hinzugefügt, um diese Probleme zu lösen. Und da der Prozess langsam ist und nur selten Funktionen zur Verfügung stehen, gibt es keine Motivation, diese neuen Funktionen ordnungsgemäß zu entwerfen, solange die Probleme gelöst sind.
Mit der Zeit erhält die neue Sprache Funktionen, die sie von einer einfachen domänenspezifischen Sprache zu einer komplexen "allgemeinen" Sprache machen, häufig mit widersprüchlicher, verwirrender Semantik und schwer zu befolgenden Syntaxregeln.
Und bis die Leute erkennen, dass sie solch ein massives Tier erschaffen haben, ist es bereits zu spät, es zu töten und durch eine richtig gestaltete Sprache zu ersetzen.
Es gibt einige Sprachen, die sich so entwickelt haben und nicht an bestimmte Unternehmen gebunden sind. Husten JavaScript Husten PHP Husten .
quelle
Sicher, aber um dem zu einem absurden Ende zu folgen, würden wir alle alles in Versammlung schreiben, wenn niemand neue Sprachen entwickeln würde.
Manchmal gibt es keinen Fluss. Neue Sprachen entstehen, weil jemand einen Kratzer hat, egal ob es sich um einen Sprachhobbyisten handelt, der nur etwas Neues erfinden möchte, oder um ein Unternehmen mit einem Bedürfnis, das von dem, was bereits existiert, nicht erfüllt wird.
Genau dies geschah, als John Backus 1953 das IBM Mathematical Formula Translating System vorschlug . Er wollte eine einfachere Möglichkeit für wissenschaftliche Benutzer, mathematische Formeln anzugeben, als sie in Assembler zu schreiben. Dieses proprietäre Produkt wurde die erste Programmiersprache, die keine Assemblierung war, und Sie kennen es als Fortran.
Wo Fortran als erster diesen Weg gegangen ist, ist Erlang so ziemlich das Aushängeschild dafür. Ericsson wollte die Entwicklung der Software für seine Telefonschalter verbessern und erfand eine Sprache für das Prototyping mit spezifischen Funktionen. Als ich es zum ersten Mal erkundete, war meine Erkenntnis, dass es von Leuten mit einem echten Problem entwickelt wurde, das von keiner der anderen 1986 verfügbaren Sprachen gut bedient worden wäre. Erlang blieb ein proprietäres, internes Produkt wie Ihr Kollege begegnete, bis es mehr als ein Jahrzehnt später Open-Source war, und jetzt ist es eine Mainstream-Sprache.
Sowohl Go als auch Scala sind relativ junge Sprachen im großen Stil der Dinge, und es ist durchaus möglich, dass die Sprache, die in der Firma Ihres Kollegen verwendet wird, älter ist als beide. Was er tun muss, ist nach seiner Geschichte zu fragen, warum es entstanden ist und warum es weiterhin verwendet wird.
Ich habe das Jahrzehnt zwischen 2003 und 2013 für ein Unternehmen gearbeitet, das eine branchenspezifische Umgebung mit einer eigenen Sprache, die ihre Wurzeln in den späten 1970er Jahren hat, umfassend genutzt hat. Während einige neuere Sprachen möglicherweise besser geeignet waren, um sie zu ersetzen (und Haken für sie wurden im Laufe der Zeit eingepfropft), hatte diese Branche eine ausreichend große Investition in sie und eine riesige Menge an bewährten Codes, so dass es einfach keinen guten Business Case gab für den Wechsel zu etwas anderem.
quelle
Ich habe das schon mal gesehen. Es funktioniert nie gut. Einige Leute haben einen "hier nicht erfundenen" Komplex. Normalerweise läuft ein Unternehmen herum und erfindet das Rad neu.
Denk darüber nach. Diese neue Sprache bricht wahrscheinlich die ganze Zeit. Zwischen einem Parser, Compiler, VM, Linker, was auch immer ... Es gibt jetzt Tausende von Fehlern, mit denen die Leute Stunden damit verschwenden werden, zufällige Probleme zu debuggen. Alles für das, was sie für nötig halten, was andere Sprachen nicht haben.
C / C ++ wird verwendet, um Betriebssysteme wie alle zu schreiben. Und doch dachte jemand, sie brauchten etwas anderes.
quelle