Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß??

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
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: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von mschnell »

Niesi hat geschrieben:- für Anfänger, die etwas tiefer einsteigen wollen als "Hallo Welt", ist ein Einstieg mit Lazarus optimal, weil
...

"RAD" ist da noch ein sehr wichtiger Punkt.
Man kann hiermit ganz wenigen Clicks eine rudimentäre Oberfläche bauen und dann Funktionalität in den Events einprogrammieren.
Für Anfänger absolut ideal, weil es die Hürde bis man "etwas sinnvolles laufen sieht" für kleine (und mittlere) Projekte ganz niedrig hält. Und 99 % der Projekte sin vermutlich "kleine und mittlere".

Aber "erzieherisch" unter Umständen nicht ideal, weil RAD für größere Projekte leicht zu einem Hemmschuh wird.

-Michael

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

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von Warf »

six1 hat geschrieben:Irgendwie hatte ich nie das Gefühl einer Überlegenheit anderer IDE's.


Es kommt ganz drauf an was man erwartet. Wenn man einen Code editor, Projekt Manager, Autovervollständigung und Such tools erwartet gibt es nichts an dem man bei lazarus meckern kann. Was das angeht gehört lazarus zu den besseren IDE's auf dem markt.

ABER: wenn dein workflow auf git, UML -> Code, dokumentationstools, etc. aufbaut, ist lazarus einfach nicht genug. z.B. in Visual studio kann ich mir im code den git diff mit einer vorrigen version anzeigen. In intellij IDEA kann ich UML diagramme zeichnen, die zur dokumentation in PDF's speichern, und zur nutzung direkt zu Java klassen kompilieren. Im emac mit org kann ich während dem entwickeln gleichzeitig ein pflichtenheft aufbauen.

Das alles hat lazarus einfach nicht.

Lazarus hat ein paar vorzüge,
1. es ist schnell. In der zeit in der VS startet und ein projekt lädt kann ich das in lazarus 3 mal machen.
2. Lazarus ist einfach. Da durch das so viele extras wegfallen (und viel auch erst mit packages instaliert wird) ist ein sauberes frisch installiertes lazarus übersichtlich und einfach reinzukommen
3. Lazarus verändert sich nicht so extrem. Von visual studio 2015 auf visual studio 2017 hat sich extrem viel geändert, z.B. Hotkeys. Für den workflow natürlich absoluter selbstmord
4. Lazarus hat ohne konfiguration alle benötigten features. Grade im vergleich zu Open Source IDE's für C und C++ (z.B. Code::Blocks) hat lazarus so sachen wie Jump to Definition (strg+klick) und ähnliche features ohne das man sie erst vollständig konfigurieren muss

Aber grade im vergleich zu Visual Studio (was mMn. die mit abstand beste IDE auf dem markt ist) fehlen mir doch ein paar sachen:
1. On the fly fehlererkennung
2. Code in code view, wenn ich ne definition einsehen will kann VS den code in einem kleinen subfenster im aktuellen editor öffnen, so das man nicht durch 10 dateien springen muss
3. Erweiterbarkeit, Lazarus ist sehr erweiterbar, benötigt aber recht viel einarbeitung. Visual studio extensions kann man viel einfacher schreiben
4. Erweiterungen, folgt direkt aus 3 und durch eine riesen community, gibts für VS einfach alles als addon.

Das sind so die sachen die mir direkt auffallen. Grade wenn es um kleinere features geht stellt VS lazarus komplett in den schatten, weil VS schlicht weg viel mehr anbietet

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von Timm Thaler »

Warf hat geschrieben:z.B. in Visual studio kann ich mir im code den git diff mit einer vorrigen version anzeigen. In intellij IDEA kann ich UML diagramme zeichnen, die zur dokumentation in PDF's speichern, und zur nutzung direkt zu Java klassen kompilieren. Im emac mit org kann ich während dem entwickeln gleichzeitig ein pflichtenheft aufbauen.


Witzig! Warum kannst Du dann in Idea keinen git-Diff machen, und in VS kein Pflichtenheft und warum macht Dir der emac keine UML Diagramme? Merkste was?

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

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von Warf »

Timm Thaler hat geschrieben:
Warf hat geschrieben:z.B. in Visual studio kann ich mir im code den git diff mit einer vorrigen version anzeigen. In intellij IDEA kann ich UML diagramme zeichnen, die zur dokumentation in PDF's speichern, und zur nutzung direkt zu Java klassen kompilieren. Im emac mit org kann ich während dem entwickeln gleichzeitig ein pflichtenheft aufbauen.


Witzig! Warum kannst Du dann in Idea keinen git-Diff machen, und in VS kein Pflichtenheft und warum macht Dir der emac keine UML Diagramme? Merkste was?


Diff und orga kram gibt es in allen 3, ich weiß nur von der Benutzung das es i vs echt gut ist, während ich das diff in emacs und idea nie ausprobiert hab. Selbes für uml Diagramme, vs kann das auch, aber außerhalb von Java hab ich’s noch nie gebraucht, daher wollte ich keine Features anpreisen die ich nicht ausprobiert habe

Und selbst wenn nicht gibt’s das als addon. Bei Lazarus gibt’s das weder vo Haus aus noch als package

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von pluto »

Und selbst wenn nicht gibt’s das als addon. Bei Lazarus gibt’s das weder vo Haus aus noch als package

Vielleicht braucht es auch keiner? Dafür gibt es ja Externe Programme...
Eine IDE sollte auch nicht über befrachtet werden.
MFG
Michael Springwald

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

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von Warf »

pluto hat geschrieben:
Und selbst wenn nicht gibt’s das als addon. Bei Lazarus gibt’s das weder vo Haus aus noch als package

Vielleicht braucht es auch keiner? Dafür gibt es ja Externe Programme...
Eine IDE sollte auch nicht über befrachtet werden.


Ja und nein. Persönlich stimme ich da voll und ganz zu, ich hab viel leiber eine sammlung an hochspezialisierten Programmen die sehr flexibel ist, als den versuch die eierlegende wollmilchsau zu implementieren die alles ein bisschen kann. Vor allem in der Kommandozeile ist das sehr angenehm, da man durch bash scripte die einzelprogramme dann zu jeder beliebigen aufgabe verknüpfen kann. So benutze ich auch viel lieber git über die Konsole als eingebaute git komponenten, da die meist deutlich weniger flexibel sind. Außerdem ist das auch sehr erschlagend, wenn ich in Intellij IDEA mein java projekt debuggen will, muss ich erst ein Debug profil anlegen. Dafür kann ich ein Profil von einem Template erstellen, und es gibt allein irgendwie 20 templates. Als ich IDEA das erste mal geöffnet hab hab ich fast ne halbe stunde gebraucht nur um das programm debuggen zu können. Für den pro der jede ecke von IDEA kennt bestimmt toll, ich bin bis heute damit überfordert.

Auf der anderen seite kann man natürlich argumentieren das das genau der sinn einer IDE ist, alle Tools zum entwickeln zu vereinen, und ich kenn genug leute die schwören auf die tools in VS oder IDEA. Vor allem sind diese Tools oft Open Source addons die community entwickelt werden, und enthalten damit oft die schnittmenge an funktionalität die fast jeder braucht. So hat magit für emacs z.B. die möglichkeiten zu pullen, pushen, checkouten, etc. aber für speziellere tasks wie hard resets (die man auch mal nicht ausversehen machen sollte) muss man dann wieder in die konsole gehen. Somit wird die IDE nicht so sehr überladen, aber die wichtigsten tools für den Workflow sind trozdem vorhanden.
Und ich hab mir auch sagen lassen, für so ein richtiges Enterprise Java projekt, welches aus tausenden submodulen besteht, an dem hunderte entwickler sitzen, das geht ohne IDE's wie intellij oder Eclipse mit ihren tausenden orga tools, CI integration, etc. einfach überhaupt nicht mehr.

Persönlich wie gesagt bin ich kein fan von großen IDE's, zum einen brauchen sie ewig zum laden und sind riesig, zum anderen führt das auch schnell zu einem "Elfenbeinturm" den man sich aufbaut, sodass man nur genau mit der IDE programmieren kann die man benutzt, und auch nur genau in der Konfiguration die man sich selbst gestellt hat. Ich kann aber genausogut leute verstehen die sagen das sie alles in ihrer IDE haben wollen was zum workflow gehört und die damit eventuell auch produktiver sind.
Wenn möglich vermeide ich sogar IDE's komplett, also z.B. in C, C++ oder Python. Für Lazarus braucht man die IDE allerdings, für das package management, sowie für den Formulareditor. Währe das lazbuild kommandozeilenprogramm nicht so vollends scheiße, würde ich für nicht GUI anwendungen auch kein lazarus mehr verwenden

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von pluto »

Persönlich wie gesagt bin ich kein fan von großen IDE's, zum einen brauchen sie ewig zum laden und sind riesig, zum anderen führt das auch schnell zu einem "Elfenbeinturm" den man sich aufbaut

Sowas müsste Modul weise passieren, dass einige Grundmodule gleich beim Start Geladen werden und andere erst später, wenn sie wirklich gebraucht werden.
MFG
Michael Springwald

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

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von Warf »

pluto hat geschrieben:Sowas müsste Modul weise passieren, dass einige Grundmodule gleich beim Start Geladen werden und andere erst später, wenn sie wirklich gebraucht werden.


Ja in Visual Studio geht das noch relativ schnell, ich glaube die machen das auch so, aber z.B. Eclipse wird mit vielen addons richt langsam.

Auch sehr gut ist Visual studio Code, das verzichtet auf all die High end features und liefert einen Grundlegenden editor der für fast alle gängigen Sprachen addons hat die von Microsoft selbst gestellt werden, die man installieren kann wie man sie braucht und dazu gibts noch ne sehr lebendige Open Source community.

Aber ich muss sagen grundsätzlich bin ich mit Lazarus als IDE sehr zufrieden. Unter den freien Open Source IDE's würde ich sie als eine der besten bezeichnen, aber bei Visual Studio merkt man einfach das viel mehr Arbeit und Geld rein investiert wird.

Einige features wären aber echt ganz nett. Visual Studio hat z.B. automatische Fehlererkennung. Zwar sind die meißten Projekte von mir nicht so groß das ich nicht mal eben Kompilieren drücken kann um Fehler zu finden, aber Visualstudio zeigt dir beim Tippen Fehler, Warnungen und Hinweise an, sowie tipps, z.B. wenn du einen tippfehler drin hast, was du eventuell meinen könntest (mit direktem hotkey zum fixen). Oder einen Performance Monitor, der dir Ramauslastung und Profilingergebnisse zeigt.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von pluto »

Ja in Visual Studio geht das noch relativ schnell, ich glaube die machen das auch so, aber z.B. Eclipse wird mit vielen addons richt langsam.

Bei der Arduino IDE sollten sie das auch tun, ich weiß nicht wie sie das machen, aber es ist träge. Ich habe mal alle Config Dateien eingelesen das ging deutlich schneller und daraus habe ich ein Menu gebaut. Bei Lazarus dauert der Start bei mir auch recht lange... hier passiert das wohl auch nicht.

rücken kann um Fehler zu finden, aber Visualstudio zeigt dir beim Tippen Fehler, Warnungen und Hinweise an, sowie tipps, z.B. wenn du einen tippfehler drin hast

Das finde ich immer richtig Nervig. Zum ersten mal ist mir das in der Processing IDE aufgefallen.
Klar, dass ein Getippter Befehl erst falsch ist, wenn er noch nicht zu ende geschrieben wurde. Ich tippe zwar sehr schnell, aber so schnell wie die Live Erkennung Funktioniert nun auch wieder nicht.
MFG
Michael Springwald

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von six1 »

...eben, meine ich ja auch, mit Lazarus sind wir da schon verwöhnt :mrgreen:
Gruß, Michael

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von af0815 »

Vor allen muss man sich die verschiedenen Ebenen ansehen. Wer ist für was Zuständig, was ist IDE was ist Runtime.

Zu pas2js und dem Design. Es gibt kein direktes Widgetset für die Webanwendung. Wenn ich jetzt ein natives Androidelement nehme, dann muss ich dessen Verhalten wieder in der IDE emulieren. Nehme ich ein CustomDrawn Element, so sieht das wieder wie ein Fremdkörper in Android aus. Eine frustierende Zwickmühle für den Entwickler. Martin Schreiber hat das versucht zu durchbrechen, indem er alles Customdrawn macht.

Nehme ich jetzt die nativen Android element und emuliere das in Lazarus, dann stellt sich die Frage, welche Android version. Da wird ja ein Design nach dem anderen erzeugt und verworfen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von Timm Thaler »

six1 hat geschrieben:...eben, meine ich ja auch, mit Lazarus sind wir da schon verwöhnt


Wie mans nimmt. Wenn ich AVR Embedded für Lazarus installieren will, ist das selbst mit FPCupdeluxe noch sehr "Expertenwissen", dauert mitunter schonmal ein Stündchen, ist ein Sackgang, wenn man es für mehrere Subarchs (verschiedene ATmega, ATtiny) einrichten will und man hat gute Chancen sich die Installation beim nächsten Update zu zerschießen, weil mal wieder irgendwelche Pfade ins Leere laufen. Und dann habe ich immer noch keinen Uploader, sondern muss mir AVRdude und AVR-Burn-o-mat installieren, das veraltete Configfile des Burn-o-mat für moderne ATmegas anpassen...

Die Arduino IDE lade ich mir runter, installiere sie und kann loslegen. Wenn das so aufwendig wäre wie den Crosscompiler für AVR Embedded zu installieren hätte von Arduino nie jemand was gehört.

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von six1 »

Timm, das liegt vielleicht daran, dass dies nicht viele "benötigen" und damit nicht verbreitet ist.
Im "Kerngeschäft" verwende ich Lazarus als eigenständige Installationen auf dem jeweiligen Betriebssystem (Win, Linux -> i386, amd64, Arm) und compiliere dort den identischen Quellcode für alle Systeme.
Das ergibt nach meinen Erfahrungen die geringsten Probleme :)
Letztendlich ist die Darstellung der Oberflächen meiner Programme zwischen den Systemen doch immer mal wieder anzupassen, weil die Darstellung geringfügige Abweichungen hat.
Bei Anwendung des Crosscompilers würde mir das entgehen...

Aber: Ja, die Erfahrung mit Atmel unter Lazarus habe ich auch gemacht... bis man da eine lauffähige IDE hat, vergeht schon einige Zeit 8)
Gruß, 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: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von mschnell »

af0815 hat geschrieben: Nehme ich ein CustomDrawn Element, so sieht das wieder wie ein Fremdkörper in Android aus. Eine frustierende Zwickmühle für den Entwickler. Martin Schreiber hat das versucht zu durchbrechen, indem er alles Customdrawn macht.

"Custom Drwan" soll aussehen wie "Custuom Drwan". Das ist "by Design" so, kann man also vielleicht optimieren, aber nicht "durchbrechen" . Deshalb ist es (falls es denn brauchbar wäre - was Martins MSE ja durchaus ist/war) 100 % portierbar, sieht aber überall aus wie ein Fremdkörper. Das ist aber nur für Entwickler frustrierend, die auf Schönheit achten (müssen) und nicht (ausschließlich) auf Funktionalität.

-Michael
Zuletzt geändert von mschnell am Do 23. Mai 2019, 10:08, insgesamt 2-mal geändert.

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: Ist die Programmierung mit Lazarus Free-Pascal zeitgemäß

Beitrag von mschnell »

Timm Thaler hat geschrieben:.. hätte von Arduino nie jemand was gehört.

Was ist Arduino ??? :evil: :evil: :evil:

Atmel ist inzwischen von Microchip übernommen worden, ATMega wird also sicher auf die Dauer unwichtig werden, weil die Microchip-native PIC32 Serie für industrielle groß-Serien besser erscheint und für andere Anwendungen Hardware-mäßig auch sehr gut geeignet ist). Es gibt auch einen PIC-Arduino, der braucht aber natürlich anderen Compiler-Support. PIC32 ist eine Standard-Architektur (MIPS), die allerdings in fpc - soweit ich weiß - noch nicht voll unterstützt wird.

-Michael
Zuletzt geändert von mschnell am Fr 24. Mai 2019, 09:44, insgesamt 2-mal geändert.

Antworten