Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2017-04

Why lazarus is sorely needed: A plea for stability and backwards compatibility

4 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael Van Canneyt

Hi,

FPC/Lazarus really are amazing tools.

And, more importantly, STABLE and backwards compatible.

This latter may seem self-evident; but it is not.

Let me illustrate why it is not:

For work, we develop apps (android, iOS) for mobile. We do this using a HTML5 browser-based approach, creating a single-page app. Rationale: this way you need to develop only once and can target many mobile OSes, including the browser.

We use some Javascript frameworks, and build tools (node and npm) To package the apps, we use Apache cordova, it can build for iOS and Android. (and some others)

** The dependencies and build problems are staggering. **

To build the app, i.e., create a single javascript file which is loaded in a HTML page, npm (the Node Package Manager) downloaded 1000 packages. In essence, to concatenate some files.

To package the app for android, cordova downloaded another 350 packages.

This is not counting the installs of a new Android development environment (which broke Cordova), gradle (because google doesn't include it any more) and java 1.8. (because the latest cordova suddenly required 1.8 instead of 1.7)

Total number of downloads: well over 1500.
Lines of code in our app: 1900 (spread over 20 files).

The lessons:

* Backwards compatibility is VERY important.

* Keep dependencies to a minimum.

* Object Pascal developers are spoilt
(or maybe they simply know what they are doing).

Lazarus needs to be spread more.

The iOS and Android environments sorely need tools like Lazarus.

Michael.

Reply by email

Graeme Geldenhuys
to Michael Van Canneyt
Michael Van Canneyt wrote
Total number of downloads: well over 1500. Lines of code in our app: 1900 (spread over 20 files).

That is totally insane. The worst dependency hell ever! And then one of those dependencies get broken or discontinued and your are screwed. Plus the fact that every 6 months web frameworks often become obsolete and replaced by yet another crazy acronym framework.

And some people wonder why I often chose the “roll your own solution” path - it’s to avoid such 3rd party dependencies, and making sure my code works for years to come.

Back in my Delphi 7 days I worked for a company. The project I worked on used something like 20 3rd party components/libraries. That project was stuck in Delphi 7 for years and years (until the project itself became obsolete). Why, because many of those 3rd party suppliers went out of business after D7 and the the company simply had no way to easily break that dependency or have access to the many 3rd party component source code. I learned a valuable lesson at that job - keep dependencies to an absolute minimum!

* Keep dependencies to a minimum.

+1000

* Object Pascal developers are spoilt (or maybe they simply know what they are doing).

Indeed we are!

Lazarus needs to be spread more.

FPC + Lazarus needs to spread more.

The iOS and Android environments sorely need tools like Lazarus.

Definitely. Wasn't there somebody working on a mobile phone development toolkit for Lazarus at some point (a year or two ago)? I wonder what ever happened to that.

Regards,
Graeme

Reply by email

Michael Schnell
to Michael Van Canneyt: FPC/Lazarus really are amazing tools. And, more importantly, STABLE and backwards…

+1 !!!

The dream:

Write and test a program using in a (partly) RAD way, of course in an Event-programming way, using the Lazarus IDE - say - in Windows.

Now just by changing some settings, compile it for
- Win32
- Win42
- Win 32 or 64 as a service (hence also running on WIN IOT Core)
- MAC
- Linux Desktop (PC / ARM / ARM64 / MIPS / ....)
- Linux Headless (I do have done a working draft for an "active NoGUI" Widget Type)
- Android
- iOS
- with built-in Web Server, the GUI shown on a browser
- As a Server based application (e.g. behind Apache or Microsoft IIS) with the GUI shown on a browser

-Michael

Reply by email

Kostas Michalopoulos
to Michael Schnell

Yeah, one thing i like with FPC and Lazarus is that there is a strong focus on backwards compatibility. Of course it isn't perfect (with FPC 3 i had to change some of my string code - e.g. i was loading files into strings by setting the length and BlockReading the string directly - but that took only a few minutes) but it is generally very stable.

On Thu, Apr 20, 2017 at 3:05 PM, Michael Schnell via Lazarus <

Show quoted text 31 lines
wrote: +1 !!! The dream: Write and test a program using in a (partly) RAD way, of course in an Event-programming way, using the Lazarus IDE - say - in Windows. Now just by changing some settings, compile it for - Win32 - Win42 - Win 32 or 64 as a service (hence also running on WIN IOT Core) - MAC - Linux Desktop (PC / ARM / ARM64 / MIPS / ....) - Linux Headless (I do have done a working draft for an "active NoGUI" Widget Type) - Android - iOS - with built-in Web Server, the GUI shown on a browser - As a Server based application (e.g. behind Apache or Microsoft IIS) with the GUI shown on a browser -Michael -- _______________________________________________ Lazarus mailing list http://lists.lazarus-ide.org/listinfo/lazarus

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20170420/bc389e7f/attachment.html>

Reply by email