Sign in Join

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

Mailing lists / fpc-pascal / 2022-12

Working on a new way to educate people about pascal

43 messages · 17 people · –

Reply by email Subscribe to this list Your subscription

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

Anthony Walter

Hi guys,

I had a new idea for an interface design to help people who either are not into programming yet or have only used a language other than Free Pascal. Please see this draft Introduction to Free Pascal web page I posted this morning.

https://www.getlazarus.org/guides/intro/

My idea is to implement a web page system where syntax highlight code is presented like in the Lazarus IDE, and special links are peppered through and explanation of how and why Pascal works by using some example programs. When the user highlights the special link, the relevant source code is highlighted in the syntax window. This then hopefully allows people to understand a bit more about pascal by pairing the explanations with lines of source code.

Let me know if you think this approach has any merit or if you think my guide could be altered to be a bit more clean in places. As a reminder, this page is a wiki, so you cna submit edits to me by clicking the edit link at the top of the page. I am able to see and merge your edits.

Reply by email

Michael Van Canneyt
to Anthony Walter
Anthony Walter wrote 8 lines
Hi guys, I had a new idea for an interface design to help people who either are not into programming yet or have only used a language other than Free Pascal. Please see this draft Introduction to Free Pascal web page I posted this morning. https://www.getlazarus.org/guides/intro/

If the target audience are people that are not yet into programming, I think the code samples might be a little too difficult ?

Show quoted text 14 lines
My idea is to implement a web page system where syntax highlight code is presented like in the Lazarus IDE, and special links are peppered through and explanation of how and why Pascal works by using some example programs. When the user highlights the special link, the relevant source code is highlighted in the syntax window. This then hopefully allows people to understand a bit more about pascal by pairing the explanations with lines of source code. Let me know if you think this approach has any merit or if you think my guide could be altered to be a bit more clean in places. As a reminder, this page is a wiki, so you cna submit edits to me by clicking the edit link at the top of the page. I am able to see and merge your edits.

You might want to use pas2js to make everything more dynamic.

The Pas2js compiler can be embedded in your page and you could let people compile & run pascal code right in your page.

Similar pages for golang and so on have this ability.

Michael.

Reply by email

James Richters
to Michael Van Canneyt: If the target audience are people that are not yet into programming, I think the code…
>If the target audience are people that are not yet into programming, I

think the code samples might be a little too difficult ?

I have been programming with Pascal since the days of Turbo Pascal, I have applications with hundreds of thousands of lines of code, and I also program C++ and Python, but I honestly don't have a clue what's going on at all with this introduction.
About the only thing I understood was the explanation of clear.button.click The SQL monitor program example.. I have no idea what any of that means or what it might be used for. I don't know what SQL is, never seen it before, and don't know why you would want to monitor it.

Threads... Sockets... etc.. those are more advanced topics.

Introductions should be a Hello World Terminal program with maybe some colored text... something you can follow line by line and it makes sense even if you don't know what some unit is doing.
After the Hello World program maybe introduce procedures, and show how repetitive things could be done with a procedure,
Then show functions and show how a value could be returned from a function. The introduction should be basic syntax and logic, maybe some if then statements or for loops... something easy to follow and understand what's going on line by line
Then another hello world program with a message box. Then maybe a simple form. but threads and sockets... ok.. well I know what threads and sockets are because I happened to use them... but to a newbie... YIKES what are those?? and SQL??? What the heck is that anyway? I'm not talking about a newbie.. I mean.. myself... with over 40 years of programming experience, mostly with Pascal, What the heck is it and why would I need to monitor it?
So how can I type this program in on my own computer and run it, play with some things and see what happens? Where am I going to find an SQL thingie to monitor?? I don't even know what that is.
It's way too advanced of a subject for an introduction to a programming language and honestly it doesn't make me want to try to lean it.. it's just Poof WAY over my head.

With a hello world program, I can type in in my own computer, change the text, change the color.. etc.. I can understand it.. if there's a for loop or some variables, I can follow the logic of what's happening. In this example, well lets see.. I see there's a timer there.. but what starts it? What happens when it times out? How do I set the amount of time? Why is there even a timer at all? I don't know any of this. I also could not tell you the purpose of the entire program.. I don't know what an SQL is, what the things mean in the SQL monitor box or why SQLs whatever they are might need to be monitored.

James

Reply by email

Anthony Walter
to James Richters

"I see there's a timer there.. but what starts it? What happens when it times out? How do I set the amount of time? Why is there even a timer at all? I don't know any of this."

James, when you raised these questions are you saying that you don't know, or that someone who doesn't know much if anything about programming doesn't know?

Reply by email

Christo Crause
to Anthony Walter: I had a new idea for an interface design to help people who either are not into…

On Tue, Dec 27, 2022 at 6:47 PM Anthony Walter via fpc-pascal <

Show quoted text 15 lines
wrote: My idea is to implement a web page system where syntax highlight code is presented like in the Lazarus IDE, and special links are peppered through and explanation of how and why Pascal works by using some example programs. When the user highlights the special link, the relevant source code is highlighted in the syntax window. This then hopefully allows people to understand a bit more about pascal by pairing the explanations with lines of source code. Let me know if you think this approach has any merit or if you think my guide could be altered to be a bit more clean in places. As a reminder, this page is a wiki, so you cna submit edits to me by clicking the edit link at the top of the page. I am able to see and merge your edits.

I like the concept implemented in this guide. A small problem I noticed is when the source code snippet linked to is not visible, clicking the link does not move the code snippet into view. This is obviously a tricky situation since moving the code into view may require shifting the rest of the document, which may not be desirable.

Explaining the layout and structure of a Pascal program using an example is a good idea. However, the example topic is quite advanced so a non-programmer would probably be completely lost regarding the purpose of the code itself. Programmers from other languages may also not understand the concept of a form or the Application instance. As suggested, perhaps the example itself should be simple enough so that a non-programmer can understand the intention of the code.

Reply by email

Unknown author
to Anthony Walter: "I see there's a timer there.. but what starts it? What happens when it times out? How do…
Anthony Walter wrote 6 lines
"I see there's a timer there.. but what starts it? What happens when it times out? How do I set the amount of time? Why is there even a timer at all? I don't know any of this." James, when you raised these questions are you saying that you don't know, or that someone who doesn't know much if anything about programming doesn't know?

i think he meant both... there are times when i see "wall of words" code and can pick some things out of it but why they are there, what they are used for, and how they operate are still asked... digging deep in the code may answer those questions after some circuitous path tracing but it depends on the code...

like james, i also have like 40-45 years programming experience... 99% of my stuff is still text mode tools and apps... GUI stuff has just never made sense to me...

NOTE: No off-list assistance is given without prior approval. *Please keep mailing list traffic on the list where it belongs!*

Reply by email

Hairy Pixels
to Unknown author
On Dec 28, 2022, at 4:45 PM, wkitty42--- via fpc-pascal wrote: like james, i also have like 40-45 years programming experience... 99% of my stuff is still text mode tools and apps... GUI stuff has just never made sense to me...

Just curious, how so? GUI is usually the easiest parts of programming but these days using Pascal there aren’t many options. Should be easy to pick up some tutorials even if it’s another language with a good framework for what ever platform you use.

Regards,
Ryan Joseph

Reply by email

Dwight Schauer
to Hairy Pixels
Hairy Pixels wrote 5 lines
> On Dec 28, 2022, at 4:45 PM, wkitty42--- via fpc-pascal wrote: > > like james, i also have like 40-45 years programming experience... 99% of my stuff is still text mode tools and apps... GUI stuff has just never made sense to me... Just curious, how so? GUI is usually the easiest parts of programming but these days using Pascal there aren’t many options. Should be easy to pick up some tutorials even if it’s another language with a good framework for what ever platform you use.

If you have a top-down view then GUIs have the illusion of being easy, because you are blissfully ignorant of their complexity.

With that blissful ignorance one is forced to master event based programming model, which among other things in GUI programming is a fairly advanced topic.

If you have a bottom-up view, then you understand that GUIs are extremely complex. They are anything but "simple".

If you understand interrupts and real time embedded systems, then you will grasp event-based base programming with a far deeper understand then the beginner programmer.

I've done a lot of GUI work in the distant past and web-ui work in the not so distant past, but before that learned bottom up.

Web-UI's are far from being simple, they are even more complex than a native GUI app, and are an even higher layer on top of even more complex software.

To write good Web-UIs, once again, among other things, event-based programming...

So starting out with GUIs and Web-UIs beginners is forcing them deal with very advanced concepts right away. Yes, there is the visual appeal, but it is an illusion in my opinion. Like wkitty42, I've been programming for a while, only 30 to 35 years though, since the mid 80s, more so since the early 90s.

Reply by email

Michael Van Canneyt
to Hairy Pixels: Just curious, how so? GUI is usually the easiest parts of programming but these days…
Hairy Pixels wrote 9 lines
> On Dec 28, 2022, at 4:45 PM, wkitty42--- via fpc-pascal wrote: > > like james, i also have like 40-45 years programming experience... 99% of my stuff is still text mode tools and apps... GUI stuff has just never made sense to me... Just curious, how so? GUI is usually the easiest parts of programming but these days using Pascal there aren’t many options. Should be easy to pick up some tutorials even if it’s another language with a good framework for what ever platform you use.

Hm.

I find GUI the hardest thing to do:

The difficulty has nothing to do with the framework - that's the easy part - but everything with style and user unpredictability.

Michael.

Reply by email

Hairy Pixels
to Michael Van Canneyt
Show quoted text 5 lines
On Dec 28, 2022, at 7:53 PM, Michael Van Canneyt via fpc-pascal wrote: I find GUI the hardest thing to do: The difficulty has nothing to do with the framework - that's the easy part - but everything with style and user unpredictability.

Maybe I misunderstand. I thought he meant GUI as in “make window with a button, press the button and perform some action, update the UI to represent the new state etc…” If the issue is designing UI then sure that’s an entirely different thing and often hard for pure programmers (I struggled with design too).

Regards,
Ryan Joseph

Reply by email

James Richters
to Unknown author: i think he meant both... there are times when i see "wall of words" code and can pick…
i think he meant both...

Yes I meant both, I myself as an experience programmer cannot follow really any of what is going on at all.. except the button that clears the message box. I can't figure out why there is a timer, I can't figure out how you would change the amount of time being timed, or how to start it or how to stop it or anything at all other than.. look, there's a timer in here.. wonder what that's for and how does that work?
Maybe a nice simple countdown timer would be a better example.

I looked up SQL on Wikipedia and yea.. that's over my head.. that is a VERY specific and VERY advanced topic. It's just not anything that the average person who isn't already a very technical person or in fact very technical people who just have no use for it would understand. I couldn't even understand the Wikipedia article on it.. it's just way outside my experience and I have no idea what it's for.. but I know I don't have a use for it. A nice simple countdown timer would be something everyone could understand the purpose of and be able to follow along.

I have done a few Lazarus projects, and I do understand it, but in my opinion Lazarus is a terrible example of Pascal programming, for one simple reason... There is never a continuous program anywhere.. it's snippets of code here and snippets of code there.. it's all over the place. It makes it VERY difficult for anyone to follow what the heck is going on if you don't have the actual IDE right in front of you. The document itself is a perfect example of this.. there's a block of code here and a block of code there, but no way to figure out how anything works together. So that is why I said start with a console app that has a bunch of Writeln() commands in it.. it's easy to follow, and you don't need to go here and go there to figure out what's going on. Lazarus and GUI applications are ALL too advanced as an introduction to Pascal because the GUI interface requires that you have these snippets of code all over the place.

Earlier message 31 lines
-----Original Message----- From: fpc-pascal On Behalf Of wkitty42--- via fpc-pascal Sent: Wednesday, December 28, 2022 4:46 AM To: Cc: Subject: Re: [fpc-pascal] Working on a new way to educate people about pascal On 12/27/22 9:37 PM, Anthony Walter via fpc-pascal wrote: > "I see there's a timer there.. but what starts it? What happens when > it times out? How do I set the amount of time? Why is there even a > timer at all? I don't know any of this." > > James, when you raised these questions are you saying that you don't > know, or that someone who doesn't know much if anything about programming doesn't know? i think he meant both... there are times when i see "wall of words" code and can pick some things out of it but why they are there, what they are used for, and how they operate are still asked... digging deep in the code may answer those questions after some circuitous path tracing but it depends on the code... like james, i also have like 40-45 years programming experience... 99% of my stuff is still text mode tools and apps... GUI stuff has just never made sense to me... -- NOTE: No off-list assistance is given without prior approval. *Please keep mailing list traffic on the list where it belongs!*

Reply by email

James Richters
to Anthony Walter: "I see there's a timer there.. but what starts it? What happens when it times out? How do…

“James, when you raised these questions are you saying that you don't know, or that someone who doesn't know much if anything about programming doesn't know”

The point I was trying to make is that most of this is gobbely gook to me. So I went looking for something I could recognize.. and I saw a reference to a timer, but the only thing we know about it from the article is that there is a timer and it needs to get closed, and that TSqlForm.CloseTimerTimer closes it, and that is IT. We don’t know how it got started, how much time it was for, why it needs to close, or why in fact there is a timer at all… the reason I brought up the timer is because it was the only thing I could really see that an average person would recognize as maybe being useful in their own lives.

Anyone who could understand what SQL was from the link you provided or understand what the program is even supposed to do, really doesn’t need an introduction to Pascal. I’m not trying to say that the idea itself is bad, in fact I do like the way you have links that show specific lines to help with the explanation. I’m just saying, the sample program needs to be on a MUCH simpler subject.. something that an average person who is not a computer scientist can understand. A subject that a middle school student could understand and see the value of. I went way beyond what your potential readers would ever do, and went to Wikipedia to see what SQL was and I even tried to follow some of the code and unfortunately I just couldn’t follow any of seems to be just pieces of programs but the reader can’t understand how they relate to each other or how it all works.. it’s too complicated. It really needs to be just a single program that starts with does something understandable, that the reader could easily copy and paste and play with and understand, not a bunch a pieces of code that the reader can’t figure out how these separate pieces relate to each other. That is why Michael mentioned having a Pas2js compiler on the page.. it would allow the user to play with the code right there.. but this is impossible with your SQL monitor because on a web page there would be no server to monitor, and even if they wanted to try this themselves, the would have to learn all about SQL to even get started, and that’s never going to happen. So the only interest you will get at all are people who already have some SQL thingie that want to monitor it… but even so, they don’t have enough information to duplicate your program.. if they cut every bit of code from your page, they would not know where or how to paste it to make a functional program.

With such a complicated subject, even someone willing to try to figure it out what SQL is and why you need to monitor it, will click the link to ”Entity Framework” and go Woah what is all this?? They going to think “All this Free Pascal stuff is really super advanced and beyond anything I could have a use for” and while it is true that Free Pascal is VERY advanced and has a LOT of ways to accomplish very complicated tasks fairly easily, it also does not HAVE to be fact you are missing one of the key fundamental philosophies of the Pascal programming language, which is that “Programs should be easily understandable by humans” The image of “The SQL Monitor Example Program” doesn’t mean anything to the average person, and it does not mean anything to me as an experienced programmer.. it’s just a bunch of gibberish that seems to accomplish nothing. I don’t know why I would ever want to monitor that stuff and I’m afraid you are going to lose your entire audience because the subject is just too complex, unless the reader can understand what the program specifically does and how it does it, they aren’t going to be interested.

If instead you had an example of a program that everyone could relate to and maybe even use themselves you will capture a lot more interest, and if the example is relatively simple and easy to follow, with variables that have no abbreviations so it’s as readable as possible, and well commented to make sure that everything is clear, then you might get someone to actually download Free Pascal and start typing some code, and it seems to me that would be the goal of such an introduction. That’s why I mentioned the timer.. hey a cool program that you set an amount of time, then it counts down and maybe makes a sound when it’s done.. well everyone that has ever boiled and egg could see why you would want to do that. Then they could see.. this program has a timer, this is how I set the amount of time, this is how I start it, this is what happens when it’s done, this is what displays the time left, etc… it serves a purpose they can understand and they can follow exactly what is happening and understand the end result.

James

Reply by email

Anthony Walter
to James Richters: Yes I meant both, I myself as an experience programmer cannot follow really any of what…

James, I am really glad you replied.

Your story just goes to show that we all can learn a thing or two, even with decades of experience.

To help you out, SQL (sometimes called sequel) is short for structured query language and it's the preferred `lingua de franca` for so many relational database engines today. A relational database engine allows programmers to store information into things called `tables`, and then programmers can write SQL to query back interesting results from that data. SQL can also be used to insert update and delete, and by putting everything together we can write a CRUD (created read update deleted) application.

To make using relational database engines even easier for programming many people have turned to using an ORM in place of SQL. An ORM is short for Object Relational Mapping and usually takes the form of a class library framework such as Hibernate or Entity Framework. These ORM frameworks allow you to write plain old objects, but map them to database tables, thus simplifying the data access layer by removing your requirements to learn SQL, at least that's the idea. In reality, all the ORMs actually just translate the programming code of your language of choice into SQL, which is where the need for a program like I present as an example program arises. That need is to monitor the SQL as it's being generated by the ORM to ensure your code is being translated into SQL efficiently. As any single ORM framework can talk to a variety of relational database engines, this example bridges the gap by allowing one universal tool to monitor them all.

There are so many more fun things to learn about SQL and ORM, and they are very relevant today. Even a 45 year prgoramming verteran can learn new things!

Reply by email

Rainer Stratmann
to Anthony Walter: I had a new idea for an interface design to help people who either are not into…

Am Dienstag, 27. Dezember 2022, 17:47:13 CET schrieb Anthony Walter via fpc- pascal:

Hi guys, I had a new idea for an interface design to help people who either are not into programming yet or have only used a language other than Free Pascal.

Hello,

the design is really good.
I have the same opinion that the example is very difficult. If I was a beginner I would not be enthusiastic about starting with freepascal with these kind of example. I would also describe me as a very experienced programmer.

You could make 2 examples. One simple and one advanced.

Reply by email

Wols Lists
to Christo Crause: On Tue, Dec 27, 2022 at 6:47 PM Anthony Walter via fpc-pascal < I like the concept…
Christo Crause wrote 33 lines
On Tue, Dec 27, 2022 at 6:47 PM Anthony Walter via fpc-pascal < > wrote: My idea is to implement a web page system where syntax highlight code is presented like in the Lazarus IDE, and special links are peppered through and explanation of how and why Pascal works by using some example programs. When the user highlights the special link, the relevant source code is highlighted in the syntax window. This then hopefully allows people to understand a bit more about pascal by pairing the explanations with lines of source code. Let me know if you think this approach has any merit or if you think my guide could be altered to be a bit more clean in places. As a reminder, this page is a wiki, so you cna submit edits to me by clicking the edit link at the top of the page. I am able to see and merge your edits. I like the concept implemented in this guide.  A small problem I noticed is when the source code snippet linked to is not visible, clicking the link does not move the code snippet into view. This is obviously a tricky situation since moving the code into view may require shifting the rest of the document, which may not be desirable. Explaining the layout and structure of a Pascal program using an example is a good idea. However, the example topic is quite advanced so a non-programmer would probably be completely lost regarding the purpose of the code itself.  Programmers from other languages may also not understand the concept of a form or the Application instance.  As suggested, perhaps the example itself should be simple enough so that a non-programmer can understand the intention of the code.

And having seen a bunch of references to SQL, well my thoughts could be described as "unprintable".

IMNSHO SQL/Relational seriously breaches Einstein's dictum "make things as simple as possible (but no simpler)". Relational is TOO SIMPLE to be a serious database, which makes SQL seriously incomprehensible, and the whole combo misses the sweet spot by a country light year.

If you know me, you'll know exactly what I'm talking about :-)

Cheers,
Wol

Reply by email

Hairy Pixels
to Wols Lists
On Dec 29, 2022, at 2:57 AM, Wols Lists via fpc-pascal wrote: And having seen a bunch of references to SQL, well my thoughts could be described as "unprintable".

Really? That’s pretty human readable if you ask me. I bet anyone here can guess what that does.

SELECT * FROM Customers WHERE Country=‘USA';

Regards,
Ryan Joseph

Reply by email

Anthony Walter
to Hairy Pixels

I think most people can quickly figure out that SQL is a programming language that is used to manage data stored in relational databases. It is a relatively easy language to learn and use, especially for people with a basic understanding of programming concepts. It's a widely-used language in the field of data management and is based on simple, English-like commands. SQL uses a straightforward syntax that is easy to understand and learn. Many people find it to be a user-friendly language, and it is often used as an introduction to programming for people who are new to the field. It shouldn't be confusing to anyone who has been programming for decades.

The line of code you provided is a SELECT statement that retrieves all rows (indicated by the * symbol) from a table called "Customers." The statement also includes a WHERE clause, which specifies a condition that must be met in order for the rows to be included in the results. In this case, the condition is that the value in the "Country" column must be equal to 'USA'. Therefore, this line of code would retrieve all rows from the "Customers" table where the value in the "Country" column is 'USA'. The results of this SELECT statement would include all of the columns from the "Customers" table for each row that meets the specified condition.

I agree, deciphering your statement ought to be quite clear to anyone with even a passing curiosity, which is why I was unsure earlier how anyone on this mailing list was confused by SQL.

Reply by email

Thomas Young
to Anthony Walter

I’ve found firebase to be one of the easiest databases to wrap my mind around. https://firebase.google.com

https://blogs.embarcadero.com/quick-and-easy-way-to-integrate-firebase-into-your-delphi-apps/

Thomas Young
Sent from my iPhone

Show quoted text 11 lines
On Dec 29, 2022, at 12:16 AM, Anthony Walter via fpc-pascal wrote:  I think most people can quickly figure out that SQL is a programming language that is used to manage data stored in relational databases. It is a relatively easy language to learn and use, especially for people with a basic understanding of programming concepts. It's a widely-used language in the field of data management and is based on simple, English-like commands. SQL uses a straightforward syntax that is easy to understand and learn. Many people find it to be a user-friendly language, and it is often used as an introduction to programming for people who are new to the field. It shouldn't be confusing to anyone who has been programming for decades. The line of code you provided is a SELECT statement that retrieves all rows (indicated by the * symbol) from a table called "Customers." The statement also includes a WHERE clause, which specifies a condition that must be met in order for the rows to be included in the results. In this case, the condition is that the value in the "Country" column must be equal to 'USA'. Therefore, this line of code would retrieve all rows from the "Customers" table where the value in the "Country" column is 'USA'. The results of this SELECT statement would include all of the columns from the "Customers" table for each row that meets the specified condition. I agree, deciphering your statement ought to be quite clear to anyone with even a passing curiosity, which is why I was unsure earlier how anyone on this mailing list was confused by SQL. _______________________________________________ fpc-pascal maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

Anthony Youngman
to Anthony Walter: I think most people can quickly figure out that SQL is a programming language that is…
Anthony Walter wrote 10 lines
I think most people can quickly figure out that SQL is a programming language that is used to manage data stored in relational databases. It is a relatively easy language to learn and use, especially for people with a basic understanding of programming concepts. It's a widely-used language in the field of data management and is based on simple, English-like commands. SQL uses a straightforward syntax that is easy to understand and learn. Many people find it to be a user-friendly language, and it is often used as an introduction to programming for people who are new to the field. It shouldn't be confusing to anyone who has been programming for decades.

Well, I understand it was originally called SEQL, E for English, but they dropped that because it wasn't English-like. While the access language for one variant of the MultiValue databases I use was called "English", precisely because it was very English-like.

Show quoted text 11 lines
The line of code you provided is a SELECT statement that retrieves all rows (indicated by the * symbol) from a table called "Customers." The statement also includes a WHERE clause, which specifies a condition that must be met in order for the rows to be included in the results. In this case, the condition is that the value in the "Country" column must be equal to 'USA'. Therefore, this line of code would retrieve all rows from the "Customers" table where the value in the "Country" column is 'USA'. The results of this SELECT statement would include all of the columns from the "Customers" table for each row that meets the specified condition.

Not my line, but it rapidly gets worse from there. What if you want the country name ...

SELECT CUSTOMERS.*, COUNTRY_NAME FROM CUSTOMERS
JOIN COUNTRY_CODES ON CUSTOMERS.COUNTY_CODE = COUNTRY_CODES.COUNTRY_CODE

Show quoted text 5 lines
I agree, deciphering your statement ought to be quite clear to anyone with even a passing curiosity, which is why I was unsure earlier how anyone on this mailing list was confused by SQL.

I'm a database guy with maybe 30 years experience, I'm new to SQL and oh my god is it an over-complicated monster ...

LIST CUSTOMERS CUSTOMER_NAME COUNTRY_CODE

and (for the user) it doesn't get any more complicated than that, they just need to know the name of the field they want. Everything is defined in the *table* (or rather, its equivalent) so the programmer only has one place to look, not a mix of tables and views, and you can actually hard-code the equivalent of a join into the table. SO much simpler, all round ... I like to describe multi-value as a hierarchical object-relational database.

Cheers,
Anthony Walter Youngman (aka Wol :-)

Reply by email

James Richters
to Anthony Walter: I think most people can quickly figure out that SQL is a programming language that is…
It shouldn't be confusing to anyone who has been programming for decades.

It is very confusing if you never had a need for any kind of database.. which I do not…. And neither do many other programmers. Databases are only a very small part of what people use computers for, and only a very small part of people who use Databases use SQL... it's a VERY Specific topic. I do motion control and industrial machinery automation. I get into very timing critical applications with heavy calculations and digital communications with various electronic devices, and graphical display of the processes involved in various manufacturing processes. Absolutely nothing I have done in my entire career has required any kind of database whatsoever. I think I did some database stuff in COBOL in high school… and it didn’t use SQL. Without having a need for a database, my high school exposure to databases is all the education I have ever had on them… they are simply not anything I actually use or care about… so when I look at your SQL Monitor screen shot, "Where not (exists (Select1 bla bla bla.. well that's not something I recognize or understand the usefulness of.. it's another language on it's own and has nothing to do with anything I would ever use a computer for.

You are completely missing the point.. which is, if your target audience is: “anyone who either isn't familiar with writing computer software or perhaps is not acquainted with Free Pascal.” Then you are introducing Free Pascal using an advanced topic that none of your audience will understand or appreciate, because if they aren’t “familiar with writing computer software” then they defiantly will have no idea what you are talking about.. and they, like myself, can’t relate to it. If people can’t make a connection with the subject, they are don’t even going to finish reading your article, and are defiantly not going to be inspired to download Free Pascal and try to write some code.

For a sample program, you really need a simple subject that is interesting to any random person, and easy to understand code that is easily duplicatable. So if the reader finds value in what you have presented, and they are inspired to give it a try, which is the goal of your introduction, then they need sample code they can literally cut and paste into the Free Pascal IDE and run it for themselves, then they can see how it works, follow along, and customize it, and from there… who knows. But in your example, they would already have to have some kind of SQL database up and running to have a need for such a thing or to understand anything at all about the sample application.. it just doesn’t apply at all to most of your target audience.

If your intention was:
"This short program guide is designed as an introduction to the Free Pascal programming language for any SQL users who are not acquainted with Free Pascal." Then the subject is more relevant to your now much smaller target audience, but it still lacks the ability of the reader to make their own SQL monitor with the information presented on your page.. because you have snippets of code.. they can copy and paste them.. but how? Where? How do you combine these snippets of code into a functional program? It’s not obvious based on the information provided where these code blocks go, and how do they combine to make a complete working application? If the reader can’t easily duplicate your sample program and follow along and run it on their own computer, how are they going to be inspired to go further? And if you really want to reach your target audience, of “anyone who either isn't familiar with writing computer software” then even if you gave them a download for all the source files and an executable with an installer… they still can’t run it and make it work on their own computer because they would have to also install SQL, and set it all up to have something to monitor.. so now they need to learn 2 new systems, SQL and Free Pascal.. or 3 if we want to count Lazarus, which is entirely different than just Free Pascal on its own.

To be an effective writer, you need to forget everything you know, and consider who the typical reader is and put yourself in their place and then evaluate what you are trying to accomplish form the READER's point of view. If you showed this to 100 random people, how many of them would make any kind of a connection to it? How many would say, I can see the value in this, maybe I should give it a try? How many people that fall into the “anyone who either isn't familiar with writing computer software" category are going to have a clue what you are talking about? The point I was trying to make is that even with my background in programming, I don't know what you are talking about... at all, not even after your explanations... because I can't connect to the subject in even the slightest way, the only database I ever use is the one that is built into QuickBooks so I can do my accounting, I know my invoices are stored in some kind of database, but I really don't care how it works or how to manipulate it.. that's what I pay QuickBooks to do. I have absolutely no need or time or desire to learn anything about creating or maintaining my own database, so the subject just doesn't apply to me.

To you, these SQL databases are simple and obvious, but that's the problem.. you are seeing things from YOUR point of view... not your READER's point of view. To the average reader of your stated target audience, the subject is too complicated. I actually don't even fit into your target audience at all because I am very familiar with writing computer software... just not involving databases, and I am extremely familiar with Pascal and Free Pascal... yet I found it confusing and too complicated.

James

Reply by email

Michael Van Canneyt
to James Richters
James Richters wrote 7 lines
> It shouldn't be confusing to anyone who has been programming for decades. To be an effective writer, you need to forget everything you know, and consider who the typical reader is and put yourself in their place and then evaluate what you are trying to accomplish form the READER's point of view.

This is exactly why I stopped writing the Pascal tutorial that I started, many years ago.

Even for the many articles which I've written over the years, often the editor or other proofreaders had to point out to me I'm using concepts that are not known to everyone. And that's for an audience of programmers.

I also had to learn that there are programmers that have not seen a single SQL statement in their life :)

It is not easy, writing material for beginners.
As James writes, you must "forget" all that you know...

Michael.

Reply by email

Anthony Walter
to James Richters: It is very confusing if you never had a need for any kind of database.. which I do…

@youngman

"I'm a database guy with maybe 30 years experience, I'm new to SQL and oh my god is it an over-complicated monster ..."

Wait, what? Something doesn't make sense with what you said. You have 30 years of experience writing database programming code AND you are just now beginning to learn about SQL?

Also, it helps a whole lot when writing SQL if you format your statements:

select
c.*,
cc.country_name
from
customers c

    join country_codes cc on cc.country_code = c.country_code;

Formatting code really helps legibility, especially when it comes to SQL. That ought to be one of the first things you learn.

@richters

Again, you are someone replying with another confusing response. You say you have little to no experience with databases, then assert:

"and only a very small part of people who use Databases use SQL"

Assuming people in that sentence, you are referring to people who use write programs or scripts which make use of databases, if you know very little about the subject of databases on that subject, how can you justify this assertion?

Moreover, I am unsure why I might heed your advice with regard to effective writing. Looking back at the messages, your grammar, formatting, and sentence structure belie someone with little formal education on the subject.

Quote:

"Then maybe a simple form. but threads and sockets... ok.. well I know what threads and sockets are because I happened to use them... but to a newbie... YIKES what are those?? and SQL??? What the heck is that anyway? I'm not talking about a newbie.. I mean.. myself... with over 40 years of programming experience, mostly with Pascal, What the heck is it and why would I need to monitor it?"

Your first sentence has no verb. Your profuse usage of strings of punctuation is both non-standard and inconsistent. It's difficult to tell whether you meant to have a pause, where a comma would be appropriate, or whether an idea has ended and a single period should be used.

Grammar is important to writing effectively for a number of reasons. First and foremost, grammar is the set of rules that govern the way words are used in a language. It helps to ensure that people can communicate effectively and understand each other. Without a common set of grammatical rules, it would be much harder for people to convey their thoughts and ideas clearly and for others to understand them. I would hope a programmer with 40 years of experience would recognize this. Good grammar is essential for written communication, whether it's a business letter, a school essay, or an email to a friend. Poor grammar can make writing difficult to understand and can convey a lack of attention to detail or professionalism.

Finally, grammar is important for language learning. Learning grammar helps language learners understand how the language works and how to use it correctly. It can also help them understand the structure of sentences and how to build them, which is important for speaking and writing in the language.

I suggest you either brush up on these subjects or refrain from scolding people on subjects with which you have no practical experience.

Reply by email

Tomas Hajny
to Anthony Walter

On 29 December 2022 13:31:57 +0100, Anthony Walter via fpc-pascal wrote:

Hello Anthony,
.
.

I suggest you either brush up on these subjects or refrain from scolding people on subjects with which you have no practical experience.

You asked for feedback and you got it. Please, stop attacking others who provided what you'd asked for. Obviously, it's up to you whether you consider the feedback, or not, or whether you agree to it, or not, but arguing this way makes no sense and doesn't belong here for sure, because it isn't related to either FPC or Pascal.

Tomas
(one of FPC mailing lists moderators)

Reply by email

Wols Lists
to Tomas Hajny
Tomas Hajny wrote 14 lines
On 29 December 2022 13:31:57 +0100, Anthony Walter via fpc-pascal wrote: Hello Anthony, . . > I suggest you either brush up on these subjects or refrain from scolding > people on subjects with which you have no practical experience. You asked for feedback and you got it. Please, stop attacking others who provided what you'd asked for. Obviously, it's up to you whether you consider the feedback, or not, or whether you agree to it, or not, but arguing this way makes no sense and doesn't belong here for sure, because it isn't related to either FPC or Pascal. Tomas (one of FPC mailing lists moderators)

Apologies for throwing my two-pennorth in as well, but PLEASE QUOTE WHAT YOU'RE REPLYING TO.

List netiquette is important, please look at what others are doing, and do likewise. Otherwise it gets very difficult to follow what is going on.

Cheers,
Wol

Reply by email

DougC
to Wols Lists

Well, this discussion has not gone well at all!

I suggest that everyone relax and discontinue pursuing it.

The response has been made that the example code in the tutorial is more complicated than it should be. Digressions on SQL and databases are not relevant. Nor are comments on grammar. Let it be.

Doug C.

Reply by email

James Richters
to Anthony Walter: @youngman "I'm a database guy with maybe 30 years experience, I'm new to SQL and oh my…
Assuming people in that sentence, you are referring to people who use write programs or scripts which make use of databases, if you know very little about the subject of databases on that subject, how can you justify this assertion?

The ‘People’ I was referring to are any people who work with databases in any way… when you go to the store to return something without a receipt, the customer assistance representative looks up your order on some kind of database system that stores all the transactions and is somehow able to retrieve yours without knowing SQL.. they are using the database, but know nothing of how it work and would never know what SQL was.

I suggest you either brush up on these subjects or refrain from scolding people on subjects with which you have no practical experience.

I apologize if you feel I was scolding you, that was not my intention. I thought we were just having a discussion about it. You can’t understand why anyone would say this is a complicated subject and I was simply trying to somehow show you a point of view that you do not seem to understand. My lack of experience is what qualifies me to evaluate your material better than you, because if I was familiar with the subject, I would fall into the same trap… “well this is just obvious, everyone should follow this.” I was under the impression that you wanted honest feedback, and that’s what I have been trying to provide, and I am very sorry if I have offended you.

As a software developer, I have learned from experience, that I am the absolute WORST person to test my own programs.

Why is that?

It’s because I wrote them, I know what they are supposed to do and what input to give them to get the desired result. I have no possible way to truly forget what I have put in there, and so I am not capable of trying to do it in a way someone else might try to do it.

When I make a release to my beta testers, it’s normal that they will try to do things THEIR way and often they will not understand why the sequence they tried didn’t yield the expected result. At this point, I could do a few different things, I can just explain to my beta testers why it didn’t work the way they wanted it to, and show them what would have worked. That is not an ideal approach, because if my testers wanted to make it work that way, then maybe ALL of my customers also want it to work that way, or maybe 10% of them want it to work that way. A much better solution is to listen to my testers and learn from them, and create a program that works in the way that was intuitive to THEM, not me. The best solution would be to get it to work the way I originally wanted it to work and also the way they tried to test it at the same time, then all of my customers would get the expected results

So when I get feedback from my beta testers, I do not get defensive and justify why I did it the way that I did. I don’t try to teach them the way they should have done it. I listen to their extremely valuable feedback and try to incorporate that feedback into the product. They are giving me a point of view that I cannot ever possibly have, because when it comes down to it, I can’t ever think the way they do. It’s only through communicating with my testers that I can ever see that other point of view. This other point of view is SO valuable, that I have trashed months of work on a project and re-wrote entire huge sections to make fundamental changes so that it would work the way someone other than myself might want to accomplish something.

I was simply trying to offer you that other point of view. Again, I am very sorry if I offended you.

James

Reply by email

Anthony Walter
to Wols Lists: Apologies for throwing my two-pennorth in as well, but PLEASE QUOTE WHAT YOU'RE REPLYING…

@wols

"Apologies for throwing my two-pennorth in as well, but PLEASE QUOTE WHAT YOU'RE REPLYING TO."

I am unsure if you are replying to me, but believe I did use quotes along with the names.

@richters

"I apologize to Anthony and everyone on the list for getting too carried away."

There is no need to apologize. With respect, there was no harm taken.

Reply by email

Unknown author
to Michael Van Canneyt: This is exactly why I stopped writing the Pascal tutorial that I started, many years ago.…
Michael Van Canneyt wrote
I also had to learn that there are programmers that have not seen a single SQL statement in their life :)

i remember working on an inventory program using FoxBase from before m$ acquired it... i laid out the databases (now called tables) and drew the screens (now called forms) with the fields for all the information about the inventory item... i wrote report code the client requested so they could manage their inventory... imagine my surprise when i was in one day for some updates and one of the girls showed me some reports i had never seen or heard about...

turned out they were doing basic SQL queries for these reports to get "views" of the data that wasn't available in the specific reports i had been tasked to write... things were headed into a more "freeform" format... they basically needed databases with specific information that they could draw information from...

it was a huge mindset change... almost like having grown up doing pascal and asm and then trying to figure out LISP on your own in the same way you taught yourself pascal and asm...

NOTE: No off-list assistance is given without prior approval. *Please keep mailing list traffic on the list where it belongs!*

Reply by email

Adriaan van Os
to Anthony Walter: I had a new idea for an interface design to help people who either are not into…
Anthony Walter wrote 6 lines
Hi guys, I had a new idea for an interface design to help people who either are not into programming yet or have only used a language other than Free Pascal. Please see this draft Introduction to Free Pascal web page I posted this morning.

Well, I still remember the glorious day we were taught follows. We were given the Wirth Pascal Report. That was it. From that moment on we were supposed to know the language.

I don't see how any "story telling" on the web can teach someone Pascal. The language is about abstract thinking and about expressing oneself elegantly and precisely. If the Wirth Report doesn't teach you that, nothing will.

Modern mathematics education tries to teach by showing graphs and pictures, instead of formulas and proofs. But, by doing so, it misses the most important point — that mathematics is about abstract thinking. You will never get around the point that it is the abstract thinking that must be taught.

And that's the whole point of the way we were taught details of the language can be looked up in a report. The only important thing is — to learn thinking.

Regards,

Adriaan van Os

Reply by email

Dwight Schauer
to Adriaan van Os: Well, I still remember the glorious day we were taught follows. We were given the Wirth…
Adriaan van Os wrote 5 lines
Modern mathematics education tries to teach by showing graphs and pictures, instead of formulas and proofs. But, by doing so, it misses the most important point — that mathematics is about abstract thinking. You will never get around the point that it is the abstract thinking that must be taught.

The latter (formulas and proofs in mathematics) is what gave me a head start in programming in high school before I had an formal computer science classes (programming or otherwise).

After just a few hours playing with Basic I was like hmm... I already was taught most of this stuff, this is a way to apply it...

I had liked doing all the proofs in High School geometry. I just had not seen a practical value in them. When I was learning to program I was like wow, this is what all the stuff was for.

So most of my first self taught stuff was related to geometry, but primarily algebra and trigonometry.

But the latter two did not lay the computer programming foundation for me like geometry did.

Reply by email

Wols Lists
to Unknown author: i remember working on an inventory program using FoxBase from before m$ acquired it... i…
wkitty42--- wrote 9 lines
turned out they were doing basic SQL queries for these reports to get "views" of the data that wasn't available in the specific reports i had been tasked to write... things were headed into a more "freeform" format... they basically needed databases with specific information that they could draw information from... it was a huge mindset change... almost like having grown up doing pascal and asm and then trying to figure out LISP on your own in the same way you taught yourself pascal and asm...

I've spent pretty much my entire programming career working with end-users, who did much of their own programming. Imho that's the best way to do it - a couple of trained programmers who keep the users on the straight and narrow.

Unfortunately, that's not the way most companies want to work - to the massive detriment to said companies as users are forced into the straight-jacket of systems that don't work and have been designed by people who don't understand the job ...

Can you imagine those users writing COMPLEX SQL queries? My database career didn't *need* complex queries, the database handled it all ... something relational is completely incapable of :-(

Cheers,
Wol

Reply by email

Anthony Youngman
to Anthony Walter: @youngman "I'm a database guy with maybe 30 years experience, I'm new to SQL and oh my…
Anthony Walter wrote 8 lines
@youngman "I'm a database guy with maybe 30 years experience, I'm new to SQL and oh my god is it an over-complicated monster ..." Wait, what? Something doesn't make sense with what you said. You have 30 years of experience writing database programming code AND you are just now beginning to learn about SQL?

Well, may I suggest you actually COMPREHEND Richter's point when he said "and only a very small part of people who use Databases use SQL".

I guess you've never heard of NoSQL databases then? As in "No SQL"?

Most of my programming has been done using databases that were what? maybe five years old before SQL was even thought of! Yes you can use SQL, but why bother when you have a much more expressive, powerful and comprehensible language at your finger tips.

Show quoted text 12 lines
Also, it helps a whole lot when writing SQL if you format your statements: select     c.*,     cc.country_name from     customers c     join country_codes cc on cc.country_code = c.country_code; Formatting code really helps legibility, especially when it comes to SQL. That ought to be one of the first things you learn.

And again you're missing the point. I had two lines, each line with its own purpose (the first to say what I wanted, the second where to get it from). Perfectly comprehensible. Your equivalent is just DIFFERENTLY comprehensible.

But you didn't address my example - let me translate your six lines into the database access language ENGLISH - it doesn't make sense as more than a one-liner ...

LIST CUSTOMERS

or if you only want US customers

LIST CUSTOMERS WITH COUNTRY_CODE EQ "USA"

All the crap in your select statement - INCLUDING the join - has been pushed down into the *table* definition (not the view, the table).

Cheers,
Wol

Show quoted text 57 lines
@richters Again, you are someone replying with another confusing response. You say you have little to no experience with databases, then assert: "and only a very small part of people who use Databases use SQL" Assuming people in that sentence, you are referring to people who use write programs or scripts which make use of databases, if you know very little about the subject of databases on that subject, how can you justify this assertion? Moreover, I am unsure why I might heed your advice with regard to effective writing. Looking back at the messages, your grammar, formatting, and sentence structure belie someone with little formal education on the subject. Quote: "Then maybe a simple form.    but threads and sockets... ok.. well I know what threads and sockets are because I happened to use them... but to a newbie... YIKES what are those?? and SQL??? What the heck is that anyway? I'm not talking about a newbie.. I mean.. myself... with over 40 years of programming experience, mostly with Pascal,  What the heck is it and why would I need to monitor it?" Your first sentence has no verb. Your profuse usage of strings of punctuation is both non-standard and inconsistent. It's difficult to tell whether you meant to have a pause, where a comma would be appropriate, or whether an idea has ended and a single period should be used. Grammar is important to writing effectively for a number of reasons. First and foremost, grammar is the set of rules that govern the way words are used in a language. It helps to ensure that people can communicate effectively and understand each other. Without a common set of grammatical rules, it would be much harder for people to convey their thoughts and ideas clearly and for others to understand them. I would hope a programmer with 40 years of experience would recognize this. Good grammar is essential for written communication, whether it's a business letter, a school essay, or an email to a friend. Poor grammar can make writing difficult to understand and can convey a lack of attention to detail or professionalism. Finally, grammar is important for language learning. Learning grammar helps language learners understand how the language works and how to use it correctly. It can also help them understand the structure of sentences and how to build them, which is important for speaking and writing in the language. I suggest you either brush up on these subjects or refrain from scolding people on subjects with which you have no practical experience. _______________________________________________ fpc-pascal maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

geneb
to Anthony Youngman: Well, may I suggest you actually COMPREHEND Richter's point when he said "and only a very…
Anthony Youngman wrote 10 lines
On 29/12/2022 12:31, Anthony Walter via fpc-pascal wrote: > @youngman > > "I'm a database guy with maybe 30 years experience, I'm new to SQL and > oh my god is it an over-complicated monster ..." > > Wait, what? Something doesn't make sense with what you said. You have 30 > years of experience writing database programming code AND you are > just now beginning to learn about SQL?

I gotta stick my oar in here, sorry guys. ;)

SQL is just one kind of database technology. I've been programming for money since 1988(ish) and my career focus has been multi-value/nosql databases. MV is a huge player in the background, but the industry as a whole couldn't market its way out of a wet paper bag if you handed it a sharp stick. High per-seat licensing fees don't help this. (ScarletDME aims to put an end to that nonsense, at least for some folks.)

Show quoted text 5 lines
Well, may I suggest you actually COMPREHEND Richter's point when he said "and only a very small part of people who use Databases use SQL". I guess you've never heard of NoSQL databases then? As in "No SQL"?

It may just be that he's in the SQL Silo, where other database systems simply don't exist. It happens.

Most of my programming has been done using databases that were what? maybe five years old before SQL was even thought of! Yes you can use SQL, but why bother when you have a much more expressive, powerful and comprehensible language at your finger tips.

SQL showed up in 1972. The progenitor to multi-value databases (GIRLS) appeared in 1965. So yeah, SQL is the new kid. ;)

Show quoted text 13 lines
> > Also, it helps a whole lot when writing SQL if you format your statements: > > select >     c.*, >     cc.country_name > from >     customers c >     join country_codes cc on cc.country_code = c.country_code; > > Formatting code really helps legibility, especially when it comes to > SQL. That ought to be one of the first things you learn.

That makes my eye twitch. Not because of how it's formatted, but because of the gyrations required to reach the data you want.

LIST CUSTOMERS WITH COUNTRY_CODE EQ "USA"

There's more going on here than meets the eye (or there could be).

All the crap in your select statement - INCLUDING the join - has been pushed down into the *table* definition (not the view, the table).

MV/NoSQL systems (the good ones, anyway) use a thing called a dictionary. In Anthony's example above, COUNTRY_CODE is a dict (dictionary) item. It can be a couple of different things - it could be pointing to the attribute in the customer record that contains the value for the country code, or it could be pointing to a country code file that utilizes the customer number (or whatever the item name is for a customer in the customer file) as a key to an item in the country code file.

The SQL syntax can be horribly complex due to requirements imposed by "join" to reach items in other tables. With ENGLISH (or sometimes ACCESS), the syntax is greatly simplified because all the heavy lifting is done by dict items - it could be as simple as formatting a field for output, or as complex as making a function call to code that pulls data from a hardware device connected to a network.

I need to stop now as I fear I've driven the topic drift to the end-stops, but I'm quite sure that if you (or anyone else!) would like to know more about MV database systems, Anthony & I could answer any question you have...off list (to the joy of the moderators I suspect. :D )

g.

Proud owner of F-15C 80-0007 http://www.f15sim.com - The only one of its kind. http://www.diy-cockpits.org/coll - Go Collimated or Go Home. Some people collect things for a hobby. Geeks collect hobbies. ScarletDME - The red hot Data Management Environment A Multi-Value database for the masses, not the classes. http://scarlet.deltasoft.com - Get it _today_!

Reply by email

Steve Litt
to Anthony Walter: @youngman "I'm a database guy with maybe 30 years experience, I'm new to SQL and oh my…

Anthony Walter via fpc-pascal said on Thu, 29 Dec 2022 07:31:57 -0500

@youngman "I'm a database guy with maybe 30 years experience, I'm new to SQL and oh my god is it an over-complicated monster ..."

I'll say this: It certainly doesn't help that there are different variations of SQL.

SteveT

Steve Litt
Autumn 2022 featured book: Thriving in Tough Times http://www.troubleshooters.com/bookstore/thrive.htm

Reply by email

Wols Lists
to Steve Litt
Steve Litt wrote 10 lines
Anthony Walter via fpc-pascal said on Thu, 29 Dec 2022 07:31:57 -0500 > @youngman > > "I'm a database guy with maybe 30 years experience, I'm new to SQL and > oh my god is it an over-complicated monster ..." I'll say this: It certainly doesn't help that there are different variations of SQL.

:-)

Well, there are plenty different variations of English. And the real English (that is, what we speak in England) isn't even one language! It's several different languages that (for the most part) share similar grammar and vocabulary.

If that's not a problem, why should the dialects of SQL be a problem. After all, we have a decent dictionary. It's called the Internet :-)

Cheers,
Wol

Reply by email

Wols Lists
Dennis Lee Bieber wrote 12 lines
> Well, I understand it was originally called SEQL, E for English, but SEQUEL - Structured English QUEry Langauge. At the time SQL was being developed, every database system had its own proprietary programming language. Often these required macro preprocessors to turn embedded queries into "native" programming language source. The relational database model was originally a "view" of how to access databases, be they hierarchical (everything was a tree structure descending from the top-most database record) or network (lots of bidirectional circular linked lists connecting records to each other).

Hmmm. So that explains a lot. "Relational" sounds like it was never actually meant to be a database. And it shows ...

SEQUEL - by its very nature - must therefore encapsulate a lot of what should really be in the database but, because of the laws of "least common denominator", it has to provide itself because it can't guarantee it's in the database.

So we're stuck with the worst of both worlds. A database that was never intended to be one. And a language that is a massive layering violation containing loads of functionality that should not be there ...

:-( :-( :-(

Cheers,
Wol

Reply by email

Tomas Hajny
to Wols Lists

Hello everybody,

Could we get back on topic, please? Discussion of strengths and weaknesses of SQL and/or other database technologies and their history (especially if primarily focusing subjective feelings of different authors rather than use of these database technologies together with FPC) isn't really on topic here - feel free to use fpc-other instead...

Tomas
(one of FPC mailing list administrators)

Reply by email

Ralf Quint
to Steve Litt: Anthony Walter via fpc-pascal said on Thu, 29 Dec 2022 07:31:57 -0500 I'll say this: It…
Steve Litt wrote 10 lines
Anthony Walter via fpc-pascal said on Thu, 29 Dec 2022 07:31:57 -0500 > @youngman > > "I'm a database guy with maybe 30 years experience, I'm new to SQL and > oh my god is it an over-complicated monster ..." I'll say this: It certainly doesn't help that there are different variations of SQL. SteveT

Well, that  pretty much en par with any other programming language. Beside maybe C (for the most part), there are different variations of pretty much every mainstream programming language. Just see how many variations you can set in FreePascal to try and match other Pascal variations (Delphi, Turbo, ISO)... ;-)

Ralf

Reply by email

Steve Litt
to Wols Lists: :-) Well, there are plenty different variations of English. And the real English (that…

Wols Lists via fpc-pascal said on Sat, 31 Dec 2022 15:07:41 +0000

Show quoted text 19 lines
On 31/12/2022 08:37, Steve Litt via fpc-pascal wrote: > Anthony Walter via fpc-pascal said on Thu, 29 Dec 2022 07:31:57 -0500 > >> @youngman >> >> "I'm a database guy with maybe 30 years experience, I'm new to SQL >> and oh my god is it an over-complicated monster ..." > > I'll say this: It certainly doesn't help that there are different > variations of SQL. > :-) Well, there are plenty different variations of English. And the real English (that is, what we speak in England) isn't even one language! It's several different languages that (for the most part) share similar grammar and vocabulary. If that's not a problem, why should the dialects of SQL be a problem.

Because unless AI is involved, unlike human interaction, there's no such thing as "you know what I mean."

After all, we have a decent dictionary. It's called the Internet :-)

Oh great. So we all need separate cheat sheets for Postgres, MariaDB, Oracle, and SQLite. And let's keep in mind that although the line count on SQL programs is tiny, the debugging can get quite complicated. Heaven help you if you use single quotes instead of doublequotes or vice versa.

Hey, if different versions aren't a problem, I have a great idea. Let's go back to exclusively using assembler language, with a different set of op-codes and grammar for each processor. After all, we have a decent dictionary. It's called the Internet :-)

SteveT

Steve Litt
Autumn 2022 featured book: Thriving in Tough Times http://www.troubleshooters.com/bookstore/thrive.htm

Reply by email