[CLOSED] Midnight trolling: Don't take everything serious! lazarus / 8-Other ---------------------------------------------------------------------- guest65109 · 2020-01-06 16:06 Delphi is a dying platform and it sucked hard. But Embarcadero (or Idera, or something elase, it's gone under so many of transitions) is very good at marketing. You rarely see any Delphi complaining website on Google compared to other language like Python, Java... (or because too few people actually using it so we don't find anything?). They've successfully built a religion, with the holly grail is the language Pascal. And this community doesn't accept any criticism of them. The fact is no one use or like this language outside of this very narrowed community. It's a dead language! Inverse to what people said about Perl being a write once language (because it's too difficult to read other's code), Pascal is a very easy to read language, but very very inefficient to write because it's too wordy. Pascal people usually accuse Microsoft to take their Saint Anders Hejlsberg to the dark side (C syntax?) and blame Microsoft for the demise of their beloved language and platform. They hate C# with a passion. They think C#'s position now is should be them and rightfully them without the devil Microsoft. They're very wrong. C# in fact is the saving of Delphi heritage. By combining Object Pascal with Java syntax, C# really make the very boring and inefficient to write in Delphi language to be something much more easier and comfort to write in. Without the Java syntax part, the C# language should go to the same rabbit hole as Delphi. Do the Delphi fanboy ever think themselves if their language is so efficient why Microsoft don't just clone it and marketed Microsoft Object Pascal? Why don't Microsoft has to fuse it with the Java syntax? The fact is, their language sucks. C# is superior than Delphi, both for reading and writing. If counting the ratio of LOC with the feature it providing Delphi should be the most inefficient language. So many line of code just to archive a simple functionality. Admit it, C# is just easier to read and more comfortable to write in, C# is superior. Hail C#! Hail C#! Woes to you the Pascal losers! Your Delphi is only an overpriced poor quality C#. C# is what Object Pascal should become. Let alone a poor man's low quality Delphi clone named Lazarus and Free Pascal. Ha ha  Is my writing good? This is the first time I write that much text in English. I know it's full of grammar errors, sorry everyone for my poor English  Please don't hate me everyone, I only want to write something to entertain everybody here. Finally, good night everyone. Bye ---------------------------------------------------------------------- MarkMLl · 2020-01-06 16:52 Quite frankly I'd agree with most of that. If there's one thing I don't entirely agree with it's your assertion that because Pascal is comparatively verbose it's slow to write: if the sourcecode verbosity contributes usefully to the compiler's detection of errors, or for that matter to the detection of errors during testing, I'd say that it's entirely excusable. Besides which, C++ and "modern C" attempt to have type checking etc. which is probably stricter than Pascal was originally, and working round that can result in a maze of casts and macros which is difficult to navigate even for those fully versed in C idioms. And setting structures etc. up properly can be pretty damn verbose as well... and by "properly" I mean "sufficient to satisfy all doctrine about how C/C++ can go wrong if not carefully written". Quote from: mr.coll on January 06, 2020, 05:06:23 pmIs my writing good? This is the first time I write that much text in English. I know it's full of grammar errors, sorry everyone for my poor English  Please don't hate me everyone, I only want to write something to entertain everybody here. Finally, good night everyone. Bye  Since you ask... "This is the first time that I have written this much text in English" would be better, and "grammatical" rather than "grammar". Apart from that you're doing fine :-) MarkMLl ---------------------------------------------------------------------- lainz · 2020-01-06 16:54 You're comparing things that are very different. Microsoft is way bigger than the company that makes Delphi. Way bigger than an Open Source community of developers. I know for example C# is used in Unity, that is used for Games and 3D visualization, and it's even sponsored on Visual Studio installer. Again, big companies. The thing is that to code speedy things you need still C or C++ or Pascal. Say embedded systems. Why Chrome is not built on C# if it's the best language? ---------------------------------------------------------------------- skalogryz · 2020-01-06 17:26 a flamewar shooting range! Quote from: mr.coll on January 06, 2020, 05:06:23 pmDelphi is a dying platform True. Quote from: mr.coll on January 06, 2020, 05:06:23 pmand it sucked hardFalse. Plenty of high quality software was and is still in use written in delphi Quote from: mr.coll on January 06, 2020, 05:06:23 pmYou rarely see any Delphi complaining website on Google compared to other language like Python, Java... (or because too few people actually using it so we don't find anything?). True. Population is lower compared to other mainstream languages, so number of ranting pages is lower. Quote from: mr.coll on January 06, 2020, 05:06:23 pmThey've successfully built a religion, with the holly grail is the language Pascal. And this community doesn't accept any criticism of them. The fact is no one use or like this language outside of this very narrowed community. False. There's no researching regarding "language liking out-side of community" Quote from: mr.coll on January 06, 2020, 05:06:23 pmIt's a dead language!False. Otherwise FPC's life might have been easier. Quote from: mr.coll on January 06, 2020, 05:06:23 pmPascal is a very easy to read language, but very very inefficient to write because it's too wordy. False. Modern C++ syntax requires more symbols to be used, compared to Pascal. Java/C# with the dotted notation, has be need "wordier" than Pascal from the start. Quote from: mr.coll on January 06, 2020, 05:06:23 pmPascal people usually accuse Microsoft to take their Saint Anders Hejlsberg to the dark side (C syntax?) and blame Microsoft for the demise of their beloved language and platform.False. Nobody accuses Anders. There's no such notion in Pascal community. It's also worth to note, that (the most?) popular Delphi 7 was released a years after Anders left for Microsoft. Quote from: mr.coll on January 06, 2020, 05:06:23 pmThey hate C# with a passion. They think C#'s position now is should be them and rightfully them without the devil Microsoft.False. There's no hatred in Pascal community towards any language. Instead it's not uncommon for Pascal community to refer to other languages as "nice to have features", source of libraries (typically C or C++) or just general ideas. Quote from: mr.coll on January 06, 2020, 05:06:23 pmThey're very wrong. C# in fact is the saving of Delphi heritage. By combining Object Pascal with Java syntax, False. C# syntax was based on C, rather than Java. So, there's no "Object Pascal" in "Java syntax". Quote from: mr.coll on January 06, 2020, 05:06:23 pmC# really make the very boring and inefficient to write in Delphi language to be something much more easier and comfort to write in. False. The biggest difference is that Pascal will likely ask you to release the allocated resource, file C# will do a garbage collection in runtime. On the other hand, in C# system resources has to be explicitly disposed anyway (while in pascal, the system resource can be released together with the explicit release of the object). Quote from: mr.coll on January 06, 2020, 05:06:23 pm Without the Java syntax part, the C# language should go to the same rabbit hole as Delphi. False C# has made its own niche, with Mono project. so C# has stopped being MS only platform language. Quote from: mr.coll on January 06, 2020, 05:06:23 pmDo the Delphi fanboy ever think themselves if their language is so efficient why Microsoft don't just clone it and marketed Microsoft Object Pascal? Why don't Microsoft has to fuse it with the Java syntax?Microsoft Quickpascal, was actually an attempt to clone Borland Pascal. Prior to "Quickpascal", Microsoft produced Microsoft Pascal compiler, which was not Borland compatible. Quote from: mr.coll on January 06, 2020, 05:06:23 pmThe fact is, their language sucks. C# is superior than Delphi, both for reading and writing.False. There's no "superiority" measurement in reading and writing. Quote from: mr.coll on January 06, 2020, 05:06:23 pmIf counting the ratio of LOC with the feature it providing Delphi should be the most inefficient language. So many line of code just to archive a simple functionality. using Line of Code measurement is so 1970s. and a poor marketing choice. Quote from: mr.coll on January 06, 2020, 05:06:23 pmYour Delphi is only an overpriced poor quality C#. C# is what Object Pascal should become. Let alone a poor man's low quality Delphi clone named Lazarus and Free Pascal. Ha ha  Wait, is Delphi now a Java with Pascal syntax? ---------------------------------------------------------------------- Thaddy · 2020-01-06 17:28 Is the right answer!  [we could discuss the llvm back-ends for all of the above too  ] ---------------------------------------------------------------------- 440bx · 2020-01-06 18:38 I think what Skalogryz mentioned in his post is pretty close to being right on the money but, there are a few additional things that I believe deserve mention. Quote from: mr.coll on January 06, 2020, 05:06:23 pmBut Embarcadero (or Idera, or something elase, it's gone under so many of transitions) is very good at marketing. That's dubious.  If they were really good at marketing, their market share would likely be larger than it currently is. Quote from: mr.coll on January 06, 2020, 05:06:23 pmThe fact is no one use or like this language outside of this very narrowed community. It's dangerous to draw any conclusion based on that, other than the obvious: its market/mind share is low.   IOW, it says nothing about how good (or not good) the language is. Quote from: mr.coll on January 06, 2020, 05:06:23 pmPascal is a very easy to read language, but very very inefficient to write because it's too wordy. Using that logic, it is more desirable to have a cryptic language (such as C/C++) that can produce a very short yet undecipherable statement than one that is a bit more wordy but easy to understand.  People have to understand a program ? ... what a strange concept... it's so much more productive to type less and spend 15 minutes deciphering what those 10 characters mean... what a load of fun!.  Applying that methodology to Architecture would result in tall and narrow residences so you can see more of them at once and save on materials thereby imposing less stress on your peripheral vision and your pocket.  Why didn't Zaha Hadid think about that ? Quote from: mr.coll on January 06, 2020, 05:06:23 pmC# is superior than Delphi And that dubious conclusion is based on a syntactic structure that requires a lower number of characters required to express a statement regardless of ease of comprehension.  Saving characters is "indeed" much more important than understanding the statement.  Quote from: mr.coll on January 06, 2020, 05:06:23 pmIf counting the ratio of LOC with the feature it providing Delphi should be the most inefficient language. So many line of code just to archive a simple functionality. Here is a very "efficient" implementation of a well known problem, all you have to do is, figure out what the problem is. In the meantime, you can enjoy how efficient it is. Code: C  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i int v,i,j,k ,l,s,a[99];main(){for(scanf("%d",&s);*a-s;v=a[j*=v]- a[i],k=i=s*k&&++a[-- i]);printf("\n\n");}  Quote from: mr.coll on January 06, 2020, 05:06:23 pmIs my writing good? It's much better than the criteria you've chosen to claim one language is better than another. Quote from: mr.coll on January 06, 2020, 05:06:23 pmFinally, good night everyone. You're allowed 5 minutes of sleep. Short nights are more efficient. ---------------------------------------------------------------------- marcov · 2020-01-06 19:03 Quote from: mr.coll on January 06, 2020, 05:06:23 pmDelphi is a dying platform and it sucked hard. But Embarcadero (or Idera, or something elase, it's gone under so many of transitions) is very good at marketing. I disagree. I don't think they are good at marketing. They are making some required moves to keep sucking the platform dry till the very end, but it is a bit mechanical and slavish. QuoteYou rarely see any Delphi complaining website on Google compared to other language like Python, Java... (or because too few people actually using it so we don't find anything? That's something totally different. It is simply the lack of young hotheads that have something to prove. No people that need to get a sense of selfworth by kicking down from what they think is a position of superiority. Sad actually, for your self-worth to depend on what platform you select. (and even more so if that commitment doesn't cost you anything) Delphi was always pragmatic platform, not an idealistic one. This whole argument boils down to "100000 lemmings can't be wrong" Quote). They've successfully built a religion, with the holly grail is the language Pascal. And this community doesn't accept any criticism of them. The fact is no one use or like this language outside of this very narrowed community. It's a dead language! Dying is not dead. QuotePascal is a very easy to read language, but very very inefficient to write because it's too wordy. If typing is your limitation in programming, why discuss languages? Just get a better typing diploma. Delphi has its problems, but the "wordiness" is an argument that only matters to curly braces hotheads above. Anybody sane knows typing is not a serious challenge in programming. Stronger even. Language might not even be in the top 10 challenges. QuotePascal people usually accuse Microsoft to take their Saint Anders Hejlsberg to the dark side (C syntax?) and blame Microsoft for the demise of their beloved language and platform. They hate C# with a passion. They think C#'s position now is should be them and rightfully them without the devil Microsoft. They're very wrong. C# in fact is the saving of Delphi heritage. I can counter that with one simple phrase: Garbage Collection. While the curly braces are not popular, the main quoted problems with C# that I heard Garbage collection, the most divisive aspect by farruntime library installation requirement and associated versioning. (if you deploy to all supported windows versions you always have to have people install a runtime on at least one)Constant shifting focus of development, specially gui wise. The platform is being used as a marketing tool(First Winforms then incompatible winforms 2, then WPF, then Win8 apps didn't even have a .NET solution out of the box etc etc) 2 out of 3 are not even language problems, but .NET platform problems. And even GC can be considered as such (but to be fair at least has its share of fans too) The pain of these problems are not even universal, e.g. if you only did bulk serverside programming since say 2005, you probably wouldn't care.  I actually did C#/ASP.NET for two years for that reason before a career change brought me back to Delphi and deploying a different , more standalone kind of app again. Delphi might be sad, but only had one compatibility break (D2007->D2009) in a much longer period. And if you ask users why they are in Delphi, backwards compatibility is a very major, major issue QuoteBy combining Object Pascal with Java syntax, C# really make the very boring and inefficient to write in Delphi language to be something much more easier and comfort to write in. Without the Java syntax part, the C# language should go to the same rabbit hole as Delphi. Total nonsense. C# is Microsoft is C#. It was(is?) the default Microsoft platform.  All other things are magnitudes less important. If another vendor (maybe other than Apple) had come up with the same, the specification would have been worth less than an equivalent amount of toilet paper. At least toilet paper is good for something. And that what posts like these are. Insecure frustrated newbies that align themselves with what they think is a "winning" target, and falsely equate market dominance with quality. Usually they never maintained an existing production application at all. QuoteDo the Delphi fanboy ever think themselves if their language is so efficient why Microsoft don't just clone it and marketed Microsoft Object Pascal? Why don't Microsoft has to fuse it with the Java syntax? They took a dominant syntax because of marketing, not because of technical superiority. There is no technical superiority of curly braces languages. QuoteThe fact is, their language sucks. C# is superior than Delphi, both for reading and writing. If counting the ratio of LOC with the feature it providing Delphi should be the most inefficient language. So many line of code just to archive a simple functionality. Admit it, C# is just easier to read and more comfortable to write in, C# is superior. Hail C#! Hail C#! Woes to you the Pascal losers! Your Delphi is only an overpriced poor quality C#. C# is what Object Pascal should become. Let alone a poor man's low quality Delphi clone named Lazarus and Free Pascal. Ha ha  So what does that make you? Why are you not trolling Microsoft targets? The only thing sadder than users pushing a dead target is people that are only there to troll. QuoteIs my writing good? This is the first time I write that much text in English. I know it's full of grammar errors, sorry everyone for my poor English  Please don't hate me everyone, I only want to write something to entertain everybody here. Finally, good night everyone. Bye  Your writing is perfectly understandable. But that might be because no sentiment in your post is new, and frustrated newbies have taken to such rants for 30 years now. Familiarity with the arguments might make it easier to follow despite linguistic mistakes. The only difference is the curly-brace language du jour, and the fact that that regularly changes says enough in itself. All in perfect jest of course. ---------------------------------------------------------------------- simone · 2020-01-06 19:29 Quote from: mr.coll on January 06, 2020, 05:06:23 pm The fact is, their language sucks. C# is superior than Delphi, both for reading and writing. If counting the ratio of LOC with the feature it providing Delphi should be the most inefficient language. So many line of code just to archive a simple functionality. FALSE. I suggest you carefully read the following article: Capers Jones, "Software Economics and Function Point Metrics: Thirty years of IFPUG", Progress Version 10.0, April 14, 2017. (https://www.ifpug.org/wp-content/uploads/2017/04/IYSM.-Thirty-years- of-IFPUG.-Software-Economics-and-Function-Point-Metrics-Capers- Jones.pdf) Appendix B reports a comparisons of 79 Languages using LOC and Function Point metrics. From this point of view Delphi is better than Java, Python, C#, C++ and many other mainstream languages. ---------------------------------------------------------------------- Rainbow6 · 2020-01-06 21:11 First rule of all internet discussion - don't feed the troll! But seriously - I don't understand this whole "my preferred programming language is better that your preferred programming language" shit. Every programming language I know is a child of a given mindset and it's time. Pascal? Wirth wanted a teaching language with a strict structure and type system - strongly influenced by ALGOL. C is the child of Kernighan and Ritchie - they wanted a simple language which should be better than assembler but should not get in their way writing an operation system. Delphi? Borland has chosen their favorite language Pascal because it was an obvious choice - so many people using Turbo Pascal it was inevitable. And they added Objects because they had to, to implement the VCL. C#? Microsoft wanted a successor to their very successful Visual Basic, but it had to be an "professional language" because VB has taken a lot of criticism for being BASIC. So they have chosen C-like syntax, because to this time, C was very successful. And they have chosen a VM system because Java was very successful. So don't get fooled - most of the time, people just chose the language that is there and that is successful - because so many people can't be wrong. And companys do the same because they want to sell their products - so they chose what they think will sell. A programming language is like any other language - you need it, to express your thoughts to someone (or something) else, in a manner that is understandable. So just chose the language you like most, and let everybody else do the same. For me - I don't like C because of too many errors hunted down in too many nights. I like Pascal since Delphi 1.0 - because Pascal programs "die early". I also like COBOL and RPG and Swift and Python and HyperTalk - but I would never try to convince anyone that these languages are better that any other language, because they aren't. Thanks for reading. ---------------------------------------------------------------------- simone · 2020-01-06 22:19 I wasn't interested in proving that Object Pascal is better than other languages, but simply in defending it from a false claim about the relationship between LOC and functionality, citing a scientific source. ---------------------------------------------------------------------- dbannon · 2020-01-06 22:26 OK, allow me to cloud the issue with facts. Well, one fact, hardly a comprehensive study but ... Long, long ago, a popular application in the Gnome world was Tomboy Notes, the ill fated Ubuntu One provided a free file sync service for it, it had a big user base. Using GTK2 and Mono, ran on Linux, Windows and Mac.  The Mac version stopped when Apple dropped Power Chips.  Some Windows users still struggle along today trying to install GTK2, GTK+, very specific version of C#. Written by a team of people, who changed over the years. Few Linux distributions include it by default now because they don't want to ship Mono. 18 months or so, I decided to rewrite it using Lazarus. Just me (and a lot of help from this forum). You can download both Tomboy and tomboy-ng from github, here is the fact I promised, unzipped, the Tomboy source is 14 Meg, tomboy-ng is 5 Meg. tomboy-ng provides, arguably everything Tomboy did, runs on Windows, Linux and Mac. All from the same code base. Built by one person, me, and far easier to maintain.  And needs either Qt5 or GTK2 libraries, far more likely to be already installed than Mono. mt.coll's argument that Pascal is easier to read but harder to write ignores the fact that less than one third of software development time is spent writing new code, the real cost is in maintaining ...... Davo ---------------------------------------------------------------------- MarkMLl · 2020-01-07 08:21 Quote from: Rainbow6 on January 06, 2020, 10:11:02 pmPascal? Wirth wanted a teaching language with a strict structure and type system - strongly influenced by ALGOL. As I've said before, that is arguable. Wirth's primary intention was to get something implemented which demonstrated that his ideas in ALGOL-W were superior to ALGOL-68, and he intentionally broke syntax compatibility to ensure that Pascal wouldn't be considered to be just another ALGOL variant. MarkMLl ---------------------------------------------------------------------- MarkMLl · 2020-01-07 08:27 Quote from: skalogryz on January 06, 2020, 06:26:29 pmFalse. There's no hatred in Pascal community towards any language. Instead it's not uncommon for Pascal community to refer to other languages as "nice to have features", source of libraries (typically C or C++) or just general ideas. In fairness, I /have/ seen features criticised in the mailing list as "too C-like". MarkMLl ---------------------------------------------------------------------- PascalDragon · 2020-01-07 08:37 Quote from: skalogryz on January 06, 2020, 06:26:29 pma flamewar shooting range! Best comment! ---------------------------------------------------------------------- ccrause · 2020-01-07 09:17 Quote from: MarkMLl on January 07, 2020, 09:27:48 amIn fairness, I /have/ seen features criticised in the mailing list as "too C-like". There is in my mind a grey area between "feature" and "new grammar".  Would the following request fall under new feature or new grammar (or just simply make FPC compile C code): Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   a += foo(++b--); Some may claim this line of code can replace three lines of Pascal code, saving precious seconds of typing because typical Pascal code would be three lines (OK it can be reduced to two lines, but then it is already a bit obfuscated). But is it Pascal (in my opinion no!), CPascal, PascalC, Pascal++ or plain C? ---------------------------------------------------------------------- marcov · 2020-01-07 09:31 Quote from: ccrause on January 07, 2020, 10:17:55 amQuote from: MarkMLl on January 07, 2020, 09:27:48 amIn fairness, I /have/ seen features criticised in the mailing list as "too C-like". There is in my mind a grey area between "feature" and "new grammar".  Well said. And not just that the feature might follow a different syntax paradigm requiring the various a+++++b disambiguations and errormessages), but also to really make the same use of it as in the other language is often quite different (e.g. in the case of when features are transplanted from GCed languages) ---------------------------------------------------------------------- MarkMLl · 2020-01-07 09:32 Quote from: ccrause on January 07, 2020, 10:17:55 amQuote from: MarkMLl on January 07, 2020, 09:27:48 amIn fairness, I /have/ seen features criticised in the mailing list as "too C-like". There is in my mind a grey area between "feature" and "new grammar".  Would the following request fall under new feature or new grammar (or just simply make FPC compile C code): Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   a += foo(++b--); Some may claim this line of code can replace three lines of Pascal code, saving precious seconds of typing because typical Pascal code would be three lines (OK it can be reduced to two lines, but then it is already a bit obfuscated). But is it Pascal (in my opinion no!), CPascal, PascalC, Pascal++ or plain C? I agree that's not Pascal and I think it would be a substantial syntax change since it would probably imply that the lexer could no longer treat a leading - as part of a number. I think it's C and I suspect that a lot of people would argue that it's not good C. MarkMLl ---------------------------------------------------------------------- BrunoK · 2020-01-07 09:57 QuoteCode: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   a += foo(++b--);Doesn't Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i a := a + foo(b + 1);do the same thing ? ---------------------------------------------------------------------- ccrause · 2020-01-07 11:19 Quote from: BrunoK on January 07, 2020, 10:57:53 amQuoteCode: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   a += foo(++b--);Doesn't Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i a := a + foo(b + 1);do the same thing ? Indeed it does.  Lets see where this thread drifts to next. ---------------------------------------------------------------------- guest65109 · 2020-01-07 16:41 Quote from: MarkMLl on January 06, 2020, 05:52:28 pmQuite frankly I'd agree with most of that. If there's one thing I don't entirely agree with it's your assertion that because Pascal is comparatively verbose it's slow to write: if the sourcecode verbosity contributes usefully to the compiler's detection of errors, or for that matter to the detection of errors during testing, I'd say that it's entirely excusable. Besides which, C++ and "modern C" attempt to have type checking etc. which is probably stricter than Pascal was originally, and working round that can result in a maze of casts and macros which is difficult to navigate even for those fully versed in C idioms. And setting structures etc. up properly can be pretty damn verbose as well... and by "properly" I mean "sufficient to satisfy all doctrine about how C/C++ can go wrong if not carefully written". Quote from: mr.coll on January 06, 2020, 05:06:23 pmIs my writing good? This is the first time I write that much text in English. I know it's full of grammar errors, sorry everyone for my poor English  Please don't hate me everyone, I only want to write something to entertain everybody here. Finally, good night everyone. Bye  Since you ask... "This is the first time that I have written this much text in English" would be better, and "grammatical" rather than "grammar". Apart from that you're doing fine :-) MarkMLl I miss of C-like languages the ability to declare variable everywhere. Professionals see the idea before they code. Amateur like me try to find the idea when coding. This mean I have no idea how to solve the problem. Just trial and error. People would said: come back and take a course on structure and algorithm. Honestly, I have tried many times but I'm too stupid to understand. I also lack of mathematics background, so I fear anything about Graph. If you ask me to implement a double linked list myself I would rather cry  Pascal forced me to declare anything at the beginning. Because I have no idea how to solve the problem or how many variables are needed and I have to jump back and forth regularly. If the procedure is long it's very painful. The IDE must be provide some shortcut key for that, but sadly, I don't know ---------------------------------------------------------------------- MarkMLl · 2020-01-07 16:57 Quote from: mr.coll on January 07, 2020, 05:41:07 pmPascal forced me to declare anything at the beginning. Because I have no idea how to solve the problem or how many variables are needed and I have to jump back and forth regularly. If the procedure is long it's very painful. The IDE must be provide some shortcut key for that, but sadly, I don't know  Make the procedures shorter. Or if you can't, then have multiple windows open looking at the same file. Pascal departed from ALGOL in that it insisted that users define variables in one place, specifically outside the block that define their scope. I'm not convinced that was a good idea, since it precludes defining loop control variables locally. MarkMLl ---------------------------------------------------------------------- guest65109 · 2020-01-07 17:09 Quote from: skalogryz on January 06, 2020, 06:26:29 pmQuote from: mr.coll on January 06, 2020, 05:06:23 pmPascal is a very easy to read language, but very very inefficient to write because it's too wordy. False. Modern C++ syntax requires more symbols to be used, compared to Pascal. Java/C# with the dotted notation, has be need "wordier" than Pascal from the start. It should be because I'm more familiar with mathematics symbols, I found nothing difficult to parse and understand the syntax of C++/C#/Java. I found it to be more compact and easier to interpret, writing also way faster. I hate Objective C's syntax, though, I don't understand it, it's very difficult to parse for me. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i TMyList = specialize TFPGObjectList; You see, I think specialize is a spare keyword. Just like this is enough: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var MyArr = new ArrayList(); This Java is unfamiliar, isn't it? It's Java 10. Language does improve over time. Quote from: skalogryz on January 06, 2020, 06:26:29 pmQuote from: mr.coll on January 06, 2020, 05:06:23 pmThey're very wrong. C# in fact is the saving of Delphi heritage. By combining Object Pascal with Java syntax, False. C# syntax was based on C, rather than Java. So, there's no "Object Pascal" in "Java syntax". Do you see C# also use upper camel case like Delphi? If it's C it should be underscore case. If it's Java it should be lower camel case. C# also has very similar classes and API. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Application.Init();Application.Run();Application.Quit(); Does it sound familiar? Of course it is: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Application.Terminate; Quote from: skalogryz on January 06, 2020, 06:26:29 pmQuote from: mr.coll on January 06, 2020, 05:06:23 pmC# really make the very boring and inefficient to write in Delphi language to be something much more easier and comfort to write in. False. The biggest difference is that Pascal will likely ask you to release the allocated resource, file C# will do a garbage collection in runtime. On the other hand, in C# system resources has to be explicitly disposed anyway (while in pascal, the system resource can be released together with the explicit release of the object). I hate to call the Create constructor directly. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i a := MyClass.Create('Pascal'); Why don't it just be like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i a := MyClass('Pascal'); Having to manually Free object is obviously inconvenient, because sometime we forget to Free it and it will leak memory. ---------------------------------------------------------------------- guest65109 · 2020-01-07 17:16 Quote from: MarkMLl on January 07, 2020, 05:57:38 pmQuote from: mr.coll on January 07, 2020, 05:41:07 pmPascal forced me to declare anything at the beginning. Because I have no idea how to solve the problem or how many variables are needed and I have to jump back and forth regularly. If the procedure is long it's very painful. The IDE must be provide some shortcut key for that, but sadly, I don't know  Make the procedures shorter. Or if you can't, then have multiple windows open looking at the same file. Pascal departed from ALGOL in that it insisted that users define variables in one place, specifically outside the block that define their scope. I'm not convinced that was a good idea, since it precludes defining loop control variables locally. MarkMLl Yes, I think the same. Having to declare loop variables at the beginning is plain stupid. We ended up with a long ugly declaration like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var  I, J, K, L, MIN, MAX, TMP, SUM: integer; // how these variables have any meanings outside of the loop? With modern C++ it should be like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i for(auto i = 0; i < 10; i++) {} ---------------------------------------------------------------------- guest65109 · 2020-01-07 17:22 Quote from: 440bx on January 06, 2020, 07:38:33 pmQuote from: mr.coll on January 06, 2020, 05:06:23 pmIf counting the ratio of LOC with the feature it providing Delphi should be the most inefficient language. So many line of code just to archive a simple functionality. Here is a very "efficient" implementation of a well known problem, all you have to do is, figure out what the problem is. In the meantime, you can enjoy how efficient it is. Code: C  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i int v,i,j,k ,l,s,a[99];main(){for(scanf("%d",&s);*a-s;v=a[j*=v]- a[i],k=i=s*k&&++a[-- i]);printf("\n\n");}  This is plain dishonest! This code is taken from an obfuscation contest. You could obfuscate any language, even Pascal. ---------------------------------------------------------------------- guest65109 · 2020-01-07 17:35 Quote from: dbannon on January 06, 2020, 11:26:04 pmYou can download both Tomboy and tomboy-ng from github, here is the fact I promised, unzipped, the Tomboy source is 14 Meg, tomboy-ng is 5 Meg. Davo Your calculation is wrong. Lazarus is a RAD environment. Many people have done the heavy lifting for you and anything you have to do is just drag and drop and bind everything together using logic. Mono is not a RAD environment. Even though they have the Stetic GUI Designer, you pretty much have to write anything yourself. They have to deal with GTK# directly (which just is an C# OOP wrapper of GTK+), the LCL is much more high level than GTK#. My conclusion is: you can't compare the size of the two projects, as you can't know how much of LCL code your application has used. Anyway, choosing Lazarus for your project is a very wise decision. ---------------------------------------------------------------------- guest65109 · 2020-01-07 17:38 Quote from: ccrause on January 07, 2020, 10:17:55 amQuote from: MarkMLl on January 07, 2020, 09:27:48 amIn fairness, I /have/ seen features criticised in the mailing list as "too C-like". There is in my mind a grey area between "feature" and "new grammar".  Would the following request fall under new feature or new grammar (or just simply make FPC compile C code): Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   a += foo(++b--); Some may claim this line of code can replace three lines of Pascal code, saving precious seconds of typing because typical Pascal code would be three lines (OK it can be reduced to two lines, but then it is already a bit obfuscated). But is it Pascal (in my opinion no!), CPascal, PascalC, Pascal++ or plain C? This is just bad C code. Why the Pascal devs ever want to import such thing like this? ---------------------------------------------------------------------- winni · 2020-01-07 17:45 Quote from: mr.coll on January 07, 2020, 06:38:18 pm This is just bad C code. That is a tautology. ---------------------------------------------------------------------- ccrause · 2020-01-07 18:00 Quote from: mr.coll on January 07, 2020, 06:38:18 pmQuote from: ccrause on January 07, 2020, 10:17:55 amQuote from: MarkMLl on January 07, 2020, 09:27:48 amIn fairness, I /have/ seen features criticised in the mailing list as "too C-like". There is in my mind a grey area between "feature" and "new grammar".  Would the following request fall under new feature or new grammar (or just simply make FPC compile C code): Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   a += foo(++b--); Some may claim this line of code can replace three lines of Pascal code, saving precious seconds of typing because typical Pascal code would be three lines (OK it can be reduced to two lines, but then it is already a bit obfuscated). But is it Pascal (in my opinion no!), CPascal, PascalC, Pascal++ or plain C? This is just bad C code. Why the Pascal devs ever want to import such thing like this? It is perfectly legal C code. The point I tried to make is not everyone's idea of an "improvement" is universally accepted as such. Again, just because language Z has feature Y (even if it is useful and intuitive to use in language Z) does not mean it will make Pascal more Pascal-like (now what does THAT mean ) ---------------------------------------------------------------------- MarkMLl · 2020-01-07 18:17 Quote from: mr.coll on January 07, 2020, 06:38:18 pmThis is just bad C code. Why the Pascal devs ever want to import such thing like this? Now I'm afraid that that /is/ bad English on your part: needs a verb. If you'd said "Why did the Pascal devs ever want to import such thing like this?" the answer would be "they didn't" since you'd implied it was something they'd done. But if you'd said "Why would the Pascal devs ever want to import such thing like this?" the answer would be "they don't" since you'd asked whether they were contemplating the possibility. Or if you'd said "why should" it implies that somebody was attempting to coerce them, and so on. However, I don't think I recall anybody seriously suggesting that Object Pascal should support ++ and -- . More to the point is that I've seen += etc. criticised as too C-like, and I think that it's that criticism that keeps them as optional features which have to be enabled by the -Sc command-line option. Same applies to the inline conditional implemented by ALGOL and C but not by Pascal, which /would/ be useful. MarkMLl ---------------------------------------------------------------------- skalogryz · 2020-01-07 19:17 Quote from: mr.coll on January 07, 2020, 06:09:48 pmCode: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i TMyList = specialize TFPGObjectList; You see, I think specialize is a spare keyword. Just like this is enough: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var MyArr = new ArrayList();Pascal rule - declare first, then use. So at least you have to have Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i type  TMyList = TFPGObjectList;var  MyArr : TMyList;"specialize" can be omitted in Delphi syntax mode. That really reminds me of 1979's article of "Why pascal is not my favorite language". One of the reasons - you've to declare a type, prior to passing as a function/pascal argument. Ok. In Pascal one has to introduce exactly 1 type declaration. But in C one might want to retype the type declaration every time they pass it as an argument?! This is how C-like languages code becomes more "wordier" than Pascal. Historical note: in original C there was no custom type definition. So it was a language requirement to type out the whole declaration again. Quote from: mr.coll on January 07, 2020, 06:09:48 pmDo you see C# also use upper camel case like Delphi? If it's C it should be underscore case. If it's Java it should be lower camel case. C# also has very similar classes and API.1) Library structure has nothing to do with a language. Check out this Swift/Objective-C class NSApplicaiton. You see methods there: Init(), run(), stop(), terminate(). What conclusion can we make out of that? Object Pascal invented in 1980s was designed after Swift language invented in 2014! Why?! methods are named similar! 2) CamelCase or lowercase or UPPERCASE, Pascal doesn't really care. It's case insensitive. You might want to inspect some FCL packages. LOTS of them are pure lowercase... Quote from: mr.coll on January 06, 2020, 05:06:23 pmI hate to call the Create constructor directly. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i a := MyClass.Create('Pascal'); Why don't it just be like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i a := MyClass('Pascal');you forgot the new, keyword  in front of MyClass to be C compatible. I'd hate to explain the difference between C++ and Pascal constructors, because I hate to go deeper, stating that C++ classes can reside on stack, while Pascal are heap only... and then virtual methods and virtual constructors... Instead, I can suggest you to supply an allocation function for each of the class you want to use. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i function MyClass(const p: string): TMyClass;begin  Result:=TMyClass.Create(p);end;That's it. With that function you can create classes in the manner you like. Quote from: mr.coll on January 07, 2020, 06:09:48 pmHaving to manually Free object is obviously inconvenient, because sometime we forget to Free it and it will leak memory. That's why the Garbage Collection got so popular idea among PM. Protect a project from a poor engineer. Poor Engineer = cheaper development. As a matter of fact, RTL provides a sort of a mechanism for automatic release of hierarchical objects. But all of them should be TComponent descendant ---------------------------------------------------------------------- skalogryz · 2020-01-07 19:30 The most powerful feature of Pascal that C# did not inherit is Units (aka Modules) (neither Java has the feature). Modules do allow the following things: 0) clear "interface" section of unit. (what you can use of it) Where C#/Java/C++ once has to travel across the entire unit to figure out "public" parts of each class. 1) module specific variables isolation. (just hide stuff in the implementation section) Which could be achieved using "private class variables" in C# and Java. 2) independent initialization on program start and automatic clean up on finish. Cannot be implemented in either C# or Java, where the class related variables will be initialized on the first time of the class use. (one has to make a call to a method explicitly) 3) Module structure provides a faster time compilation compared to C++ There are several years of attempt to introduce modules into C++. Yet C++ community themselves don't want to do that. - module structure is not compatible with the current #include structure. - the compilation speed drops, as they can no longer use parallel compilation. Namespaces are not units. These are just the way to avoid name collisions. Historical note: Units were not in the original Wirth's Pascal. Those were introduced in UCSD pascal, and later inherited in Turbo Pascal and Apple Pascal. ---------------------------------------------------------------------- ASBzone · 2020-01-08 00:10 Quote from: mr.coll on January 06, 2020, 05:06:23 pmDelphi is a dying platform and it sucked hard.  ...   It's a dead language! Your English was not really a problem. But I will say this:  I find it interesting that a great percentage of the people that complain about a language are themselves incapable of designing or significantly altering said language (or any computing language). Does this mean that I think that one can only evaluate and complain about things that one is personally proficient with?   No.  That's would be fair. I'm not an auto mechanic, but I have expressed complaints about some cars. (Frankly, I think we could all stand to do less complaining.  Evaluations and critical observations have their place, but we are far too free with complaints.) My point is that the spirit in which observations are made have a significant bearing on how they will be received and possibly acted up. Too many of these language complaints sound (from an attitude perspective) like they come from some skilled and proficient designer of programming languages.  But, when the comments are laid out with such passion and definitive statements, that are easily undermined by flawed logic, the ultimate goals of the post are lost (unless the goal was trolling). A more measured tone, with less extreme and polarizing views, will likely obtain a much better response, and engender more respect, even if people don't agree with your points. ---------------------------------------------------------------------- ASBzone · 2020-01-08 00:14 Quote from: mr.coll on January 06, 2020, 05:06:23 pmThe fact is, their language sucks. C# is superior than Delphi, both for reading and writing. Given your expressed feelings about Object Pascal, why do you bother to continue using it? And if it has one or two features that you find desirable, why not go into the communities of these seemingly superior programming languages, and get them to adopt the one or two features of Object Pascal that you like? ---------------------------------------------------------------------- dbannon · 2020-01-08 00:39 Quote from: mr.coll on January 07, 2020, 06:35:15 pmQuote from: dbannon on January 06, 2020, 11:26:04 pmYou can download both Tomboy and tomboy-ng from github, here is the fact I promised, unzipped, the Tomboy source is 14 Meg, tomboy-ng is 5 Meg. Your calculation is wrong. Lazarus is a RAD environment. Many people have done the heavy lifting for you and anything you have to do is just drag and drop and bind everything together using logic. Mono is not a RAD environment. Even though they have the Stetic GUI Designer, you pretty much have to write anything yourself. They have to deal with GTK# directly (which just is an C# OOP wrapper of GTK+), the LCL is much more high level than GTK#. My conclusion is: you can't compare the size of the two projects, as you can't know how much of LCL code your application has used. Anyway, choosing Lazarus for your project is a very wise decision. Sorry, I must disagree !  You said - Quote.....Pascal is a very easy to read language, but very very inefficient to write because it's too wordy.  ....C# .....Firstly, I just demonstrated that with that project required a third of the 'words' in Pascal/Lazarus/LCL compared to the version in C#.  How the respective tool kits came into being is irrelevant, what matters is what the developer need to write, in addition, to deliver a usable product. Secondly, you apparently missed my remark about being able to read code easily is actually more important than being able to write it easily.  Far more developer's time goes into maintaining/ bug fixing etc than in the initial writing. Interesting discussion ! Davo ---------------------------------------------------------------------- VTwin · 2020-01-08 02:06 Quote from: skalogryz on January 06, 2020, 06:26:29 pma flamewar shooting range! Good fun. Why do I use Free Pascal/Lazarus? It does what I need to get done. Fast cross-platform programs, great IDE, and type-safe clear Pascal syntax. Sure, I have considered or used Fortran, java, C, C++, Python (even, ugh, Xojo). I spent at least a year evaluating my options before committing. I've worked thorough K&E and Stroustrup, and written a lot of C/C++ code, powerful without a doubt but, IMHO, juggling with razor blades. In Pascal I can get work done. Wordiness or trouble typing? In Lazarus I type "b" and press enter, it gives me a full block ready to type code. Form design? Drag and drop, how easy is that? ---------------------------------------------------------------------- 440bx · 2020-01-08 04:18 Quote from: ASBzone on January 08, 2020, 01:10:45 am...themselves incapable of designing or significantly altering said language (or any computing language). Yes, it's quite obvious that there are a lot of people who greatly underestimate how difficult it is to design a _good_ programming language.  It's no wonder that there are a lot of languages patterned after Pascal, it is somewhat of a wonder why there are a fair number of languages patterned after C. Quote from: ASBzone on January 08, 2020, 01:10:45 amI'm not an auto mechanic, but I have expressed complaints about some cars. Of course.  It doesn't take knowing much about cars to know that when it doesn't start, something is wrong.  At the same, recognizing that something isn't quite right doesn't mean one knows how to fix it.  People who complain about Pascal are probably the kind that proceed to kick the cars tires, a time tested solution (demonstrated to be almost always ineffective.) Quote from: dbannon on January 08, 2020, 01:39:58 amSecondly, you apparently missed my remark about being able to read code easily is actually more important than being able to write it easily.  Far more developer's time goes into maintaining/ bug fixing etc than in the initial writing. It seems too many people miss that point.  Quote from: VTwin on January 08, 2020, 03:06:09 am...  C/C++ code, powerful without a doubt but, IMHO, juggling with razor blades. I like the analogy, it's particularly apt for pre-ANSI standard C. Quote from: VTwin on January 08, 2020, 03:06:09 amWordiness or trouble typing? People who think Pascal is wordy should keep in mind that, it's better to say it in ten (10) words and be right than in 5 words and be wrong.  It's really unfortunate that some programmers are averse to writing clean code because the result is too "wordy".  Those same programmers don't seem to see any problem in the compiler not reporting even a warning for unreachable code (which among other problems was the cause of Apple's SSL security hole.)  Who cares that someone may get crucial financial information, it's a lot more important to not having to type a few extra characters.  Good stuff!. Got to love that the switch -Wall in GCC does _not_ cause the compiler to emit warnings for unreachable code (in C land, "all" doesn't mean what "all" means to every one else),   You want to get a warning for unreachable code, you got to use -Wunreachable-code. ---------------------------------------------------------------------- Handoko · 2020-01-08 06:59 Quote from: 440bx on January 08, 2020, 05:18:44 amQuote from: dbannon on January 08, 2020, 01:39:58 amSecondly, you apparently missed my remark about being able to read code easily is actually more important than being able to write it easily.  Far more developer's time goes into maintaining/ bug fixing etc than in the initial writing. It seems too many people miss that point.  +1 I do not have much experience using other languages. Before I start using Pascal, I used BASIC. It's awesome, I can write simple games and I can code immediately without planning. But later I found the code becomes too hard to maintain. I got and tried Pascal. I wasn't happy with it. It is verbose but no problem for me because I can type fast. What I didn't like is I have to do planning before start coding. But I am now happy, the process to learn Pascal may be (a bit) hard but it's worth it. Maintaining and bug fixing is much easier. Thanks to the easy to read syntax and proper planning. I think a good programmer should not have problem with the verbosity, he should able be to type fast. Beginners like coding without planning, but a good programmer knows he should do planning before coding. ---------------------------------------------------------------------- marcov · 2020-01-08 07:14 Moreover, characters are not equal. Typing theory that unshifted alphabetic characters are the easiest to type. E.g. AND vs && might save one letters, but a & involves two keys that must be synchronized, so it is actually one key more(and more complicated synchronization/coordination). And C is not always shorter.  I think = is much better than == :-) That's another sign that the whole wordiness argument is an unresearched lower gut kind of sentiment. ---------------------------------------------------------------------- PascalDragon · 2020-01-08 08:53 Quote from: mr.coll on January 07, 2020, 06:09:48 pmCode: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i TMyList = specialize TFPGObjectList; You see, I think specialize is a spare keyword. Just like this is enough: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var MyArr = new ArrayList(); This Java is unfamiliar, isn't it? It's Java 10. Language does improve over time. The problem is not type declarations with specializations, but inline specializations ("|" denotes the parser's current position): Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i if TMyType.CallFunction then ;// vsif TMyType specialization) or not (-> comparison). Quote from: mr.coll on January 07, 2020, 06:09:48 pmQuote from: skalogryz on January 06, 2020, 06:26:29 pmQuote from: mr.coll on January 06, 2020, 05:06:23 pmThey're very wrong. C# in fact is the saving of Delphi heritage. By combining Object Pascal with Java syntax, False. C# syntax was based on C, rather than Java. So, there's no "Object Pascal" in "Java syntax". Do you see C# also use upper camel case like Delphi? If it's C it should be underscore case. If it's Java it should be lower camel case. C# also has very similar classes and API. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Application.Init();Application.Run();Application.Quit(); Does it sound familiar? Of course it is: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Application.Terminate; Casing has nothing to do with language syntax. In C# and Java I'm as free as everywhere else to write my own functions in lowercase (of course other, existing functions need to be called in the correct case) or I can write my functions in Pascal as all UPPERCASE. Quote from: mr.coll on January 07, 2020, 06:09:48 pmQuote from: skalogryz on January 06, 2020, 06:26:29 pmQuote from: mr.coll on January 06, 2020, 05:06:23 pmC# really make the very boring and inefficient to write in Delphi language to be something much more easier and comfort to write in. False. The biggest difference is that Pascal will likely ask you to release the allocated resource, file C# will do a garbage collection in runtime. On the other hand, in C# system resources has to be explicitly disposed anyway (while in pascal, the system resource can be released together with the explicit release of the object). I hate to call the Create constructor directly. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i a := MyClass.Create('Pascal'); Why don't it just be like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i a := MyClass('Pascal'); There is no requirement that the constructor is called Create. In fact in the compiler's sources there are classes with have a constructor named ppuload which is used when the definition or symbol is loaded from the PPU instead of being created by the parser. Quote from: mr.coll on January 07, 2020, 06:09:48 pmHaving to manually Free object is obviously inconvenient, because sometime we forget to Free it and it will leak memory. There have been endless discussions on manual vs. automatic memory management. There are pros and cons for both. Object Pascal simply has manual memory management for classes. Deal with it. Quote from: mr.coll on January 07, 2020, 06:35:15 pmQuote from: dbannon on January 06, 2020, 11:26:04 pmYou can download both Tomboy and tomboy-ng from github, here is the fact I promised, unzipped, the Tomboy source is 14 Meg, tomboy-ng is 5 Meg. Davo Your calculation is wrong. Lazarus is a RAD environment. Many people have done the heavy lifting for you and anything you have to do is just drag and drop and bind everything together using logic. Mono is not a RAD environment. Even though they have the Stetic GUI Designer, you pretty much have to write anything yourself. They have to deal with GTK# directly (which just is an C# OOP wrapper of GTK+), the LCL is much more high level than GTK#. My conclusion is: you can't compare the size of the two projects, as you can't know how much of LCL code your application has used. Anyway, choosing Lazarus for your project is a very wise decision. RAD or not has nothing to do with this. Visual Studio has a GUI designer for C# as well. GTK and GTK# are rather high level as well (e.g. Lazarus uses GTK as one backend). And the difference of creating the components in code vs. having them created by some resource magic is not that big regarding the resulting code. The main code is still the "business code", e.g. the code inside the event handlers and such and that is there no matter if your UI is made using the RAD approach or not. Also looking at the app that was presented there most code should indeed be the business code as the static UI (thus the one created using RAD in Lazarus) is rather minimal. Quote from: skalogryz on January 07, 2020, 08:17:55 pmQuote from: mr.coll on January 07, 2020, 06:09:48 pmCode: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i TMyList = specialize TFPGObjectList; You see, I think specialize is a spare keyword. Just like this is enough: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var MyArr = new ArrayList();Pascal rule - declare first, then use. So at least you have to have Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i type  TMyList = TFPGObjectList;var  MyArr : TMyList;"specialize" can be omitted in Delphi syntax mode. That really reminds me of 1979's article of "Why pascal is not my favorite language". One of the reasons - you've to declare a type, prior to passing as a function/pascal argument. 3.2 and newer allow inline specializations also in non-Delphi modes. A side effect of implementing generic routines. ---------------------------------------------------------------------- guest65109 · 2020-01-08 11:42 Quote from: MarkMLl on January 07, 2020, 07:17:54 pmQuote from: mr.coll on January 07, 2020, 06:38:18 pmThis is just bad C code. Why the Pascal devs ever want to import such thing like this? Now I'm afraid that that /is/ bad English on your part: needs a verb. If you'd said "Why did the Pascal devs ever want to import such thing like this?" the answer would be "they didn't" since you'd implied it was something they'd done. But if you'd said "Why would the Pascal devs ever want to import such thing like this?" the answer would be "they don't" since you'd asked whether they were contemplating the possibility. Or if you'd said "why should" it implies that somebody was attempting to coerce them, and so on. However, I don't think I recall anybody seriously suggesting that Object Pascal should support ++ and -- . More to the point is that I've seen += etc. criticised as too C-like, and I think that it's that criticism that keeps them as optional features which have to be enabled by the -Sc command-line option. Same applies to the inline conditional implemented by ALGOL and C but not by Pascal, which /would/ be useful. MarkMLl I have a lot of trouble with ++i and i++ when I started with Java. But I like +=,-=,*=,/=, it shorten our code. For example: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Label1.Caption:= Label1.Caption + ' test'; // why we have duplicate Label1.Caption? Label1.Caption += ' test'; // it's really time saving Imagine, with `A := A + B;`, if A is very long you have to type again and again, it's wasting your time, don't tell me you could type very fast so this will not affect you, or you could use copy/paste! I know the Free Pascal compiler already supports += but I don't know how to enable it ---------------------------------------------------------------------- howardpc · 2020-01-08 11:48 Quote from: mr.coll on January 08, 2020, 12:42:12 pmI know the Free Pascal compiler already supports += but I don't know how to enable it  Project | Project Options... Under the Compiler Options node click the Parsing node, and check the C style operators checkbox. ---------------------------------------------------------------------- MarkMLl · 2020-01-08 11:51 Quote from: mr.coll on January 08, 2020, 12:42:12 pmI know the Free Pascal compiler already supports += but I don't know how to enable it  Assuming you're using Lazarus: Project -> Project Options -> Compiler Options -> Parsing -> Syntax options MarkMLl ---------------------------------------------------------------------- guest65109 · 2020-01-08 11:51 Quote from: skalogryz on January 07, 2020, 08:30:12 pmThe most powerful feature of Pascal that C# did not inherit is Units (aka Modules) (neither Java has the feature). C# namespace is superior to your Units! People on this forum have admitted this many time. If your Units is superior and you don't want namespace, why do you proposed it? Check this: https://wiki.lazarus.freepascal.org/Namespaces Admit it, you desperately want namespace! Units can't substitute namespace! Losers bash everything they don't have  C# also has partial class and partial method, it could perfectly substitute Units. ---------------------------------------------------------------------- guest65109 · 2020-01-08 11:54 Quote from: howardpc on January 08, 2020, 12:48:50 pmQuote from: mr.coll on January 08, 2020, 12:42:12 pmI know the Free Pascal compiler already supports += but I don't know how to enable it  Project | Project Options... Under the Compiler Options node click the Parsing node, and check the C style operators checkbox. Quote from: MarkMLl on January 08, 2020, 12:51:05 pmQuote from: mr.coll on January 08, 2020, 12:42:12 pmI know the Free Pascal compiler already supports += but I don't know how to enable it  Assuming you're using Lazarus: Project -> Project Options -> Compiler Options -> Parsing -> Syntax options MarkMLl Thanks both of you. Is there any way to set it globally or it has to be set per project? ---------------------------------------------------------------------- guest65109 · 2020-01-08 11:59 Quote from: ASBzone on January 08, 2020, 01:14:53 amQuote from: mr.coll on January 06, 2020, 05:06:23 pmThe fact is, their language sucks. C# is superior than Delphi, both for reading and writing. Given your expressed feelings about Object Pascal, why do you bother to continue using it? Object Pascal is poor man's C#! I need my program to compile and work across all platforms, including Windows, Linux, the BSDs, and HaikuOS. C# can't do this! Even though mono is available on the ports of all of the BSDs but it usually lagged many versions compared to the Linux version. You can't make binary target new .NET framework to run under older .NET framework!  The only real alternative to Pascal is Java, but I have to stick with the old and wordy Java 8, no handy var type inference of newer Java versions!  My programs are GUI application. Java Swing has font smoothing issue on Linux and some BSDs. You have to use a patched Java to got proper font smoothing, which not always available on the platforms you want your programs to run. Without smoothing, the font looks very ugly. Check this: https://forum.mxlinux.org/viewtopic.php?t=53835 and this: https://forum.mxlinux.org/viewtopic.php?t=53336 ---------------------------------------------------------------------- howardpc · 2020-01-08 12:00 Below the Options for Project dialog's treeview is a checkbox Set compiler options as default. If you check this then your current compiler options will be the default for all new projects (until you change the default again). ---------------------------------------------------------------------- howardpc · 2020-01-08 12:02 QuoteThe only real alternative to Pascal is Java, but I have to stick with the old and wordy Java 8, no handy var type inference of newer Java versions!I believe this is in the works for FPC? You might not have to wait too long. ---------------------------------------------------------------------- guest65109 · 2020-01-08 12:10 Quote from: VTwin on January 08, 2020, 03:06:09 amQuote from: skalogryz on January 06, 2020, 06:26:29 pma flamewar shooting range! Good fun. Why do I use Free Pascal/Lazarus? It does what I need to get done. Fast cross-platform programs, great IDE, and type-safe clear Pascal syntax. Sure, I have considered or used Fortran, java, C, C++, Python (even, ugh, Xojo). I spent at least a year evaluating my options before committing. I've worked thorough K&E and Stroustrup, and written a lot of C/C++ code, powerful without a doubt but, IMHO, juggling with razor blades. In Pascal I can get work done. Wordiness or trouble typing? In Lazarus I type "b" and press enter, it gives me a full block ready to type code. Form design? Drag and drop, how easy is that? I don't know these shortcuts. I admit I use the Lazarus IDE just like an text editor because I don't know anything other than this. Where is the document for these shortcuts? ---------------------------------------------------------------------- guest65109 · 2020-01-08 12:13 Quote from: howardpc on January 08, 2020, 01:00:42 pmBelow the Options for Project dialog's treeview is a checkbox Set compiler options as default. If you check this then your current compiler options will be the default for all new projects (until you change the default again). Thank you. ---------------------------------------------------------------------- guest65109 · 2020-01-08 12:14 Quote from: howardpc on January 08, 2020, 01:02:36 pmQuoteThe only real alternative to Pascal is Java, but I have to stick with the old and wordy Java 8, no handy var type inference of newer Java versions!I believe this is in the works for FPC? You might not have to wait too long. So fpc will got type inference soon? It's great! ---------------------------------------------------------------------- guest65109 · 2020-01-08 12:23 Quote from: Handoko on January 08, 2020, 07:59:25 amQuote from: 440bx on January 08, 2020, 05:18:44 amQuote from: dbannon on January 08, 2020, 01:39:58 amSecondly, you apparently missed my remark about being able to read code easily is actually more important than being able to write it easily.  Far more developer's time goes into maintaining/ bug fixing etc than in the initial writing. It seems too many people miss that point.  +1 I do not have much experience using other languages. Before I start using Pascal, I used BASIC. It's awesome, I can write simple games and I can code immediately without planning. But later I found the code becomes too hard to maintain. I got and tried Pascal. I wasn't happy with it. It is verbose but no problem for me because I can type fast. What I didn't like is I have to do planning before start coding. But I am now happy, the process to learn Pascal may be (a bit) hard but it's worth it. Maintaining and bug fixing is much easier. Thanks to the easy to read syntax and proper planning. I think a good programmer should not have problem with the verbosity, he should able be to type fast. Beginners like coding without planning, but a good programmer knows he should do planning before coding. How could you know how to solve the problem before you code? At least I have to know if my idea even works. I can only trial and error. Pascal is very bad as a prototype language. Or you want me to do prototype and trial and error in another language then port the final result to Pascal? Doesn't it also mean I having to write everything twice? I think we should have the code first (despite ugly code), then we refactoring it. ---------------------------------------------------------------------- rvk · 2020-01-08 12:37 Quote from: mr.coll on January 08, 2020, 01:23:22 pmOr you want me to do prototype and trial and error in another language then port the final result to Pascal?No, not in another language. But with planning and prototyping methods. Something like pseudocoding. Quote from: mr.coll on January 08, 2020, 01:23:22 pmI think we should have the code first (despite ugly code), then we refactoring it.Ieks  Starting to code without first planning out and designing what you want to code is a bad idea (or at least very time-consuming). Coding is step 3. First comes "Defining the problem" and second "Planning the solution". https://homepage.cs.uri.edu/faculty/wolfe/book/Readings/Reading13.htm But maybe you are just a "programmer" and not a "developer". There is a difference. ---------------------------------------------------------------------- Handoko · 2020-01-08 13:29 Quote from: mr.coll on January 08, 2020, 01:23:22 pmQuote from: Handoko on January 08, 2020, 07:59:25 amQuote from: 440bx on January 08, 2020, 05:18:44 amQuote from: dbannon on January 08, 2020, 01:39:58 amSecondly, you apparently missed my remark about being able to read code easily is actually more important than being able to write it easily.  Far more developer's time goes into maintaining/ bug fixing etc than in the initial writing. It seems too many people miss that point.  +1 I do not have much experience using other languages. Before I start using Pascal, I used BASIC. It's awesome, I can write simple games and I can code immediately without planning. But later I found the code becomes too hard to maintain. I got and tried Pascal. I wasn't happy with it. It is verbose but no problem for me because I can type fast. What I didn't like is I have to do planning before start coding. But I am now happy, the process to learn Pascal may be (a bit) hard but it's worth it. Maintaining and bug fixing is much easier. Thanks to the easy to read syntax and proper planning. I think a good programmer should not have problem with the verbosity, he should able be to type fast. Beginners like coding without planning, but a good programmer knows he should do planning before coding. How could you know how to solve the problem before you code? At least I have to know if my idea even works. I can only trial and error. Pascal is very bad as a prototype language. Or you want me to do prototype and trial and error in another language then port the final result to Pascal? Doesn't it also mean I having to write everything twice? I think we should have the code first (despite ugly code), then we refactoring it. I agree with you that Pascal is bad as a prototype language. I have to plan and type lots of thing just to see the result. But I do not mean to boast myself. Me and I believe experienced programmers know his idea always works. Why? Because we already plan it properly in our head or on papers. What we need to do after the planning is to code it using the IDE. Sure, there always bugs. Typos, syntax errors, logic errors, etc. But just I already mentioned, Lazarus or Pascal is very good for code maintaining. And I'm very good in using it for bug hunting my own bugs, because I declare every variables, functions and procedures clearly, each things I done I know exactly what it does. I was a newbie too. After typing some code, I was very eager to see the result on the screen. Why? Because I was a newbie, I wasn't sure what I typed will give the result as what I wanted. That happened because I didn't understand the language itself, I didn't fully understand about the procedure/function/component/unit I used, I was lazy to read the documentation. Experience changes the way I write program. Now, before I write the code I will think what libraries should I use, how should I split the code into modules, what features should be implemented now and planned for future, how should I present it to users (UI), etc. Maybe you do not agree what I said but if you keep doing programming and grow more experience, you will understand and agree with me someday in the future. If you want to level up your programming, I recommend you this book: https://en.wikipedia.org/wiki/Code_Complete At the beginning I was disappointed buying the book thinking it may contains algorithms. But after I finished it, I realized I found a gem. It doesn't explain any algorithm instead it explains how to develop programs and emphasizing on planing and maintaining. ---------------------------------------------------------------------- Handoko · 2020-01-08 14:00 Quote from: mr.coll on January 08, 2020, 01:10:09 pmI don't know these shortcuts. I admit I use the Lazarus IDE just like an text editor because I don't know anything other than this. Where is the document for these shortcuts?  Lazarus is an awesome IDE. The more you know it the more you'll like it. Lazarus IDE tricks (some are with animation): http://wiki.freepascal.org/New_IDE_features_since Learning is boring but if you want to learn Lazarus/Pascal, here I have a list of tutorials: https://forum.lazarus.freepascal.org/index.php/topic,45078.msg317864.h tml#msg317864 ---------------------------------------------------------------------- skalogryz · 2020-01-08 14:02 Quote from: mr.coll on January 08, 2020, 12:51:12 pmC# namespace is superior to your Units! C# also has partial class and partial method, it could perfectly substitute Units. The issue is they are not. they are not.  Here's a quite common task for a modular-design software - automatic class registration. Here's the discussion in pure C# world on the best way to implement it. The best shot C# has to offer - use reflection. Meaning a lot of unnecessary class scanning, with a very big dependency on the underlying structure. In Pascal world - it's only 1 extra line in a unit's initialization section, no overhead. Namespaces don't have initialization section (neither they can have one, because the order cannot be explicitly defined) Classes don't have initialization section (neither they can have, for the same reason). (C# classes can have constructors, but those are called in run-time at the first time of the class method call or field access. But that means it cannot be predicted when the constructor is called) Quote from: mr.coll on January 08, 2020, 12:51:12 pmPeople on this forum have admitted this many time. If your Units is superior and you don't want namespace, why do you proposed it? Check this: https://wiki.lazarus.freepascal.org/Namespaces Admit it, you desperately want namespace! Units can't substitute namespace! Losers bash everything they don't have  I have to code C# and C++, and I miss units a lot. I desperately need units in those languages and I can't. Namespaces are unneeded in Pascal and are introducing a useless entity. ---------------------------------------------------------------------- marcov · 2020-01-08 14:24 Quote from: mr.coll on January 08, 2020, 01:23:22 pmI can only trial and error. Pascal is very bad as a prototype language. Why? Because it has no GC and type interference? But on the otherhand it is great for quick GUI mockups. IMHO you have set the conclusion in stone, and are just throwing arguments to make something stick. ---------------------------------------------------------------------- marcov · 2020-01-08 14:37 Quote from: mr.coll on January 08, 2020, 12:51:12 pm C# namespace is superior to your Units! People on this forum have admitted this many time. If your Units is superior and you don't want namespace, why do you proposed it? Check this: https://wiki.lazarus.freepascal.org/Namespaces Admit it, you desperately want namespace! Units can't substitute namespace! Losers bash everything they don't have  Exactly. And after a similar discussion, a Java adept wrote that piece of code, without much understanding how the unit system and how the compiler finds its sources works internally. This is most visible in proposal "2". Note the last con of that proposal about how to find files. It is not just namespaces, but how the compiler finds its files (avoiding nightmares like C++'s makefiles, having to register every piece of code with dependencies in a makefile). You can't simply dream up some syntax as a solution. FPC can compile large projects with just the main file and some directories on the commandline, without much project adminstration and makefiles. That is a major feature, and anything that hampers that is a step backwards. QuoteC# also has partial class and partial method, it could perfectly substitute Units. It has been ten years, but to my best knowlege C# needs some form of external registration which source piece belongs to which namespace. Either by the Java classpath or the like or by registring in the GAC. This is a more centralistic approach, deriving from Pascal successor Oberon (which is listed as a Java inspiration) and is not compatible with units and how Pascal finds its files. Not necessarily worse (depending on viewpoint on the various borderconditions) but different principles. ---------------------------------------------------------------------- Thaddy · 2020-01-08 14:46 Quote from: mr.coll on January 08, 2020, 01:23:22 pmI can only trial and error. Pascal is very bad as a prototype language. It is very good as a prototype language. You can show a customer a working prototype in 1/10th of the time of a working C++ prototype. Probably less... C++ is a very expensive programming language.... Even with free compilers... ---------------------------------------------------------------------- ASBzone · 2020-01-08 15:18 Quote from: mr.coll on January 08, 2020, 12:51:12 pmLosers bash everything they don't have  Me: ---------------------------------------------------------------------- ASBzone · 2020-01-08 15:24 Quote from: mr.coll on January 08, 2020, 12:59:09 pmObject Pascal is poor man's C#! And yet, Object Pascal is available  in all the places you need, without any of the real and objective limitations that you pointed out for the products you deem to be "better". You really need to do a better job of understanding objective problems vs subjective ones -- needs vs wants. Quote from: mr.coll on January 08, 2020, 12:59:09 pmC# can't do this! Which is the poor man's version of what again? ---------------------------------------------------------------------- 440bx · 2020-01-08 15:26 Quote from: mr.coll on January 08, 2020, 01:23:22 pmHow could you know how to solve the problem before you code?  At least I have to know if my idea even works. I can only trial and error. Good question... the answer is: you create a "proof of concept" program.  A usually short program whose only purpose is to show that the problem you are considering can be solved using whatever algorithms you are designing. Quote from: mr.coll on January 08, 2020, 01:23:22 pmPascal is very bad as a prototype language. Depends on what you're prototyping.  Quote from: mr.coll on January 08, 2020, 01:23:22 pmOr you want me to do prototype and trial and error in another language then port the final result to Pascal? You say that like it's a bad thing.  Just as an example, when intel develops a new CPU, they implement it in software first, once they have ascertained that their software implementation works (btw, that alone is an immense amount of work) then, and only then, they implement it in hardware and, it's not uncommon for the first hardware implementation to still have some "quirks" that need to be corrected.  Quote from: mr.coll on January 08, 2020, 01:23:22 pmDoesn't it also mean I having to write everything twice? I think we should have the code first (despite ugly code), then we refactoring it. If you only have to write it twice, you're doing quite well (except in the case of "Hello world" class programs.) Programming isn't about typing less... it's about producing software that functions correctly no matter what you throw at it.  For that to be achieved, the software should be _understandable_.  The harder it is to understand, the more likely it is to contain bugs.  C/C++/C# code, which much too often resembles the scribbling of epileptic chickens having a bad day in a sandbox, are "less than ideal" to achieving understandability. ---------------------------------------------------------------------- ASBzone · 2020-01-08 15:32 Quote from: mr.coll on January 08, 2020, 01:23:22 pmHow could you know how to solve the problem before you code? At least I have to know if my idea even works. I can only trial and error. It's like knowing where you're going before you get into a bus. Seems you only want to get into taxis. Software development has a design and architecture element to it.  Rapid prototyping and even on-the-fly development has its place, but many of the problems I see with code today are rooted in the fact that there is much developing and little planning going on.   And fixing the issues that come from such an approach is not easy or inexpensive. Software development is about applying software to solve a problem -- but the solution needs to be separated from the implementation of the solution.  Don't conflate the two ideas. You will not feel the true pain of your approach to development until you are called to support your own programs over a long period of time, or support someone else's programs, who had the same mindset and approach that you do right now. ---------------------------------------------------------------------- ASBzone · 2020-01-08 15:35 Quote from: marcov on January 08, 2020, 03:24:54 pmIMHO you have set the conclusion in stone, and are just throwing arguments to make something stick. ---------------------------------------------------------------------- ASBzone · 2020-01-08 15:39 Quote from: 440bx on January 08, 2020, 04:26:00 pm...which much too often resembles the scribbling of epileptic chickens having a bad day in a sandbox... This gave me a good chuckle... ---------------------------------------------------------------------- VTwin · 2020-01-08 17:20 Quote from: mr.coll on January 08, 2020, 01:10:09 pmI don't know these shortcuts. I admit I use the Lazarus IDE just like an text editor because I don't know anything other than this. Where is the document for these shortcuts?  Tools > Code Templates... ---------------------------------------------------------------------- valdir.marcos · 2020-01-09 04:24 Quote from: mr.coll on January 06, 2020, 05:06:23 pmDelphi is a dying platform and it sucked hard. But Embarcadero (or Idera, or something elase, it's gone under so many of transitions) is very good at marketing. You rarely see any Delphi complaining website on Google compared to other language like Python, Java... (or because too few people actually using it so we don't find anything?). They've successfully built a religion, with the holly grail is the language Pascal. And this community doesn't accept any criticism of them. The fact is no one use or like this language outside of this very narrowed community. It's a dead language! Inverse to what people said about Perl being a write once language (because it's too difficult to read other's code), Pascal is a very easy to read language, but very very inefficient to write because it's too wordy. Pascal people usually accuse Microsoft to take their Saint Anders Hejlsberg to the dark side (C syntax?) and blame Microsoft for the demise of their beloved language and platform. They hate C# with a passion. They think C#'s position now is should be them and rightfully them without the devil Microsoft. They're very wrong. C# in fact is the saving of Delphi heritage. By combining Object Pascal with Java syntax, C# really make the very boring and inefficient to write in Delphi language to be something much more easier and comfort to write in. Without the Java syntax part, the C# language should go to the same rabbit hole as Delphi. Do the Delphi fanboy ever think themselves if their language is so efficient why Microsoft don't just clone it and marketed Microsoft Object Pascal? Why don't Microsoft has to fuse it with the Java syntax? The fact is, their language sucks. C# is superior than Delphi, both for reading and writing. If counting the ratio of LOC with the feature it providing Delphi should be the most inefficient language. So many line of code just to archive a simple functionality. Admit it, C# is just easier to read and more comfortable to write in, C# is superior. Hail C#! Hail C#! Woes to you the Pascal losers! Your Delphi is only an overpriced poor quality C#. C# is what Object Pascal should become. Let alone a poor man's low quality Delphi clone named Lazarus and Free Pascal. Ha ha  Is my writing good? This is the first time I write that much text in English. I know it's full of grammar errors, sorry everyone for my poor English  Please don't hate me everyone, I only want to write something to entertain everybody here. Finally, good night everyone. Bye  Although mr.coll's assumptions were wrong and stupid, this discussion turned out to be very positive and informative. ---------------------------------------------------------------------- valdir.marcos · 2020-01-09 05:09 More information: Quote from: SymbolicFrank on July 06, 2019, 06:08:58 pmI'm an old fag. And autodidact, so I have no formal training. I figure everything out for myself. So. About ten years ago, I was posting on tweakers.net, our largest national tech website, about object oriented programming. Generally, when there's a new buzzword in computers, people ask me: are you using ? And I answer, that I don't. They tell me, that I'm old and really should use this, as everyone is doing it. It's the best new thing. When I look it up, there's a lot of noise and marketing. And after some investigation I think: "Ah, that's what they mean. I have been doing that for years. I didn't know that was how it is called." So, there was this discussion on this website about OO programming, and I joined in. I had done that before it was called like that. Even before Borland Pascal had the Object type. And even in C. And they all told me that I was a moron, didn't understand anything about it, and that wasn't how it worked. For starters, they weren't called objects and didn't use pointers. They were called classes and used methods. And there was no linked list. There were only "object instances". I tried to explain. And they ganged up on me. They figured I was a stupid, easy target. So I pulled out. I have really wondered multiple times if they were right and I didn't understand. Anyway, back to C. 40 years ago, C was very basic. C and C++ also have lots of exceptions for many things. But it was popular because it was short and cryptic. It looked like a magic formula, for the uninitiated. Very macho. The two things C and C++ have inherited form this, are a fascination with speed and that it is really easy to fuck up. It's much harder to do it right. Correctness is not a requirement of the language. But, they did grow up a bit. C got things like members (foo.bar, and even foo->bar). Stricter type checking. Better syntax checking. Lint. Etc. To make it harder to shoot yourself in the foot. Because, 40 years ago, programming in C was really hard to do right. I just spend a month trying to prevent having to do a large project in C. And you guys want to add the worst things from C to Pascal, simply because C can do that. You want less restrictions, because it allows macho programming. And make it much easier to fuck up. While C and C++ (especially Microsoft and LLVM) try to make C and C++ much, much stricter, to prevent all that. They would rip all that out in an instant, if it wasn't for backward compatibility. Edit: Interesting video: https://www.youtube.com/watch?v=QM1iUe6IofM ---------------------------------------------------------------------- PascalDragon · 2020-01-09 09:25 Quote from: howardpc on January 08, 2020, 01:02:36 pmQuoteThe only real alternative to Pascal is Java, but I have to stick with the old and wordy Java 8, no handy var type inference of newer Java versions!I believe this is in the works for FPC? You might not have to wait too long. No it is not. It's also not planned. We know that the newest Delphi versions support it, but we core developers don't think that this helps the language, on the contrary. Due to this we've decided on a moratorium for this feature before even remotely thinking about implementing it (this includes contributions by others). Quote from: mr.coll on January 08, 2020, 12:42:12 pmI have a lot of trouble with ++i and i++ when I started with Java. But I like +=,-=,*=,/=, it shorten our code. For example: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Label1.Caption:= Label1.Caption + ' test'; // why we have duplicate Label1.Caption? Label1.Caption += ' test'; // it's really time saving Imagine, with `A := A + B;`, if A is very long you have to type again and again, it's wasting your time, don't tell me you could type very fast so this will not affect you, or you could use copy/paste! Please note that the C-style operators are not supported for properties. ---------------------------------------------------------------------- valdir.marcos · 2020-01-09 11:05 Quote from: mr.coll on January 08, 2020, 12:59:09 pmObject Pascal is poor man's C#! I need my program to compile and work across all platforms, including Windows, Linux, the BSDs, and HaikuOS. C# can't do this! Even though mono is available on the ports of all of the BSDs but it usually lagged many versions compared to the Linux version. You can't make binary target new .NET framework to run under older .NET framework!  The only real alternative to Pascal is Java, but I have to stick with the old and wordy Java 8, no handy var type inference of newer Java versions!  My programs are GUI application. Java Swing has font smoothing issue on Linux and some BSDs. You have to use a patched Java to got proper font smoothing, which not always available on the platforms you want your programs to run. Without smoothing, the font looks very ugly. Check this: https://forum.mxlinux.org/viewtopic.php?t=53835 and this: https://forum.mxlinux.org/viewtopic.php?t=53336As far as I can remember, Java Swing was deprecated 10+ years ago during last updates of Java 6, being replaced by JavaFX as the official UI Library for Java 8+. Java Swing had no updates during Java 7 cycle. As far as I can remember, the messages deprecating Java Swing started on Netbeans 6.5 in 2008 or 2009. https://en.wikipedia.org/wiki/Java_version_history https://en.wikipedia.org/wiki/JavaFX https://en.wikipedia.org/wiki/NetBeans https://netbeans.org/bugzilla/show_bug.cgi?id=204661 "In the Netbeans IDE help file, if you search for 'swing' you will find a page titled 'about the swing application framework'. It says: 'The swing application framework (JSR 296) is no longer developed and will not become part of the official java development kit as was originally planned. It is still included in the IDE and you can use this library as it is, but no further development is expected. Blah blah..." https://stackoverflow.com/questions/5828625/if-swing-is-deprecated- what-is-the-alternative ---------------------------------------------------------------------- guest65109 · 2020-01-10 17:07 Quote from: rvk on January 08, 2020, 01:37:12 pmBut maybe you are just a "programmer" and not a "developer". There is a difference. I'm worse than a "programmer". I have no idea my own. People give me the problem, and how to solve it, which algorithms or libraries or frameworks needed to use, then I google that algorithms or libraries or frameworks, and "converted" and "integrated" everything into runnable code. You could say they are spoon feeding me. So after I break free from them I can't build anything my own because I have no idea about the problem, how to solve it, how to implement it. I would rather consider myself as somewhat a "coder" than a "programmer"! ---------------------------------------------------------------------- guest65109 · 2020-01-10 17:12 Quote from: marcov on January 08, 2020, 03:24:54 pmQuote from: mr.coll on January 08, 2020, 01:23:22 pmI can only trial and error. Pascal is very bad as a prototype language. Why? Because it has no GC and type interference? But on the otherhand it is great for quick GUI mockups. Ah, the GUI Designer  It's more a problem with the RAD environment Lazarus than the language Pascal ---------------------------------------------------------------------- guest65109 · 2020-01-10 17:32 Quote from: ASBzone on January 08, 2020, 04:24:44 pmQuote from: mr.coll on January 08, 2020, 12:59:09 pmObject Pascal is poor man's C#! And yet, Object Pascal is available  in all the places you need, without any of the real and objective limitations that you pointed out for the products you deem to be "better". You really need to do a better job of understanding objective problems vs subjective ones -- needs vs wants. I know very clear what I needs and what I wants. But you know? People usually stuck between the heart and the brain! I love C#. But I learned in a school which taught Java. My friends all learned in schools that taught C#. And with their DreamSpark they have the awesome Visual Studio for free. I have none. My school is a low level entrance style that inferior to their schools. On my country, Microsoft will sponsor top level schools for exchange they have to use and teach Microsoft technologies. A school taught C# or VC++ therefore is superior than a school that teach Java or C++ with the CodeBlocks IDE. Microsoft technologies mean superior! It's not long before I was kicked out from school for being too lazy and having not attended class for many months. C# is my love. It's my dream. Even though I have never learned it. It's my desire! I want to be equal to me friends. I'm always among the worst students in high school. I'm loser!  I admit that I have never seriously learned the language because I can't wrap around my mind with it. But it's the acronym of success. What losers like me always want to have. So I still love C# even though it doesn't love me! p/s: I'm not good at Java either. ---------------------------------------------------------------------- guest65109 · 2020-01-10 17:43 Quote from: valdir.marcos on January 09, 2020, 12:05:19 pmQuote from: mr.coll on January 08, 2020, 12:59:09 pmObject Pascal is poor man's C#! I need my program to compile and work across all platforms, including Windows, Linux, the BSDs, and HaikuOS. C# can't do this! Even though mono is available on the ports of all of the BSDs but it usually lagged many versions compared to the Linux version. You can't make binary target new .NET framework to run under older .NET framework!  The only real alternative to Pascal is Java, but I have to stick with the old and wordy Java 8, no handy var type inference of newer Java versions!  My programs are GUI application. Java Swing has font smoothing issue on Linux and some BSDs. You have to use a patched Java to got proper font smoothing, which not always available on the platforms you want your programs to run. Without smoothing, the font looks very ugly. Check this: https://forum.mxlinux.org/viewtopic.php?t=53835 and this: https://forum.mxlinux.org/viewtopic.php?t=53336As far as I can remember, Java Swing was deprecated 10+ years ago during last updates of Java 6, being replaced by JavaFX as the official UI Library for Java 8+. Java Swing had no updates during Java 7 cycle. As far as I can remember, the messages deprecating Java Swing started on Netbeans 6.5 in 2008 or 2009. https://en.wikipedia.org/wiki/Java_version_history https://en.wikipedia.org/wiki/JavaFX https://en.wikipedia.org/wiki/NetBeans https://netbeans.org/bugzilla/show_bug.cgi?id=204661 "In the Netbeans IDE help file, if you search for 'swing' you will find a page titled 'about the swing application framework'. It says: 'The swing application framework (JSR 296) is no longer developed and will not become part of the official java development kit as was originally planned. It is still included in the IDE and you can use this library as it is, but no further development is expected. Blah blah..." https://stackoverflow.com/questions/5828625/if-swing-is-deprecated- what-is-the-alternative No, man. Swing is a part of the JRE, not the IDE. Swing is not deprecated, but in maintenance mode. It means no new features but only bugs fixes and stability improvements. Swing is still a part of the JRE for the foreseeable future, but the new JavaFX was removed from the JRE and have to packaged separately as OpenJFX. It has performance problems which the old Swing doesn't have. Check this: https://stackoverflow.com/questions/26536841/javafx-animation-poor- performance-consumes-all-my-cpu ---------------------------------------------------------------------- marcov · 2020-01-10 18:24 Quote from: mr.coll on January 10, 2020, 06:12:27 pmAh, the GUI Designer  It's more a problem with the RAD environment Lazarus than the language Pascal  You choose either development platform A or B.  And then you accept all of it, Language, library, IDE options, designer debugger, OS support etc. Development is so much more than a language features bulletlist. ---------------------------------------------------------------------- guest65109 · 2020-01-11 11:16 Quote from: marcov on January 10, 2020, 07:24:34 pmQuote from: mr.coll on January 10, 2020, 06:12:27 pmAh, the GUI Designer  It's more a problem with the RAD environment Lazarus than the language Pascal  You choose either development platform A or B.  And then you accept all of it, Language, library, IDE options, designer debugger, OS support etc. Development is so much more than a language features bulletlist. But there are languages that naturally suitable for GUI prototyping. For example, on the Java world, people usually do prototyping in Groovy but not Java itself. BTW, I marked this thread as CLOSED because I don't want to wage war with everyone. I want to build something myself. Using whatever language I feel comfortable with. ---------------------------------------------------------------------- marcov · 2020-01-11 11:26 Quote from: mr.coll on January 11, 2020, 12:16:22 pmBut there are languages that naturally suitable for GUI prototyping. For example, on the Java world, people usually do prototyping in Groovy but not Java itself. BTW, I marked this thread as CLOSED because I don't want to wage war with everyone. I want to build something myself. Using whatever language I feel comfortable with. IMHO a designer makes a development system suitable for prototyping, not the language. And when comparing designers, details like stability are often more important than dazzling features. I can remember when working with JBuilder6's Java that we used to prototype in Delphi because (1) the jbuilder IDE was slower, but more importantly (2) JBuilder generated code for the designed forms, and changing the code often upset the designer to the level of starting over from the last backup But maybe designer philosophy is better saved for another thread. I'll lock this one.