From the University of Salamanca,Wow, Hector Salamanca from Breaking Bad has his own uni! You guys must have loved the character! ;)
Salamanca and Pascal instead of Mallorca and Bierkönig, that's worth considering! ;)
From the University of Salamanca,Wow, Hector Salamanca from Breaking Bad has his own uni! You guys must have loved the character! ;)
I find it hard to believe that pascal programmers would make a trip to another country to meet if they can’t even come to IRC channel and socialize which is much easier. Is this some sort of a joke?
I would love to be able to participate in this! I unfortunately have never left my country though... and not sure how I feel about going overseas. Come to NY USA! :)
Come to NY USA! :)I kinda feel Pascal is more popular in Europe than it is in the US. Especially in Central and Eastern Europe.
Dear Pascal-world colleagues,
http://www.pascalcongress.com (http://www.pascalcongress.com)
if they can’t even come to IRC channel and socialize which is much easier.Why would I use IRC? It's not the 80s. Today people use FB/Telegram/Signal groups, Discord and forums.
I find it hard to believe that pascal programmers would make a trip to another country to meet if they can’t even come to IRC channel and socialize which is much easier. Is this some sort of a joke?
[EDIT] Hum, http://www.pascalcongress.com is not accessible :-\ .
They also like to censor/deplatform anyone who says politically unapproved things etc.That's actually a few good points.
[...]
Irc is the only social media that I know of which allows you to write your own client in pascal.
if they can’t even come to IRC channel and socialize which is much easier.Why would I use IRC? It's not the 80s. Today people use FB/Telegram/Signal groups, Discord and forums.
Yes I know about social media with proprietary closed source platforms which require you to have a cell phone number to use them.
These platforms are designed for spying on users and harvesting their data. They are not “free”, you are the product. You cannot use or create a client of your choice as you can for irc.
Your data is sold and or shared with whomever they please and you have consented to this by using their apps.
They also like to censor/deplatform anyone who says politically unapproved things etc.
Nobody should be using these things ...seriously.
Just because something is “new” does not make it better.
We are an open source community are we not? Irc is the only social media that I know of which allows you to write your own client in pascal. If there are any others I would like to know about them.
In response to this.
“ Why would I use IRC? It's not the 80s. Today people use FB/Telegram/Signal groups, Discord ”
Nobody should be using these things ...seriously.
Just because something is “new” does not make it better.
IRC? The kind of software means a lot for me. IRC - is a no go for me. Why? I installed my IRC client a year ago and I could not properly register on some IRC channel - I didn't understand the GUI and what fields to fill.
Telegram is another story - modern UI, I can create channel, I can join ready channel, I can post messages easily, I can understand the UI.
Smalltalk is more popular in Europe and South America than in the U.S., too.Come to NY USA! :)I kinda feel Pascal is more popular in Europe than it is in the US. Especially in Central and Eastern Europe.
...
In response to this.
“ Why would I use IRC? It's not the 80s. Today people use FB/Telegram/Signal groups, Discord ”
Yes I know about social media with proprietary closed source platforms which require you to have a cell phone number to use them.
These platforms are designed for spying on users and harvesting their data. They are not “free”, you are the product. You cannot use or create a client of your choice as you can for irc.
Your data is sold and or shared with whomever they please and you have consented to this by using their apps.
They also like to censor/deplatform anyone who says politically unapproved things etc.
Nobody should be using these things ...seriously.
Just because something is “new” does not make it better.
...
I find it hard to believe that pascal programmers would make a trip to another country to meet if they can’t even come to IRC channel and socialize which is much easier. Is this some sort of a joke?
The same joke as people who travel to see/listen to a concert of their favorite band when they could quietly see it on YouTube.
In response to this.
“ Why would I use IRC? It's not the 80s. Today people use FB/Telegram/Signal groups, Discord ”
Yes I know about social media with proprietary closed source platforms which require you to have a cell phone number to use them.
These platforms are designed for spying on users and harvesting their data. They are not “free”, you are the product. You cannot use or create a client of your choice as you can for irc.
Your data is sold and or shared with whomever they please and you have consented to this by using their apps.
They also like to censor/deplatform anyone who says politically unapproved things etc.
I guess I’m surprised that the creators of fpc and Lazarus are not the ones arranging an event.I am glad creators of FPC and Lazarus are not arranging events but coding.
I wonder what the actual number of people who use fpc is..
That’s a lot of downloads but I suspect some of the downloads are from people who aren’t pascal programmers that just want to collect/analyze the code for some reason.
I wonder how many people are chatting in the forums on an average day.
Bogen85 just because you wouldn’t waste your time downloading things you aren’t using doesn’t apply to everyone. Maybe the downloads are being done automatically.
Assuming that what you say is true about most people using software don’t want to come to forums or irc to chat.. 100k downloads from genuine users would represent quite a few people and that’s not even counting all of the additional people like me who don’t upgrade regularly.
Assuming all the downloaders are real people who use fpc Even if only a minuscule 1%/.1% of them want to be sociable in forums or irc that would still be 1000/100 people active everyday.
.....
We have over 100k downloads for Lazarus 2.2.0. Add downloads from mirrors, and people using git. (The fpcupdeluxe thread has many users, so likely a lot of people using that)
Then add people who use FPC without Lazarus.
.....
We have over 100k downloads for Lazarus 2.2.0. Add downloads from mirrors, and people using git. (The fpcupdeluxe thread has many users, so likely a lot of people using that)
Then add people who use FPC without Lazarus.
And, of course, people using FPC/Lazarus from their Linux distribution repo.
Davo
I kind of find it hard to believe that anyone who is passionate about a programming language would not want to ever discuss it with other users but who knows..
Actual conversations of people who use fpc about the compiler/language and code being produced are the only things things that matter in my opinion.But the majority of those conversations lead nowhere. Given that, there really doesn't seem to be any point in having that kind of conversation.
I’ve never been to a pascal conference.
Is this how conferences are usually advertised ?
by brand new accounts that have never posted here before by people without last names Claiming to be affiliated with a university presenting links pointing to Unfinished websites claiming that something important will happen at some future date? The keynote speakers are anonymous as well.
Please forgive me if I’m being rude but I feel like this is some sort of a prank. I think some verification is in order such as an email address for Sergio that matches domain of the university.
Who wouldn’t like to take a vacation to Spain and meet other pascal programmers but is it really possible?
On a side note there was a new member in #fpc recently whose nick also featured an MT. As in Ariel millennium Thornton
10:48:56 <Joanna> arielmt: is this your website ? https://thornton2.com/ArielMT/
10:49:05 <arielmt> yep
Strange coincidence is it not?
Hola Sergio,
Your website does not seem to be accessible, at least at this moment, neither does your website have a security certificate, something very recommendable (and easy to implement with any free certificate), so that any search engine treats it as a suitable address.Dear Pascal-world colleagues,
http://www.pascalcongress.com (http://www.pascalcongress.com)
Hi!
I know, I will do it soon, but now it is just html page :)
Best regards,
Sergio
The programmers I know in real life want absolutely nothing to do with pascal. Sometimes I feel like I’m the last person on earth who still likes pascal.You shouldn't feel this way. The Pascal family is getting bigger every day.
Sometimes I feel like I’m the last person on earth who still likes pascal.
I guess I’m surprised that the creators of fpc and Lazarus are not the ones arranging an event. Have they ever organized an event? I would be much more comfortable going to an event hosted by people I know about.
Pascal is a great choice for beginners.The programmers I know in real life want absolutely nothing to do with pascal. Sometimes I feel like I’m the last person on earth who still likes pascal.You shouldn't feel this way. The Pascal family is getting bigger every day.
At least, I added two more people to the ring;
My 15-year-old son @aydın and my 9-year-old son Akif. Also, the people I know try to do everything with pascal.
Bogen85 I understand the concept that many users of a compiler could be uninterested in coming to irc or forums for help maybe because of their exceptional talent or pride
I kind of find it hard to believe that anyone who is passionate about a programming language would not want to ever discuss it with other users but who knows..
On the other hand whenever there is a large community of humans doing anything there will be a lot of activity.
Number of Downloads or nicks in an IRC channel don’t really constitute activity.
Actual conversations of people who use FPC about the compiler/language and code being produced are the only things things that matter in my opinion.
Bogen85 I understand the concept that many users of a compiler could be uninterested in coming to irc or forums for help maybe because of their exceptional talent or pride
Are there plans to stream the presentations, or make recordings available?
I would love to be able to participate in this! I unfortunately have never left my country though... and not sure how I feel about going overseas. Come to NY USA! :)
Pity, I would like to see what others are doing with and to Pascal.Are there plans to stream the presentations, or make recordings available?
No, there is not stream presentations or recordings plans except for special activities of the event, and that's on purpose. In my experience as a researcher, I have observed that a community, regardless of the field of research, must have a physical meeting. People have to come together, meet in person and establish real links for the community to be strong. I am trying to create what I believe will help create a strong community. It's not just about listening to a talk, it's about people getting to know each other personally so they can feel part of the community, people getting to know each other personally behind the projects and facilitating the possibility for people to create collaborations.
Pity, I would like to see what others are doing with and to Pascal.Are there plans to stream the presentations, or make recordings available?
No, there is not stream presentations or recordings plans except for special activities of the event, and that's on purpose. In my experience as a researcher, I have observed that a community, regardless of the field of research, must have a physical meeting. People have to come together, meet in person and establish real links for the community to be strong. I am trying to create what I believe will help create a strong community. It's not just about listening to a talk, it's about people getting to know each other personally so they can feel part of the community, people getting to know each other personally behind the projects and facilitating the possibility for people to create collaborations.
I don't know your personal circumstances, but if you can come, do it, because this event is not only about hearing talks, but it is also designed to create community. If it works, it will be repeated again; but we need it to work this time.For me, travelling to Europe is a hassle (need Schengen visa, 10 hour flight, relatively expensive). I understand your reasons for an in person event, and that recording or streaming presentations adds extra IT admin, so if it isn't available then it is fine.
Best regards,
Sergio
...
The event will serve as a meeting point for all players in the software industry working with Pascal, and we’re aiming to boost the Pascal community into becoming an innovative and cutting-edge community again.
To achieve these goals, we’ll offer a variety of activities at the event so that people can get the most out of their attendance. You’ll be able to attend courses, technology presentations, and talks by keynote speakers, as well as participate in a challenge for the community.
I have some questions for Sergio MT
Does your college currently teach classes in pascal or delphi ? If so can you please provide link to the class description on the university website.
I’m also curious if you ever taught any pascal classes or written any programs in pascal?
If you have no prior experience with pascal what caused you to become interested in it and want to create an event ?QuoteFor me, travelling to Europe is a hassleAs if long plane flights and visas were not enough there are now all sorts of Covid related restrictions aren’t there?
Additionally I believe the cost of flying has gone up and number of flights have gone down.
Maybe it might be convenient for people who can get there by train.
Pity, I would like to see what others are doing with and to Pascal.Are there plans to stream the presentations, or make recordings available?
No, there is not stream presentations or recordings plans except for special activities of the event, and that's on purpose. In my experience as a researcher, I have observed that a community, regardless of the field of research, must have a physical meeting. People have to come together, meet in person and establish real links for the community to be strong. I am trying to create what I believe will help create a strong community. It's not just about listening to a talk, it's about people getting to know each other personally so they can feel part of the community, people getting to know each other personally behind the projects and facilitating the possibility for people to create collaborations.
I don't know your personal circumstances, but if you can come, do it, because this event is not only about hearing talks, but it is also designed to create community. If it works, it will be repeated again; but we need it to work this time.
Do you have any themes in mind? Such as language standardization (Delphi seems to be the de facto modern standard, with some good innovations but also some less popular ideas), cross platform operability, language extensions for microcontrollers, etc.
My 15-year-old son @aydın and my 9-year-old son Akif. Also, the people I know try to do everything with pascal.
You say your project is in Delphi have you considered porting it to lazarus? Lazarus has a Delphi mode which can use files from delphi. I’ve never tried it myself though but it shouldn’t be too difficult.
QuoteThe universities in Spain stopped teaching Pascal around 10 or 15 years agoQuoteSo pascal has not been taught in Spain for almost one generation. Do you have any idea why it was gotten rid of? Or what replaced it?QuoteThey were thinking Pascal died. Also, students are interested in Pascal because of the event although they have not studied Pascal in their subjects
A lot of people want pascal to be gone and do everything they can to discourage people from using it. I’ve encountered quite a few of these people.
If your students are interested in pascal why not have them come download Lazarus and give it a try. I believe the forums also have a Spanish section for people not fluent in English.
You say your project is in Delphi have you considered porting it to lazarus? Lazarus has a Delphi mode which can use files from delphi. I’ve never tried it myself though but it shouldn’t be too difficult.
I know the answers to your questions, but I lack time to explain all this, although I can explain you in Salamanca if you come.
I organize sometimes workshops and I show both, Lazarus and Delphi, to them. For the community is better that both exist.
Best regards,
Sergio
I’m curious if the development of Lazarus follows delphi or if judgements are made what is better for the future of Lazarus? I’ve noticed a lot of properties in classes that don’t do much I guess they are for compatibility with delphi maybe?It has its own roadmap, but keeping Delphi compatibility (at least at language level) somewhat a priority. Delphi is pretty bad in keeping backward compatibility, so it's kinda hard to follow their post XE implementations. LCL is still closely resembling VCL instead of FMX, for instance.
QuoteThe pandemic should have shown that the ability to take part online is important as it provides accessibility and inclusivity.Pascaldragon I kind of have mixed feelings about so many things being done remotely. It’s good that people can work remotely from home without commuting and chatting with people from around the world is a lot of fun..but the end result i think is alienating people from the people who live near them in real life. There are no community events anymore and people don’t know the people in their neighborhoods. Covid only worsened this phenomenon.
I’m curious if the development of Lazarus follows delphi or if judgements are made what is better for the future of Lazarus? I’ve noticed a lot of properties in classes that don’t do much I guess they are for compatibility with delphi maybe?
Do the makers of Delphi ever implement new features you don’t like that you don’t want to ever be part of Lazarus? If so what do you do?
Not Lazarus, but FPC or the language: inline variable declarations. *shudders*Shivers. Separation of declaration and use is a core feature of Pascal. Totally agree.
I didn't know this was possible! It might be very useful when porting code from C-based languages but I strongly believe such code should only be possible in a special "compatibility"mode, eg. {$MODE C} and not part of regular code base.
Not Lazarus, but FPC or the language: inline variable declarations. *shudders*
It is only possible in very recent versions of Delphi. I hope it does not make it into FPC.
Yeah, introducing a new procedure is one way. But I want to limit the scope to a block. That's why I emphasized _block_ in my OP.
Using a procedure means, it's going to reserve a whole new context on the stack, eh? I don't want this.
So there's the inline modifier copying the procedure's body to the place where it's called. Huh. Uhm. That's a sub-optimal solution: Normally you'd introduce procedures if they're either called multiple times or they serve a well-defined task. This is not necessarily the case.
No!@@! I explained that by declaring the procedure *inline* you achieve *block* scoping, as can be seen from the assembler output. If it is just the eye candy of just *declaring* a variable in block scope? That doesn't add any value regarding generated code efficiency and there are plugins available for *editors* that can do just that for Delphi. I am not sure about Lazarus, but I won't be surprised if it is available. The advantage over C's lazy typing is that in Pascal a separate procedure leads to easier to maintain sourcecode. Which is, btw, of course also possible in modern C.
There is no obvious reason to add bad coding habits to Pascal, imnsho.
Inline variable declarations is a horrible idea I’m glad it wasn’t implemented.
1.-I have wondered why we can't have in pascal a "step" statement inside the [for-to] that allows us to jump the index in a direct and clean way, to the well-known 1+1?.That would be sweet!
1.-I have wondered why we can't have in pascal a "step" statement inside the [for-to] that allows us to jump the index in a direct and clean way, to the well-known 1+1?.It would be nice but, personally, it's really very rare that I need it. IOW, I don't miss it.
2.-Also why the [ Case of ] statement, does not facilitate us to work with variables as a string, or other useful types.... I believe that this would help to write an easier and cleaner code in many cases of programming.A "case" statement that not only accepts variables but, accepts _multiple_ variables, IOW, a multi-variate table. It's amazing how much cleaner some code gets when a facility like that is available. COBOL85 has it (it's called "evaluate") but, for a significant percentage of programmers, the fact that the feature is present in COBOL is enough to put it down with "disdain". That's very unfortunate.
But it would be unwise to declare a temporary index to traverse [for-to] blocks. If a variable is meant to be used only once, why declare it in a global section of a function or procedure and not do it locally (inline)?That's a valid point. The real, solid solution that is perfectly in line with Pascal's spirit is to have local/inline _scopes_. An inline scope is like a function/procedure that is not callable but, has its own local constants, type and var sections along with its code. If I recall correctly, ADA implements local scopes, a great feature to keep code clean and easy to maintain.
I'd also love a foreach loop
I didn't know this was possible! It might be very useful when porting code from C-based languages but I strongly believe such code should only be possible in a special "compatibility"mode, eg. {$MODE C} and not part of regular code base.
Not Lazarus, but FPC or the language: inline variable declarations. *shudders*
1.-I have wondered why we can't have in pascal a "step" statement inside the [for-to] that allows us to jump the index in a direct and clean way, to the well-known 1+1?.
loop i = 1 to 10 by 2
say i
end
which returns:1
3
5
7
9
1.-I have wondered why we can't have in pascal a "step" statement inside the [for-to] that allows us to jump the index in a direct and clean way, to the well-known 1+1?.
Do you mean something similar to this in NetRexx?Code: [Select]loop i = 1 to 10 by 2
say i
end
Silvestre
You can use string type Variable in case statement I do it with Lazarus. You can also use enumerated data types and chars in case statements.
1.-I have wondered why we can't have in pascal a "step" statement inside the [for-to] that allows us to jump the index in a direct and clean way, to the well-known 1+1?.
Do you mean something similar to this in NetRexx?Code: [Select]loop i = 1 to 10 by 2
say i
end
which returns:Code: [Select]1
3
5
7
9
I didn't know this was possible! It might be very useful when porting code from C-based languages but I strongly believe such code should only be possible in a special "compatibility"mode, eg. {$MODE C} and not part of regular code base.
Not Lazarus, but FPC or the language: inline variable declarations. *shudders*
1.-I have wondered why we can't have in pascal a "step" statement inside the [for-to] that allows us to jump the index in a direct and clean way, to the well-known 1+1?.
2.-Also why the [ Case of ] statement, does not facilitate us to work with variables as a string, or other useful types.... I believe that this would help to write an easier and cleaner code in many cases of programming.
I am aware of the direct rejection of inline variables and I agree with most of the objections. But it would be unwise to declare a temporary index to traverse [for-to] blocks. If a variable is meant to be used only once, why declare it in a global section of a function or procedure and not do it locally (inline)?
The real problem with Pascal is that there isn't a group of language experts analyzing the language non-stop and creating a new standard every few years. Instead, whatever someone thinks is a good idea (which may or may not be the case) and has some influence in the development of a compiler is a close to deciding factor for it to be implemented. With that as "methodology", the result is usually a "mixed bag" with inconsistencies in many corners.
I'd also love a foreach loop, something like:
foreach (array as i=>elem) do
Stepping the index in a for loop is not a good idea because it could go past the range of values that the index was intended to have.
......Just in case someone else is looking for that discussion, its at https://forum.lazarus.freepascal.org/index.php/topic,29604.0.html
The same thing can already be achieved in FPC........ I explained that by declaring the procedure *inline* you achieve *block* scoping, as can be seen from the assembler output. If it is just the eye candy of just *declaring* a variable in block scope? ....
Just in case someone else is looking for that discussion, its at https://forum.lazarus.freepascal.org/index.php/topic,29604.0.html
It works but is quite 'wordy'.
Davo
I don’t know if things used to be different but when I first learned how to program the type, const and var declarations appeared just once in that order. I never tried compiling them in a different order so I don’t know if the order was enforced.
I can understand that some people might want flexibility for grouping type, const and var in separate sections for some reason but it I find it cluttered and hard to read it much rather make another procedure to split up the code into smaller pieces. I try to avoid having procedures or functions longer than one page but maybe that isn’t always possible.That's a conceptual error.
The decision of how and when to break code into functions/procedures should be determined by the control flow
20,000 lines of linear code are much easier to understand and maintain than 500 functions of 40 lines each.
If the code can't be factored based on control flow, it can still be factored based on logical groups, so that it can be comprehended and maintained in smaller pieces.I'd say it can always be factored based on control flow and, within that, grouped by logical function.
If the code can't be factored based on control flow, it can still be factored based on logical groups, so that it can be comprehended and maintained in smaller pieces.I'd say it can always be factored based on control flow and, within that, grouped by logical function.
Grouping by logical function does not mean a new function/procedure should be created. A logical group of instructions can be identified by a comment or, ideally, by an inline scope (which, unfortunately, Pascal does not provide - except with some trickery and only in a very limited form.)
Sharing scopes via nesting means only the top parent can be unit or functionally tested.
When a group of instructions is used to create a new function/procedure it creates a potential problem. if the new function/procedure is nested then it makes it clear that it is only used in that scope but, what is much more common is that the new function/procedure is placed at the top level which means it could be called from anywhere, thereby making it more difficult to visualize the structure of the program.
Code should be just like variables, local in most cases and global only when truly necessary (or genuinely unavoidable.)
The problem with nested functions/procedures is that they break the linear flow. The programmer can't read code from top to bottom, instead for every function/procedure, the programmer has to "jump" to where that function/procedure is defined. That should _only_ be necessary when and if the function/procedure is used more than once in the function/procedure it is nested in. If the sequence of code is used only once, then it should be inline.
But only from a test-test-ability standpoint... There are times where using nested functions makes more sense (in my opinion).In a programming language (any programming language) a programmer should be able to implement the rule: a function/procedure exists _only_ if the code it contains is executed in more than one location. The fact that it is executed in more than one location is the reason it is a function/procedure. If the code is executed in only one place then it should be in a named scope executed inline.
So, once again, a trade off...
In a programming language (any programming language) a programmer should be able to implement the rule: a function/procedure exists _only_ if the code it contains is executed in more than one location. The fact that it is executed in more than one location is the reason it is a function/procedure. If the code is executed in only one place then it should be in a named scope executed inline.
Because I would quite possible not just put such a routine at top-level. I might very well give that code it's own unit.You are right. There are functions that are very general in nature such as calculating a CRC or the length of a null terminated string and thousands of other such functions that should be functions/procedures in their own container/unit hopefully based on what they apply to and/or are used for.
So, if I have a hash-function (maybe a modification of some crc or sha), and I use this function only from one place in my code => then I should best write it inline (and not have a function)? Or if the needs must, I may be allowed to make it a nested proc?
Because I would quite possible not just put such a routine at top-level. I might very well give that code it's own unit.
But, this is way off topic in regard to the International Pascal Conference 2023...Perhaps, although this side discussion highlights a blurred distinction between the Pascal language philosophy and general programming best practice. And I believe this is due to a nonexistent modern Pascal language philosophy, or alternatively a missing up to date language specification.
Let's hope the congress can come up with the next standard that might start a legal battle with Embarcadero. It's hard to move together when you rely on sales of development tools to live.But, this is way off topic in regard to the International Pascal Conference 2023...Perhaps, although this side discussion highlights a blurred distinction between the Pascal language philosophy and general programming best practice. And I believe this is due to a nonexistent modern Pascal language philosophy, or alternatively a missing up to date language specification.
To me it is easier to understand a lot of small functions each having a single purpose, than a large function that does many different things.
The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that. Functions should not be 100 lines long. Functions should hardly ever be 20 lines long.
Programs must be written for people to read, and only incidentally for machines to execute
If you have to spend effort into looking at a fragment of code to figure out what it's doing, then you should extract it into a function and name the function after that “what." Once I accepted this principle, I developed a habit of writing very small functions - typically only a few lines long.
If an element consists of more than 30 subelements, it is highly probable that there is a serious problem:
a) Methods should not have more than an average of 30 code lines (not counting line spaces and comments).
If you have to spend effort into looking at a fragment of code to figure out what it's doing, then you should extract it into a function and name the function after that “what." Once I accepted this principle, I developed a habit of writing very small functions - typically only a few lines long.
“Instead of commenting sections in long functions, extract smaller functions whose names capture the former sections' intent.”
― Kevlin Henney, 97 Things Every Programmer Should Know: Collective Wisdom from the Experts
“Next time you are tempted to lump a few things together into one API method, remember that the English language does not have one word for MakeUpYourRoomBeQuietAndDoYourHomeWork, even though it would be really convenient for such a frequently requested operation.”
― Kevlin Henney, 97 Things Every Programmer Should Know: Collective Wisdom from the Experts
QuoteThis is the reason I prefer pascal to all other programming languages. Pascal is easy to read because of its English like syntax. There are far too many people who think that a programming language should be as terse as possible. Curly braces make a poor substitute for a solid begin end..
Programs must be written for people to read, and only incidentally for machines to execute
Anyway... as someone has already pointed out, this thread is about an International Pascal Congress not about what programming should or shouldn't be but, I find it difficult not to express my strong disagreement with unsupported, mostly baseless programming dogma because it sounds "kewl".This thread like many others derailed to a great extent. Anyways about programming dogma:
Sketch those are some common sense concepts for sure.QuoteQuoteThis is the reason I prefer pascal to all other programming languages. Pascal is easy to read because of its English like syntax. There are far too many people who think that a programming language should be as terse as possible. Curly braces make a poor substitute for a solid begin end..
Programs must be written for people to read, and only incidentally for machines to execute
It is much easier to think of solutions to complicated problems in English and then translate it to pascal.
Let's hope the congress can come up with the next standard that might start a legal battle with Embarcadero. It's hard to move together when you rely on sales of development tools to live.But, this is way off topic in regard to the International Pascal Conference 2023...Perhaps, although this side discussion highlights a blurred distinction between the Pascal language philosophy and general programming best practice. And I believe this is due to a nonexistent modern Pascal language philosophy, or alternatively a missing up to date language specification.
It seems you believe that every one person on Earth speaks (not to say thinks) English. :DI certainly don’t. I’m sure programmers think of code in their own native languages. Regardless of that it doesn’t hurt them to learn the reserved words which happen to be in English. I’m not sure how this happened but I’d prefer a “begin end” in any language over curly braces.
A large number of small functions creates "jigsaw puzzle" programs that the programmer has to assemble. OOP is notorious about creating that problem because many methods have no logical function, they only exist to be overriden thereby exacerbating the problem.
A function should accomplish a logical task, if that task can be done in 20 lines of code, great but, if that logical task takes 2,000 lines then 2,000 lines is what it takes.On the other hand 440bx, I'd absolutely hate to have to try and understand someone's (even mine after a week) hyperthetical 2K line function. Almost any task can be split into logical steps, even if those steps are used once. Give each step a reasonable name and suddenly we have "abstracted" away a lot of the detail. So, the code now looks like
The more code is broken into "pieces" (call them functions, procedures, methods, doesn't matter), the programmer has to "visit" that code (meaning jumping to them) and mentally assemble what all those pieces do. A large number of small functions creates "jigsaw puzzle" programs that the programmer has to assemble. OOP is notorious about creating that problem because many methods have no logical function, they only exist to be overriden thereby exacerbating the problem.
The more pieces a program is broken into, the more information has to be passed around among the pieces and that is often a problem (again, this problem manifests itself in OOP in a number of ways and OOP often makes it worse.) More things for the programmer to have to keep track of, that makes things more cumbersome and more error prone.Absolutely, but that would be an argument for making all our variables global too :o
On the other hand 440bx, I'd absolutely hate to have to try and understand someone's (even mine after a week) hyperthetical 2K line function.I have functions that are 2000+ lines of code and I find them very easy to maintain because execution is linear. I read/execute the code from top to bottom without any jumps and it's really easy to keep track of what has happened and what should happen next.
Almost any task can be split into logical steps, even if those steps are used once. Give each step a reasonable name and suddenly we have "abstracted" away a lot of the detail. So, the code now looks likeThink of it this way... each function/procedure name is a comment that says what LoadData, CheckData, ProcessData, etc do, each followed by the (estimated/averaged) 400 commented lines of code their implementation takes. The beginning and end of each "function" is made clear by comments to that effect. Note also that comments inside a "function" can refer to actions that are being taken to set things up for code that is executed in another "function" (a comment in CheckData that is setting things up for something in DisplayData) This kind of "forward comment" is counterproductive/confusing if the code is broken in discrete pieces.
LoadData() CheckData() ProcessData() DisplayData() SaveData()
Absolutely, but that would be an argument for making all our variables global too :oOn the contrary, the objective is to increase/maximize locality. There is nothing more local than inline code.
Every field in a class is, pretty much, a global class-instance variable accessible by every method in the class and it is quite common to see groups of fields that "belong" with some methods and definitely don't belong with other methods but, those methods still have access to them.
I have arranged for the dogs and the cat to be taken care for. Now, just the wife...
I guess this is a thread about "International Pascal Congress 2023"? :D
This is exciting news to me. I attend 2 or 3 professional conferences each year for 40 years or so. There is nothing like meeting folks in person.
Keep us posted on the program! I would love to attend if possible. Thanks Sergio.
The digital material will be uploaded to YouTube, so all the community can enjoy it for free. Support from the Pascal community is important for the International Pascal Congress 2023 and your donation will empower the Pascal community. .
http://pascalcongress.com/sponsorship.html (http://pascalcongress.com/sponsorship.html)
Great that the talks will be available on YouTube later too. Thank you a lot for organizing this!
Did you go?
Did you go?
Yes. It was a gorgeous conference, quite large with several parallel sessions, outstanding speakers and brilliant courses. And the city of Salamanca is beautiful. The IPC 2023 was the first one of a series of International Pascal Congresses to come.
I think they will provide videos. Professional camera persons recorded all main presentations.Any news?
I think they will provide videos. Professional camera persons recorded all main presentations.Any news?