Why Freepascal (or any Pascal lazarus / 64-FPC development ---------------------------------------------------------------------- davidslazarus1 · 2020-06-25 19:45 I am a complete neophyte to Pascal and Lazarus.  Why would anyone program in Pascal, given the plethora of other, more current open- source programming languages available out there?  What features does it have that those other languages do not?  As just one example, Julia.  What major corporations use it?  Thank you. ---------------------------------------------------------------------- tr_escape · 2020-06-25 20:25 For me it is old habbit and getting support from the community. Other reason is freeism because is software prices. Other reason is software lifetime , I just checked this list: https://en.wikipedia.org/wiki/Timeline_of_programming_languages Every year coming by a new language but I am not sure about living time of any language... Software languages aren't miracle and there is no easy way to every direction but I can find some solutions by one tool. (Also I remember this quota: https://tr.pinterest.com/pin/359513982726432125/ ) ---------------------------------------------------------------------- Laksen · 2020-06-25 20:37 Why not tell us what's important to you when you write programs and code and we could figure out if Object Pascal and Lazarus is a good fit for you? ---------------------------------------------------------------------- marcov · 2020-06-25 21:02 Quote from: davidslazarus1 on June 25, 2020, 09:45:08 pm  As just one example, Julia.  What major corporations use it?  Thank you. A significant part of the Fortune 500 have Delphi licenses, which is the same language as Lazarus. How many of them bought Julia licenses? Some languages are news-darlings. Some are workhorses. Lazarus is a workhorse. ---------------------------------------------------------------------- ASBzone · 2020-06-25 22:15 Quote from: davidslazarus1 on June 25, 2020, 09:45:08 pmI am a complete neophyte to Pascal and Lazarus.  Why would anyone program in Pascal, given the plethora of other, more current open-source programming languages available out there?  What features does it have that those other languages do not?  As just one example, Julia.  What major corporations use it?  Thank you. What led you to look at FreePascal/Lazarus? What type of development do you do? What languages do you have experience with today? ---------------------------------------------------------------------- Handoko · 2020-06-26 01:53 @davidslazarus1 Programming languages are just language, not too important to me and I don't care what corporations are using it. What the development tool can do is the most important thing to me. 1. In the DOS era, I wrote myself a diskette bootsector virus removal tool using Pascal. It's not as hard as you though because Pascal allow users to call BIOS interrupt 13h. 2. When I was a teen, I used Pascal to build a simple PC Piano. Pascal allows us to direct access hardware ports, how about Julia? 3. I wrote a payroll program using Pascal, it can print the reports to a printer. Can Julia use printers? 4. I used FPC + Lazarus to build a small database GUI tray application program for my personal usage, can I use Julia to do it? 5. I use FPC + Lazarus to build OpenGL games, can I use Julia to do it? 6. I use FPC + Lazarus + LAMW to build some tools to run on my Android mobile phone, can I use Julia to do it? 7. Currently, I'm writing a tool to automatically fetch and save data from a website using Lazarus, can Julia do it? If Julia can do all the things above, I will happy to learn and use it. ---------------------------------------------------------------------- Thaddy · 2020-06-26 05:28 A lot of the really useful libraries for Julia are not written in Julia, but in C or C++. Julia is not - fully - written in Julia. (A bit like Python, that is also helpless on its own) Most really useful Pascal libraries are written in Pascal itself, including the compiler. If a compiler can be built using itself it shows confidence that its generic applicability is very high... Also the Julia licensing is cumbersome: the core is MIT but the rest is GPLv2 which is too restrictive for commercial applications. FreePascal and Lazarus libraries are GPLv2+linker exception which takes away most issues for commercial applications (only the compiler and the Lazarus IDE are restricted GPL'ed) ---------------------------------------------------------------------- Handoko · 2020-06-26 08:00 Quote from: Thaddy on June 26, 2020, 07:28:56 amA lot of the really useful libraries for Julia are not written in Julia, but in C or C++. Then I will pick C/C++ over Julia if I have to choose between them. ---------------------------------------------------------------------- ccrause · 2020-06-26 10:36 Quote from: davidslazarus1 on June 25, 2020, 09:45:08 pmI am a complete neophyte to Pascal and Lazarus.  Why would anyone program in Pascal, given the plethora of other, more current open-source programming languages available out there?  What features does it have that those other languages do not?  As just one example, Julia. Why anything?  One question when considering a language could be: is it Turing complete. According to Wiki most languages are, so that settles the argument of "language X can do A, can language Y do the same".  Of course implementing functionality A in a particular language may require some effort.  Example 1 - Say someone is determined to use garbage collection in Pascal - a "feature" not supported by the compiler. But you can write classes with reference counting that automatically free itself when the instance's reference count reaches 0.  And no, I don't want garbage collection embedded in the language, it would be horrible to write anything useful in a microcontroller with say 128 bytes of RAM. Example 2 - Let us consider a different type of task: solving a differential equation.  Very easy in Julia (and C/C++, Fortran, gPROMS, Matlab, R...), more difficult in Pascal because you have to find a user library that implements the functionality (e.g. this one), or grab a numerical text book and code it yourself (just like in Julia, except Julia has many contributors so chances are you will find an existing library). Example 3 - Generating payroll information from a database - relatively easily accomplished in Pascal, can be done in Julia too.  Publish results as PDF or HTML? Yes for Pascal, not sure about Julia.  Run all this logic as CGI on a web server? Pascal - yes, Julia - not sure (well, I guess you can use C/C++ hiding behind a library...). QuoteWhat major corporations use it?  Thank you. I started using Borland Pascal and that lead to Delphi.  In the 80's and 90's Borland was pretty successful and made great tools.  When Delphi started moving toward .Net I got fed up with the bulky IDE and language extensions I didn't use.  Eventually switched to FPC/Lazarus even though I had a commercial license for Delphi 2008.  That said, I'm not up to date with commercial applications in Free Pascal/Lazarus. My view is that choosing a language is pretty much a matter of chance, circumstance and personal preference (if you get paid to program the choice may not be yours anyway).  Pascal was the 3rd language I discovered at school (after BASIC and Logo) and the possibilities it unlocked pulled me in completely.  Over the years I've briefly dabbled in other languages (Modula2, Fortran, Matlab, C/C++) but never really encountered something that was impossible to do in Pascal.  The only motivation (for me) to look at other languages from time to time is to exploit specific libraries and code examples. Since I'm a hobby programmer I don't have choices forced on me, I also don't have to wonder what fad language will make me look accomplished from a recruiter's perspective. In the end I view programming languages in the same light as spoken languages - use whatever language you are best able to express yourself in.  Unless you get payed to do otherwise.  Of course you may not know this when starting with programming... ---------------------------------------------------------------------- MarkMLl · 2020-06-26 11:34 Quote from: Thaddy on June 26, 2020, 07:28:56 amIf a compiler can be built using itself it shows confidence that its generic applicability is very high... I have reservations about using that as an argument. Back when Pascal was derided for having no standardised I/O facilities, and as such was considered to be virtually useless, it was still capable of compiling itself. Same applies to languages like Lisp, Smalltalk etc., all of which are usually self-compiled but all of which have shortcomings when considered as candidate general-purpose languages. MarkMLl ---------------------------------------------------------------------- MarkMLl · 2020-06-26 11:40 Quote from: ccrause on June 26, 2020, 12:36:32 pmWhy anything?  One question when considering a language could be: is it Turing complete. According to Wiki most languages are, so that settles the argument of "language X can do A, can language Y do the same".  Of course implementing functionality A in a particular language may require some effort.  I have reservations about that. "Turing Complete" defines a category of languages which have sufficiently complete functionality that they can implement a Turing Machine, which comprises a single finite "black box" plus a single potentially-infinite "tape". But there are everyday problems which /can't/ be implemented by a Turing Machine, and as such just because a particular language is Turing Complete does not necessary make it a suitable implementation choice. MarkMLl ---------------------------------------------------------------------- Thaddy · 2020-06-26 14:55 Nothing to do with Turing complete... except for its proof. (a.k.a. eat your own dogfood). Brainfuck is also Turing complete... https://en.wikipedia.org/wiki/Brainfuck Pascal is a different kind: it is readable for humans. ---------------------------------------------------------------------- MarkMLl · 2020-06-26 15:49 Well /yes/, but a lot of people- including some that really should know better- always insist that any language or architecture which is Turing Complete is usable for absolutely anything... when in actual fact there are things that a Turing Machine (as defined by Turing) quite simply can't realistically do. MarkMLl ---------------------------------------------------------------------- Leledumbo · 2020-06-26 16:27 Quote from: MarkMLl on June 26, 2020, 05:49:58 pmWell /yes/, but a lot of people- including some that really should know better- always insist that any language or architecture which is Turing Complete is usable for absolutely anything... when in actual fact there are things that a Turing Machine (as defined by Turing) quite simply can't realistically do. MarkMLl Actually, it's more like those people misunderstand what Turing complete means. If a language is Turing complete, it can be used to simulate any Turning machine (and gets all of its features). That's it. It doesn't talk about anything else outside it. In fact, it's so easy to make a Turing machine and even many Brainfuck implementations can generate code for many other languages apart from executing by itself shows how tiny it means compared to what actual programming language must provide. ---------------------------------------------------------------------- Rainbow6 · 2020-06-26 17:46 Quote from: davidslazarus1 on June 25, 2020, 09:45:08 pmI am a complete neophyte to Pascal and Lazarus.  Why would anyone program in Pascal, given the plethora of other, more current open-source programming languages available out there? Why should anyone use any other programming language? Why should anyone speak English since Italian was „invented“? Quote from: davidslazarus1 on June 25, 2020, 09:45:08 pmWhat features does it have that those other languages do not?  As just one example, Julia.  What major corporations use it?  Thank you. FreePascal has Lazarus - which I would call a „killer feature“ - there are not many „Visual UI Designers“ for other languages out there - leaving Microsoft VS aside, which is not OS. Yes - Lazarus is not the solution for everything and everyone - but it’s good in what it is doing, and I haven’t found many alternatives where I can quickly click and code some UI for Windows, Linux and Mac without coding the UI layout by hand. And for Pascal - I personally prefer languages which are a bit verbose, because Code if more often read than written. Daniel ---------------------------------------------------------------------- Ñuño_Martínez · 2020-07-02 10:03 Quote from: davidslazarus1 on June 25, 2020, 09:45:08 pmI am a complete neophyte to Pascal and Lazarus.  Why would anyone program in Pascal, given the plethora of other, more current open-source programming languages available out there?  What features does it have that those other languages do not?  As just one example, Julia.  What major corporations use it?  Thank you. "more current open-source programming languages"?  Did you notice that Free Pascal is Open Source, don't you? And that latest version is a few days old? ---------------------------------------------------------------------- domibay_hugo · 2020-07-08 14:57 Quote from: davidslazarus1 on June 25, 2020, 09:45:08 pmWhy would anyone program in Pascal, given the plethora of other, more current open-source programming languages available out there?  What features does it have that those other languages do not?  As just one example, Julia.  What major corporations use it?  Thank you. On Lazarus I found that Lazarus is a very mature, complete and development environment. The Debugger that even can debug C System Libraries is a highly valuable treasure to troubleshoot any application problem On FreePascal It's a feature rich Language that promotes an organized Development which the results in highly maintainable CodeWell optimized it runs insanly fast (as developers from other Languages admitted recently without knowing). With a tiny Application Startup. (I profiled it against the same Application in Rust) On Linux it is Distribution independent. (My Application developped on CentOS7 also runs on Debian and Alpine Linux without recompiling). With difference to other modern Languages that build heavily on Distributions C Libraries (like Rust) which need to be recompiled for every different target.