Comparing Delphi to VB is/was always a shallow comparison.

I understand that most programming jobs out there are databases and forms and submitting data and retrieving data etc. but I don’t understand why people always thought that Delphi was an answer to Visual Basic.

But,I’m sure I’m a “niche” market all in my own.  I have always considered Delphi to be the best alternative to C++, while VB was always just some lame archaic toy. I wish the developers of the Delphi language would pay a bit more attention to the guys who really want to write fast, hardcore, stuff in Object Pascal (the 64-bit compiler basically performs ZERO optimizations).  There used to be marketing ads out there that bore the slogan “The Speed of C++ with the ease of VB” or something along those lines.  I think that is a good way to look at Delphi’s role in the world, if it can possibly keep up. Continue reading “Comparing Delphi to VB is/was always a shallow comparison.”

The challenges of writing a Delphi/Object Pascal to C++ compiler.

I am seriously considering writing a Delphi-to-C++ compiler that is 99% compatible with Delphi XE6.

I’m finding FreePascal to be a bit frustrating, in different ways than the Delphi compiler is frustrating.  Embarcadero’s 64-bit compiler has recently profoundly let me down with it’s lack of optimization, while FPC is a maze to navigate and I keep getting random “Fatal: Compilation Aborted” messages that offer no indication to the what the real issue is.

I like to complain a lot that Delphi’s generic support is limited and incomplete, well… I’m finding that FreePascals generic support is even more limited and more incomplete, and the popular Lazarus IDE doesn’t really fully embrace the 2.7.1 compiler in its latest version (am I forced to run an older branch?).   I have a lot of code that relies on the elegance that generics can bring to the table. I’d use generics more if either language had a robust implementation of generics. C#, for example, makes great use of generics. FPC supports Generic Classes, but not generic methods at this time. Delphi supports generic methods, but only when attached to a class, there are no generics allowed on global functions. Furthermore there is no proper way to properly reference a generic record because records do not support Interfaces and Interfaces are the way that constraints are expressed in Delphi Generics. I’m tired of a lack of progress by Embarcadero and the community really. I can do this… and it can be good. Continue reading “The challenges of writing a Delphi/Object Pascal to C++ compiler.”

Embarcadero’s Mobile Offering is Still a Shameful, Overpriced Pile of Crap.

I have sat here over the last 2 hours trying to get my old source running cross platform on my new Android tablet, compiled with Delphi XE6, in vain.  Some issues at fault are that the Delphi XE5 units and libraries were so completely immature that they have lots of linkage problems to XE6, even though Xe6 is really just a minor upgrade from XE5.   XE4, 5, and 6 were each released just 6-months apart, which is unheard of for any company serious about its products.

Whereas I appreciate the opportunity to try them out sooner rather than later, I also wish I didn’t blow $1,500 on software that just plain doesn’t friggen work.

One source of resentment is that all my legacy code must be painstakingly refactored to allow for 0-based strings, lack of ansistring support, and Embarcadero’s ridiculous design decision to move all objects to automatic reference counting.  Everything must change… all the little functions that work with streams must be changed and verified, every function you ever wrote for string manipulation must be verified… not only every single object must be verified and refactored, but every single use case of every single object must be verified and/or refactored and code must be IFDEFed all over the place deal to with subtle incompatibilities. Given the amount of changes that I’d have to make to get some things working, I didn’t expect things to work right away.  But…

Continue reading “Embarcadero’s Mobile Offering is Still a Shameful, Overpriced Pile of Crap.”

Serious Programmers Should be Serious about Ditching JavaScript. Here’s how to do it right now.

Want to abandon Javascript from your web pages for all eternity, right now, using today’s technology, without any special support from the web browser? JavaScript is and always has been one of the worst aspects of writing code in a browser.   It has no real type system, no objects, no inheritance, no interfaces.  To make things worse it is run-time evaluated, meaning that syntax errors in your code as simple as a typo in capitalization will go unnoticed until a particular branch of code is executed. Typescript to the rescue!

Continue reading “Serious Programmers Should be Serious about Ditching JavaScript. Here’s how to do it right now.”

How to get OpenCL 1.2 to work with 64-bit Delphi

A man by the name of Michal Pohanka put together a nice OpenCL test using Delphi 7.  I decided to explore it a little bit.  OpenCL is a nice little library that allows you to take advantage of your GPU for scientific computations, sometimes giving you 1000/1 speed boosts for complex operations.

I’m sure I’m not the only person out there that checked out his demo. and the 32-bit version compiled and ran on Delphi Xe6 without error, despite the fact that he wrote it for Delphi 7.

However it took a couple of little modifications to get it to work under 64-bit.  I figure I’ll just tell you what I did to make it work.  It is pretty simple once you know the magic sauce. Continue reading “How to get OpenCL 1.2 to work with 64-bit Delphi”

The Solar Roadways Scam – A Rebuttal for a Rebuttal for a Rebuttal

As the internet is full of “trolls” and “haters”, of course, all kinds of people came out of the woodwork to tell the inventors of Solar Roadways how stupid their invention was, and the inventors took offense to it releasing this official rebuttal.

I figure I’ll offer a rebuttal to their rebuttal because, in my opinion,  they’re still missing a few screws. Continue reading “The Solar Roadways Scam – A Rebuttal for a Rebuttal for a Rebuttal”

In defense of lock(this) and GC.Collect()

I really dislike it when ill-informed people write blogs, articles, and even books about things they know really nothing about.  In the C# world, there a couple of topics that are the subject of literally thousands of ill-informed blog and forum posts, for which the real, correct advice is buried and lost in the noise and chatter of supposed “experts” offering words of “wisdom” to newbies out there.  The couple of topics that I see come up again that I find particularly upsetting are whether or not it is okay to ever call “lock(this)”, and whether or not, and how-often, anyone should call “GC.Collect()”. Continue reading “In defense of lock(this) and GC.Collect()”