tag:blogger.com,1999:blog-6222893893652665733.post1305099263442227596..comments2024-01-08T00:30:35.594-08:00Comments on Cary Jensen "Let's Get Technical": Keystroke Combinations in Delphi’s Code EditorUnknownnoreply@blogger.comBlogger7125tag:blogger.com,1999:blog-6222893893652665733.post-23544644231305624882014-05-21T22:37:46.630-07:002014-05-21T22:37:46.630-07:00>Not only has the language kept pace with impro...>Not only has the language kept pace with improvements added to other languages, such as C#, <br /><br />Come on Carry. It's 2014 now... where is the operator overloading of classes, generics for first class functions, string in case statements, automatic memory management (I know Marco keeps saying this is coming but no firm idea when yet), tuples, generators, comprehensions, package management (e.g. NuGet, CRAN, CPAN, PyPi, etc.), slice notation, design by contract, type inference, lambda, filter/map/reduce, heck a step for the for loop, stack traces, memoization, *real* sets as opposed to the bitmapped 255-element construct we've had since Turbo Pascal, operator overloading for classes, partial functions, a decimal type, a real complex number type, arbitrary precision integer support, refactoring of the VCL to add iteration support everywhere such as files, database results, strings, etc. They've even closed a QC request to be able to iterate through an enum as "won't do"! <br /><br />This is just the stuff off the top of my head. I won't even go into stuff like C#'s LINQ. Oxygene has dozens of features Delphi doesn't have and DWScript and Nimrod also have quite a few. Heck, Python is far more advanced in many areas: the sets are unlimited in size and can contain any hashable value. You can feed a file through a set and get a set of unique words while we're stuck with numbers/enums no higher than a byte's value. :-( If x in [0,1,3] is valid code but If x in [0,1,400] is not. If x in ['this', 'that', 'whatever'] is an impossible dream. :-( I've used sets more than a few months in Python than in 24 years of Turbo Pascal - Borland Pascal - Delphi. <br /><br />>For example, routines originally written for Turbo Pascal in the 1980s often compile in the latest <br />>version of Delphi with little or no changes. There are not many languages you can say that about.<br /><br />That's a terrible thing to say about a language. That means the language hasn't grown. Heck, worse, it means it *hasn't fixed its mistakes*. Every language has mistakes that require breaking compatibility to fix. If you don't, it can end up hobbled and/or end up with a ballooning standard library and multiple versions of many functions (Java suffers from this). The set example is a good one. That sets still work like Turbo Pascal is a shame. That one still uses a While and EOF loop to read through database results is a shame. That "in" doesn't check for membership in everything (strings, dictionary keys, etc.) is a shame. That according to Barry Kelly RTTI will never work for enums with a custom value because it would require breaking backward compatibility (although he didn't specify with what) is a shame. As Guido Van Rossum once observed, all the code ever written pales in comparison to all the code yet to be written. Backward compatibility at the expense of hobbling developers for all time is a terrible tradeoff to make IMHO. Look at BASIC - it realized it lost the GOTO Wars and dumped the line numbers and adopted structured programming and its descendents such as Visual Basic went on to enjoy quite a bit of popularity even though there was essentially zero backward compatibility. Heck, Turbo Pascal made quite a lot of changes from the original Pascal (such as its very broken string implementation) and Delphi has certainly departed radically from ISO Pascal since. <br /><br />All that said, good work on the compilation of key bindings. :-)<br /><br /><br />alcaldehttps://www.blogger.com/profile/14404682533930977783noreply@blogger.comtag:blogger.com,1999:blog-6222893893652665733.post-64680686612316879162009-12-03T06:01:25.242-08:002009-12-03T06:01:25.242-08:00Nice. There are a few goodies in there.
But it wo...Nice. There are a few goodies in there.<br /><br />But it would have been even nicer if the keybindings were somehow grouped by functionality instead.<br /><br />Personally, I think it is overkill to include keystroke combinations such as copy/paste as well as backspace, space, tab, up/down arrow (Those aren't even combinations...). I would expect the effects of pressing spacebar, backspace, a-z etc. to be obvious...<br /><br />Maybe if it was boiled down to the essentials it could fit onto a single printout - which would be nice for pinning onto the wall next to my screen for easy reference.<br /><br />On another note, I do not entirely agree with the 'keeping in pace' part. In my opinion, there have been no significant changes to the language between D7 and D2009 (apart from the abomination that was Delphi.NET). <br />And even with the additions that HAVE come, some of them still have a significant 'beta' feel. Generics are still rather buggy both at compile- and run-time.<br />But at least D2009 is a pretty stable IDE compared to the 2005-2007 releases, all of which were prone to sudden crashes and weird exceptions.Mathias Falkenberghttps://www.blogger.com/profile/04607936802557982236noreply@blogger.comtag:blogger.com,1999:blog-6222893893652665733.post-21967056869137528112009-11-05T22:37:58.681-08:002009-11-05T22:37:58.681-08:00Cary,
Great list, probably comprehensive. Easy fo...Cary,<br /><br />Great list, probably comprehensive. Easy for you to check that you've got them all, but difficult to make use of in alphabetical order.<br /><br />You might want to note this: http://stackoverflow.com/questions/679430/comprehensive-list-of-delphi-ide-shortcutsAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6222893893652665733.post-46090485802937660442009-06-04T12:44:16.639-07:002009-06-04T12:44:16.639-07:00@Barry, Delphi got closures before Java.@Barry, Delphi got closures before Java.unusedhttps://www.blogger.com/profile/15713136719615033297noreply@blogger.comtag:blogger.com,1999:blog-6222893893652665733.post-66881377304915920032009-06-01T07:40:53.346-07:002009-06-01T07:40:53.346-07:00Generics were added to C# in .NET 2.0, which was p...Generics were added to C# in .NET 2.0, which was published significantly later than Delphi 7. <br />As far as developers leaving Delphi due to it's arguable lack of modern language features, please consider that there are still more developers developing in Visual Basic 6 than in .NET.Cary Jensenhttps://www.blogger.com/profile/09264435441034661563noreply@blogger.comtag:blogger.com,1999:blog-6222893893652665733.post-15086617022521270962009-06-01T06:21:48.989-07:002009-06-01T06:21:48.989-07:00"There are many advantages to being a Delphi devel..."There are many advantages to being a Delphi developer. Not only has the language kept pace with improvements added to other languages, such as C#" <br /><br />Sorry, but in my opinion, this is incorrect. As understand it, it was only the current version of Delphi that brought in modern language features like generics and closures. There was no reason why generics couldn't have been included in Delphi 7, for instance - the technology was there. <br /><br />If Delphi had kept pace with C# in a timely fashion perhaps people wouldn't have left it in droves for .NET.<br /><br />Cheers<br />Barry CarrUnknownhttps://www.blogger.com/profile/09272508525228144447noreply@blogger.comtag:blogger.com,1999:blog-6222893893652665733.post-17753418709784931182009-05-30T19:10:41.352-07:002009-05-30T19:10:41.352-07:00This comment has been removed by a blog administrator.Unknownhttps://www.blogger.com/profile/04747855792846273047noreply@blogger.com