Warum Pascal?

Für Fragen von Einsteigern und Programmieranfängern...
Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Warum Pascal?

Beitrag von Komoluna »

Da wollte ich doch auch eine sinnvolle "Verteidigung" der Pascal'schen Sprache vorbringen, aber irgendwie gibts alle meine Argumente schon in den Beiträgen meiner Vorredner/Vorposter.

Also: Übersichtlich, kompiliert schnell wegen ppu usw und besitzt viel deskriptivere Fehlermeldungen als andere Compiler.
Stimme ich vollkommen zu.

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Warum Pascal?

Beitrag von mschnell »

Mathias hat geschrieben:Nur ist man bei Android auf diesen Schrott angewiesen.
Nö. Eine Variante von FPC kann Java-Byte-Code / Dalvic-Word-Code erzeugen, der dann Prozessor-unabhängig auf Android läuft.

(Hab ich noch nicht ausprobiert.)

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Warum Lazarus ?

Beitrag von mschnell »

Um die originale Frage "Warum Pascal?" zuerweitern:

Lazarus und Delphi bedeuten ja nicht nur "Pascal", sondern

- Objekt-Orientiertes Programmieren
- Event-Orientiertes Programmieren
- RAD

Und bei Lazarus:

- Architektur-Unabhängigkeit
- Plattform-Unabhängigkeit

Diese Punkte sollten in diesem Zusammenhang vielleicht auch diskutiert werden

Objekt-Orientiertes Programmieren:
Das ist für nicht ganz kleine Programmteile unumgänglich, um dicht die Übersicht zu verlieren Macht C++ auch gut. Pascal hat kann keine multiple Inheritance, was manchmal bemängelt wird, aber multiple Inheritance führt auch leicht zu Verwirrung.


Event-Orientiertes Programmieren:
(aller UserCode wird in "Events") ausgeführt, die von der Infrastruktur zu den passenden Zeitpunkten aufgerufen)
Hierdurch ist in vielen Fällen eine Thread-Programmierung nicht notwendig, was die Übersichtlichkeit sehr steigert. Wenn man aber Threads braucht (z.B. in high-performance Anwendungen) ist manchmal im Weg, dass man im Mainthread anders (eben Event-Orientiert) arbeiten muss als in de n"Worker-Threads .
Lazarus und Delphi sind in dieser Kategorie vermutlich unschlagbar. Ich glaube, ADA bietet da auch etwas.


RAD:
("Rapid Application Development": Mischen der "Business-Logic" Codes mit Code, der zum User-Interface gehört)
Das ist zwar zum Programm-Erstellen und Debuggen toll, aber nicht wirklich "professionell" und führt leicht zu Problemen, wenn die Projekte wachsen und - vor allem - sich in verschiedene Variante weiterentwickeln. Heute ist RAD nicht mehr besonders angesagt und die meisten Systeme favorisieren anders Arbeiten .


Architektur (CPU) - Unabhängigkeit:
Gut bei Lazarus, Schlecht bei Delphi, optimal bei C und allen Sprachen, die auf "Engines" laufen (C#, Java, Python, PHP, ...)

Plattform (OS) - Unabhängigkeit
Gut bei Lazarus, Schlecht bei Delphi, optimal bei C und allen Sprachen, die auf "Engines" laufen (C#, Java, Python, PHP, ...)


-Michael

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Warum Lazarus ?

Beitrag von mse »

mschnell hat geschrieben: RAD:
("Rapid Application Development": Mischen der "Business-Logic" Codes mit Code, der zum User-Interface gehört)
Das ist zwar zum Programm-Erstellen und Debuggen toll, aber nicht wirklich "professionell" und führt leicht zu Problemen, wenn die Projekte wachsen und - vor allem - sich in verschiedene Variante weiterentwickeln. Heute ist RAD nicht mehr besonders angesagt und die meisten Systeme favorisieren anders Arbeiten .
Man kann sehr wohl auch mit RAD perfekt User-Interface und Programm-Logik trennen. Stichworte dazu sind z.B. TDataModule und die DB- und In-Prozess MSEifi Komponenten von MSEide+MSEgui.

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

Re: Warum Pascal?

Beitrag von Mathias »

Was sich nicht weiterentwickelt ist recht schnell Schrott von Gestern, es sei denn es ist schon Vollkommen...
Dann sieht es für fpc/Lazarus recht gut aus, da wird momentan immer weiter entwickelt.

In der heutigen Zeit braucht man Sprachen, die aufgrund ihrer Struktur und Syntax und mit Hilfe vom Compiler, der während der Kompilierung einige Tests macht,
Ich bin kein Freund von Java, aber an diesem Punkt muss ich es trotzdem loben, wenn man mit Eclipse ein Java-Programm schreibt, dann wird währen des Schreibens in der IDE schon angezeigt, wen man einen Syntax-Fehler macht.
Wer weiss, vielleicht wird eines Tages, die Lazarus auch können. :wink:
Bin mal gespannt wie sich die Sprache in 10 bis 20 Jahren verbreitet hat, falls das überhaupt passiert.
Da bin ich auch gespannt.
Wen man 20 Jahre zurück denkt, hat sich einiges positives, wie auch negatives getan.
Turbo-Pascal hat zB. mit Lazarus einen sehr guten Nachfolger bekommen.
C/C++, da hat sich irgendwie nicht viel bewegt.
Dafür ist etwas neues gekommen, Java, das nach meiner Meinung mit seinem Bit-Code wider zurück ins GW-BASIC Zeitalter gegangen ist.
Java und GW-BASIC ist in Grunde genau das gleiche, beide brauchen eine Laufzeitumgebung, das sie ihren Bit-Code interpretieren können und somit sehr viel CPU-Power verschwenden.
Das einzige, die IDE ist besser geworden.

Was die Android-Entwickler gedacht haben, das sie in ihren Geräten so eine Schrott verbauen, auf dem alles auf Java basierst.
Ich könnte mir vorstellen, das dies ARM-Geräte richtig schnell wären, wen sie nativen Code bekämen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Warum Lazarus ?

Beitrag von mschnell »

mse hat geschrieben:Man kann sehr wohl auch mit RAD perfekt User-Interface und Programm-Logik trennen.
Man kann. Tut aber keiner beim Start der Arbeit an einem Projekt. Und später ist dann der Aufwand zu hoch.
mse hat geschrieben:MSEifi Komponenten
Unser Lieblings-Thema :)

Scheint in der Tat eine ideale Brücke zwischen "RAD" (in dem von mir verwendeten Sinn) und "professioneller" Projekt-Gestaltung zu sein.

Die Idee hat leider bei den Lazarus-Architekten keine Freunde :(

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Warum Pascal?

Beitrag von mschnell »

Mathias hat geschrieben:Dann sieht es für fpc/Lazarus recht gut aus, da wird momentan immer weiter entwickelt.
Leider teilweise mit chaotischen Folgen (z.B. die Übernahme der denkbar schlechten Implementierung von (Uni-) code aware Strings us Delphi).

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Warum Pascal?

Beitrag von mschnell »

Mathias hat geschrieben:C/C++, da hat sich irgendwie nicht viel bewegt.
Was ich gut finde. C ist bestens geeignet für Projekte, bei denen man - aus welchen Gründen auch immer - sehr genau definieren will, was die Maschine nachher tun soll, aber auch nicht so genau, dass man alles in Assembler schreiben müsste. Und daran hat sich nicht viel geändert.
Mathias hat geschrieben:Dafür ist etwas neues gekommen...
Neben Java sind auch andere Framework-basierende Sprachen hochgekommen. Im Desktop-Bereich scheinen mir C# und Python ziemlich interessant (wobei - soweit ich weiß - Python sowohl voll (Text-) interpretativ ausgeführt werden kann, als auch das eigene und ebenfalls (als "IronPython" das C# (CIL) Framework benutzen kann und via CIL auch voll kompiliert werden kann). Soweit ich weiß wächst die Python Gemeinde kräftig. Mit "QPython" soll Python auch "mobil" auf Android zu benutzen sein.

Auch für "Rich Web Applications" scheint Python geeignet: -> http://www.lazarusforum.de/posting.php? ... 55&p=85726

Noch bin ich mit Delphi und Lazarus ganz glücklich (mit mse wäre ich vermutlich glücklicher nur leider zu faul zum Umstieg). Aber Python erscheint mir mittelfristig sehr interessant.

-Michael

deadc0de
Beiträge: 56
Registriert: So 24. Jan 2016, 18:31
OS, Lazarus, FPC: Windows(10,8.1,7), Archlinux, Debian
CPU-Target: 64Bit + 32Bit
Wohnort: Winnenden
Kontaktdaten:

Re: Warum Pascal?

Beitrag von deadc0de »

Python ist halt mit einer C kombination sehr mächtig. Und mit TKinter hat man ein GUI Framework, das wirklich einfach zu händeln ist und das auch Plattform unabhängig ist. Das Merkwürdige ist nur, das Python nicht gerne von Leuten verwendet wird, die C mögen, das ja die Klammern fehlen. Die Klammern sind da aber nicht nötig, da man über Einrückungen arbeitet, was den Code sehr strukturiert werden lässt. Ich Persönlich habe noch nicht viel mit Python gemacht, aber die Syntax kann ich und ich nutze den Liveinterpreter manchmal als Taschenrechner oder zum Testen kleinerer Anwendungen. Der Vorteil gegenüber Java ist, das es halt die sauber Strukturierte Sprache ist und Sie ist schneller, vor allen wenn man die .py Datei in eine exe umwandelt, was natürlich nur unter Windows geht. Unter Linux und Unix ist Python sehr viel schneller, da es dort meist besser Implementiert worden ist. Außer bei Ubuntu und seinen Kindern, da läuft teils so einiges schief.
Wissen ist Macht und ich weis, das ich nichts weis

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

Re: Warum Pascal?

Beitrag von Warf »

Mathias hat geschrieben:C/C++, da hat sich irgendwie nicht viel bewegt.
Doch klar allein wenn man den Unterschied zwischen C++11 und C++98 ansieht, das sind mittlerweile zwei komplett verschiedene Sprachen.
Was ich gut finde. C ist bestens geeignet für Projekte, bei denen man - aus welchen Gründen auch immer - sehr genau definieren will, was die Maschine nachher tun soll, aber auch nicht so genau, dass man alles in Assembler schreiben müsste. Und daran hat sich nicht viel geändert.
Pascal kann genausogut maschinennah arbeiten, der Hauptvorteil an C ist dass man relativ wenig code braucht, und der GCC einfach ziemlich gut optimiert.

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

Re: Warum Pascal?

Beitrag von Mathias »

mschnell hat geschrieben:
Mathias hat geschrieben:Nur ist man bei Android auf diesen Schrott angewiesen.
Nö. Eine Variante von FPC kann Java-Byte-Code / Dalvic-Word-Code erzeugen, der dann Prozessor-unabhängig auf Android läuft.

(Hab ich noch nicht ausprobiert.)

-Michael
Dann kann man genau so gut direkt in Java schreiben.
Der Java-Byte-Code, ist welches der grösste Bremsklotz auf Android ist.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten