Instead of drudging through a million documents that cover every end-case under the sun, here’s a simplified, abridged set of instructions on how to compile x64 applications for windows using Lazarus 1.2.6. It may also work with future, newer versions of Lazarus. Continue reading “Compiling x64 in 32-bit Lazarus 1.2.6”
x86/x64 Delphi, Lazarus, C#, and C++ Compared in Raw Computational power
As part of my research into the amount of effort it would take to invent a new Object Pascal compiler and language variant, I decided to take some time to dig into the ASM code that gets generated when performing some really simple computations in Delphi and compare the speed of the operations. I then expanded my tests to include competing compilers. Continue reading “x86/x64 Delphi, Lazarus, C#, and C++ Compared in Raw Computational power”
Glaring Bugs still make Firemonkey Apps Unpublishable as of XE7.
I really wish I didn’t have to write these trolling blogs about Delphi all the time. Truth is, I have really liked the tool for all of my 20-year career as a programmer. I still use it every day. I want to see it successful. I think that is one of the reasons I dish out “tough love” all the time.
Right now I am stuck though. Continue reading “Glaring Bugs still make Firemonkey Apps Unpublishable as of XE7.”
Why Embarcadero’s 6-month release cycle is bad business.
Never mind that it is realistically impossible to build a quality product of such magnitude in 6-month release cycles which inevitably results in poor quality products, Embarcadero’s current 6-month release cycle schedule is bad for its customers and is creating lots of bad blood. Here’s what I think: Continue reading “Why Embarcadero’s 6-month release cycle is bad business.”
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.”
Delphi’s 64-bit Compiler Fails to Perform Even the Most Basic Optimizations
Ever wonder why your 64-bit Delphi Apps run so slowly? I’ve found that my 64-bit performance is roughly half what my 32-bit performance is.
Delphi’s 64-bit compiler basically performs no optimizations at all in many or even most situations. Continue reading “Delphi’s 64-bit Compiler Fails to Perform Even the Most Basic Optimizations”
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!
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”