Wednesday, March 9, 2011

May the Schwartz be with you

Mr. David Schwartz let out a nice rant on the Embarcadero newsgroups:

Mr. David Schwartz writes:They've been running promotions regularly since before XE was launched.

Subscribe to the Programmer's Paradise list and you'll hear about their promotions directly.

I don't recall getting anything directly from Embarcadero either, although I have gotten a few phone calls from someone in their sales Dept.



Their pricing and marketing strategy still baffles me, even with the "Starter Edition".

Microsoft has a licensing policy whereby if you're working for someone, you can run a copy on your own computer at home and/or laptop.

The cost of MSDN, which gets you almost everything MS produces, is also less than the cost of any "professional" versions of Delphi, C++, Prism, etc.

I haven't found any "real work" for 16 months. I'm not homeless only because of the kindness of my landlord. The only Delphi jobs I've seen are to maintain D5/D6/D7 code while they port it over to .NET or Java. And I seem to be competing with people here on H-1B visas who are willing to accept $20/hr through job shops who say their clients won't pay more than $25/hr.

It's a horrible job market, and Embarcadero wants me to spend my own money -- money I don't have to spend -- to learn a product that nobody who'd hire me even cares that I know.

I have an interview set up with a company next week that has software in thousands of sites around the country, and it's all running D6. My contact told me that it's cost-prohibitive for them to upgrade to a newer version of Delphi for some reason. In fact, their clients are all still running Windows XP.

This is the same story as the past five contracts I've had since 2005.

There's zero ROI there for me to keep current. Actually, it's negative.

When I talk about the newest versions of Delphi with people at these companies, they want to know how much experience I've got with it. Well, uhhh.... I don't have the funds to buy it just so I can learn it and ultimately help Embarcadero sell it into Corporate accounts that they already can't convince to upgrade.

I print out and show them the product feature matrix PDFs, but ... so what? They can pick up the phone and have a handful of resumes within a week of people who've got plenty of experience with the latest .NET/C# stuff. But they can't find decent Delphi developers at all.

Ironically, if I wanted, I could probably get a legitimate copy of MSDN for free somewhere, including directly from Microsoft.

Borland/CodeGear/Embarcadero has never made much of an effort to get their products into the hands of the people who have the greatest influence in making sales, namely independent consultants, contractors, and people who just want to stay current with things. The "Starter Edition" is an interesting attempt, but ... the net effect is it simply allows me to speak authoritatively to clients in order to get them to buy a bigger package with more bells and whistles in it. And my experience is that when they compare the price vs. MSDN or just Visual Studio, they politely thank me and that's the end of the discussion.

There's no line-item in a budget for "savings due to productivity". They only believe the productivity claims AFTER they've seen them with their own eyes. Other than that, it's just a "big risk" -- a more expensive package from a company that's got a reputation of being 2 years behind the technology curve with buggy software.

Embarcadero says they're changing that. But what they're NOT changing is ensuring that the troops on the ground who walk into companies using old versions of Delphi can say, "I've been working with the latest versions since they were in Beta and I know all of their kinks". Most of the consultants I've run into say that about .NET and C#, but not a single one says that about Delphi. Why? "I'm not spending MY OWN MONEY to help CodeGear sell their products. If a client wants me to use the latest version, they can pay for it."

That's never an issue with Microsoft's tools. Or Apple's tools.

The new "Starter Edition" is supposed to give you a way to afford the product when you're "getting started". It requires you to buy an upgrade after you've hit $1000 in "gross revenues", which if your business is not built around software development, is a silly meaningless number. Anyway, every penny of that $1000 will have to be saved up to pay for the upgrade rather than your rent and marketing.

It would be great to know who's using Delphi XE so I can talk to them about some work. But the latest version I've seen discussed in job ads over the past year is D2006, and that's been very rare.

I'd love to be working with the newest version of Delphi. But it's a chicken-and-egg problem: I need to find a company who'll foot the bill FIRST, which isn't likely to happen because nobody I talk to is using it. And without it, I can't convince them it's a smart buying decision.

BTW, Apple's entire development platform was FREE, until they started charging ... OMG ... $99!

And THAT is to get registered in their Developer's program that lets you get keys to submit apps to their App Store.

Since they instituted their $99 fee, Apple has sold over a BILLION DOLLARS worth of apps through their App Store, the vast majority of which sell for under $5 a pop.

Is it just me, or is there a very suspicious inverse correlation between the price of these development platforms and the size of their developer base?

Embarcadero should figure out a way to get a copy of RAD Studio XE into the hands of every single software contractor and developer they can find, with the proviso that they ONLY USE IT FOR PERSONAL STUFF -- as a "learning tool" so to speak. These are the people in a position to motivate sales and use within these corporations who are still stuck in D6 land. The net cost to them is ... a download. These are not people who'd buy the product, but they CAN and DO influence sales. Maybe charge $99 for it. But don't expect these guys to upgrade after they get a job or get their employer to upgrade!

-David
[Source]

Tuesday, March 8, 2011

Article corrections.

Special thanks to Mr. Allen Baur for hints on his twitter feed. The article "Tea Leaves for 64-bit Delphi, part 2" is updated with several corrections.

Based on mathematical deductions, educated guessing your reviewer now has the most accurate portrayal of the situation for Delphi/64.

Misfortune telling?
The original roadmap had Delphi/64 on mid-2009, then end of 2010, then first quarter of 2011, now first half of 2011. Lot of people renewed their SA and updated their versions of Delphi (from 2009 to  2010) only to be disappointed when Embaracdero released Delphi XE with no trace of x64-bit compiler and with the need to later renew the SA soon since almost 250 days passed (or, by the time x64 is out, there will be need to renew SA).

Suppose you go to a fortune teller. The person says, I forsee a great turn of events, it will erase all the bad karma you had and make you better. You pay the fortune teller Euros 2500 the first time. The fortune teller tells that you will have a great future and demands another 800 Euros to clearly see your fortune. Then another 800 Euros to see the future again, then another 800 Euros. You find out that most of the things predicted turn to no effect or things gets worse and worse. How confident are you going to hand over another 1600 or maybe 2400 euros (800x3) to the fortune teller when almost all the predictions become false?

It only takes a few minutes to write an article that fairly and clearly depicts the state of Delphi/64 today. Since Embarcadero has not bothered to do so, your reviewer does it with plain simple language.

Monday, March 7, 2011

Saturday, March 5, 2011

Tea Leaves for 64-bit Delphi, Part 2

It appears your reviewer spoke about Delphi XE3 instead of Delphi XE2.


Your reviewer was gazing too much into the future and went 2 or 3 years ahead of time.

From educated guessing, Embarcadero will ship with 64-bit compiler preview in 30-60 days* (worse case: 80+ days) from now with time-frame to be around April/May 2011 time. This is evident with a big Embarcadero promotion (presumably to get rid of old stock) currently on right now.

How will the Delphi 64-bit preview fare? Your reviewer looks at all the VCL64 evidence and it looks grim. Unless they do good QA testing, it feels like similar experience to Delphi 2 (read: full of bugs) and took 2+ years to stabilize. (hint: Delphi 5/6/7-era)

They would probably change the Integer size:
Integer = +/- 2^63
LongInt = 2^64;
UInt64 = 2^63;

Correction:
There is no change in Integer size, just pointer size -->
64 bit compiling will not change for certain integer sizes, but only Win32 APIs that integer map pointers. Pointers will be 64 bit.

Correction #2:
There is no i386 FPU levels, masks, op-codes in 64-bit mode.

Piecing the 64-bit jigsaw
Dcc32.exe does a "one-pass compile". That means, many of the symbols are ready-made and resolve at link-time (see: rlink32.dll) immediately.

Dcc32 consists of two parts: dcc120.dll (called from the IDE) and dcc32.exe (called from command-line). The DCU files are intermediate machine language (usually i386 with few optimizations) with preamble (like basic checks, i.e., before a maths operation is called, it calls the overflow check, those that you find on the compiler tab) and restores the CS:EIP (Counter Stack, Instruction Pointer), Data Segment and Stack.

For dcc64, looking at the current integration (assuming they are going with a 32-bit IDE with 64-bit debugger bridge), then they would need to write a debugger bridge that translates __debugbreak() (previously known as Int3) into 32-bit equivalents with to and from 64-bits.

Assuming they did write a VCL/64, they (those at Embarcadero) writing the 64-bit VCL, they would need to roll-back to older versions of the same code (such as IntToStr before it became all-assembly) and translate that to 64-bit equivalents. They could do it both ways: For example, write to SSE2 registers or use NEON (Android/IPhone) registers.

How your reviewer would do 64-bits.If your reviewer was doing a compiler, your reviewer would use the Edison Design Group front-end compiler with back-end Dinkumware for the RTL x64, instead of hacking and slashing through MMX or older assembly optimizations.

Troublesome Console Application?Your reviewer looked at the tiny or very little information about VCL64, DCC64, RLINK64, DCC1xxx64.DLL and other files and wondered what's taking Embarcadero so long?

The trouble seems to be the bridge between 32-bits and 64-bits. In Visual Studio, they use a smaller version of the Visual Studio remote debugger to host the 64-bit EXE and Visual Studio "talks" to the remote debugger interface.

For Embarcadero, either they missed the boat or didn't bother to update TDEBUG32 to TDEBUG64 equivalent for very long time.

For example, if you write "array of [1..65536] of widestring" in your code in Delphi 2005, 2006, this would cause a DCC failure when "Include Remote Debugging Symbols" is turned on -- because array of widestring is not clearly defined in TDBUG32 information.

Who uses TDEBUG32 information? The former TurboPower SysTools, the former MemProof on Automated QA website before it was removed, AQTime, AQ(whatever) products.

Before you can write a debugger, you need to have properly working symbol generation working. Suppose you have to build a remote debugger bridge to bridge between 32/64-bit EXE debugging.

Hence, your reviewer guesses:

1) Delphi 64-bit compiler is missing the debugger when it comes out... or if Embarcadero releases it, it would be half baked or have so many bugs and issues, it becomes impossible to debug a large app.

2) Delphi XE was released on 30th August 2010. Assuming that Delphi XE2 would be released usually 365 + 30 days later (to annoy Delphi developers to update their SA subscription)

3) Delphi x64 compiler preview would disappoint many people. They think it's complete product ready to recompile their favorite app into x64 but it's not -- the next group of people who need to get rid of all the old 32-bit assembly and check their product to work with x64 are the component vendors. The larger vendors (DevExpress) do not even have any Delphi x64 news.

That means, give or take a year to make Delphi x64 stable, it could drag on to 2012 or 2013 more to get a stable compiler... by that time, most of the Delphi developers would have been out-foxed, beaten by their 64-bit competitors, without house, without any way to make more money... making 32-bit EXEs is no longer a marketable asset.

The people who still use Delphi will have to make hard choices when the 64-bit preview comes out...

The less information Embarcadero gives on the compiler development status (other than just being very silent) the more people will start to wonder WTF is happening?

:)

Article notes:
- For non-English speakers: "Tea Leaves" means predicting the future based on known available information.
- Spelling mistakes corrected.
- Pointer information corrected.

Friday, March 4, 2011

Around the web

Blog of the Week:  If you guys aren’t reading "The Delphi Hater’s Blog", then you are missing out.  This guy is a championship calibre ranter.  Great stuff. (From Nick Hodges' Blog).

Marco Cantu has a bad habit of deleting messages that are on his blog that are not favorable to Delphi but leaving all those other supportive messages.

- Wonder where was that comment regarding a person who had "reduced income" waiting for Delphi/64 to come out?

Unhappy with this blog? Debunk it instead...

Your reviewer was looking at nasty insults by stupid Delphi developers. They are the same kind who like to use all non-legal software, claim to be very honest but download DevExpress non-legal version, Dbisam non-legal version...

If you're not happy about this blog, go and debunk it instead....


- Your reviewer wrote Delphi In Russia, Rent a Coder - money back guarantee and many other postings which have no criticism on the content. I wonder why? Maybe because I write with brutal honesty and accuracy.

- Your reviewer challenges people to make a big extensive website with IntraWeb they can deploy. Yet, nobody have seem to taken that challenge seriously. Wonder why Jolyon Smith (Delphi in NZ) uses WordPress? Why can't he use IntraWeb to host his own blogging site?

- Why is there so many Visual Studio and C# articles on TeamB.com? Maybe because the whole TeamB uses Visual Studio or maybe it's time to ask Craig (TeamB) to start writing about Delphi articles?

- Saying the usual insults won't help. It only reinforce the message "Delphi is dead", the "newsgroup are full of trolls that defend Delphi", but if you look deep inside Delphi, may developers are tired of paying for this and that, more like borderline towards earning nothing or no money.

- The jury is out on the Tea Leaves - 64bit Delphi. This is all based on educated guessing. If there is anything to say, Embarcadero would have easily released the 64-bit product. Why bother wait until near the end of this year? (Maybe they want the current SA for Delphi-XE to expire so they can collect even more money)

- Wonder why nobody use WxWidget with C++ Builder? Or how about QT with C++ Builder? Surely, if Embarcardero C++ Builder is sooooo good, nobody would complain... except maybe nobody uses C++ Builder...

- Why not call up some of the people whose companies are featured on "Vendors who stopped supporting Delphi" blog posting and ask for their opinion about Delphi? They will tell you very honestly and very factually about what they think about it.

Sunday, February 27, 2011

Tea Leaves for 64-bit Delphi

Your reviewer was looking at the KSDev purchase and thinking...


Pesky 32-bit assembly and legacy issues.The whole VCL is peppered with 32-bit legacy code, some going even back to 16-bits, such as aliases for WinProcs, WinTypes.


Judging from the last version of KSDEV library before Eugene pulled it from his website, the latest XE codes with some unusual 64-bit codes, some parts of the Embarcadero wiki before they removed it from public view.


Here is your reviewer's take about the current state of Delphi/64.Delphi 64-bits requires a full compiler rewrite. That means, only the language stays the same, everything else doesn't matter.


For example, if the definition of "program", "for", "if", "while", "being", "end" stays the same or similar, it is considered Delphi or Pascal language.


In a liberal sense, that is how RemObjects does it: With RemObjects Prism, the NET library is the main library instead of VCL, there are compatible constructs to make porting code from Delphi/Win32 to NET/Prism.


In order to code for Delphi 64, the whole entire VCL needs to be re-written to first remove the assembly parts and make it as "compiler magic" or in-line assembly routines that is linked to the final 64-bit EXE file.


The first part is easy. Making equivalents to the original Delphi/Pascal codes: Go back a few versions where the IntToStr, and other routines were not converted assembly and use the original codes.


The second part is not-so-easy: The Delphi VCL is limited to Win32 only and nothing for Mac or Linux.


The trick is to make the final result language compatible. Remember the QT/Kylix library, where the Delphi 6/7 had an alternate implementation called QT(whatever).


QT and WxWidget are both respectable libraries, except the fact that the Borland C++ compiler is so far "out of the C++ loop" that it could never hope to have the same respect Microsoft Visual 2008, 2010, Intel C++, GCC and Digital Mars C++ compiler have today.


C++ Builder XE
Talking about C++ Builder is like talking about an athlete who claims it is the "best", won many former awards, with lots of boasting, pomp and grandeur - because of the corporate sponsor decided to stop the athlete from training, making it fat and lazy. The corporate sponsors then decided to silenced the critics by threatening NDA or humiliating them publicly.


In the past 10 or so years, there were certain critics who went to presentations with floating point performance reviews but was stopped last minute because of NDA or Borland threatened lawsuits at them. Some of the critics were so vocal and so disappointed about it, many of them are University professors -- they went and subsequently switch from Delphi to Visual Studio for their teaching syllabus and never looked back.


(To rub insult to injury, C++ builder is almost 90% slower than Visual C++ or even Intel C++ compiler. You can find out easily by running SpecInt, LinPack or the recently compatible Crypto Library to find your own conclusions.)


In relation to QT and WxWidget, there is no or very little documentation about QT for C++ Builder 2010/XE or even WxWidget for C++ Builder 2010/XE.


After heckling with trying to get WxWidget or QT to compile, developers face Interesting problems with C++ Builder: Intellisense sucks, very long compile times, even longer than Visual Studio or Intel C++ compiler, inability to compile code that compiles with Visual Studio/GCC/ICC.


What your reviewer thinks about Delphi XE2 (Delphi Exorcist Edition II)Delphi 32-bit version would have a new VCL library called the UCL library along with the current VCL side-by-side.


In order to make a 64-bit EXE file, the person would have to use UCL exclusively.


Remember how Kylix did it? They had pascal files with QT(whatever) and since Borland could not control the language or state of QT includes, it lead to three completely unusable versions of Kylix.


Since UCL would be cross-platform, it meant instead of TButton, the person would have to re-code their application to use UForm, UButton, URadioButton, UGrid, then to stop the users from doing stupid things, like screwing up the 64-bit registers or doing stupid 32-bit tricks (such as modifying the ES:DI) or the usual assembly code that peppers a VCL application.


The no-assembly issue would make sense. For instance, OSX 64-bit calling conventions or memory management is completely different from Win32 memory management.


Kryukov Software DevelopmentThis would make Mr. Eugene Kryukov, founder of Kryukov Software Development (or KSDEV) very happy person. For many years, the KSDEV VCL libraries does not have a good report writer, good grid and good edit controls. You can be sure DevExpress, Nevrona, Report Builder, LMD, TMS would then make superb components (each sold separately, like toys) built on-top of Eugene's components.


Since the most popular cross-platform libraries would not be used (because of C++ builder issues, GPL licensing issues), Embarcadero decided to use KSDEV because it Mr. Eugene Kryukov was the last person who knew how to write a cross-platform component library and cheap enough for Embarcadero to buy over.


DevExpress is estimated to be worth at least US$20 million, almost the same price as Embarcadero Delphi purchase, making it too expensive for Embarcadero to buy over.


How did Borland value Delphi at almost 70% less than the original US$100 million it sought, when it sold to Embarcadero? The answer itself lies in the way how Borland treated it customers and those on the newsgroup alike: Very shabbily, ignoring complaints and enforcing a SA-damn subscription or annual Delphi updates and payments.

Delphi's Last StandEmbarcadero promises 1st half of 2011 to deliver a working 64-bit compiler. Will they deliver? If the momentum to port Delphi codes to NET, C#, C++ and leave Delphi continues, and they still don't have a working usable 64-bit compiler and library anytime soon, it will be game-over.


It will be game-over because the new Delphi/64 will come with a new UCL component library and everything needs to be rewritten for it to be compatible with Delphi/64. That means -- other component vendors, if they are not in good graces or fell out with Embarcadero (like leaking out Delphi 2010, Delphi 2009 beta builds or uploading Delphi beta builds to chinese FTP sites) will be in for a big surprise.


Those hardest hit will be the component vendors because they need to rewrite their codes to be UCL compatible, the report writer guys need to update the libraries to 64-bit compatible, the grid guy needs to update the grid, the database guy needs to update their database-code and so on...


Those programs which contain custom components needs to be upgraded too, don't forget. Those old libraries which are still used, but the vendor went out of business, they will not be compatible and need significant porting effort to make them work with 64-bits (like making TurboPower Abbrevia, TurboPower Opherus UCL compatible).


Unless you patched KSDEV code before, or posted heavily on KSDEV forum formerly about issues and advised on work-arounds, or wrote Delphi components..., it is going to be tough work doing the code migration...


Most of the Delphi developers don't reach this level because they are so lazy and just buy one component pack after another to solve their problems...


Then, there are the usual gang of idiots who uses warez and pirated cracks, hacks and Delphi-Lovers who use all pirated crap to avoid paying for their libraries. Those people will really feel "Delphi-Love", when, the company went out business, they used a cracked or hacked version of their VCL products and will soon start begging for a non-existent 64-bit version of the same VCL codes. This will become reality soon.

Please see article Tea Leaves for 64-bit Delphi Part 2

:)

Thursday, February 24, 2011

Delphi Pawn

(Person goes to a Pawn Shop)

Person: Hi, I'm looking to Pawn this copy of Embarcadero Delphi/C++Builder/Prism/PHP box and several CDs containing DevEx, RemObjects, LMD and TMS.

Valuer: How much do you want for this box?

Person: I brought the Embarcadero stuff for US$4,500 and I spent a total of US$4,200 for DevEx (US$1500 subscription), RemObjects subscription (US$1099), LMD (US$800) and TMS subscriptions (US$799). I'm looking for at least US$8,000 for this box and this CD (with casing).

Valuer: I'm sorry but a box and CD doesn't cost US$8,700, and since we can't sell it since it's non-transferable, I'd say we'll buy the for scrap - US$1.00. How about a dollar for the box and CD?

Person: What? - I paid US$8,700 for this thing.

Valuer: The license is non-transferable and we can't resell this.

Person: Can you spare me a few hundred bucks?

Valuer: Do you have anything to (else to) sell?

Person: I don't have any...

Valuer: Have a good day.

Person walks out, feeling crushed and defeated.

[[DelphiLove]]

:)

Friday, February 18, 2011

64-bit Hopes and dreams fade

The longer Embarcadero waits to deliver 64-bit Delphi, the deeper dreams and hopes fade away...

- Software vendors who write drivers get put-off by Delphi because there is no inter-op between native 64-bit and 32-bit codes. Someone alerted me there was some bridge code to call 64-bit DLLs but not 64-bit COM or OLE.

- 32-bit registry cleaners cannot work correctly in 64-bit Windows 2008R2 or even Vista/64 because they "assume" many things, causing customer's computer to crash afterwards (i.e., you pay for the software and then trashes your computer).

Two Registry cleaner vendors confided with your reviewer how they had no money coming in for past two years and your reviewer urged them to use Visual Studio and rewrite their app.

- Apps that need more than 4GB, like silly newsgroup readers that cannot download more than 4GB of newsgroup data, or Sound/Video software that cannot edit more than 4GB without needing some kind of unnecessary file operations.

- IIS filters, IIS control panel replacements and the same, Apache MODs are dead for Delphi and C++ Builder developers. Even Remy Lebeau (TeamB) was given Visual Studio to replace C++ Builder.

- IntraWeb for IIS/64? Sure, there's a work-around by enabling 32-bit mode but..., requires a dedicated server for this. Even Torry's is not hosted on a dedicated server.


Go to TeamB's website and you will see Craig Stunz's shunning Delphi and using Visual Studio. The whole TeamB blog is full of Visual Studio posts. Go figure.

- 64-bit COM. This is pure sadness. Your reviewer heard that many Delphi developer's add-ins for Microsoft Office no longer works with Office 2010/64 and getting run-over by NET or C++ Add-ins written for Office 2010/64.

Your reviewer even got boiled alive when your reviewer's Office Add-ins could not work and customers were going to drop the product and use some competitor software instead.

How did your reviewer resolve this? No choice, had to rewrite the whole thing in NET wondering when Delphi/64 would be released (2009 passed, 2010 passed, now is 2011 first quarter). In two week's time, many companies will report 2010 Q1 results.

Curiously, there's a company selling Add-ins integration code that links to this blog with notice: Delphi doesn't have an x64 compiler :-(

As hopes and dreams fade, the money also flows away...
Several Delphi developers your reviewer discussed with were devastated when their revenue stream ran out and they had to make painful cuts, like laying off their friends or starting to learn the basket language C# or VB.NET to make ends meet.

Prism solution?
Many Delphi developers who use Prism find employers are not willing to pay another US$499 (or US$560 -- according to several developers in Australia) to buy Prism.

It's either US$499 budgeted to buy an ASP.NET package (NetAdvantage or DevExpress.NET or Telerik) or ... Prism.

Since NetAdvantage does not support Prism (or many forum questions gets unanswered) or any official support from DevExpress, or even many ASP.NET or WinForms component vendors, the answer is very obvious.

Delphi forever... Viva Delphi!
"... I've being a loyal Delphi advocate, i believed on them to deliver on their promises, i went against the trends to keep it alive on the companies I've directed....

But, after seeing Delphi XE, which I will never have the morale to call a new version, or even sell it as such and taking their justifications to be a viable upgrade as a direct insult to me as a customer, I gave up and I am now pointing to the other side of the river.

I'm totally disappointed. I feel sad to see how they are trying to rip off the EU and other countries(Brazil) which are basically keeping the community alive, and how they expect us to even feel comfortable with a line saying that "on my trips to lalala land, they loved the release and they say is the best ever", they know better and its frustrating."
Source

Beam me up, Scotty

@scottyroo, I see several of your posts on music forums.

Can you drop me an email to "DelphiHaters" (at) Gmail.com. You can air your grievances and I'll write-up an article on it.