Wieso nicht Lazarus ?

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Wieso nicht Lazarus ?

Beitrag von Mathias »

Mit ist schon seit längerem aufgefallen, das die meisten Open-Source-Software mit C/C++ erstellt wurden.
Wen man so ein Paket kompilieren will, kommen meisten Fehler, weil gewisse Pakete fehlen.
Vielfach muss man aufgeben, weil man nicht mehr weiter kommt.

Wieso wird so selten Lazarus verwendet ?

Die Welt wäre doch dort so einfach, wen man keine exotischen Komponenten verwendet, lassen sich die Pakete auf Anhieb kompilieren, egal ob Windows, Linux oder Mac.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Wieso nicht Lazarus ?

Beitrag von m.fuchs »

Mathias hat geschrieben:Mit ist schon seit längerem aufgefallen, das die meisten Open-Source-Software mit C/C++ erstellt wurden.
[...]
Wieso wird so selten Lazarus verwendet?


Wieso verwenden soviele Menschen Windows statt Linux? Warum fahren soviele Menschen Auto statt Fahrrad? Warum schießen sich Menschen wegen Nichtigkeiten gegenseitig über den Haufen. Warum zündet jemand Unterkünfte für Menschen an, die gerade einem Krieg entkommen sind?
Die Menschheit in ihrer Gesamtheit scheint immer mehr zu verdummen. Und im Gegensatz zu dem was uns eine Bierwerbung sagt, setzt sich was gut ist nicht durch.

Mathias hat geschrieben:Wen man so ein Paket kompilieren will, kommen meisten Fehler, weil gewisse Pakete fehlen.

Das ist nicht das Entscheidende und kann dir auch mit Lazarus passieren. Was für mich als wichtigsten Punkt zählt: die Sauberkeit einer Sprache. Und da ist in der Tat immer mehr ein Abwärtstrend zu beobachten. C ist noch nicht mal das schlimme Ende, danach kommen noch Skriptsprachen wie JS (in der ja neuerdings ganze Webserver implementiert werden) oder mein Lieblingshassobjekt PHP.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Wieso nicht Lazarus ?

Beitrag von Mathias »

Die Menschheit in ihrer Gesamtheit scheint immer mehr zu verdummen.

Da Gefühl habe ich auch, besonders die Finanzwelt wird immer blöder.
Technisch ist der Mensch ein Genie, aber was Geld anbelangt, mit dem kann er nicht umgehen, die Gier macht ihn kaputt.

Und da ist in der Tat immer mehr ein Abwärtstrend zu beobachten. C ist noch nicht mal das schlimme Ende,

C war schon zur Turbo-Pascals Zeiten, viel unübersichtlicher als Pascal.


danach kommen noch Skriptsprachen wie JS

JS, ist eine Katastrophe, dies ist schlimmer als dazumal GW-Basic.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

AndreasMR
Beiträge: 98
Registriert: Di 4. Aug 2015, 15:29
OS, Lazarus, FPC: Linux, Raspbian, Windows
CPU-Target: 64/32 Bit

Re: Wieso nicht Lazarus ?

Beitrag von AndreasMR »

Hallo zusammen,

in einem anderen Computerforum, das nicht auf eine Programmiersprache festgelegt ist, stellen häufiger Neulinge die Frage, welche Programmiersprache sie lernen sollen.

Ich antworte darauf immer wieder, dass sie sich Quellcode verschiedener Programmiersprachen anschauen sollen und dass die Erfahrung zeigt, dass die Programmiersprachen leichter zu erlernen sind, in denen der Quellcode besser zu verstehen ist.

Wenn man sich die Sprachdefinition von Niklaus Wirth Ende der 1960er Jahre für Pascal anschaut (auf dem letztlich auch Free Pascal aufsetzt), dann setzt diese Programmiersprache in puncto Verständlichkeit, Klarheit, Widerspruchsfreiheit ganz neue Maßstäbe.

Als ich Ende der 1980er gemerkt habe, dass BASIC zwar gut ist, um einen Einstieg in die Programmierung zu finden, richtig brauchbare Anwendungen damit aber nicht wirklich zu programmieren sind, habe ich mich auch umgeschaut, welche Sprachen es sonst so gibt.

Schnell wurde mir klar, C und ähnliche Sprachen auf der einen Seite - Pascal, Modula, Oberon etc. auf der anderen Seite. Dazwischen Sprachen wi Draco und Icon, die syntaktisch sich Elementen beider "Welten" bedienen.

Damals wurden in Computerzeitschriften noch seitenweise Programmlistings veröffentlicht. Bei den meisten C-Programmen war ich nicht in der Lage, ohne tiefgehende Code-Analyse erkennen zu können, wo eine irgendwo begonnene Schleife endet.

K&R-Stil: ist am weitesten verbreitet

Code: Alles auswählen

 
for (int i=1;i<10;i++) {
... ca. 100 Zeilen Code mit wechselnden Einrückungen
}
 

hat mich regelrecht irre gemacht. Auf einen Blick war nicht sofort klar, wo die Schleife zu } begonnen hat. Bei einem Dreizeiler sieht man's - aber bei Hunderten von Zeilen innerhalb der Schleifen wird es schwierig bis unmöglich, Anfang und Ende von Schleifen zuzuordnen.
Anmerkung: In C ist die Anordnung von { und } noch nicht Gegensatnd der Syntax-Prüfung. In der neuen Programmiersprache "go" bzw. "goaldi" ist nur noch der - für mich nicht lesbare - K&R-Stil syntaktisch erlaubt. Das heißt, struktiertes Programmieren wird nicht mehr unterstützt - und demzufolge auch nicht mehr erwünscht.

Whitesmith-Stil: habe ich noch nie gesehen

Code: Alles auswählen

 
for(int i=1;i<10;i++)
        {
            ... Anweisungen
        }
 

hat schonmal große didaktische Vorteile, da zusammengehörige { und } in der gleichen Spalte stehen. Aber so programmiert niemand in C.

Allman-Stil: habe ich auch noch nie gesehen - gefällt mir persönlich am Besten

Code: Alles auswählen

 
for(int i=0;i<10;i++)
{
    ... Anweisungen
}
 


Damals (um 1990) habe ich mich dann für die Programmiersprache Draco entschieden, dessen Entwickler Chris Gray ein Verfechter des Allman-Stils war. Diesen Stil habe ich verinnerlicht. Meine Programme sind aufgrund dessen extrem gut lesbar.

Tja, ein Pascal-Programmierer kennt dann auch nichts Anderes (als den Allman-Stil), weshalb ein Pascal-Programm fast automatisch gut lesbar ist. Zu jedem begin gehört ein end - in der gleichen Spalte angeordnet ist das nur noch köstlich!

In den 1980er und 1990er Jahren gab es übrigens ungefähr genauso viele C/C++ - wie Pascal-/Delphi-Entwickler. Irgendwann haben sich die Marktanteile verschoben. Im Informatik-Studium habe ich übrigens noch Pascal lernen dürfen. Heute führt Pascal etc. ein Schattendasein in Studium und Ausbildung.

Eine Ursache liegt meiner Meinung nach darin, dass C/C++ sehr schnell von Microsoft kommerziell verwertet wurde und entsprechend vermarktet wurde. Pascal / Delphi zwar auch. Aber Borlands Turbo Pascal / Delphi hat dann zu oft den Eigentümer gewechselt. Letztlich ist wohl auch daran ein Teil des Vertrauens abhanden gekommen, das erforderlich ist, um sich bei größeren Projekten für eine bestimmte Programmiersprache zu entscheiden.
Es gibt mehr Bücher zum Erlernen von C/C++ als von Pascal & Co.

Zum Glück haben sich in den letzten 10 bis 15 Jahren Programmierer zusammengetan, die eine Riesen-Anstrengung unternommen haben, auf Open-Source-Basis Programmiersprachen (u.a. das Lazarus-Projekt, Bloodshed, ...) zur Verfügung zu stellen. In gewisser Hinsicht haben wir wieder den Stand Ende der 1960er Jahre erreicht, denn sowohl Kernigan&Ritchie als auch Niklaus Wirth haben ihre Programmiersprachen im Quellcode und kostenlos zur Verfügung gestellt. Dies eröffnet es Schülern und Studenten, in brauchbare Programmiersprachen hineinzuschnüffeln, ohne dafür viel Geld ausgeben zu müssen. Den momentanen Abschluss (Zwischenstand) dieser Entwicklung sehe ich in kostengünstigen Einplatinen-Computern wie den Raspberry Pi, der in nahezu allen gängigen und exotischen Programmiersprachen programmiert werden kann, um letztlich jedem den extrem preiswerten Einstieg in die Programmierung zu ermöglichen.

Fazit: Strukturierte Programmiersprachen (Pascal, Delphi, Lazarus - Modula, Oberon - Icon - Ada,...) lassen sich gegenüber C/C++ wesentlich leichter erlernen und verstehen. Quellcode in diesen Programmiersprachen lässt sich sehr leicht verstehen, Fehler lassen sich leichter aufspüren. Auch die Wartung der Software ist bei diesen Sprachen wesentlich einfacher. Es ist Sache von uns Entwicklern, in der Industrie darauf einzuwirken, dass zunächst kleine und später größere Projekte auf Basis von Lazarus statt C/C++ entwickelt werden.

C dagegen hat den Sprung geschafft, Assembler als Programmiersprche zur Entwicklung von Betriebssystemen abzulösen.


Beste Grüße

Andreas
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Wieso nicht Lazarus ?

Beitrag von Warf »

Nun dass ist schlicht weg der Popularität von C geschuldet, welches sich nunmal durchgesetzt hat

Ich denke zunächst einmal hat das historische Gründe
C und Pascal sind komplett unterschiedlich entwickelt wurden, und sind so ziemlich das gegensätzlichste was man sich innerhalb der Imperativen Programmierung vorstellen kann.

C wurde zur Entwicklung des Betriebsystems Unix entwickelt, und der Hauptfokus dabei lag auf der einfachen und kurzen Lösung von Problemen.
Pascal hingegen wurde (etwa zur selben Zeit wie C) von Niklaus Wirth an der ETH entwickelt um Studenten das Strukturierte Programmieren beizubringen.

Während Pascal also sich durch Strikte Syntax und Castregeln charakterisiert, ging c eher in Richtung effizientes entwickeln. Damals hatte Pascal z.B. keine Bitoperatoren oder Funktionen mussten einen Wert zurückgeben, um mal 2 Punkte zu nennen.

Mittlerweile ist das zwar nicht mehr so krass, aber dennoch benötigt man für viele dinge mit Pascal einfach mehr Zeilen Code, ein schönes Beispiel wäre:
in C:

Code: Alles auswählen

while ((bytes_read = read(filehandle, &my_struct_array[i++], sizeof(my_struct))) == sizeof(my_struct)) {
  //do something
}

in Pascal

Code: Alles auswählen

BytesRead := Read(FileHandle, MyStructArray[i], SizeOf(MyStruct));
While BytesRead = SizeOf(MyStruct) do
begin
  inc(i);
  // Do Something
  BytesRead := Read(FileHandle, MyStructArray[i], SizeOf(MyStruct));
end;


Der C Code ist da schon deutlich kürzer.

Ich schätze das war der Hauptgrund warum sich C so Etabliert hat.

Nach wie vor ist Pascal eigentlich eher im Didaktischen Bereich, an Schulen oder Universitäten zu finden, während C-Artige Sprachen eher bei Hobbyentwicklern zum Einsatz kommen

Zum anderen ist das auch eine Frage der Verbreitung, grade was man als Anfänger wählt. Wer mit Delphi oder FreePascal anfängt wird wohl auch dabei bleiben, wer mit C/C++ anfängt für den werden wohl eher C-Artige Sprachen infrage kommen.
Da sind wir nun bei einer Frage der Bekanntheit, als Anfänger entscheidet man sich ja für eine Sprache vor allem aufgrund von Informationen, die man so aufschnappt, oder irgendwo ließt.

FreePascal ist nicht sonderlich bekannt. Der den meisten eher bekannte Pascal Ableger ist wohl Delphi, und wer sich nur Oberflächlich informiert wird zunächst mal herausfinden, dass eine halbwegs moderne Version von Delphi eine ganze Stange Geld kostet, ab da an ist dass schon für die meisten mit Pascal vorbei, während dessen gibt es zu C/C++ alles direkt kostenlos zu finden, sei es Microsofts Visual Studio, Apples Xcode, oder einfach die Tatsache das auf nahezu jeder (oder tatsächlich jeder) Linux Distribution bereits die gcc mit dem gnu c Compiler und dem g++ vorinstalliert ist.


Außerdem ein Faktor sind größtenteils Falsche oder schlicht weg ungenaue Informationen im Internet. Ich lese immer wieder in Foren o.ä. auf die Frage: Welche Programmiersprache Antworten wie: Am besten fang mit C#/VB/Java/Python an, die Sprache ist gut für Einsteiger, und dann lern C++ das ist die beste Sprache, damit kannst du alles machen
oder:
C++ ist die Umfangreichste/Schnellste/Mächtigste/Beste Sprache, aber dafür auch schwer.

Es gibt nahezu unzählbar viele Programmiersprachen, wenn man sich aber nur oberflächlich informiert wird bald das Bild vermittelt, dass es nur 3 Sprachen gibt, C#, für Einsteiger, Java für Crossplattform und C++ was alles kann. Und dabei hat es Pascal noch gut, Pascal wird ab und an mal erwähnt, andere Sprachen wie z.B. Ada, Smalltalk o.ä. sind den vielen, grade jüngeren Einsteigern komplett unbekannt


Auch natürlich ein Grund ist, viele jüngere Leute die mit dem Programmieren anfangen denken sich auch oft: Ich mag Computerspiele, ich will Programmieren lernen, und wenn man sich mit Spielentwicklung und größeren Engines auseinander setzt ist C++ einfach eine Konstante, daran wird sich auch nicht so schnell was ändern.

Oftmals höre/lese ich auch solche Sachen wie: Pascal das ist doch schon ur alt. Vor allem von Leuten die in der Schule in Berührung mit Delphi 5-7 gekommen sind, welche natürlich mittlerweile schon länger outdated sind, oder die irgendwo mal was von TurboPascal gelesen/gehört haben, dessen Zeiten auch schon etwas länger vorbei sind. So etwas wie C++ 11 bzw C++ 2011 (bzw 14) oder Visual C++ 2015 klingt da natürlich deutlich aktueller.

Obwohl es nach wie vor große Programme gibt die in Pascal/Delphi geschrieben sind, z.B. Skype, so wird dennoch zunächst der Eindruck vermittelt, dass man ohne C oder C++ letztlich nicht weit kommt.

Was auch noch dazu kommt ist das Pascal zu ähnlich zu anderen Sprachen ist, um durch seine Vorteile zu überzeugen. Den meisten wird grade Delphi sehr viele Ähnlichkeiten zu .Net auf fallen (was natürlich auch klar ist da .Net extrem durch die RTL und VCL beeinflusst wurde), denn es besitzt viele Komponenten und Klassen zur einfachen Verwendung von Forms, SystemAPI's, etc, es läuft hauptsächlich unter Windows, es bietet einfache Möglichkeiten zur erstellung Grafischer Oberflächen. Die wirklichen Eigenheiten, weswegen z.B. ich Pascal (sei es nun Delphi oder FreePascal) den anderen Sprachen vorziehe lernt man erst wenn man schon ein gutes Stück mehr Programmieren gelernt hat.


Ich selbst kam auf Pascal durch die Tatsache dass mir die C Syntax mit den Geschweiften klammern, dem Case Sensitiven Bezeichnern und vor allem der oftmals extrem unleserliche Code mir schlicht weg nicht zusagte. Also hatte ich zunächst mit Visual Basic angefangen. Da ich wusste dass ich einige Jahre später in der Schule eh mit Delphi konfrontiert werden würde, und mir VB auch nicht so ganz zusagte, habe ich letztlich zu Delphi gewechselt.

Das ist so meine Sicht warum C-Artige Sprachen so beliebt und bekannt sind, grade da ich mit meinen 21 Jahren noch zu den jungen Leuten in diesem Forum gehöre, und so ist die Situation unter den jüngeren Leuten mitbekomme

Zu guter letzt etwas was ich in einem Unternehmen (welches mit Delphi arbeitet) gesagt bekommen habe als ich dort ein Praktikum absolviert habe:
Pascal ist eine Nischensprache, die Entwickler die damit einmal richtig angefangen haben werden wahrscheinlich auch dabei bleiben, für andere sind die bekannteren Optionen wie C++, Java oder C# dennoch wohl die erste Wahl.


PS:
Noch dazu gibt es natürlich die Hardcore Linux C'ler, für die jede andere Sprache als C (selbst C++) nie in Frage kommt, aufgrund einer Reihe von Gründen die wohl nie ein normaler Mensch verstehen kann (z.B. das die Varietät an Paradigmen wie z.B. OOP, Namespaces, Generische Klassen, etc. die Programme verunstalten würde), für die würde es nie zulässig sein etwas anderes für sein Projekt zu nutzen

delphifreak
Beiträge: 23
Registriert: Di 10. Mär 2015, 19:08
OS, Lazarus, FPC: Mint 21.2 Lazrus 3 Win10/Win11 Delphi 11.x Alexandria

Re: Wieso nicht Lazarus ?

Beitrag von delphifreak »


Patito
Beiträge: 203
Registriert: Di 22. Sep 2009, 13:08
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Wieso nicht Lazarus ?

Beitrag von Patito »

AndreasMR hat geschrieben:Eine Ursache liegt meiner Meinung nach darin, dass C/C++ sehr schnell von Microsoft kommerziell verwertet wurde und entsprechend vermarktet wurde. Pascal / Delphi zwar auch. Aber Borlands Turbo Pascal / Delphi hat dann zu oft den Eigentümer gewechselt. Letztlich ist wohl auch daran ein Teil des Vertrauens abhanden gekommen, das erforderlich ist, um sich bei größeren Projekten für eine bestimmte Programmiersprache zu entscheiden.


Dabei sollte man auch nicht vergessen, dass Microsoft damals so ziemlich alle Mitarbeiter mit Gehirn von Delphi abgeworben hat.
Die Sprache hat sich dann auch dementsprechend weiterentwickelt... An Pascal hat sich in den letzten 10 Jahren viel geändert,
aber ich habe in der Zeit keinen einzigen Sprachentwickler gesehen, der annähernd kompetent genug gewesen wäre etwas an der Sprache
zu verbessern.

Soweit ich das verstanden habe, ist dann irgendwann ein Ex-Microsoftler zum Chef von Borland geworden, alle Pläne Richtung Linux
wurden abgeblasen und es wurde so viel Microsoft-Technologien in Delphi integriert wie eben gieng (J#, C#) .
Das war alles nicht sonderlich vertrauenerweckend.

Das Ergebnis ist jetzt ein FPC, das einen Kern guter Syntax hat, mit dem man arbeiten kann. Aber es gibt inzwischen darum herum
viel Syntaxwust, der von der Komplexität eher Richtung C++ geht.

Antworten