Content deleted Content added
Returned code examples, added a reference |
Added "criticism" section |
||
Line 28:
== History of PascalABC.NET ==
PascalABC.NET was developed by a group of enthusiasts at the Institute of Mathematics, Mechanics, and Computer Science in Rostov-on-Don, Russia.<ref name=":1">{{Cite book |last=Osipov |first=Alexander V. |title=PascalABC.NET: Vvedenie v sovremennoe programmirovanie [PascalABC.NET: Introduction to Modern Programming] |publisher=
In 2017<ref>{{Cite web |date=2017-03-29 |title=Analysis of PascalABC.NET using SonarQube plugins: SonarC# and PVS-Studio |url=https://pvs-studio.com/en/blog/posts/csharp/0492/ |website=PVS-Studio |lang=en}}</ref> and 2022,<ref>{{Cite web |date=2022-02-11 |title=Re-checking PascalABC.NET |url=https://medium.com/pvs-studio/re-checking-pascalabc-net-f8bfc94aba3c |website=Medium |lang=en}}</ref> independent audit of [https://github.com/pascalabcnet/pascalabcnet PascalABC.NET public repository] was conducted. Based on the results of the static check, potentially dangerous code fragments were listed that require additional analysis by developers. It was also noted that the overall quality of the code could be improved. To do this, code duplication and redundant checks should be eliminated, and refactoring should be performed more carefully.
== Use in school and higher education ==
Designed for education, PascalABC.NET remains the most common programming language in Russian schools and one of the recommended languages for passing the [[Unified State Exam]] on informatics.<ref>{{Cite web |title=Metodicheskie rekomendacii po podgotovke i provedeniyu edinogo gosudarstvennogo ekzamena po informatike i IKT v komp'yuternoj forme v gorode Moskve v 2021 godu [Guidelines for the preparation and conduct of the unified state exam in computer science and ICT in the city of Moscow in 2021] |url=http://rcoi.mcko.ru/resources/upload/RichFilemanager/documents/2020-2021/org_metod/11/mr_kege_inf_2021.pdf |publisher=Departament obrazovaniya i nauki goroda Moskvy [Department of Education and Science of Moscow] |page=110 |language=ru-RU}}</ref><ref>{{Cite web |last=Polyakov |first=Konstantin |title=Doklady na konferenciyah i seminarah [Reports at conferences and seminars] |url=https://kpolyakov.spb.ru/school/doklad.htm |language=ru-RU}}</ref><ref name=":3">{{Cite web |last=Bogdanov |first=Alexey |date=2022-10-04 |title=PascalABC.Net or Python/ C#/C++ |url=https://www.youtube.com/watch?v=RulhCYnbRAA |access-date=2023-04-05 |website=YouTube |language=ru-RU}}</ref> In the Southern Federal University, it is used as the first language for teaching students majoring in computer science, and for teaching children in one of the largest computer schools in Russia.<ref>{{Cite news |last=Popova |first=Ekaterina |date=2022-09-06 |title=Kak v Rostove gumanitarii uspeshno obuchayutsya IT-special'nostyam [How humanitarians successfully study IT specialties in Rostov] |language=ru-RU |work=Komsomolskaya Pravda |url=https://www.rostov.kp.ru/daily/27441/4643617/}}</ref> PascalABC.NET is widely used as a basic programming language in pedagogical universities for the training of computer science teachers.<ref name="MathAnim">{{Cite journal |last1=Dzhenzher |first1=V.O. |last2=Denisova |first2=L.V. |year=2019 |title=Mathematical animation in computer simulation at school |url=https://www.sciencegate.app/document/10.32517/2221-1993-2019-18-6-51-54 |journal=Informatics in School |language=ru-RU |issue=6 |pages=51–54 |doi=10.32517/2221-1993-2019-18-6-51-54 |s2cid=203704481}}</ref><ref name="HammingCode">{{Cite journal |last1=Dzhenzher |first1=V.O. |last2=Denisova |first2=L.V. |year=2021 |title=Implementation of the Hamming code on PascalABC.NET while studying the theoretical foundations of informatics |url=https://www.sciencegate.app/document/10.32517/2221-1993-2021-20-9-27-36 |journal=Informatics in School |language=ru-RU |volume=1 |issue=9 |pages=29–38 |doi=10.32517/2221-1993-2021-20-9-27-36 |s2cid=245473319}}</ref><ref name="SciGraph">{{Cite journal |last1=Dzhenzher |first1=V.O. |last2=Denisova |first2=L.V. |year=2020 |title=Scientific graphics in PascalABC.NET: plotting function graphs in a rectangular cartesian coordinate system |url=https://www.sciencegate.app/document/10.32517/2221-1993-2020-19-1-31-39 |journal=Informatics in School |language=ru-RU |issue=1 |pages=31–39 |doi=10.32517/2221-1993-2020-19-1-31-39 |s2cid=215844807}}</ref><ref>{{Cite journal |last=Kulabukhov |first=S.Yu. |year=2021 |title=Mathematical modeling in informatiсs lessons using numerical solution of differential equations |url=https://school.infojournal.ru/jour/article/view/528/528 |journal=Informatics in School |language=ru-RU |issue=2 |pages=14–21 |doi=10.32517/2221-1993-2021-20-2-14-21 |s2cid=235541530}}</ref> It also serves as a tool for scientific computing.<ref>{{Cite journal |last1=Khazieva |first1=R.T. |last2=Ivanov |first2=M.D. |year=2020 |title=Selection of optimum device parameters for permanent magnetic field generation |url=https://www.energyret.ru/jour/article/view/1625/696 |journal=Power Engineering: Research, Equipment, Technology |language=ru-RU |volume=22 |issue=6 |pages=176–187 |doi=10.30724/1998-9903-2020-22-6-176-187 |s2cid=233658494}}</ref><ref>{{Cite journal |last1=Lukyanov |first1=O.E. |last2=Zolotov |first2=D.V. |year=2021 |title=Methodological support for the training of UAV designers and operators |url=https://journals.ssau.ru/vestnik/article/view/8633/pdf |journal=VESTNIK of Samara University. Aerospace and Mechanical Engineering |language=ru-RU |volume=20 |issue=1 |pages=14–28 |doi=10.18287/2541-7533-2021-20-1-14-28 |s2cid=236617894}}</ref> PascalABC.NET is also built into a number of validation systems used for programming competitions.<ref>{{Cite web |title=ACMP Olympiad System |url=https://acmp.ru/article.asp?id_text=120 |url-status=live |archive-url=https://web.archive.org/web/20230327035528/https://acmp.ru/article.asp?id_text=120 |archive-date=2023-03-27 |access-date=2023-04-05}}</ref><ref>{{Cite web |title=Yandex Contest Compilers List |url=https://contest.yandex.ru/compilers/ |url-status=live |archive-url=https://web.archive.org/web/20230314174434/https://contest.yandex.ru/compilers/ |archive-date=2023-03-14 |access-date=2023-04-05 |website=Yandex Contest}}</ref>
In 2020, during anti-COVID lockdowns and home schooling period, PascalABC.NET website was ranked 3<sup>rd</sup> in Yandex traffic rating in the "Programming" category, and the number of downloads of the installation kit exceeded 10000 a day.<ref>{{Cite web |last=Kubysheva |first=Olga |date=2020-04-17 |title=PascalABC.NET: Sajt sistemy programmirovaniya, razrabatyvaemoj na mekhmate YUFU, podnyalsya v rejtinge YAndeksa na tret'e mesto [PascalABC.NET: Site of programming system developed at SFedU MMCS faculty climbed up to the third place in Yandex ranking] |url=https://www.rostov.kp.ru/online/news/3839814/ |website=Komsomol'skaya pravda |language=ru-RU}}</ref>
Line 98:
=== Functional style features ===
In PascalABC.NET, functions are [[First-class citizen|first-class objects]]. They can be assigned to variables, passed as parameters, and returned from other functions.
<syntaxhighlight lang="delphi">
## // denotes that the main program will be written without enclosing begin-end
Line 124:
</syntaxhighlight>
In the book "How To Program Effectively In Delphi"<ref>{{Cite book |author=Kevin R. Bond |title=How to Program Effectively in Delphi for AS/A Level Computer Science |publisher=Educational Computing Services Ltd |year=2021 |isbn=9780992753603 |chapter=Chapter 44. Anonymous methods}}</ref> and in the corresponding video tutorials,<ref name=":0">{{Cite web |author=Kevin Bond |title=How to Program Effectively in Delphi. Lesson 44. Part 1 |url=https://www.youtube.com/watch?v=RBlg-ItyyTA&t=377s |access-date=2023-04-04 |website=YouTube |lang=en}}</ref><ref>{{Cite web |title=Delphi Boot Camp 2022 - Delphi and functional programming using anonymous methods |url=https://www.youtube.com/watch?v=OmregYuqLU8&t=1640s |access-date=2023-04-04 |website=YouTube |lang=en}}</ref> Dr. Kevin Bond, a programmer and a Computer Science teaching specialist,<ref>{{Cite web|lang=en|url=https://www.educational-computing.com/DelphiBook/KRBsBriefBiography.pdf|title=Brief biography Dr Kevin R Bond|website=Educational Computing Services Ltd}}</ref> notes that PascalABC.NET has powerful functional programming capabilities which are missing in Delphi. As an example, [[Partial application|partial function application]] is demonstrated:<syntaxhighlight lang="delphi">
begin
var f: integer -> integer -> integer := x -> y -> x + y;
Writeln(f(2)(6));
end.
</syntaxhighlight>
Line 194 ⟶ 196:
end.
</syntaxhighlight>
== Criticism ==
Some members of the teaching community make no difference between historically used Turbo Pascal and PascalABC.NET, criticizing some unspecified "Pascal" language for being far from modern programming, too wordy and not simple enough to use as the first programming language.<ref>{{Cite journal |last=Panova |first=I.V. |last2=Kolivnyk |first2=A.A. |year=2020 |title=METHODOLOGICAL ASPECTS OF TEACHING PYTHON PROGRAMMING IN THE SCHOOL INFORMATICS COURSE |journal=Informatics in school |language=ru-RU |issue=6 |pages=47-50}}</ref><ref>{{Cite web |date=2021-05-28 |title=What's wrong with modern computer science teaching |url=https://habr.com/ru/companies/skillfactory/articles/559010/ |access-date=2023-04-08 |website=Habr |language=ru-RU}}</ref> They consider Python to be the best starting point, as it is more concise and practically applicable. Their opponents, including PascalABC.NET developers themselves, argue that is is incorrect to put an equal sign between the classic Pascal and PascalABC.NET, as the latter contains lots of modern features, including the ones from Python.<ref name=":3" /><ref>{{Cite web |date=2020-04-14 |title=The First Programming Language Dispute: The Final Solution / Vitaly Bragilevsky (JetBrains) |url=https://www.youtube.com/watch?v=OtcKHgkPiyk&t=2318s |website=YouTube}}</ref><ref>{{Cite web |last=Polyakov |first=Konstantin |date=2021-08-24 |title=New features in PascalABC.NET |url=https://kpolyakov.spb.ru/download/pas2021.ppt |place= |language=ru-RU}}</ref> PascalABC.NET allows students to write as concise and expressive programs as Python,<ref>{{Cite web |last=Mikhalkovich |first=Stanislav |date=2021-11-22 |title=Comparing Python and PascalABC.NET |url=https://www.youtube.com/watch?v=ZcWP82JBqZI |website=YouTube}}</ref> and acts as a "bridge to production programming" by applying a static typing concept.<ref name=":3" /> PascalABC.NET is also a compilable language, which makes it easier to learn programming, because all semantic errors are caught at compile time rather than occur unpredictably at runtime.<ref name=":3" /><ref>{{Cite book |last=Osipov |first=Alexander V. |title=PascalABC.NET: vybor shkol'nika. CHast' 1. [PascalABC.NET: Schoolchildren's Choice. Part 1] |publisher=Southern Federal University |year=2020 |edition=2nd |pages=16-19 |language=ru-RU}}</ref>
== References ==
|