Recent

Author Topic: I love that Lazarus and FPC feel like a time capsule from the 1990s or 2000s!  (Read 5492 times)

WraithGlade

  • Newbie
  • Posts: 3
Hello all! I am new to Lazarus and Free Pascal, but I've been exploring it and planning on learning and using it.

Basically, I've been drifting around various programming languages and environments for a long while now, looking for something that felt sane enough and that was also practical. I've always been told before that "Pascal is too old" from others and when searching online, so I haven't given it much fair consideration, but I recently gave it more of a chance looking into it and thus have become interested in it in earnest.

I'm still a total newbie to Pascal (though I've used many other languages intermittently... dozens) but it looks like a great pragmatic balance and Lazarus's GUI builder ("RAD") system seems like a time capsule of preserved sanity from the 1990s or 2000s or early 2010s before everyone elsewhere lost their minds with "web everything" and a destructive sequence of big companies repeatedly creating new half-baked and perhaps convoluted GUI systems and then dropping them, etc. I have for many years really yearned for the older overall saner way of doing software in certain respects like this and so I am grateful to have stumbled upon (actually re-stumbled upon, technically, but giving it fair consideration this time) Lazarus and FPC.

I've in recent years repeatedly tried both newer systems languages and various very high level languages but they too often are half-baked and lacking in fleshed out software ecosystems. There's also C++ and such (which I used to program in professionally as a AAA game dev way back) of course but I've found I feel increasingly "allergic to the mess" and hence seeking something cleaner.

I don't doubt that one day one of the newer languages will manage to make big inroads, but I've at this point wasted many years being indecisive and impractically running around in circles regarding such things and I am thinking most recently that picking a reasonable balanced language like Free Pascal and a good ecosystem like Lazarus may be just what I need to be more productive and creative. The ecosystem also seems very strong and healthy here (despite the overblown claims of it being too old), especially relative to more tenuous newcomers to the available languages. So, this seems like a good place where I could build some good software and have some fun "retro" computing fun too in the meantime while I continue to await the perpetual "perfect language" that seemingly never comes, heh.

(Tangentially: I think maybe a cleaned up and greatly refactored Pascal/Ada-like systems programming language with fully arbitrary user-definable mixfix syntax, much more homoiconicity, little/no superfluous/unnecessary syntax, an implementation as simple as Lua or Forth, and concatenative semantics would be particularly compelling. That's my current vague programming language fantasy. What's yours?)

Also, software bloat in general in recent years has become really absurd and I think there is no real replacement for principled thinking and caring about performance and energy use and ethics, etc. Performant and mature ecosystems like (from what I can guess so far) Lazarus and FPC seem a good fit for that too.

So, that's how I've landed here as a new Pascal programmer in 2025. I only wish I'd ignored the avoidant groupthink on the net earlier. Internet opinions and reality clearly have a big gap between them. That much is already clear enough, though obviously nothing is perfect and there is always a balance to consider. "Delphi / Object Pascal" (hence also including Laz and FPC) even still rank in the top 10 on the TIOBE index, and are thus potentially still more in use than even the new hotness Rust in real-world industry software it seems, so clearly the language is far from being "too old" for real use or new projects, at least for a good while more.

Anyway, what about you guys and gals? What brought you to Lazarus and Free Pascal? Anyone else new to Pascal in 2025 like me?  8-)

PS: Please never embrace "flat design" in your IDE. I've seen too much software wreck all their previously beautiful icons and visual designs in recent years. It is always a relief to see GUIs that are principled and practical and functionally "maximalist" instead of overly minimalistic. It's a breath of fresh air to have access to the way of doing things I was attracted to in the 1990s and 2000s but didn't get to use much before the "web everything" and "framework churn" wrecked most of the programming ecosystem elsewhere. Just more of my random thoughts! Thanks for reading my ramblings!

Thaddy

  • Hero Member
  • *****
  • Posts: 19606
  • Glad to be alive.
Actually, the flat design is optional.
Any "programmer" that knows only one programming language is not a programmer

bolsen

  • New Member
  • *
  • Posts: 11
I took to Object Pascal first in 2021, then 2023, and now for the past few months. It's the first time I just stuck along with a language toolchain for this long. But, I did this because I saw posts on Hacker News on all three occasions about FPC and how fast it is (well the last time was when Lazarus 4 came out.) I learned Pascal in high school in the US, but didn't do well in that class, but the rigor stuck along with me, that something as simple as where I declare my variables has always been a nagging feeling.

I know RAD development is the killer app here,  but I am more interested in writing services, sometimes in places where C would be used (or Rust now.) I was frustrated a bit that the tooling (me being an Emacs guy) outside of Lazarus was wanting, but I got things to work and dealt with that frustration to where I can use Emacs and Lazarus both. I also learned more about tangential topics anyway from that, and am still improving it for myself. I still use Lazarus, without a doubt. One thing though I found is that the path to project management is much shorter than fiddly C/C++ ones (remembering I am doing this as a hobby) and something like C# or Java. Lazarus project files are simple, most programs I have read source code to are laid out simply and the batteries included out of the box are much more vast than I originally thought.

It would be great to use this for projects at work or I can say this is my little secret :)

While I wrote this, I ran a small non-GUI program through `strace`, reminded I cannot just peek at system calls in Java. It looks like there is a lot of RTTI stuff happening and the segfault that heaptrc launches, making me think that for something relatively complex, writing leak-free code so far has been easy to do.

cdbc

  • Hero Member
  • *****
  • Posts: 2921
    • http://www.cdbc.dk
Hi
Welcome to the fun house @WraithGlade  :D
Personally, I've been programming in pascal since 1983, TP -> Delphi -> Fpc/Lazarus   ;D
Happy coding mate  8-)
Regards Benny
« Last Edit: September 26, 2025, 01:13:05 pm by cdbc »
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

Dzandaa

  • Hero Member
  • *****
  • Posts: 557
  • From C# to Lazarus
Hi,

@WraithGlade:

Welcome,
Lazarus is a good choice and has the benefit of being portable across all 3 major platforms.

B->
Regards,
Dzandaa

dtoffe

  • Jr. Member
  • **
  • Posts: 67
As for new programming languages inspired or influenced by Pascal, I think Nim and maybe Pony are the only two you can take into account, with a mature enough compiler and ecosystem.
Maybe Spark, which is a subset of Ada, can be worth a look, as AFAIK it is very mature and used in industry. I don't know much of it yet, I have the language definition laying somewhere in my drive. I got somewhat discouraged by it not being an independent ecosystem but with a very strong dependence to the Ada ecosystem.
All in all, it depends on what you want to achieve. Maybe Object Pascal is good enough as it is ?

(Tangentially: I think maybe a cleaned up and greatly refactored Pascal/Ada-like systems programming language with fully arbitrary user-definable mixfix syntax, much more homoiconicity, little/no superfluous/unnecessary syntax, an implementation as simple as Lua or Forth, and concatenative semantics would be particularly compelling. That's my current vague programming language fantasy. What's yours?)

Your ideas are intriguing to me, and I wish to subscribe to your newsletter.

Daniel

WraithGlade

  • Newbie
  • Posts: 3
Hey everyone, thanks for the replies. I've been busy the past couple days and was also letting the thread soak a bit (i.e. get replies) before responding.  :D

Quote
Your ideas are intriguing to me, and I wish to subscribe to your newsletter.

Thanks! I think there's a lot more untapped potential for programming language design that is on the horizon and I think that hypothetical combo of traits I mentioned is one particularly promising direction to explore in that respect.

I've even been contemplating the possibility of writing my own compiler off and on over the past few years, but I've never written a compiler before and indeed haven't even ever touched compiler code, though I have contributed to multiple new languages' documentation for such, since unlike many programmers I actually love writing documentation (or at least people tell me most don't like writing it).

However, there are multiple other project ideas I'm considering and which are arguably more likely to pay off (application ideas and game ideas) and I've also been waffling indecisively about language choice regardless of what I make (application, game, or language). These days it seems that C and/or LLVM (and outside of systems programming proper: other platforms like the JVM or .NET or JavaScript) are the most common backends for compilers, but I've been contemplating the possibility of diving in and making a transpiler (a.k.a. "source to source" compiler) that targets Free Pascal or some other target backend language on the basis that I'm not sure I feel like messing around with C and C++ more and want a cleaner experience and more pleasing and/or expressive coding feeling.

I actually like the syntax of Free Basic and Visual Basic and Ada more than Free Pascal's syntax in most respects (especially if the
Code: [Select]
if ... end if -like syntax were nearly/completely consistent like in Visual Basic .NET since I like it to be as easy to read code structure backwards as forwards), but Free Pascal seems to have a significantly more mature ecosystem and a much better RAD IDE (Lazarus). I know people these days expect users to use the command line for programming, which works "fine", but I've long wanted a return to graphical installers and abundant little GUI tools for ease of use for end users on principle and the ability to produce good GUIs fast in that regard in Laz and FP would be a big asset. Other systems do have their own equivalents or at least good libraries and frameworks, so pros and cons as usual.

Have any of you attempted or completed a compiler that transpiles to Free Pascal or is at least implemented in it? If so, how'd it go? I am tempted to try potentially.

The past couple days I've been mulling over a few different strategies for what I could use if I write my own compiler:

  • Use Free Pascal and Lazarus as both the implementation language and the target backend language. FP has a similarly broad range of target support as C, though a less certain future but still very solid and in the top most used languages still.
  • Use Free Basic instead since it (from what I understand... I've not actually used it except to open it up a few times and browsed its docs) transpiles to C. That would feed my desire for a prettier syntax and aesthetic satisfaction more probably, though would perhaps be less pragmatic (except that FB has a few minor things done better than FP, such as macros and freedom from some of Pascal's historical oddities and restrictions and such).
  • Use Chez Scheme or Gambit Scheme or Racket or some other scheme family language as both the implementation language and the target backend so that I have a satisfying feeling of building things up from elemental and elegant pieces. However, every time I look into this I start excited but then get put off by the awkwardness of non-bignum computing on these and the frequent occurrence that despite claims that these languages support full native compilation their actual docs and process often imply that that is not really fully true or is awkward (e.g. Chez Schemes application redistribution instructions in their manual are especially bewildering and make me feel uneasy about it). Scheme languages also say they support cross-platform but tentative my experience with that is that myriad things often seem to go subtly wrong in that regard, especially Windows support being basically broken the moment you try to do a real project that uses libraries. Maybe I'm wrong though. Maybe there's a good Scheme-based approach. I'm not sure if you could even write an OS in Chez. Their docs potentially make contradictory claims regarding compiling independent executables, for example.
  • Use a language that is well known for being used to write compilers, such as OCaml (e.g. the original compiler for Rust was actually written in OCaml before Rust eventually bootstrapped itself). OCaml has a mandatory GC though, unlike Free Pascal and Free Basic, and has other performance implications I'm not sure I'd want to be bound to if I used OCaml as not just the implementation language but also the target/backend language. I could target a different backend (like C or Free Pascal) while using OCaml's language-suited ecosystem for the implementation but I don't want to spread myself too thin regarding language use. Racket would be another potential language that could be good for processing text like a compiler. Likewise for Tcl/tk or Raku perhaps, though I've not used much of either.
  • Use Lua for both the implementation and the backend and just accept the performance hit and limitations that this implies. I could use Love2D as a GUI system for this and treat that like it is the available platform. This would be a low burden approach but I'm not sure how I feel about the limiting aspect of using an interpreted and/or JIT language and the reduced access to low level constructs, etc. LuaJIT is fast though and reasonable comparable to managed languages like Java or C# and I like that Lua is not too ideological and is simple and has a small implementation (hence high survivability, especially with it being built on C).

Another language I've considered is Ada, but Ada has recently become frighteningly severely vendor locked by AdaCore (the main compiler producer). Much of the Ada ecosystem is dependent on AdaCore and they have basically de facto turned the language into an extremely expensive proprietary language. They don't even tell you the price. They are one of those companies that require you to fill out an email forum to ask them for a quote (hence unbounded potential cost). The truly open source FSF version of Ada is reputably always far behind AdaCore's version and now AdaCore no longer offers free/community versions of their software. Ada has a much cleaner syntax than Pascal though while still having a similar feel. It's a shame that it's not a real option for open source anymore in practice, or at least I'm not willing to risk it.

Interestingly though, there's a new language called Mini Script that essentially feels like what would you get if Lua and Ada were mixed together. It has Ada-like
Code: [Select]
if ... end if style syntax that lets you read as easily backwards as forwards as you scroll through your code (like Free Basic and Visual Basic too) but has a small core similar to Lua's. The author of the language even says on their site that they offer small monetary grants to anyone who writes programs in it or publishes articles about it and so they are trying to promote it at least. It is also paired with the "Mini Micro", a "fantasy computer" in the similar vein/spirit as things like the famous Pico-8 and TIC-80.

Regarding mixfix syntax (allowing the user to define arbitrary phrases for functions and macros, instead of just single ASCII and underscore identifiers), I really think people underestimate how great it would be (and in fact is) for improving readability and natural flow of a language. Look for example at Jinx (a C++ based embeddable scripting language) for one of the cleanest modern examples I've seen of a simple mixfix language. I also hear that LDPL is another language that likewise allows or uses mixfix syntax a bunch, though I haven't looked into that one as much.

Also, regarding homoiconicity and elegance, probably the two most elegant-feeling languages I've played with are Factor (perhaps the most extensive and capable concatentative language) and Racket (or any other Scheme family language really). Concatenative languages like Forth and Factor have even less syntax than s-expression based (Lisp/Scheme family) languages but their "stack shuffling" requirements cause them to become less readable. Luckily, I've come up with a few creative ways of potentially greatly remedying the readability problems of such concatenative semantics and hence my comment about such in my mention of my "current vague programming language fantasy".

Oh, and technically I do have a newsletter (on my static HTML site of the same name as my username) but I've never even sent a single message with it yet because I only a have a few members so far because it has become extremely hard to get human traffic in the modern web due (as best I can guess so far) mostly due to the automated plagiarism/theft/spam bots (so called "AI") running amok and search engines greatly reducing the visibility of independent sites and independent creators.

The plagiarism bots certainly constantly hammer even my tiny site though, downloading copies of my image files and audio files at least dozens of times per day (via apparently the same bots) redundantly over and over for months on end. I can't wait for the plagiarism and economic/intellectual/creative parasitism of these "AI" trends to blow up in the faces of the developers and users of such and to finally mercifully end. I am really hoping to see the trend (more aptly perhaps: the Faustian bargain) end or greatly diminish as soon as possible. The future is in firmly opposing such inherently unethical behavior in tech, not supporting it. It's the worst thing to ever happen to the computing industry by far. I never even would have guessed (if you asked me years ago) if tech would ever sink so incredibly low and become so unethical as to essentially just rob the rest of all of humanity of their labor and creativity and so glibly and routinely violate everyone's personhoods and yet here we are. It is really absurd.

Even these forums themselves are evidently (like practically all independent forums lately) getting hammered by the plagiarism/theft/spam bots constantly lately. It's been almost unusable today. I've seen lots of webmasters talking about getting crushed under the weight of the bot traffic lately. Even more broadly speaking, sociopathy in generally has been really out of control in society the past few years and it really shows very strongly in these artificially engineered "AI" trends especially. It has truly become a blight on society and endangers the future economic/creative/intellectual freedom of all of humanity, frankly. There's nothing I hate and want to see obliterated more than these plagiarism and theft bots that they've dubbed "AI" mostly just to mystify and misdirect people as to the true nature of what they really are (the "tech" is essentially just an elaborate automated plagiarism and randomized/transformed IP disguise system).

They ("AI" developers) can mask the plagiarism behind a variety of transforms, but are often caught stealing things almost verbatim regardless. Even the famous example of an "AI" supposedly "hallucinating" when it suggested putting glue in pizza in a recipe someone requested turned out to be taken directly from a Reddit post where someone was joking about doing exactly that. There is no credible evidence any of the "AI" has ever exerted any real creativity or thought of their own whatsoever in reality. The "AI" bots primarily just steal people's work and then randomize/transform that work using a very wide ranging variety of methods and techniques but the underlying plagiarism is by far the most dominant factor. It is essentially just a glorified copyright laundering system.

I even saw one produce an image that was almost identical to an image painted by someone who literally sat next to me in art class in college many years ago and who I saw paint it. By plunging independent creators off the web (hiding our websites and minimizing individuals' social media reach) and making most independent thinkers and creators nearly invisible and then combining that with automated plagiarism tools ("AI") the big companies are able to collectively steal people's time and labor across the entire internet with impunity (and also suppress future social movements of any kind) knowing that people will hardly ever see the (now deliberately very hard to find on the internet) original works of independent creators (of all kinds: artists, programmers, musicians, authors, etc) from which it was stolen. Thus, the bots hammering all of these sites and forums (like these forums and countless others) in a vigorous effort to disempower the public and anyone who isn't a giant company as much as possible... Indeed, I would give almost anything to not feel like I'm constantly being violated and data-scrapped on the internet like in the past few years. It really demotivates such things and forces a very defensive posture by necessity upon anyone who has any self respect and isn't naive. It has truly drained the color and joy out of so much of the tech world and all we get in return in spam and the greatest theft act of human labor and largest violation of digital human rights in all of human history. This is despite us already having far too much content before this even started. Such fun...

Anyway, putting the previous dark tangent/rant aside, it sounded like you potentially wanted me to say more stuff so that you could have more prospective interesting thoughts and ideas to bounce off of and so there you go! I hope at least some of it was of interest or use to you and the other respondents here.

I especially recommend checking out Mini Script, Jinx, Racket, and Factor (some languages I mentioned before) if some of what I said for hypothetical language ideas interests you. Seed7 is also another good example. It is kind of Pascal-like but with partially customizable syntax and quite a few other interesting quirks. None of these languages are what I have in mind as a fantasy programming language, but they each touch on some aspects of what I said at least in part. I have an idea (among many other things) on how to create a concatentative language that is very readable and does not require stack shuffling and its associated cognitive overhead but still has similar concatenative properties and could be made to resemble natural language pretty closely while still being precise. I'm tempted to work on such a compiler at some point but still trying to settle one how to approach it or even if I should given how I need to find more sustainability in my programming.

Has anyone here worked on compilers and have thoughts in that regard?

Feel free to comment on anything else too of course, anyone. (Heads up though: I am vigorously 100% anti-AI though and you can't expect any sympathy whatsoever from me for any defense of it, especially not regarding any form of saying it is "just a tool" or anything other fallacious or rhetorically disingenuous sophistry or any rationalizations for dehumanizing others for the mere sake of the convenience of being able to steal their work and violate their digital personhood non-consensually in aggregate through automated means.)

PS: My post got more verbose and tangential than I planned, but hopefully that will not be a problem. More info provides more opportunities for further richness of thought and tangential discussion for all participants after all, etc. Freedom requires a rich landscape of possibilities and its my philosophy to embrace that vigorously and ethically. Minimalism and centralized control and other destructive forces in tech may be at their zenith (their greatest height) in recent years but I suspect the pendulum may "soon" (relatively) swing the other way again and ethics and maximalism and the end of "move fast and break things" as tech's modus operandi will hopefully come on the horizon. I certainly am eager for some significant changes in the tech landscape and I think recent tech company behavior will ironically bring about their own partial demise or partial collapse and will motivate change in the tech world at large back towards more ethical behavior and less dark patterns and less pervasively destructive exploitation and so on.

"Thank you for coming to my TED Talk" (or alternatively: "Thanks for reading my book")... heh... I'm done ranting now.

I'm still contemplating what the best strategy is for applications and/or games and/or a potential new language compiler. Laz and Free Pascal are great candidates in that regard, hence me being here.

Anyway, I hope you all have a wonderful day/night/week/weekend/etc!

440bx

  • Hero Member
  • *****
  • Posts: 6567
That's my current vague programming language fantasy. What's yours?)
There is a "fantasy" programming language that I've done a fair amount of research to develop.  The principle is to produce a "two way" language which is, a language that given source code produces binary code (just like any other language today) and given binary code it produces source code.  I know this sounds childish and impossible but, accepting some limitations, it is possible.  For instance, variable names are a big problem when attempting to "decompile" binary code but, it is often possible to determine what a memory location is used for by analyzing the binary code, from its use, it is possible to generate a half-way decent variable name.

This "fantasy" language is a product of constantly reverse engineering one thing or another (normally using IDA Pro) and noticing how easy it would be in some cases to produce source out of the binary code.  Also noticing how brutally inadequate C/C++ are as the target of "decompilers".  I put "decompilers" in quote because if those things qualify to be called decompilers then the Pope qualifies to be called an Astronaut.

One of the problems, which becomes very obvious after some time is, there is no language that has been designed to _efficiently_represent the various execution flows found in compiled code and, there is absolutely nothing that prevents an efficient, simple and understandable representation.  The only thing that prevents it is the gross inadequacy of current languages in that area.

As far as programming languages, I really like Ada too.  It's extremely unfortunate that there's never been a "Turbo-Ada", that would be a really good foundation.

There... my fantasy... thanks for sharing yours, it's an interesting one.
FPC v3.2.2 and Lazarus v4.0rc3 on Windows 7 SP1 64bit.

dtoffe

  • Jr. Member
  • **
  • Posts: 67
Have any of you attempted or completed a compiler that transpiles to Free Pascal or is at least implemented in it? If so, how'd it go? I am tempted to try potentially.

Take a look at this one https://github.com/dtoffe/dpl0c, especially the codegenpas.d file, but keep in mind that: 1) PL/0 is a toy language, 2) transpiling from PL/0 to Pascal should be considered as cheating, since PL/ is a tiny subset of Pascal, and 3) my code is far from good.

The main issue was that your source code can contain identifiers that are reserved words in the target language, so you must check that beforehand and rename those offending identifiers (I did it by adding an alias in the symbol table). I.E. if your PL/0 code has a variable called "function", you can call it something like "function_" before transpiling. I don't know if there are any more advanced techniques to deal with this problem.

Doing this in the real life, I mean with an actual, reasonably complex language, surely will have bigger challenges.

That's my current vague programming language fantasy. What's yours?)

Now, I'll bite. Mine is a Pascal-like language with features cherrypicked from all Pascal, Modula and Oberon variants, plus maybe some other features from languages like Ada. Elsif instead of chained end-ifs, simple object model but maybe something more than Oberon's, good C interop, no GC, no VM. Nothing extraordinary.

Cheers,

Daniel

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12980
  • FPC developer.
I've even been contemplating the possibility of writing my own compiler off and on over the past few years, but I've never written a compiler before and indeed haven't even ever touched compiler code, though I have contributed to multiple new languages' documentation for such, since unlike many programmers I actually love writing documentation (or at least people tell me most don't like writing it).

What would the compiler have as goal?  A specific sub market, as the fully general purpose market is mostly saturated? 

A scenario for usage will also make it easier to judge if certain compiler architecture decisions (GCed VM, transpiler, native backend, and the deployability and compilation speed of the result) are a good fit or not.

Quote
making a transpiler (a.k.a. "source to source" compiler) that targets Free Pascal or some other target backend language on the basis that I'm not sure I feel like messing around with C and C++ more and want a cleaner experience and more pleasing and/or expressive coding feeling.

If you try a transpiler that outputs low level C or (Free)Pascal, in other words, you only use the backend code to be compiled, the difference won't be that big. Same with FreeBASIC as backend language Maybe C having alloca might have its uses for stack objects without compiletime sizes, but that is about it I think. I simply would go the way you feel comfortable with now, and change later.

Keep in mind that choosing C will probably mean supporting multiple compilers (e.g. VS/LLVM/GCC + variants and versions). 

FPC has the advantage that e.g. the Windows version can be shrunk enormously (basically compiler system and sysutils would probably be enough). Maybe FreeBASIC with native (non GCC) backend too.

Quote
but Free Pascal seems to have a significantly more mature ecosystem and a much better RAD IDE (Lazarus). I know people these days expect users to use the command line for programming, which works "fine", but I've long wanted a return to graphical installers and abundant little GUI tools for ease of use for end users on principle and the ability to produce good GUIs fast in that regard in Laz and FP would be a big asset. Other systems do have their own equivalents or at least good libraries and frameworks, so pros and cons as usual.

That is why when my (former) job changed to .NET I kept using Delphi and Lazarus/FPC for (work)side projects and private work. Nowadays that is mostly only Lazarus, since it is simply more convenient.

Quote
Have any of you attempted or completed a compiler that transpiles to Free Pascal or is at least implemented in it? If so, how'd it go? I am tempted to try potentially.

No. In the past I started with a Tradewars (a bit like Master of Orion) like multiuser game, but then with in game programming and expansion, a bit like the  LPC mud system. An interpreter with a large runtime to support it.    Some future tech fantasy was to precompile parts (which would be transpiler-like) and being able to load and unload them without stopping the game.

In the end it never amounted to everything, as while working my time was more and more occupied.

Quote
Use Free Pascal and Lazarus as both the implementation language and the target backend language. FP has a similarly broad range of target support as C, though a less certain future but still very solid and in the top most used languages still.

And in general to replace it you need to make a lot of choices with C too. A compiler and a large set of libraries for GUI etc.

Quote
Use Free Basic instead since it (from what I understand... I've not actually used it except to open it up a few times and browsed its docs) transpiles to C. That would feed my desire for a prettier syntax and aesthetic satisfaction more probably, though would perhaps be less pragmatic (except that FB has a few minor things done better than FP, such as macros and freedom from some of Pascal's historical oddities and restrictions and such).

As for backend language, I don't think it matters that much. It will be very lowlevel anyway.  As for the macros in FB, I think that is debatable. It is more a sign to cozying up to C/C++.

(scheme, ocaml and the rest)
I never did much with functional languages, simply because most people in my wider circle never did much with them except solving math problems. A lot of elegance, but I never got a real practical feel for it, specially when applications got bigger and bigger, with GUI etc. 

Anyway, I would keep your messages a bit shorter and to the point, and skip offtopic AI rants. It makes them easier to read and comment on.

gidesa

  • Sr. Member
  • ****
  • Posts: 263
Another language I've considered is Ada, but Ada has recently become frighteningly severely vendor locked by AdaCore (the main compiler producer). Much of the Ada ecosystem is dependent on AdaCore and they have basically de facto turned the language into an extremely expensive proprietary language. They don't even tell you the price. They are one of those companies that require you to fill out an email forum to ask them for a quote (hence unbounded potential cost). The truly open source FSF version of Ada is reputably always far behind AdaCore's version and now AdaCore no longer offers free/community versions of their software. Ada has a much cleaner syntax than Pascal though while still having a similar feel. It's a shame that it's not a real option for open source anymore in practice, or at least I'm not willing to risk it.

Ada has opposite pro/cons in respect of Fpc:

1) is actively maintained and improved, also in the free/open source FSF version. You can discard that FSF version only if you have strictly requirements to immediately use the last official version. Maybe this is your case, maybe not

2) in contrast, Fpc is not so actively released, because the developers are few, and they have to take care of so many different versions. Fpc v. 3.3.1 has many huge improvements, as attributes and extended RTTI, but is in pre-release from many years

3) Ada has a little public domain code base (note, this does not imply that the total code base is little); Pascal is better, but is not a real "champion" today

4) Fpc has Lazarus as a RAD especially for traditional GUI applications; FSF Ada has much less on this. Again, depends if you develop many GUI apps on Windows, Linux, Macintosh

5) For Android, the most widespread OS today, Fpc has very little (there is Lamw, but it is brittle), FSF Ada probably nothing. In my opinion, a great minus for these 2 implementations.
 

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12980
  • FPC developer.
Ada has opposite pro/cons in respect of Fpc:

1) is actively maintained and improved, also in the free/open source FSF version. You can discard that FSF version only if you have strictly requirements to immediately use the last official version. Maybe this is your case, maybe not

2) in contrast, Fpc is not so actively released, because the developers are few, and they have to take care of so many different versions. Fpc v. 3.3.1 has many huge improvements, as attributes and extended RTTI, but is in pre-release from many years

Development and releasing are two different things. Yes, FPC hit a lull, but it might be an one time thing. And if you could the commercial and open source version of Ada, IMHO it would only be fair to also count Delphi for the Object Pascal case.

Quote
3) Ada has a little public domain code base (note, this does not imply that the total code base is little); Pascal is better, but is not a real "champion" today

4) Fpc has Lazarus as a RAD especially for traditional GUI applications; FSF Ada has much less on this. Again, depends if you develop many GUI apps on Windows, Linux, Macintosh

One of the reasons I like Lazarus for a lot of small programming (specially on Windows) is that you don't end up with a humongous set of dlls and static libraries to manage. Basically the only external one that use in private programming are client database DLLs, and those are from the formal releases of respective RDBMS projects. Things like MD5, ZIP, TCP/IP etc are all native.

How is that with ADA in your experience?

Quote
5) For Android, the most widespread OS today, Fpc has very little (there is Lamw, but it is brittle), FSF Ada probably nothing. In my opinion, a great minus for these 2 implementations.

Widespread OS and most biggest OS market/audience are two different things. 95% of the people never install anything not  from the global top 20 app list with some additions from the top 20 of the region that they live in..   Such special constraints make a poor case for regarding Android as any regular target. Even a main one. iOS with its signing and membership requirements to do so are even more complicated.

To a lesser degree the same goes for web development. While there is in principle nothing wrong with it, if you talk with new users that want to do web development, the discussion often quickly deteriorate to what can be done on the very basic/cheap shared web hosting package that they have, and usually the answer quickly devolves to "not much but PHP."


gidesa

  • Sr. Member
  • ****
  • Posts: 263
Development and releasing are two different things. Yes, FPC hit a lull, but it might be an one time thing. And if you could the commercial and open source version of Ada, IMHO it would only be fair to also count Delphi for the Object Pascal case.

Hmm, there is little utility in develop without release. Anyway, Delphi is more actively released than Fpc. But Fsf Ada is not commercial, so we cannot compare to Delphi. I have installed a Fsf (Gcc) Ada version 13.2 of 2023, I see that they have just released version 15 in june 2025.
Quote
One of the reasons I like Lazarus for a lot of small programming (specially on Windows) is that you don't end up with a humongous set of dlls and static libraries to manage. Basically the only external one that use in private programming are client database DLLs, and those are from the formal releases of respective RDBMS projects. Things like MD5, ZIP, TCP/IP etc are all native.

How is that with ADA in your experience?

I appreciate very much that Fpc, as Delphi, can produce a single executable, without dependencies, in many cases. An advantage of compiled languages against interpreted or VM languages. I have no real experience with Ada, maybe it has more external requirements also in simple cases.

Quote
Widespread OS and most biggest OS market/audience are two different things. 95% of the people never install anything not  from the global top 20 app list with some additions from the top 20 of the region that they live in..   Such special constraints make a poor case for regarding Android as any regular target. Even a main one. iOS with its signing and membership requirements to do so are even more complicated.

It's a pity that one have to learn and use other tools to create, say, a simple app with 2 forms for Android. Indeed Fpc/lazarus have versions for a bunch of OS, some very old or strange!
Yes, there is Lamw. I tried something with Lamw, but I found it having annoying defects. Lamw is an excellent project in many respects, but it has fewer developers than Fpc! It's very difficult for them to cope with continuous Android releases (!)
 
Quote
To a lesser degree the same goes for web development. While there is in principle nothing wrong with it, if you talk with new users that want to do web development, the discussion often quickly deteriorate to what can be done on the very basic/cheap shared web hosting package that they have, and usually the answer quickly devolves to "not much but PHP."

Yes, I forget web development! Fpc ha some options, I think Ada is weaker, in term of libraries, not as a language.

 



marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12980
  • FPC developer.
Development and releasing are two different things. Yes, FPC hit a lull, but it might be an one time thing. And if you could the commercial and open source version of Ada, IMHO it would only be fair to also count Delphi for the Object Pascal case.

Hmm, there is little utility in develop without release. Anyway, Delphi is more actively released than Fpc. But Fsf Ada is not commercial, so we cannot compare to Delphi. I have installed a Fsf (Gcc) Ada version 13.2 of 2023, I see that they have just released version 15 in june 2025.

But that is then an inside thing that you have to know how to find then. If I just go goog le I end up at https://www.adacore.com/download    May 27 2021, same age magnitude as FPC 3.2.2

The FSF site seems to favour FTP, even though browsers haven't supported that for ages. And that is just the compiler, not even GNAT studio.

I couldn't find a GNAT studio build for windows in the first 10 links searching for GNAT.

Quote
I appreciate very much that Fpc, as Delphi, can produce a single executable, without dependencies, in many cases. An advantage of compiled languages against interpreted or VM languages. I have no real experience with Ada, maybe it has more external requirements also in simple cases.

(and IMHO not just the ability, but the out-of-the-boxness of it)

Quote
Quote
Widespread OS and most biggest OS market/audience are two different things. 95% of the people never install anything not  from the global top 20 app list with some additions from the top 20 of the region that they live in..   Such special constraints make a poor case for regarding Android as any regular target. Even a main one. iOS with its signing and membership requirements to do so are even more complicated.

It's a pity that one have to learn and use other tools to create, say, a simple app with 2 forms for Android. Indeed Fpc/lazarus have versions for a bunch of OS, some very old or strange!

But those legacy targets are often don't change much, usually, it is one person working on it for a long time.   Since FPC is a volunteer project, you can't reassign people, so the idea that working on minority targets somehow inhibits popular targets is not really true.  Stronger even, minority target people have had a considerable influence on making the compiler multi architecture.

Quote
Yes, there is Lamw. I tried something with Lamw, but I found it having annoying defects. Lamw is an excellent project in many respects, but it has fewer developers than Fpc! It's very difficult for them to cope with continuous Android releases (!)

And then vendor extensions (specially for gui) on top.   I decided long ago that if I had to do mobile development, I would simply use vendor tools, rather than hang on to Pascal. The code sharing potential is simply too low to put up with any disadvantages.  Also there are constantly threads against the ability to sideload apps.  I have a similar situation with my embedded microcontroller work. Choosing Pascal limits you, and the codesharing with desktop/server apps is low on such (16-bit) development targets anyway, so I do it in plain C.
 
Quote
Yes, I forget web development! Fpc ha some options, I think Ada is weaker, in term of libraries, not as a language.

Do you really think Ada as a language is more productive? When I last looked at it (now already decades ago), I got a bit the same vibe as from Modula2/Modula3/Oberon a decade before. A lot of things disallowed or cumbersome, and not very conductive to productivity. Fine for the odd high security industry(like USA DoD and in France's defence industry) or embedded work, but then you probably also need to have additional procedures for such development in place. Not really conductive for SME or private single person development IMHO.

creaothceann

  • Sr. Member
  • ****
  • Posts: 414
The FSF site seems to favour FTP, even though browsers haven't supported that for ages. And that is just the compiler, not even GNAT studio.

I couldn't find a GNAT studio build for windows in the first 10 links searching for GNAT.

There's also https://github.com/alire-project/GNAT-FSF-builds

 

TinyPortal © 2005-2018