Is Lazarus Dying, in part, for Lack of Easy SQL Connectivity? lazarus / 16-Databases ---------------------------------------------------------------------- tan · 2018-07-04 00:45 The Subject might seem like I'm trolling or unnecessarily conflating two unrelated topics. I'm not. https://www.tiobe.com/tiobe-index/ Per the respected  TIOBE June 2018 index of programming language popularity, "DELPHI/OBJECT PASCAL” HAS PLUMMETED since 2017 from 13th to 19th position; that is a stunning fall.  Even allowing that Delphi has lost momentum, shouldn't FP/Lazarus have picked it up?  Concomitantly, SQL popularity has SOARED to 9th position.  Since SQL is bedrock to pretty much everything in real world programming and is putatively one of Lazarus's strengths, shouldn't that, also, highlight how great Lazarus is? Take a moment to digest the report -- and think deeply about the implications.  Pascal is about to fall out of the top twenty ranking it has held for literally decades.  In case you aren't clear what losing top twenty ranking means, let me be stark: top 20 languages are considered serious development platforms and get a lot of individual press.  They tend to hold their popularity for a long time, as serious investment in time and dollars is at stake.  It will be dark news for FP to lose top twenty; Languages not in the top twenty are roughly lumped with COBOL, not often reported on in the press, and not taken very seriously by most companies.  And to fall from top twenty status -- hell, Delphi was top five I believe, not that far back.  Well, that is catastrophic. How can that be and what, if anything, can be done about it? Let me be clear and constructive: First of all, I don't blame Lazarus; I think it is really Delphi that has lost momentum.  LAZARUS/FP IS A PHENOMENAL LANGUAGE/DEVELOPMENT ENVIRONMENT. REALLY, WITHOUT PEER -- AND WE OUGHT TO BE LEADING THE PARADE IN OUR STRONG AREA OF ENTERPRISE/DESKTOP APPLICATIONS.  We all know Lazarus's "unique selling proposition" and we know that with the possible exception of C#, there is no other candidate for RAD business / desktop application development where both GUI and SQL come together. We know the Laz programming team is awesome; that Laz is written is Laz says it all -- or should. And when you talk cross-platform, C# doesn't make the cut, either; FP – Lazarus – stands alone.  Yes, there is always “Java”, but Java doesn't integrate GUI and has some other problems right now. This should be – could be – the opportunity for Lazarus to really shine. Why isn't that happening...yet? Well, there is the issue of big corporate money.  I don't want to ignore that, but many of the top languages are now open source and they got to the top on merits and market alone. I'm going to suggest we attempt to seize the day here.    And start by acknowledging a problem: LAZARUS IS STILL MORE COMPLICATED THAN IT HAS TO BE FOR NEW USERS -- PARTICULARLY IN THE AREA OF BASIC DATABASE CONNECTIVITY.  The IDE can be overwhelming (I am still trying to make sense of all the ways I open a “new” program; I think this could be better organized and documented). But I think, most of all, we are missing a huge opportunity with not showcasing and strengthening Lazarus's SQL connectivity.  Yeah, we have all those buttons in the IDE.  But have you ever tried to use them .. AS A NEW USER? There is no automatic connection and documentation on how to bridge that gap is poor to non-existent. Here's how simple it is to get SQLite3 – THE #1 MOST USED DATABASE IN THE WORLD, by a wide margin -- working with Python: >>> import sqlite3 Yeah, that's it.   Compare that to the hours and hours and hours a new user can waste trying to get ANYWHERE with Laz database programming. Our documentation could use a check up from the neck up, in general, but in the area of database connectivity, well ... let's be honest, Lazarus SUCKS big time.  For those of you who might disagree I suggest you find a smart newbie, but one who has limited or no experience with the “priesthood” of programming nonsense, and ask them to bring up Lazarus … and then SQL.  Under Windows, at least, Laz installs like magic.  But database connectivity is a serious embarrassment versus our prime competitor for new programmers: python. Is this REALLY the best we can do? If so I suggest we give up and let Pascal die.  But if not – and I rather suspect not (actually, I'm 100% sure we can do much better) – let's make 2018 the year we finally fix Lazarus's non-competitive data-base connectivity issue and make headway on better documentation in general.  And then re-launch with our best foot forward.  Maybe develop an EdX course?  Also, going after both MacOS and – especially-- Linux are other areas where we ought to step it up.  We aren't likely to catch up with Microsoft C# on Windows, but they are AWOL on both Mac and Linux.  That is where the future lies and we ought to step up our game: Linux, SQLite3, Lazarus...that would be a winning combination! ---------------------------------------------------------------------- taazz · 2018-07-04 01:00 really? that is your major insite please make lazarus easier for sql databases? You compare a full blown visual designer that helps you visually place eachand every field in the expected position to what? Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i uses sqlite3; that's it? that is everything you need to do to use sqlite in fpc too. Well, you still need to know the internals of sqlite to use it and you need some short of cache for the data and a way to access them individually and some way to show them to the end user well all that is only around 60% of the process and..., I know! why don't you (who knows better) propose a better way of doing things and prove it is better with a prototype library that works with an actual sql database and not a toy base well lets keep it simple lets go with postrgresql it has enterprise power and its not very heavy on resource requirements. Please go ahead I'm burning with anticipation for a brad new easier library that is both light on resources and as easy to change sql databases as the current is. ---------------------------------------------------------------------- guest48180 · 2018-07-04 02:44 I have to agree with tan regarding ease of use, good documentation to be able to use Lazarus to its fullest extent. I struggle here. Big time too! The docs are poor and hard as hell to follow. ---------------------------------------------------------------------- Handoko · 2018-07-04 02:47 Quote from: tan on July 04, 2018, 02:45:31 amLAZARUS IS STILL MORE COMPLICATED THAN IT HAS TO BE FOR NEW USERS -- PARTICULARLY IN THE AREA OF BASIC DATABASE CONNECTIVITY. I'm not good in database programming. But SQL database connection in Lazarus isn't that hard. https://www.youtube.com/watch?v=pq2oCiJePHo Quote from: tan on July 04, 2018, 02:45:31 amI'm going to suggest we attempt to seize the day here. I appreciate your attempt to make Lazarus/FPC better. But what we need now is not suggestions because lots of suggestions have been voiced. You can search the old posts and find a long lists of suggestions. What we are lacking now is manpower. One of the serious problems for newbies is the documentation. The information is there but they're not well organized. If you're good in English please help us improve the wiki and documentation. My English is not good so I participate in this forum helping newbies. ---------------------------------------------------------------------- lainz · 2018-07-04 02:54 I've not used sqlite outside Lazarus and Delphi. The thing maybe is that in Delphi I just drop 2 components. Connection and Query. In Lazarus I need to drop one more. But that's it! Once you remember the order of connecting them it just works. Maybe adding something like a single multi purpose component for newbies will be good.  . Something like sqlite connquery ---------------------------------------------------------------------- GAN · 2018-07-04 03:34 A sqlite3 database can be connected only by a few clicks without writing a single line of code. Is that hard? You have to study, read and practice. For a couple of months I read too many "suggestions " and comparisons with other languages by new users. The developers of Lazarus, Free Pascal and many components, do a great job and many of them even participate in this forum. Too much. Bye. ---------------------------------------------------------------------- taazz · 2018-07-04 03:49 if there are specific problems we can address fill free to post them here if there are specific irritation you would like to see enhanced please do post them as well. If there are features you'd like to see implemented also post them here. Saying that accessing sql data is too complicated shows 2 things 1) you are not whiling to learn and 2) you are not experienced enough on the subject to make any kind of suggestion. Even if I posted a detailed answer providing complete information the OP would simple discard it as not python compatible or in line with his experience or what ever rule of thumb used to make the above statement. Finally if you can not be bothered to find out which parts of the library/design are hard for you to understand and ask for help why should I bother to rewrite the existing information in any way? It is more probable to ignore or not understand any new documents as well, after all the new document will probably fail to address your points of friction that need to be smoothed out too. ---------------------------------------------------------------------- Leledumbo · 2018-07-04 04:07 Quote from: tan on July 04, 2018, 02:45:31 amPer the respected  TIOBE June 2018 index of programming language popularity, "DELPHI/OBJECT PASCAL” HAS PLUMMETED since 2017 from 13th to 19th position; that is a stunning fall.  Even allowing that Delphi has lost momentum, shouldn't FP/Lazarus have picked it up? If TIOBE is your source of truth for popularity, then as I said in another thread, spam its sources (typically generic programming forum like stackoverflow) with (Object) Pascal/Lazarus/Delphi/Free Pascal questions. Understanding their method is the way to get on top of their list. Delphi Tokyo 10.2 introduced numerous features so people were talking about it and that boosted its popularity for a couple of months. No news since then, hence the position drop because people are no longer talking about it. Quote from: tan on July 04, 2018, 02:45:31 amConcomitantly, SQL popularity has SOARED to 9th position.  Since SQL is bedrock to pretty much everything in real world programming and is putatively one of Lazarus's strengths, shouldn't that, also, highlight how great Lazarus is? Did you read: "IMPORTANT NOTE. SQL has been added again to the TIOBE index since February 2018. The reason for this is that SQL appears to be Turing complete. As a consequence, there is no recent history for the language and thus it might seem the SQL language is rising very fast. This is not the case." Previously, SQL was out of the list and their engine searches only specific procedural extension to SQL that's turing complete, such as Transact SQL. Given the availability of SQL implementations, how do you think a plain query "SQL" would return when searching globally across the net? ---------------------------------------------------------------------- Windsurfer · 2018-07-04 05:52 I used to love Delphi for any kind of DB. Not having used a DB for about 15 years, I have been trying for several days to make SQLite3 work. On a clean fixes install, the IDE can't compile the SQLite3 package without crashing. I run linux Mint 18.3 64 bit, with all the libs that I can find installed. I have read all sorts of threads saying compile the package separately, drop the files in your project folder, place code in your form.create event, etc, etc. I am inclined to believe SQLite works, but if a current expert could write a wiki tutorial that works, or tell me how to make it work, I would gladly document it. ---------------------------------------------------------------------- Thaddy · 2018-07-04 06:21 There is a reported bug: sqlite3 must be installed *before* you install the component or build lazarus with the component. The package tries to load sqlite3 at design time and that breaks everything when sqlite3 is not installed. I am still wondering why that is not fixed. If you use sqldb instead (with sqlite3 back-end) that problem does not exist, because that behaves properly. ---------------------------------------------------------------------- taazz · 2018-07-04 06:24 Quote from: Windsurfer on July 04, 2018, 07:52:06 amI used to love Delphi for any kind of DB. Not having used a DB for about 15 years, I have been trying for several days to make SQLite3 work. On a clean fixes install, the IDE can't compile the SQLite3 package without crashing. I run linux Mint 18.3 64 bit, with all the libs that I can find installed. I have read all sorts of threads saying compile the package separately, drop the files in your project folder, place code in your form.create event, etc, etc. I am inclined to believe SQLite works, but if a current expert could write a wiki tutorial that works, or tell me how to make it work, I would gladly document it. You are on linux you should be able to identify and ignore non linux advice like drop library files in folders, it does not work on linux by design, focus on linux specific advice. For starters post a complete description  of 1) what is installed on your system and where/how it got installed. This must be separated in to two main groups, system libraries and lazarus packages. 2) what are the steps that produce the problem and what is the error code and message you get. Please be as detailed as possible and keep in mind that there are at least 2 packages for sqlite (as far as I remember I never used them outside a lab setup/test on windows) if nothing works then you might setup a private remote desktop connection with any one that could take a closer look on your installation. Keep in mind that linux needs attention in order to support 32bit and 64bit application on the same installation it might be that something is not setup correctly on that front also. ---------------------------------------------------------------------- Windsurfer · 2018-07-04 07:02 Thanks Thaddy, I use fpcupdeluxe for my installations. All was perfect until I started trying to use SQLite, SQLite3 and Zeos. I solved the missing zcomponent problem with Zeos. That is now OK. Unfortunately I lack your insight and knowledge. After much trial and error, SQLite3 loads and compiles, but the IDE then crashes as per the attachment. ---------------------------------------------------------------------- bee · 2018-07-04 07:52 Working with Lazarus, like any other open source projects as well, is not easy but it's not hard either. You just need to know where to get the correct and updated informations, to make sure you know what you're about going to do. And those valuable informations are scattered all over the internet (wikis, blogs, forums, mailing list archives, stackoverflow, etc). I've been using Lazarus to make DB apps for years, both desktop and web apps, mainly using sqlDB (FPC database general connector). I use it to connect to various kinds of databases, such as sqlite, mySQL, Firebird, even Oracle. And it went mostly fine. Well, of course there are some glitches and rough edges around the corners, but eventually it can be solved or worked-around. Once you know how to do it, it's actually not that hard. I have never used fpcupdeluxe. My installation procedure is quite simple actually. Just download all of the required packages from SourceForge. Then I install fpc-source, fpc-binary, then lazarus- binary, in that order. If the installer is complaining that it requires something else to be installed too, then simply install whatever it needs. Repeat them until all packages are installed correctly. Sometimes the struggle isn't really about how to do it, but how to get the correct informations of how to do it correctly. If you somehow are unable to find that information, then you need to do your own experiment to find the way yourself. That's the fun of programming and open source. In my local language, we call it "ngoprek". You should consider the last resort before you decide to give up… try CodeTyphon (CT). Personally, I disagree with the way the author of CT build CT. That's why I refuse to use it. But I heard it helps newbies installing FPC and Lazarus without too much of struggle and burden. So, it might help you, too. Good luck and happy coding! ---------------------------------------------------------------------- MichaelBM · 2018-07-04 08:00 Found this: http://www.schoolfreeware.com/Free_Pascal_Lazarus_App_GUI_Tutorials_Wi th_Example_Code.html ---------------------------------------------------------------------- Leledumbo · 2018-07-04 08:10 Quote from: Windsurfer on July 04, 2018, 09:02:52 amAfter much trial and error, SQLite3 loads and compiles, but the IDE then crashes as per the attachment. The attachement doesn't seem to reflect your explanation. It doesn't crash, but failed when linking. Without you copying the entire error message, I can only guess that you miss -dev package for SQLite3 (Debian derivatives legacy sin, but may be good to save some space). Or any other library, just find out what the compiler (or linker) says about cannot find blablabla. ---------------------------------------------------------------------- scidatproc · 2018-07-04 08:17 The restriction of Lazarus to database applications on this topic here sounds very strange for me. Database applications are only a small part of the possibilities of Lazarus. I'm using Freepascal and Lazarus - from the beginning, at least 23 years - for writing scientific programs for data acquisition and processing, electronic and numerics simulations, and a compiler for microcontrollers. Lazarus can be applied for commercial applications, but it was not designed to be a commercial database system. Lazarus is an excellent tool for Linux and Windows even without database connectivity. Therefore, why should Lazarus die? ---------------------------------------------------------------------- marcov · 2018-07-04 08:29 The hardest part of Lazarus, a part which is fully undocumented, is how to live with trolls  Scidatproc: I use Delphi to write machine vision apps fulltime. Some people call me crazy too ;-) ---------------------------------------------------------------------- Zvoni · 2018-07-04 08:54 Quote from: marcov on July 04, 2018, 10:29:38 amThe hardest part of Lazarus, a part which is fully undocumented, is how to live with trolls  Didn't you know? Since "The Hobbit" every kid knows, that Trolls turn to Stone in Sunlight! Easy to live with Trolls: Just stay on the sunny side of life! ---------------------------------------------------------------------- marcov · 2018-07-04 10:00 To put something constructive in a troll thread, here is a SQLite query program that I use to dump the tables of my ereader (mostly to find out which books are fully read, and which not, to free up space without manually scrolling like crazy through the menus) It is not written to be short or clean, it is a throwaway copy-and- paste-and-adapt from an early script.  It also goes through the general DB layer, instead of figuring out all sqlite API peculiarities. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i program sqlbookdb;// dumps tables of Pocketbook ereader.{$mode delphi}uses   Classes, SysUtils, sqlite3conn, sqldb, db,process; function CreateQuery(pConnection: Tsqlconnection; pTransaction: TSQLTransaction): TSQLQuery;begin  result := TSQLQuery.Create(nil);  result.Database := pConnection;  result.Transaction := pTransactionend; var  connect: TSQLite3Connection;  SQLQuery1: TSQLQuery;  transact: TSQLTransaction;  Query        : TSQLQuery;begin  connect:=TSQLite3Connection.create(nil);  connect.LoginPrompt := False;  connect.DatabaseName := 'D:\testing\touch2db\books.db';  connect.KeepConnection := False;  transact:=TSQLTransaction.create(nil);  transact.action:=caNone;  transact.database:=connect;  connect.Transaction:=transact;  Query := CreateQuery(Connect, Transact); if paramcount>0 then   Query.SQL.Text:='select Books.OID,Books.Authors,Books.Title,TagNames.TagName,Tags.Val from Books join Tags on (Books.OID=Tags.ItemID) join TagNames on (Tags.TagID=TagNames.OID) order by Books.TimeAdd' else   Query.SQL.Text:='select Books.OID,Books.Authors,Books.Title,TagNames.TagName,Tags.Val from Books join Tags on (Books.OID=Tags.ItemID) join TagNames on (Tags.TagID=TagNames.OID) where Tags.TagId=80 order by Books.TimeAdd';     Connect.Open;  Query.Open;  while not Query.Eof do  begin    Write( 'ID: '    , Query.FieldByName('OID').AsInteger,           ' Name: '  , Query.FieldByName('Authors').AsString,          ' title: '  , Query.FieldByName('Title').AsString,            ' tname: '  , Query.FieldByName('TagName').AsString,            ' Val: '  , Query.FieldByName('Val').AsString);    writeln;    Query.Next;  end;  Query.Close;  Connect.Close;  Query.Free;  Transact.Free;  Connect.Free;end.  If there is anything good to come of this thread, there is maybe a lack in some easy to use examples. But that is something that can be fixed by anyone who wants to spend some time on the project instead of doing inflammatory posts. ---------------------------------------------------------------------- Windsurfer · 2018-07-04 10:40 Marcov, thanks for the code. I'll try it later. Thanks to everyone else for their views and advice. I will read The Hobbit immediately, although I originally lost interest in 1966 after about five pages. I have been using Lazarus for some years for quite big applications (but not Db related), have contributed a few examples and wiki help topics whenever I got stuck and had to work to find a solution. I'll do the same again with this. ---------------------------------------------------------------------- Windsurfer · 2018-07-04 11:29 Leledumbo, Thanks. I did not have the -dev installed. I now have the following installed and the IDE compiles and links. libsqlite3-0 libsqlite3-dev libsqlite3-0:i386 Will try more later. ---------------------------------------------------------------------- JD · 2018-07-04 12:39 Even though Lazarus is not just for database development, I guess the problem of tan is that SQLite3 connectivity is not enabled by default in Lazarus. Python's standard libraries comes with lots of extras. Here is another trivial example using the Chinook database which compares Python & Lazarus manipulation of an SQLite database. A) Here is Python code for retrieving all the system tables from the Chinook database Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i import sqlite3 con = sqlite3.connect('chinook.db')cursor = con.cursor()cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%';")print(cursor.fetchall())  B) Here is the same code in Lazarus but which puts the tablenames in a combobox Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i       // Set the type of database we are trying to connect to      SQLConnector1.ConnectorType := 'SQLite3';      // Set the name and path of the database      // If the database is in the same directory as the program, the      // path can be omitted; just the name of the database will suffice      SQLConnector1.DatabaseName  := 'chinook.db';      // Now connect to the database      SQLConnector1.Connected     := True;      // Set the transaction to active      SQLTransaction1.Active := True;      // Run the query that gets the names of the non-system tables in the database      SQLQuery1.SQL.Text := 'SELECT tbl_name FROM sqlite_master WHERE type = ''table'' AND tbl_name NOT LIKE ''sqlite_%''';      SQLQuery1.Open;    //      while not SQLQuery1.EOF do      begin        ComboBox1.Items.Add(SQLQuery1.FieldByName('tbl_name').AsString);      SQLQuery1.Next;      end;  As you can see, it is not that difficult to do.  NOTE: One just needs to add SQLConnector, SQLTransaction and SQLQuery to the project, connect the 3 components and then put the sqlite3 dll in the same directory as the project. The Chinook database is here http://www.sqlitetutorial.net/wp-content/uploads/2018/03/chinook.zip. The sqlite3 32-bit dll is here https://www.sqlite.org/2018/sqlite-dll- win32-x86-3240000.zip The complete example (without the database and the sqlite 32 bit dll) is in the attachment. After connection, the database tables names are loaded into the combobox; selecting a table and then clicking on the search button will display the contents of the table in the DBGrid. I hope this helps the newcomers.  Cheers, JD ---------------------------------------------------------------------- marcov · 2018-07-04 12:57 The fatal flaw in tan's concept is that brevity equals ease of use, while most beginners will copy and paste from examples. And that is one ctrl-C ctrl-V, regardless of amount of lines copied. Anyway, I do think there could be more examples for database use. Maybe we should compare what it would take to make a small gui app with database connection and grid in Python and Lazarus. Probably I can just copy-and-paste that from some Python example (where?) and the Lazarus side is doable as well. edited... oh, you already have made a GUI example for Lazarus, now we just need the Python equivalent to compare with. ---------------------------------------------------------------------- JD · 2018-07-04 13:02 Quote from: marcov on July 04, 2018, 02:57:26 pmedited... oh, you already have made a GUI example for Lazarus, now we just need the Python equivalent to compare with.   That is the elephant in the room. I don't like TKinter (it is ugly in my opinion). wxPython is better but it is complicated to set up so Lazarus wins hands down in that area. ---------------------------------------------------------------------- Thaddy · 2018-07-04 13:15 Quote from: JD on July 04, 2018, 03:02:19 pm That is the elephant in the room. I don't like TKinter (it is ugly in my opinion). wxPython is better but it is complicated to set up so Lazarus wins hands down in that area.  No this is the elephant: Can you show us how you designed the python app visually and did that visual designer automatically keep sync with the underlying sourcecode and the other way around? Probably listened too much to Nelly the elephant (the Toy Dolls are my friends, we played with them in the 80's) https://www.youtube.com/watch?v=9m7tPikH0UA ---------------------------------------------------------------------- JD · 2018-07-04 14:22 Quote from: Thaddy on July 04, 2018, 03:15:46 pmCan you show us how you designed the python app visually and did that visual designer automatically keep sync with the underlying sourcecode and the other way around?   This is NOT possible as far as I know. No Python development tool (Spyder3, PyCharm, NinjaIDE, Anaconda etc) has that. I would not even want to try it since I know Lazarus does a better job. That is why I ONLY use Python for Data Science and system related stuff like backup scripts. PgAdmin4 for PostgreSQL https://www.pgadmin.org/docs/pgadmin4/dev/ is an example of a Python database application using the Flask framework. It runs in a browser and it is slow in my opinion. But many people want browser based applications nowadays so we are stuck with it.  PgAdmin3 which was written in C++ and wxWidgets was much faster but it has since been abandoned because of the trend towards browser based applications. If I am forced to deploy web/browser based applications, I'd rather use Java EE. I do have several Lazarus based client-server REST applications developed with Indy10 and mORMot with a PostgreSQL backend that work very, very well so I am satisfied with Lazarus.  JD ---------------------------------------------------------------------- marcov · 2018-07-04 14:33 Yup, I know pgadmin4, you can see the form build-up, and sometimes you are just waiting till something happens. But even just getting some proper, working wxwidget or gtk dlls to go with the python wrapper can already be horrible experience. ANd then you haven't even started coding python yet. ---------------------------------------------------------------------- JD · 2018-07-04 14:44 Quote from: marcov on July 04, 2018, 04:33:45 pmBut even just getting some proper, working wxwidget or gtk dlls to go with the python wrapper can already be horrible experience. ANd then you haven't even started coding python yet. Yes I agree. That was my first attempt at making a GUI for my C++ applications. Luckily for me I discovered Delphi/Lazarus and the rest is history. I tried wxPython a little but I quickly abandoned it. JD ---------------------------------------------------------------------- marcov · 2018-07-04 14:57 Well, till 2003-5 Lazarus used GTK(1), also on Windows . I'm really glad that era is gone. ---------------------------------------------------------------------- Thaddy · 2018-07-04 14:57 Guido van Rossum is guilty of ruining my space bar before the warranty runs out... They should make an exemption for keyboards when using Python. But as I stated before: I like Python a lot and use it all the time for shorts and modelling. Just not for GUI applications. ---------------------------------------------------------------------- tan · 2018-07-04 15:18 Quote from: taazz on July 04, 2018, 03:00:12 amreally? that is your major insite please make lazarus easier for sql databases? You compare a full blown visual designer that helps you visually place eachand every field in the expected position to what? .... Yes, that is exactly what I am suggesting.  If you search through the database forum here, or search the internet for variations on "how to connect Lazarus to SQL" you will see a lot of variations on a couple of themes: (1) new users having disproportionate recurring trouble with the same issues and (2) documentation which is either incomplete or out of date or which takes large leaps in assuming new users are more sophisticated than perhaps they are.  As a "hero" member, probably with vast experience, I am guessing you can't relate.  You don't need to relate: you need to OBSERVE WHAT REPEATS looking to triage investment in resources.  I work re-engineering manufacturing and other business processes (look up "lean manufacturing" or "toyota production system"). I'm not much of a programmer, and I know very little about Lazarus compared to most around here.  What I am pretty good at is identifying where changes are going to be most profitable; what is the bottleneck/sticking point in a flow. What I do know is Lazarus has huge potential but is not operating at its potential -- it is not catching on with new users and new companies as it, on the surface, should.  Why not?  What's the bottleneck?  With limited resources and an otherwise falling popularity, the Lazarus community can either defend what isn't working too well or can try to figure out what is slowing adoption the most and focus resources there. What I already "know" isn't what I look for (that's mostly what I try to pretend I don't know so I can SEE what is otherwise likely invisible to me).  Put differently, I look for "mistakes" which repeats and is a limiting step.  A "mistake" which repeats isn't a mistake at all; it is a bad habit AND commonly a point of disproportionate leverage for productivity improvement. Lazarus' strengths vs Python (and really just about everything else) can be leveraged to grow most effectively by identifying and prioritizing sticking points and focusing on addressing them. Imagine a Lazarus where a new user or a CEO -- say a person who is pretty bright but has maybe no programming experience -- is going to be taken through a tutorial showing Laz main strengths vs the top five programming languages (since that is the 20% that produces at least 80% of all programming investment). What will trip up that new user?  WATCH.  Streamline THAT bottleneck or address THAT need.  REPEAT.  That is the basic improvement loop which took Toyota from a nothing company producing -- I think it was textiles -- using antiquated processes and equipment in a bombed-out medieval country to the dynamo of excellence you see today. Thankfully, Laz doesn't need any super abstract new features. It needs to clean up a little bit what it already has -- to remove the maybe 1% of sticking points which are producing virtually all of the resistance to reaching its potential.  And, yes, that means concentrating on new user adoption streamlining. Laz is revolutionary, still, in its drag-n-drop IDE; its full database-widget integration; its RAD features for desktop development of business software; its being cross platform to Linux, in particular. Make THAT the obsessive focus for the next few years of the core team and community and it seems reasonable/rational that disproportionate productivity (measured by adoption) will result which will look like a "miracle" to some. That is what Borland did in the beginning. Go back to a winning strategy. ---- Look, the last thing I want to to is antagonize you as a "hero" member.  You guys have it all over me in terms of technical knowledge in programming, I'm sure.  But I admit I am trying to be provocative. Making a suggestion that nobody paid any attention to didn't seem like a good use of my time. Trying to get those leading Lazarus to see things from a different perspective did seem like a good use of my time.  The database integration is, like, 99.9% there.  The Linux integration likewise. Cross the damn finish line in style and claim your victory; the applause you guys deserve will come. ---------------------------------------------------------------------- taazz · 2018-07-04 15:42 Quote from: tan on July 04, 2018, 05:18:43 pmQuote from: taazz on July 04, 2018, 03:00:12 amreally? that is your major insite please make lazarus easier for sql databases? You compare a full blown visual designer that helps you visually place eachand every field in the expected position to what? .... Yes, that is exactly what I am suggesting.  If you search through the database forum here, or search the internet for variations on "how to connect Lazarus to SQL" you will see a lot of variations on a couple of themes: (1) new users having disproportionate recurring trouble with the same issues and (2) documentation which is either incomplete or out of date or which takes large leaps in assuming new users are more sophisticated than perhaps they are.  As a "hero" member, probably with vast experience, I am guessing you can't relate.  You don't need to relate: you need to OBSERVE WHAT REPEATS looking to triage investment in resources.  I work re-engineering manufacturing and other business processes (look up "lean manufacturing" or "toyota production system"). I'm not much of a programmer, and I know very little about Lazarus compared to most around here.  What I am pretty good at is identifying where changes are going to be most profitable; what is the bottleneck/sticking point in a flow. What I do know is Lazarus has huge potential but is not operating at its potential -- it is not catching on with new users and new companies as it, on the surface, should.  Why not?  What's the bottleneck?  With limited resources and an otherwise falling popularity, the Lazarus community can either defend what isn't working too well or can try to figure out what is slowing adoption the most and focus resources there. What I already "know" isn't what I look for (that's mostly what I try to pretend I don't know so I can SEE what is otherwise likely invisible to me).  Put differently, I look for "mistakes" which repeats and is a limiting step.  A "mistake" which repeats isn't a mistake at all; it is a bad habit AND commonly a point of disproportionate leverage for productivity improvement. Lazarus' strengths vs Python (and really just about everything else) can be leveraged to grow most effectively by identifying and prioritizing sticking points and focusing on addressing them. Imagine a Lazarus where a new user or a CEO -- say a person who is pretty bright but has maybe no programming experience -- is going to be taken through a tutorial showing Laz main strengths vs the top five programming languages (since that is the 20% that produces at least 80% of all programming investment). What will trip up that new user?  WATCH.  Streamline THAT bottleneck or address THAT need.  REPEAT.  That is the basic improvement loop which took Toyota from a nothing company producing -- I think it was textiles -- using antiquated processes and equipment in a bombed-out medieval country to the dynamo of excellence you see today. Thankfully, Laz doesn't need any super abstract new features. It needs to clean up a little bit what it already has -- to remove the maybe 1% of sticking points which are producing virtually all of the resistance to reaching its potential.  And, yes, that means concentrating on new user adoption streamlining. Laz is revolutionary, still, in its drag-n-drop IDE; its full database-widget integration; its RAD features for desktop development of business software; its being cross platform to Linux, in particular. Make THAT the obsessive focus for the next few years of the core team and community and it seems reasonable/rational that disproportionate productivity (measured by adoption) will result which will look like a "miracle" to some. That is what Borland did in the beginning. Go back to a winning strategy. ---- Look, the last thing I want to to is antagonize you as a "hero" member.  You guys have it all over me in terms of technical knowledge in programming, I'm sure.  But I admit I am trying to be provocative. Making a suggestion that nobody paid any attention to didn't seem like a good use of my time. Trying to get those leading Lazarus to see things from a different perspective did seem like a good use of my time.  The database integration is, like, 99.9% there.  The Linux integration likewise. Cross the damn finish line in style and claim your victory; the applause you guys deserve will come. ok lets assume you are right. You claim that you took a look on the data and based on your experience and knowledge you came to that conclusion. I'd very much like to see it my self too. Please provide the following 1) existing data you collected 2) sources of the data.3) methodology of collection.4) if there is any software/bot that was used to collect the data I would be more than interested to see (or use).I'm a programmer not an analyst so telling me what to look for is not very helpful I'm not interested in learning how you do your job. I will appreciate any sort of analysis though with the data, its impossible for me to identify any specific problems with out data. ---------------------------------------------------------------------- Thaddy · 2018-07-04 15:53 3) where's the two way sync between user interface and code? As shown before, there's hardly any difference in WRITING the code, but with Python you rely on some weird god that does that for you? Much easier to crash that.... ---------------------------------------------------------------------- marcov · 2018-07-04 16:03 Quote from: tan on July 04, 2018, 05:18:43 pmYes, that is exactly what I am suggesting.  If you search through the database forum here, or search the internet for variations on "how to connect Lazarus to SQL" you will see a lot of variations on a couple of themes: (1) new users having disproportionate recurring trouble with the same issues and (2) documentation which is either incomplete or out of date or which takes large leaps in assuming new users are more sophisticated than perhaps they are.  As a "hero" member, probably with vast experience, I am guessing you can't relate.  You don't need to relate: you need to OBSERVE WHAT REPEATS looking to triage investment in resources.  Words like disproportionate are horribly subjective. Nevertheless, that there is a lot that can be done to lower the barrier of entry for newbies should not come as a surprise. However this has been known for decades, just what to compare with changes to the flavour of the day. The problem is that nobody seems to want to work on it (remember: purely volunteer driven), and efforts to scale up are slow, and not yet ready to pay people to do such work. Most of our budget is payed for by Core members with occasional gifts.  Remember, we don't have a major US IT giant backer, like most of the scripting languages (Ruby/Perl/Python) and other languages (Java, .NET). Comparing us to such projects is therefore not productive. QuoteI work re-engineering manufacturing and other business processes (look up "lean manufacturing" or "toyota production system"). I'm not much of a programmer, and I know very little about Lazarus compared to most around here.  What I am pretty good at is identifying where changes are going to be most profitable; what is the bottleneck/sticking point in a flow. That is kicking in an open door. We get tens of such inflammatory posts a year. Some documentation, some obsess just over linecount, some about some target that is behind the norm (like Lazarus on OS X) It is easy to find flaws. It is harder to pinpoint origins, do it based on proper comparisons (not comparing multinationals to 10 headcount volunteer projects) and, most importantly, to plot a workable, realistic course to improve the situation QuoteWhat I do know is Lazarus has huge potential but is not operating at its potential -- it is not catching on with new users and new companies as it, on the surface, should.  Why not?  Maybe the question is what exact you compare with, and what those did to come ahead. And I bet you it is a major backer early on in the development history, or some distro that ordains it to the scripting language of the future (which is often the same thing, since Redhat and Ubuntu are also multinationals) QuoteWhat's the bottleneck?  With limited resources CORRECT! Limited resources. Quoteand an otherwise falling popularity, the Lazarus community can either defend what isn't working too well or can try to figure out what is slowing adoption the most and focus resources there. This is incorrect. Lazarus is still rising and getting used more. Forum activity and downloads are at all time heights. It just doesn't grow exponentionally and doesn't make the headlines. QuoteWhat I already "know" isn't what I look for (that's mostly what I try to pretend I don't know so I can SEE what is otherwise likely invisible to me).  Put differently, I look for "mistakes" which repeats and is a limiting step.  A "mistake" which repeats isn't a mistake at all; it is a bad habit AND commonly a point of disproportionate leverage for productivity improvement. So please document all those mistakes that you found while starting thoroughly, so that the next doesn't run into it. Coordinate with other people going through the same process to give it some structure. QuoteImagine a Lazarus where a new user or a CEO -- say a person who is pretty bright but has maybe no programming experience -- is going to be taken through a tutorial showing Laz main strengths vs the top five programming languages (since that is the 20% that produces at least 80% of all programming investment). We can grow a factor 50 and still not make that cut. We are not regularly featured in corporate magazines, and we have no big corporate showcase. Even Delphi struggles with that, and Embarcadero is a multimillion company. We have single thousands annual budget. QuoteWhat will trip up that new user?  WATCH.  Streamline THAT bottleneck or address THAT need.  REPEAT.  That is the basic improvement loop which took Toyota from a nothing company producing -- I think it was textiles -- using antiquated processes and equipment in a bombed-out medieval country to the dynamo of excellence you see today. Please DO! Just start a wiki and start collecting and organizing stuff. We need people to do things, not write long mails about what is wrong. And keep in mind that any tool has black holes, as this discussion already demonstrated.  A whine report about python GUIs on Windows 5 years ago is still relevant. ---------------------------------------------------------------------- Thaddy · 2018-07-04 16:13 To summarize this: If England can win on penalties.... ---------------------------------------------------------------------- tan · 2018-07-04 18:06 Quote from: marcov on July 04, 2018, 06:03:46 pmQuote from: tan on July 04, 2018, 05:18:43 pmYes, that is exactly what I am suggesting.... Words like disproportionate are horribly subjective. Nevertheless, that there is a lot that can be done to lower the barrier of entry for newbies should not come as a surprise. However this has been known for decades, just what to compare with changes to the flavour of the day. The problem is that nobody seems to want to work on it (remember: purely volunteer driven), and efforts to scale up are slow, and not yet ready to pay people to do such work. Most of our budget is payed for by Core members with occasional gifts.  Remember, we don't have a major US IT giant backer, like most of the scripting languages (Ruby/Perl/Python) and other languages (Java, .NET). Comparing us to such projects is therefore not productive. QuoteI work re-engineering manufacturing and other business processes (look up "lean manufacturing" or "toyota production system"). I'm not much of a programmer, and I know very little about Lazarus compared to most around here.  What I am pretty good at is identifying where changes are going to be most profitable; what is the bottleneck/sticking point in a flow. That is kicking in an open door. We get tens of such inflammatory posts a year. Some documentation, some obsess just over linecount, some about some target that is behind the norm (like Lazarus on OS X) It is easy to find flaws. It is harder to pinpoint origins, do it based on proper comparisons (not comparing multinationals to 10 headcount volunteer projects) and, most importantly, to plot a workable, realistic course to improve the situation QuoteWhat I do know is Lazarus has huge potential but is not operating at its potential -- it is not catching on with new users and new companies as it, on the surface, should.  Why not?  Maybe the question is what exact you compare with, and what those did to come ahead. And I bet you it is a major backer early on in the development history, or some distro that ordains it to the scripting language of the future (which is often the same thing, since Redhat and Ubuntu are also multinationals) QuoteWhat's the bottleneck?  With limited resources CORRECT! Limited resources. Quoteand an otherwise falling popularity, the Lazarus community can either defend what isn't working too well or can try to figure out what is slowing adoption the most and focus resources there. This is incorrect. Lazarus is still rising and getting used more. Forum activity and downloads are at all time heights. It just doesn't grow exponentionally and doesn't make the headlines. QuoteWhat I already "know" isn't what I look for (that's mostly what I try to pretend I don't know so I can SEE what is otherwise likely invisible to me).  Put differently, I look for "mistakes" which repeats and is a limiting step.  A "mistake" which repeats isn't a mistake at all; it is a bad habit AND commonly a point of disproportionate leverage for productivity improvement. So please document all those mistakes that you found while starting thoroughly, so that the next doesn't run into it. Coordinate with other people going through the same process to give it some structure. QuoteImagine a Lazarus where a new user or a CEO -- say a person who is pretty bright but has maybe no programming experience -- is going to be taken through a tutorial showing Laz main strengths vs the top five programming languages (since that is the 20% that produces at least 80% of all programming investment). We can grow a factor 50 and still not make that cut. We are not regularly featured in corporate magazines, and we have no big corporate showcase. Even Delphi struggles with that, and Embarcadero is a multimillion company. We have single thousands annual budget. QuoteWhat will trip up that new user?  WATCH.  Streamline THAT bottleneck or address THAT need.  REPEAT.  That is the basic improvement loop which took Toyota from a nothing company producing -- I think it was textiles -- using antiquated processes and equipment in a bombed-out medieval country to the dynamo of excellence you see today. Please DO! Just start a wiki and start collecting and organizing stuff. We need people to do things, not write long mails about what is wrong. And keep in mind that any tool has black holes, as this discussion already demonstrated.  A whine report about python GUIs on Windows 5 years ago is still relevant. Hi, Marcov.  Although my subject line was admittedly provocative (partially due to the need to be concise) I wasn't trying to say FP/Lazarus was falling in net users.  I WAS trying to say that, in the bigger picture, the ObjectPascal/ Delphi train, as a whole, is slowing down and arguably about to drop through the fairly strategic number of 20.  I was explicit that this is probably Delphi falling in relevance and that the Lazarus developers have done an incredible job (beyond incredible, really) in bootstrapping with very limited resources. Metaphorically: Object Pascal is caught in a strong tide rapidly pulling out into a vast sea and FP/Lazarus is a rather small boat caught in that tide without adequate fuel to simply power its way through to the shore.  Tacking (https://en.wikipedia.org/wiki/Tacking_(sailing)) and matching targets with resources is obviously wise.  I can appreciate the problem, having been in analogous situations in other contexts. I don't like making criticisms which are not constructive and, in particular, I don't like leading from the rear (telling other people to work harder when I am not willing to dig in and help pull the load); I'm pretty critical of folks who do that, in fact, so I appreciate your speaking up. I would like to have a conversation with you, or with whomever you feel most appropriate, about how I can best contribute in line with my own limitations, strengths, and interests.  I don't know what will come of that, but it doesn't hurt to talk a little.  My contribution likely comes down to some financial contribution and some management/oversight of a project (not personally programming).  I don't want to donate thousands of dollars and just hope it gets spent wisely.  My interests are, specifically, improving the user experience -- particularly the new user experience.  I think that means improving documentation or working to expand and update tutorials.  However, it might mean funding some further development of the widget-SQL connection.  Further, I would like to most-specifically focus on on SQL (let's say SQLite3 and Postgres) AND LINUX (let's say Ubuntu or Mint to start with and maybe RedHat/Fedora later on). Do you know of a core developer who is particularly interested in improving the SQL and Linux integration experience who might be willing to Facetime or otherwise conference with me a little to see if we can find common interest and reasonable path forward?  I'm not going to commit to throw too much time nor money at this right now, but I am interested in improving the situation; and I suspect it can be improved substantially with relatively little additional work if resources are specifically targeted and managed.  You guys are obviously quite serious and capable or Lazarus wouldn't be where it is already.  I think that's a great start.  You guys have clearly bootstrapped something huge and polished out of limited resources; that's incredibly admirable and in line with the way I usually like to do things (lean). ---------------------------------------------------------------------- Martin_fr · 2018-07-04 18:25 Quote from: tan on July 04, 2018, 08:06:01 pm  I WAS trying to say that, in the bigger picture, the ObjectPascal/ Delphi train, as a whole, is slowing down and arguably about to drop through the fairly strategic number of 20 The short time figures on top of tiobe are meaningless. They change according to short time events (a press release, a leak, a company takeover ... stuff that last a few weeks and then is forgotten) Scroll down to the "Very Long Term History": Quote from: www.tiobe.comProgramming Language   2018   2013   2008   2003   1998   1993   1988 Delphi/Object Pascal   10     12     10     9     -       -     - Pretty stable, maybe even on the rebound... Quote from: tan My contribution likely comes down to some financial contribution and some management/oversight of a project (not personally programming).  I don't want to donate thousands of dollars and just hope it gets spent wisely.  My interests are, specifically, improving the user experience -- particularly the new user experience.  I think that means improving documentation or working to expand and update tutorials.  However, it might mean funding some further development of the widget-SQL connection.  Further, I would like to most-specifically focus on on SQL (let's say SQLite3 and Postgres) AND LINUX (let's say Ubuntu or Mint to start with and maybe RedHat/Fedora later on). You can always place a bounty. (Or offer a job) ---------------------------------------------------------------------- Handoko · 2018-07-04 18:50 Quote from: tan on July 04, 2018, 08:06:01 pm... how I can best contribute in line with my own limitations, strengths, and interests. Glad to hear you're willing to spend some of your time to make Lazarus/FPC better. If you're good in words, you can help to make the wiki/documentation/tutorials better. Many of the information there are outdated, not well-organized and contain dead links. It is an enormous task, but we really need someone to do it. http://wiki.freepascal.org/Lazarus_Documentation http://wiki.freepascal.org/Category:Tutorials https://freepascal.org/docs-html/current/ref/ref.html If you're good in codes, you can help fixing bugs. Visit the bugtracker forum, there you can see hundreds of bugs are waiting to be fixed. But if you're not interested in bugfixing, maybe you can try to write some new features for the IDE or the compiler. https://bugs.freepascal.org/view_all_bug_page.php http://wiki.lazarus.freepascal.org/Roadmap If you're knowledgeable in programming especially Pascal programming, please visit this forum regularly and share your knowledge with newbies. If you have some money to spend, please consider to make bounties. http://wiki.freepascal.org/Bounties https://forum.lazarus.freepascal.org/index.php/board,41.0.html ---------------------------------------------------------------------- marcov · 2018-07-04 18:54 Quote from: tan on July 04, 2018, 08:06:01 pmAlthough my subject line was admittedly provocative (partially due to the need to be concise) I wasn't trying to say FP/Lazarus was falling in net users.  I WAS trying to say that, in the bigger picture, the ObjectPascal/ Delphi train, as a whole, is slowing down and arguably about to drop through the fairly strategic number of 20.  I was explicit that this is probably Delphi falling in relevance and that the Lazarus developers have done an incredible job (beyond incredible, really) in bootstrapping with very limited resources. Metaphorically: Object Pascal is caught in a strong tide rapidly pulling out into a vast sea and FP/Lazarus is a rather small boat caught in that tide without adequate fuel to simply power its way through to the shore.  Yes, in it has that way and has repeatedly been declared dead since the early 2000s (e.g. when Java or .NET started). I still consider those larger threats than something as ackward as Python. Anyway, I think you put too much stock in TIOBE. It is a popularity contest with constantly varying rules. QuoteI would like to have a conversation with you, or with whomever you feel most appropriate, about how I can best contribute in line with my own limitations, strengths, and interests. Well, that's what this forum is for. We currently don't offer 1:1 coaching or buddy programs, because as said we all have day jobs (and often families), but if you have questions or partial things to checkout, just post them here. Donations are channeled via the foundation But in general it all starts with being a responsible user. Document what you find out, and once in a while convert some unit test or other demonstrative piece of code to a real showpiece/example. Often people that try to improve certain parts of the project use these scattered piece as input. That said, Postgresql servers on Linux are pretty much the norm in Lazarus professional use. At least one core member of FPC, and one of Lazarus has that as core business. ---------------------------------------------------------------------- tan · 2018-07-04 21:28 Thanks for all the time the community has given to this thread.  I would like to transition to doing something specific about the specifics I mentioned: (1) documenting or actually improving the ease of average users getting started (2) with SQLite3 and (3) Linux.  I will need guidance.  It was mentioned there are a few people in the development team who might have a corresponding interest and work professionally as programmers?  Who are they or how may I get in touch with them?  As a first step, I am thinking I could hire one of them as a consultant to help get SQLite3 working under Ubuntu (or Mint) Linux for my my company (so hiring them would be a legitimate expense for my business) and then share the documented result with the community?  What do you guys think? As a second step I'd like them to help me put together a complete/foolproof but simple tutorial on  how to then use Laz+SQLite3 under Ubuntu to make some sort of super-simple but extensible GUI- based database project.  I don't know, maybe a basic contact or project list? That, I am hoping, will really drive home in a few minutes WHY Lazarus and really hook some new users when it is published into the community and, ideally, Reddit. If there is some technical reason why this is all much easier to do under Windows I will consider that as a first step, although I'd really like to make it work SIMPLY under Ubuntu/Mint and maybe MacOS, too. Python is able to get running with SQLite3 so easily because, as I understand, it is bundled with Python after about 2.7.   Can it be bundled with Lazarus, by default, in the next release to achieve something similar? Why or why not?  Obviously, some people will want more than SQLite3 but can it be considered for just foundational, maybe with a super simple test database included, so the Laz SQLite3 widgets just work right out of the box?  Why or why not? Is there another forum where you suggest I take this topic? If you just drop me with "just do it and get back to me" I can pretty much guarantee my offer to help won't go anywhere because I am already up to my eyeballs with responsibilities.  I am willing to take this on in addition to my normal responsibilities but I need one or more competent people to interact with me and help guide the project to a reasonable and useful completion. Again, I am NOT a programmer; I don't want to be a programmer again.  I just want to see Lazarus reach potential so I can use it within my businesses going forward and feel like I gave at least commensurate with what I was given in this world. Some close guidance from here, to get me going, would be appreciated...and I think you will find it worth your investment of time in terms of advancing Lazarus.  Thanks. ---------------------------------------------------------------------- Phil · 2018-07-04 22:14 Quote from: tan on July 04, 2018, 11:28:02 pmPython is able to get running with SQLite3 so easily because, as I understand, it is bundled with Python after about 2.7. That's true of Python 2.7 and 3.x only for Windows. macOS and iOS have always bundled libsqlite3.dylib - has nothing to do with Python. Linux typically also has, eg, a symlink like libsqlite3.so.0 pointing to the actual lib, but to program against it on, say, Ubuntu, you need to install the "dev" package. These things are probably best left to the distro's package manager, rather than trying to bundle and use the lib from a non-standard location. Having said that, I don't believe making SQL connectivity easier would have much impact. Since the collapse of desktop app development, languages that traditionally have been associated with desktop app development, particularly on Windows, have declined a bit, as expected (Delphi, VB.NET, C#, VBA). Languages that are now associated with Web- based development (JavaScript, TypeScript) and so-called Big Data and data science develpment (Python, R, Matlab) have increased in usage, sometimes by quite a lot, all as expected. These trends are almost like continental drift: not much you can do to speed it up or slow it down. ---------------------------------------------------------------------- dbannon · 2018-07-04 23:18 Honestly, I don't think Tan is Trolling. He is asking a valid and important question, why is [Delphi, ObjectPascal, Lazarus] dropping in popularity despite what we all know, Lazarus is superb ! Two explanations - TIOBE - does it only count posts to its own family of services ?  Or favour its own ? Few Lazarus people post there because this Forum is so good ! Secondly, what Tan sees as a problem with dbase documentation is really a problem with overall FPC/Lazarus documentation. Really, the documentation is the weak link and one weak link will break the chain. I personally have never contributed any documentation to FPC. Have done some wiki work but that does not end up in the help engine. But I constantly find things that I have to stop writing and go off searching in all odd corners trying to clarify. We need to get more help in the source, but I don't understand the process. If someone could clearly outline the process to improve the source documentation so that it appears in popups in Lazarus editing window and the tool you get when you press F1 we all could help a lot. There is also the "which Unit" problem, I know the method name I want to call but because it's Unit is not in my Uses clause, no help is available, and I don't know what unit to put in the uses clause ! Potential new users get frustrated, and wander away when they connot find easy answers. Davo ---------------------------------------------------------------------- Phil · 2018-07-04 23:26 Quote from: dbannon on July 05, 2018, 01:18:46 amTIOBE - does it only count posts to its own family of services ?  Or favour its own ? Few Lazarus people post there because this Forum is so good ! Read the description of their methodology, which has nothing to do with what you suggest. That doesn't make it any less suspect, however. I would look at something like this instead: https://pypl.github.io/PYPL.html Ignore the absolute values and literal ranking numbers - just look at the trends (below in the graph, where you can compare languages and regions). The PYPL rankings are consistent with what I see around me: That is, I don't know any working programmer who is doing desktop app development, not even legacy app maintenance. Almost all use Python. Those who don't are doing mobile development, typically iOS, using Swift. Everyone uses AWS, etc. ---------------------------------------------------------------------- Martin_fr · 2018-07-04 23:36 Quote from: dbannon on July 05, 2018, 01:18:46 amWe need to get more help in the source, but I don't understand the process. If someone could clearly outline the process to improve the source documentation so that it appears in popups in Lazarus editing window and the tool you get when you press F1 we all could help a lot. afaik... Menu: View > FPDoc Editor Browse the sources (LCL), when you visit a method in the interface part of a unit it will show you the existing doc and let you edit it. The actual doc data is in xml files, in the docs/xml/lcl folder. Start with a small sample and discuss your results early (ideally on the mail list / create a bugreport with your changes, and then ask on the list for review). So you get early feedback on style and what else. QuoteThere is also the "which Unit" problem, I know the method name I want to call but because it's Unit is not in my Uses clause, no help is available, and I don't know what unit to put in the uses clause ! Install the package "Cody" (it is part of Lazarus). Menu: Source > Show Unit / Identifier directory type part of the name, and it will get you suggestions, and can add it together with the unit in the uses clause. Assign a keycombo, and you can open it with the word at the caret. ---------------------------------------------------------------------- tan · 2018-07-05 01:27 Quote from: Phil on July 05, 2018, 01:26:58 amQuote from: dbannon on July 05, 2018, 01:18:46 amTIOBE - does it only count posts to its own family of services ?  Or favour its own ? Few Lazarus people post there because this Forum is so good ! ... I would look at something like this instead: https://pypl.github.io/PYPL.html Ignore the absolute values and literal ranking numbers - just look at the trends (below in the graph, where you can compare languages and regions). The PYPL rankings are consistent with what I see around me: That is, I don't know any working programmer who is doing desktop app development, not even legacy app maintenance. Almost all use Python. Those who don't are doing mobile development, typically iOS, using Swift. Everyone uses AWS, etc. Well that's interesting.  That's in alignment with what is being taught, as far as I can tell. Python in all the schools; Kotlin exploding up to eclipse Java sooner than some might think; Typescript...R.  I don't know how a business can take desktop/LAN applications into the wild (to be hacked). Or maybe there is just a funding freeze on desktop/LAN with companies thinking they need to put all their resources into the "cloud", for now, and just defer on mission critical stuff until later? Color me paranoid on this ending well....Kotlin, at least, can probably handle both domains pretty well. ---------------------------------------------------------------------- dbannon · 2018-07-05 01:55 Quote from: Martin_fr on July 05, 2018, 01:36:52 am Browse the sources (LCL), when you visit a method in the interface part of a unit it will show you the existing doc and let you edit it. The actual doc data is in xml files, in the docs/xml/lcl folder. ..... OK, I'll give that a try. QuoteInstall the package "Cody" (it is part of Lazarus). OK, maybe thats why they call you a "hero member" - I'll certainly give it a try too. If it solves the problem I mentioned, just how do we get it into the hands of the people who really need it ?  Thanks Martin, seriously thanks ! ---------------------------------------------------------------------- VTwin · 2018-07-05 02:14 Quote from: tan on July 04, 2018, 02:45:31 amThe Subject might seem like I'm trolling or unnecessarily conflating two unrelated topics. I'm not. https://www.tiobe.com/tiobe-index/ Per the respected  TIOBE June 2018 index of programming language popularity, "DELPHI/OBJECT PASCAL” HAS PLUMMETED since 2017 from 13th to 19th position; that is a stunning fall. Plummeted with one year as a reference? Delphi/Object Pascal has remained in the top 20 since 2001. There has been an issue where TIOBE calculated Delphi, Pascal, Free Pascal, Object Pascal separately, thus underestimating the significance of Object Pascal. If you remain in the top 20 for that long it is not a fluke. Look at the statistics for a language with similar cross platform capabilities, like Xojo. Can't find it? I think they made 99 one year. ---------------------------------------------------------------------- Phil · 2018-07-05 03:57 Quote from: tan on July 05, 2018, 03:27:14 amWell that's interesting.  That's in alignment with what is being taught, as far as I can tell. I would suggest it has more to do with the decline in desktop app development (Windows) and the shift to cloud-based development (Linux, AWS). AWS represents more than 3 times the cloud business of the next 3 competitors (MS, IBM, Google). (Source: https://www.economist.com/special-report/2018/06/28/how-to-fix-what- has-gone-wrong-with-the-internet) Although Amazon is agnostic about what you run on your AWS instances, pricing considerations mean that in practice people tend to run Linux. See the differences yourself, particularly as you get up in the multi- core range: https://calculator.s3.amazonaws.com/index.html The shift away from MS/desktop dominance should be good for language diversity, since that means a shift away from MS's languages (C#, VB.NET, C++). Towards what is probably still being worked out. Are 20 languages viable? Don't see why not. See this discussion about Google's TensorFlow language evaluation: https://github.com/tensorflow/swift/blob/master/docs/WhySwiftForTensor Flow.md ---------------------------------------------------------------------- white_zombie · 2018-07-05 06:13 Hi, Tan mentioned precisely the only two database I work on (Postgresql and Sqlite) and my main OS for development (Linux), despite I am not a full time programmer, my field it is engineering, data acquisition and PLC programming, and that I only work with databases from time to time, I can say my experience with database and Lazarus+Freepascal is that it is very easy to do anything. I think that working with databases are precisely one of the strongest aspects where these tools shine, but maybe my opinion is biased because I am a long time pascal lover and not a new user as I know Lazarus since years. Best Regards. ---------------------------------------------------------------------- mangakissa · 2018-07-05 06:51 There's a lot of documentation on working with databases on FPC. I also know a beginner who doesn't understand any of the language are 'drowning in the flow *'. That's why I'm creating a document 'How to work with SQLdb and SQLlite step by step'. Unforunally I'll try to find the time to finished it. It's for an article in Blaize Pascal Magaine. But your problem is not only on SQL. For all new things you have to make time to find out how it works. I still want to find out how TIOPF and Mormot works on my way to understand. For these tools there's a lot of examples or documentation. But trying it self in an own application is very tuff as beginner. For all these things there is one special word for it: TIME!!!! ---------------------------------------------------------------------- Martin_fr · 2018-07-05 10:05 Quote from: dbannon on July 05, 2018, 03:55:25 amQuote from: Martin_fr on July 05, 2018, 01:36:52 amInstall the package "Cody" (it is part of Lazarus).OK, maybe thats why they call you a "hero member" That is bound to the amount of posts a person has. (500 or more). Be here long enough and you get there... QuoteI'll certainly give it a try too. If it solves the problem I mentioned, just how do we get it into the hands of the people who really need it ?  I added it to the wiki: http://wiki.lazarus.freepascal.org/Lazarus_IDE _Tools#Unit_.2F_Identifier_Dictionary_.28Cody.29 The entire page is a must read. I bet you find even more features that you didn't know. The other page for finding out features is http://wiki.lazarus.freepascal.org/New_IDE_features_since ---------------------------------------------------------------------- dbannon · 2018-07-05 11:30 Thanks Martin_fr, I have tried, to some extent both tips and they look like good ones indeed. QuoteCodyFor those watching from home, this adds a menu item under Source, "show unit / identifier dictionary" and it does indeed look very useful. But installing it does highlight the problem I mentioned. This quite valuable package is described, in the Package Install/Uninstall tool as - QuoteIDE extensions using Codetools. Now, thats really going to sell it ! And the DocEditor looks pretty cool too. But clearly going to take a bit of experimenting to understand. But yep, you have answered my question for sure. And, finally, I get to be a Hero Member for posting 500 requests for help ? Thats sad .... Davo ---------------------------------------------------------------------- zogtrog · 2018-07-05 12:14 Lazarus is excellent. What it lacks is marketing. I keep trying to tell everyone learn this one language and cross compile to any platform! If you are a company boss this means you do not need lots of people specialising in a platform or a language. I would like very much to be able to contribute more to this excellent community project, but my free time is a very limited resource, and I am not in a position where I can volunteer to do stuff for nothing. ---------------------------------------------------------------------- bee · 2018-07-05 14:19 Just tried asking gogole for "free pascal lazarus sqlite", it gave me this link: https://www.tweaking4all.com/software-development/lazarus- development/lazarus-pascal-getting-started-with-sqlite/ as the third result. The first two are Lazarus tutorial from the wiki. HTH. ---------------------------------------------------------------------- tan · 2018-07-05 15:25 Perhaps an SQL datapoint from today's Reddit programming news: https://winand.at/newsletter/2018-07/sql-over-the-cloud-fsyncgate "SQL’s Rise Continues Google’s shift towards SQL was already mentioned in my previous newsletter. This time a new article by Google further forwards an argument that Google initiated years ago: in the original Spanner paper (2012) Google said that strong consistency—like that offered by SQL databases—causes fewer problems than the eventual consistency model that is often employed by NoSQL systems. ...... Why you should pick strong consistency, whenever possible. Moreover Amazon is not afraid to point out a few advantages when it comes to using SQL and the relational model. They tweeted this from their latest AWS re:Invent conference: SQL on the relational schema is orders of magnitude faster than JSON processing. The marketing term NoSQL, which was the hippest buzzword just a few years back, is slowly becoming a synonym for a defect. ..." --- I don't know for a fact that SQL importance is surging, as the TIOBE index implied from my first reading.   The indecision over whether  SQL as a "programming language" or not (absolutely is, IMO) adds to the difficulty in answering this definitively.  But that doesn't change SQL's importance. Personally, I suspect SQLite3 and Postgresql, being free, rigorous, and well supported (vs other choices and commercial alternatives) very much encourages more SQL adoption as a long term trend.  Why go with ad-hoc storage when you can just turn to SQLite3?  Why delay exploration of a complete and top notch multiuser SQL server when you can transition from SQLite3 to Postgres for free, instead of going through an intermediary (MySQL) or a super expensive commercial base (Oracle in particular)? This is -- or should be -- a major sell for Lazarus, especially once we get the data-connectivity easier for new users.  Anyway, I posit we focus more on making SQLite3 and then Postgres "1st class citizens" first -- and perhaps reduce the clutter for so many marginal databases?   Do we have any internal measurement of which databases are getting the most use in Lazarus and the most requests for help?  Triage is probably suggested here. BTW I also agree with the prior posts suggesting we need more marketing (not paid marketing, just more coherent strategy in keeping Lazarus in the eyes of the public). But it would be good to first tidy the house a bit more, IMO of course. ---------------------------------------------------------------------- Phil · 2018-07-05 22:24 Quote from: bee on July 05, 2018, 04:19:06 pmJust tried asking gogole for "free pascal lazarus sqlite", it gave me this link: https://www.tweaking4all.com/software-development/lazarus- development/lazarus-pascal-getting-started-with-sqlite/ as the third result. The first two are Lazarus tutorial from the wiki. HTH. This is quite a nice, easy to read tutorial on getting SQLite up and running with Lazarus. The tip about using Valentina to not only create the initial database but use Valentina to generate the SQL for doing is a good one. There are several errors in the article though: - Location given for libsqlite3.dylib on macOS is wrong. - Discussion of Linux is confusing. Installing the "dev" package will create the libsqlite3.so symlink, so no need to do that manually. Doing so will fail. - Location for sqlite3.dll on Windows is not correct for modern versions of Windows. No discussion of bitness and how confusing that is on Windows. - Location of database (Documents and Settings) is really not correct for modern Windows, even though there's a hidden link with that name that points to Users on Win7 and later. - Location of database on macOS is really not correct (~/.config). Only ancient Unix programs use that. These are not Lazarus problems per se, just a matter of getting all the confusing details of these systems correct. These kinds of step- by-step articles really need to be proofed by a third party with a careful eye, but who can do that? Certainly I never have any of my articles proofed and I'm sure they are filled with errors too. In any case, setting up something as straightforward as SQLite shows the trickiness of using components based on external libraries with Lazarus. Again, not really a Lazarus problem. Finally, this site's names has always struck me as a bit off-putting. In U.S. English, "tweaking" is drug slang. Certainly there's still the older meaning of the word, but when you say "tweaking 4 all" that sounds to my ear like drug lingo. Probably wasn't intended, but, well, there you are. ---------------------------------------------------------------------- chrnobel · 2018-07-06 11:45 Imo TIOBE makes no sense, what so ever, as they compare apples with bananas, where, from my point of view, a programming language is capable of producing a more or less self-contained result, that can either be compiled into a binary, or run under an interpreter. But TIOBE list SQL as a language, which is utterly nonsense, as SQL only is the "connection" between the language, and the database (yes, yes, one can use stored procedures, but still). Also JavaScript is number 8, but JavaScript is so definitely not at that position because people like it, but out of sheer need, as this is more og less the only way to include some functionality in a browser. JavaScript is the most horrible "language", as it is like trying to program a rubber band, counter intuitive casing, lose typing, impossible to debug, etc, etc.   But still JavaScript is claimed as oh-so-popular, and the most mentioned language on StackExchange - but hey, of course it is so "popular" on StackExchange as people after spending hours trying to figure out how to do a banality which could be done easily in 2 minutes in Lazarus/FPC, gives up, and turns to StackExchange crying for help. I see Lazarus/FPC (and in old Windows days Delphi) as the most productive language, logically designed, easy to understand, and easy to read, which ends up in that it is much faster programming in Lazarus/FPC than nearly all other languages - and one do not need to end in a pointer hell. With regards to databases, my recommendation is to use ZeosLib, it makes life a lot more easy, and makes it much simpler to switch database. BUT there is allways a snake in the paradise, and one of the things that occasionally gives me (more)gray hairs, is the lack of consistancy. As I have mentioned in this tread: http://forum.lazarus-ide.org/index.php/topic,41763.0.html the behaviour of TDataset (I guess, as it is difficult exactly to pinpoint the problem) have changed from an older 32bit version of Lazarus to a never, meaning I can not trust the results any more. I have taken the consequence of that, and simply stopped using TDataset, and instead use parameterised SQL sentences instead - but there is a lot of code I have to alter, to avoid this behaviour.  So a very, very important thing to bear in mind is, that backward compatibility to the users sourcecode may never be broken. However this does not change my opinion, that Lazarus/FPC (and partly Delphi, but only partly, as it is Windows only) is the most versatile and productive programming environment/language what so ever, and even though I occasionally experiences mishaps as mentioned above, I feel no need for spoiling my life with C'ish pointer hell, or strange indents as in Python - it is more than enough that my life have to be poisoned with JavaScript i cannot avoid in my webprograms. Maybe there ought to be another list than TIOBE's, namely a list stating (usable, stand alone) programs made by this or that programming language - I am quite sure that Pascal/Delphi then would be in top five. ---------------------------------------------------------------------- marcov · 2018-07-06 13:54 Quote from: Phil on July 06, 2018, 12:24:14 am Finally, this site's names has always struck me as a bit off-putting. In U.S. English, "tweaking" is drug slang. Certainly there's still the older meaning of the word, but when you say "tweaking 4 all" that sounds to my ear like drug lingo. Probably wasn't intended, but, well, there you are. The site seems Dutch, and one of the larger IT news sites in the Netherlands is called "Tweakers.net", the lingo spread to other sites.  4all might come from former hacker ISP  XS4ALL. ---------------------------------------------------------------------- Thaddy · 2018-07-06 14:08 Quote from: marcov on July 06, 2018, 03:54:10 pmQuote from: Phil on July 06, 2018, 12:24:14 am Finally, this site's names has always struck me as a bit off-putting. In U.S. English, "tweaking" is drug slang. Certainly there's still the older meaning of the word, but when you say "tweaking 4 all" that sounds to my ear like drug lingo. Probably wasn't intended, but, well, there you are. The site seems Dutch, and one of the larger IT news sites in the Netherlands is called "Tweakers.net", the lingo spread to other sites.  4all might come from former hacker ISP  XS4ALL. Indeed. Even owned by a bigger conglomerate they still  provide service as Internet was intended. Hard to find these days. ---------------------------------------------------------------------- tan · 2018-07-06 15:27 https://www.tweaking4all.com/software-development/lazarus- development/lazarus-pascal-getting-started-with- sqlite/#GettingstartedwithSQLiteunderWindows  does look more step by step than most of what I've found.  Perhaps we can use it as a template or encourage the author to update it? Alternatively: How about dealing with the idiosyncrasies of installing by making sure we are well represented by homebrew, https://chocolatey.org/, and the equivalent for linux ? I know Lazarus itself installs like magic under Win7.  I also know Lazarus installation under Mac is a nightmare and, to this date, I can get it to install ... but not compile ... (Before High Sierra I couldn't get it to install.  Under High Sierra I can now get the IDE to come up and appear to run -- but then choke when I try to compile.) Anyway, what do you guys think about recommending working THROUGH leading software managers (brew, chocolatey, etc)?  Wouldn't that be easier on both the forum support and the install experience of new users? Under Mac, I've got to say, brew is almost always the easiest way to handle anything beyond a trivial install...and even then it helps keep the versions syncopated with the various "gotchas". Laz + SQLite3 (and eventually postgres) on differn ---------------------------------------------------------------------- Thaddy · 2018-07-06 15:32 Actually what I want is that people start PROGRAMMING and be proficient at it. The language itself doesn't really matter. A real programmer does not care.....AT ALL. ---------------------------------------------------------------------- marcov · 2018-07-06 15:47 Quote from: tan on July 06, 2018, 05:27:20 pmAlternatively: How about dealing with the idiosyncrasies of installing by making sure we are well represented by homebrew, https://chocolatey.org/, and the equivalent for linux ? Chocolatey says it works with MSI and innosetup, and our installer is innosetup (with beta MSIs being made too) QuoteI know Lazarus itself installs like magic under Win7.  I also know Lazarus installation under Mac is a nightmare and, to this date, I can get it to install ... but not compile ... (Before High Sierra I couldn't get it to install.  Under High Sierra I can now get the IDE to come up and appear to run -- but then choke when I try to compile.) I think the main reason is that Windows is relatively invariant. Yes, sometimes it does break (like with Windows Vista and UAC), but relatively rarely. Effort put into getting releases nice pays off longer. QuoteAnyway, what do you guys think about recommending working THROUGH leading software managers (brew, chocolatey, etc)?  Wouldn't that be easier on both the forum support and the install experience of new users? Personally I don't see the point of 3rd party installation tools on Windows. They have near zero installed base, and there are  no real problems to solve to begin with. IMHO the situation can only get worse (version in 3rd party tool lagging, support issues etc) QuoteUnder Mac, I've got to say, brew is almost always the easiest way to handle anything beyond a trivial install...and even then it helps keep the versions syncopated with the various "gotchas". I get the impression (as somebody who hasn't touch Macs in years) that Mac is so problematic because the dependencies are twofold. (1) OS  and its versioning (2) Xcode and its versioning. ---------------------------------------------------------------------- Thaddy · 2018-07-06 15:57 @Marco, if you mean me that is false. I just do not use it very often. Still a nice TOY. ---------------------------------------------------------------------- Phil · 2018-07-06 15:57 Quote from: tan on July 06, 2018, 05:27:20 pmI know Lazarus itself installs like magic under Win7.  I also know Lazarus installation under Mac is a nightmare and, to this date, I can get it to install ... but not compile ... (Before High Sierra I couldn't get it to install.  Under High Sierra I can now get the IDE to come up and appear to run -- but then choke when I try to compile.) Vague. Maybe you didn't install the Xcode command line tools? Both FPC and Lazarus are pretty straightforward to install and run on macOS. The debugger is tricky since Lazarus uses gdb, which is not the debugger on macOS, so gdb has to be installed from 3rd party. However, you can compile and run in Lazarus without the debugger, then debug as needed from the command line using the Xcode lldb debugger. The problem that Lazarus faces at the moment on macOS is that it's currently a 32-bit app and macOS is going to be 64-bit only pretty soon. ---------------------------------------------------------------------- tan · 2018-07-06 15:59 Quote from: mangakissa on July 05, 2018, 08:51:04 amThere's a lot of documentation on working with databases on FPC. I also know a beginner who doesn't understand any of the language are 'drowning in the flow *'. That's why I'm creating a document 'How to work with SQLdb and SQLlite step by step'. Unforunally I'll try to find the time to finished it. It's for an article in Blaize Pascal Magaine. But your problem is not only on SQL. For all new things you have to make time to find out how it works. I still want to find out how TIOPF and Mormot works on my way to understand. For these tools there's a lot of examples or documentation. But trying it self in an own application is very tuff as beginner. For all these things there is one special word for it: TIME!!!! Any chance you would/could post what you have so far (or would that interfere with the Blaize article)? Personally, I'm probably a little ADHD ... although I think the ballooning complexity and endless faux "choices" of the internet have really injured my ability to simply concentrate on what is in front of me.  In addition, my life and responsibilities have become pretty complicated, although that is mainly - but not entirely -  by my own choices. Where that ties in to Laz is one of my businesses relies foundationally on Windows and a large, customized C# application which was poorly factored (I didn't micomanage/oversee it carefully in development) and now I've either got to maintain it or rewrite it. Given the original developer died and Windows/C#/Microsoft's path makes me nauseated, I have to consider having it rewritten for the LAST time. That is where Lazarus and Postgres and Linux come in for me.  I did a lot of coding in Turbo Pascal and quite a bit with C under Unix a long time ago, so I've got a vested interest in seeing Lazarus move forward, even though I am not a software developer any more.  Just thought I would explain my motivations with regard to Lazarus.  It seems to me, Lazarus COULD dominate enterprise software development on Linux the way C# has a firm grip on Windows.  Maybe I am wrong about that, but I don't see much real competition in the Linux/DB/Enterprise sphere. ---------------------------------------------------------------------- Thaddy · 2018-07-06 16:00 It is also a bit of the pain lower back of my body.... ---------------------------------------------------------------------- Phil · 2018-07-06 16:28 Quote from: tan on July 06, 2018, 05:59:43 pmIt seems to me, Lazarus COULD dominate enterprise software development on Linux the way C# has a firm grip on Windows.  Maybe I am wrong about that, but I don't see much real competition in the Linux/DB/Enterprise sphere. Is enterprise software on Linux even a thing? I sympathize with your dilemma. In the short term, if you haven't already done this, I would find one or two contract shops that do quite a bit of C# work and have them give you an analysis/estimate for updating your app. These services are generally not very expensive and they'll usually waive the cost if you subsequently have them do the work. As for Lazarus being the solution to your problem, let me see if I understand what you're thinking: By encouraging new users, hopefully experienced DB programmers from other languages, to come to Lazarus, you'll have more people to draw on to fix your app? Something like that? ---------------------------------------------------------------------- marcov · 2018-07-06 16:36 Quote from: Thaddy on July 06, 2018, 05:57:22 pm@Marco, if you mean me that is false. I just do not use it very often. Still a nice TOY. ??? ---------------------------------------------------------------------- tan · 2018-07-06 16:42 Quote from: Phil on July 06, 2018, 05:57:30 pmQuote from: tan on July 06, 2018, 05:27:20 pmI know Lazarus itself installs like magic under Win7.  I also know Lazarus installation under Mac is a nightmare and, to this date, I can get it to install ... but not compile ... (Before High Sierra I couldn't get it to install.  Under High Sierra I can now get the IDE to come up and appear to run -- but then choke when I try to compile.) Vague. Maybe you didn't install the Xcode command line tools? Both FPC and Lazarus are pretty straightforward to install and run on macOS. The debugger is tricky since Lazarus uses gdb, which is not the debugger on macOS, so gdb has to be installed from 3rd party. However, you can compile and run in Lazarus without the debugger, then debug as needed from the command line using the Xcode lldb debugger. The problem that Lazarus faces at the moment on macOS is that it's currently a 32-bit app and macOS is going to be 64-bit only pretty soon. -- No, actually I did. I picked to upgrade to 10.13.3 *specifically* in the hope I might get Laz to install.  I think it was I had tried for hours to get a previous version of Lazarus to install and run under Sierra (I avoided trying earlier versions of Sierra because, as I recall, there was quite a mess with it "not being ready for prime time"/ security, etc. As I recall, I noticed homebrew/cask/lazarus and entrusted the install to brew. It, in turn (it is generally wonderful in this regard, which I why I am suggesting we work closely WITH the leading software install/upgrade managers under the various platforms) took care of identifying my need to update Xcode.  And it identified the need for GDB and took care of that, too, if I recall (or possibly I started with using brew to install GDB or Xcode first...it is lost in the history of time and complexity and becoming "the tool of my tools",  I confess. Anyway, the install went like magic compared to earlier attempts to get Lazarus running under an earlier version of MacOS.  After that and when homebrew was done I tried Lazarus, with a lot of trepidation and not really expecting it to work.  I was kind of ecstatic when it came up to the IDE perfectly.  And I thought "happy days!"  And so I started typing in a super simple IDE based program through the form designer.   And that went well. And then I tried to compile and it crapped out with multiple error messages pointing to graphics incompatibilities (cocoa oriented if I recall). And THAT was where I found out Apple had changed graphics support...and Lazarus specifically said it cut off MacOs support at 10.12. And I posted for any help here. And I got one lead but it was over my head. And I gave up. What I don't think most "modern" software developers realize is that there was a day when software JUST WORKED.  It might have a bug, but most of the bugs were not fatal and could be worked around.  Borland aka Turbo Pascal was one of the leaders of the JUST WORK movement -- actually Borland software went way beyond "just work" which is why they were able to steal Microsoft's thunder. But Microsoft was a sneaky bastard of a competitor...and Apple and Google and eventually pretty near everyone else (specifically Google) adopted their playbook of stacking complexity upon complexity and "upgrade" hell.  That is how they came to own us. Well, most of us! Lazarus team is obviously like Neo or maybe Luke in the unfolding plot. Or so I hope! :-) Anyway, I can get you specific error codes if that would help. Or I can just bide my time until, hopefully, the Lazarus development team gets around to adapting to Apple's upgrade path?  Whatever you suggest. It would be nice to have my Mac Air working with Lazarus as that would dramatically increase my exposure to the IDE learning curve ... which in the longer run would probably increase my investment of time and eventually money in Lazarus. Or I can wait, as my real plan is to shift my business to Linux out of Windows (I'll go wherever you think Laz + SQLite/Postgres is best supported and strategic, I expect). ---------------------------------------------------------------------- Phil · 2018-07-06 16:50 Quote from: tan on July 06, 2018, 06:42:37 pmAnd then I tried to compile and it crapped out with multiple error messages pointing to graphics incompatibilities (cocoa oriented if I recall). And THAT was where I found out Apple had changed graphics support...and Lazarus specifically said it cut off MacOs support at 10.12. That does not sound familiar at all. Can you point to your post and I'll review. Not clear, but sounds like you used Homebrew to install everything? Maybe it borked the install. Basic instructions have always worked for me: Install the 3 Lazarus packages from the Lazarus download site. Make sure you have Xcode command line tools installed. That's all for basic functionality. Apple is the only company that really focuses on "just works". Consider that Xcode can be installed from the App Store. And uninstalling only requires dragging Xcode.app from Applications to the trash. Lazarus is slightly more complicated to install, but not much. ---------------------------------------------------------------------- tan · 2018-07-06 17:05 Quote from: Phil on July 06, 2018, 06:28:11 pmQuote from: tan on July 06, 2018, 05:59:43 pmIt seems to me, Lazarus COULD dominate enterprise software development on Linux the way C# has a firm grip on Windows.  Maybe I am wrong about that, but I don't see much real competition in the Linux/DB/Enterprise sphere. Is enterprise software on Linux even a thing? I sympathize with your dilemma. In the short term, if you haven't already done this, I would find one or two contract shops that do quite a bit of C# work and have them give you an analysis/estimate for updating your app. These services are generally not very expensive and they'll usually waive the cost if you subsequently have them do the work. As for Lazarus being the solution to your problem, let me see if I understand what you're thinking: By encouraging new users, hopefully experienced DB programmers from other languages, to come to Lazarus, you'll have more people to draw on to fix your app? Something like that? Oh my gosh!  I would LOVE to take you and the rest of the Lazarus team out for a beer or coffee or whatever and have a LONG talk on strategy! "The cloud" is the Emperor's Newest set of "New clothes".  He's even, fundamentally, more naked than last time.  And, just like last time, he doesn't completely realize that yet.  Warren Buffett: "It is only when the tide goes out that you discover who has been swimming naked". It doesn't mean the internet/cloud doesn't have it's uses, it is a great way to manage and sheer the sheeple. But enterprise software definitely does not -- and will NEVER, as in never ever until the end of eternity -- belong on "the cloud". Rather than debate it I will merely say two things:  (1) Everything is Broken (https://medium.com/message/everything-is-broken-81e5f33a24e1)   (2) Everything put on the internet is not protected the Bill of Rights and is "open source" to the government and the IRS. It is idiotic, beyond debate, for any enterprise to entrust their accounting and mission-critical data to the "cloud".  Anyone who tries to debate pro is, out of the gate, really making the case that they are either incompetent or compromised. Windows has made unequivocal, they are part of "the cloud" contingent and their customers  -ipso facto -have no rights of privacy. And if you disagree, you can argue with the US government. So Linux will be the last redoubt short of going back to pen and paper accounting, which is where I draw the line. Linux/Postgres  IS the great opportunity for Lazarus (or whoever gets their 'firstest and bestest'). Look: EVERYTHING POSTED ON THE CLOUD IS AN OPEN BOOK.  Even if you get past the endless exploits and ---------------------------------------------------------------------- Phil · 2018-07-06 17:14 Quote from: tan on July 06, 2018, 07:05:20 pmBut enterprise software definitely does not -- and will NEVER, as in never ever until the end of eternity -- belong on "the cloud". I didn't say anything about the cloud. I'm just questioning how much enterprise software there is on Linux. Maybe some that runs on Linux servers in, oops, the cloud. Have you tried compiling your C# app against Mono? Just to see what the challenges. I assume your app is written against WinForms. That's really a Windows-only UI framework, although Mono for many years tried to support it, although always imperfectly. However, for a first cut, that doesn't matter. If you have a Mac, just install MS's free Visual Studio for Mac, open your C# solution and see what happens. Or even just try running your app with Mono on Linux. Since .NET/Mono assemblies are not tied to native code, it might actually run, sort of. ---------------------------------------------------------------------- tan · 2018-07-06 17:18 Quote from: Phil on July 06, 2018, 06:50:50 pmQuote from: tan on July 06, 2018, 06:42:37 pmAnd then I tried to compile and it crapped out with multiple error messages pointing to graphics incompatibilities (cocoa oriented if I recall). And THAT was where I found out Apple had changed graphics support...and Lazarus specifically said it cut off MacOs support at 10.12. That does not sound familiar at all. Can you point to your post and I'll review.... Thanks Phil; I really appreciate the offer to look at it.    I will hunt what previously posted and try to dig a little deeper over the weekend.  I likely did just go with brew defaults; the time before I tried to do a 'normal' download and install from sourceforge, as I recall, and NOTHING went well. ---------------------------------------------------------------------- Fred vS · 2018-07-06 19:30 Quote from: Phil on July 05, 2018, 12:14:39 am you need to install the "dev" package. "dev" packages should **NOT** be used by fpc. https://bugs.freepascal.org/view.php?id=32367 ---------------------------------------------------------------------- mischi · 2018-07-07 06:15 Quote from: tan on July 06, 2018, 05:27:20 pmAnyway, what do you guys think about recommending working THROUGH leading software managers (brew, chocolatey, etc)?  Wouldn't that be easier on both the forum support and the install experience of new users? Under Mac, I've got to say, brew is almost always the easiest way to handle anything beyond a trivial install...and even then it helps keep the versions syncopated with the various "gotchas". I always prefer fink over brew because of the separation from the system and the higher quality of the package descriptions. Fink has nice package descriptions for lazarus and freepascal. Have a try and report problems. I am ready to fix the descriptions. If you really want brew, you can always take the package descriptions for fink and create corresponding brew formulas. ---------------------------------------------------------------------- eny · 2018-07-07 20:32 Quote from: Handoko on July 04, 2018, 04:47:42 amI'm not good in database programming. But SQL database connection in Lazarus isn't that hard. https://www.youtube.com/watch?v=pq2oCiJePHo Was just a matter of time before this one would pop up again. Absolutely useless 'tut' but still funny nonetheless. ---------------------------------------------------------------------- egsuh · 2018-07-20 08:59 Documentations on Delphi are good guides for Lazarus beginners. ---------------------------------------------------------------------- panoss · 2018-08-01 08:00 Quote from: egsuh on July 20, 2018, 10:59:46 amDocumentations on Delphi are good guides for Lazarus beginners. Which (free) guide would you suggest? This one? ---------------------------------------------------------------------- egsuh · 2018-08-01 08:24 On youtube:   https://www.youtube.com/watch?v=IKkRI1UyLEU You can find Marco Cantu's free PDF's on this site.  But you have to be at least 13.67% patient to find the free version.    http://www.marcocantu.com/edelphi/ ---------------------------------------------------------------------- panoss · 2018-08-01 08:36 You mean the Essential Delphi? ---------------------------------------------------------------------- egsuh · 2018-08-01 08:55 And eearch through this site. http://freecomputerbooks.com/langPascalBooks.html Especially: http://freecomputerbooks.com/Start-Programming-Using-Object- Pascal.html#downloadLinks Or here's some old delphi documents. http://hanin.web.id/ebook/computer_related/ ---------------------------------------------------------------------- Thaddy · 2018-08-01 10:02 Can we close this. FPC and Lazarus have superb, best in class, sql connectivity, Everybody knows that -or should know that -. https://biblehub.com/bsb/john/9.htm That does not mean I am attached to any religion, but it covers Muslim and Christians, as opposed to programmers.... ---------------------------------------------------------------------- bobowl2 · 2018-09-04 12:12 It is good practice to keep connections to databases encrypted for privacy reasons. I dont know wheter lazarus has build in for support for that. It would be a disadvantage for lazarus because an increasing number of privacy regulations in many countries may  demand encrypted connections of personal data. ( post modified after mod comment ) ---------------------------------------------------------------------- marcov · 2018-09-04 12:23 bobowl2: This is the sixth post of you which does not post any detail of the problems you are facing. And all of them are in a discussion thread. Open a separate thread, and describe your problem. ---------------------------------------------------------------------- valdir.marcos · 2018-09-04 13:10 Quote from: marcov on September 04, 2018, 02:23:56 pmbobowl2: This is the sixth post of you which does not post any detail of the problems you are facing. And all of them are in a discussion thread. Open a separate thread, and describe your problem.If a forum administrator can move bobowl2's post to other thread, I'd like to answer him.