Wednesday, April 6, 2011

TDreamRich: The dream 10 years later.

Foreign Correspondent 


It has been almost a decade since Dream Company folded and its owner, Sergey Kostinsky moved from Ukraine to Australia, dumping all their customers (sounds familiar? The owner of KSDEV did the same thing).

One component which was never quite released is TDreamRich, the supposedly RichEdit component replacement written in Delphi, it was never completed, lot of people on Embarcadero's forums complained about problems moving DreamMemo from Delphi (non-Unicode) to Unicode and unable to upgrade it, ditto with DreamScripter, DreamReports. DreamReports probably prompted Borland to remove all the design-time units for Delphi, since Borland found some people illegally breaking the EULA and since DelphiIDE is a "trade-secret", they didn't like people replicating the Delphi IDE with Delphi's own source codes.

If you combine DreamReports + DreamScripter + DreamMemo, you had something similar to the Delphi 4 IDE, along with reusable design-time packages, drag & drop form designing, Resource streaming and Handle --> to Delphi component control development.

You can do this even better in Visual C++ with custom resource streaming, MFC custom-control development. ProfUIS does this well. The idea is you expose the whole CodeJock suite as custom-controls inside the ProfUIS run-time IDE, add JavaScript library and CodeJock editor and voila! Visual C++ scripting environment to give to your customers.

Apparently, Morfik has been taken over by Altium and lot of complaints started to fly around - like non-working editor, non-working database controls, non-working IDE, essentially becoming like a toy language.

New comers, expecting that Morfik eased the pain from transitioning from Delphi to Web, found very few things actually worked. Either there were memory leaks or the people who wrote ZEOS database library never did careful job of their product (i.e., Morfik uses ZEOS internally) and constantly blew up with MySQL.

There was lack-of-support for other Ajax libraries, such as Mortal Kombat Jax ExtJS, Moo Library, YUL and so on. There were 8 ways to deploy Morfik, but none of them actually made sense or too many steps to deploy.

Last summer, the Developers at Morfik realized the product was full of bugs and decided to make it for free. The people on the Morfik forum supported each other and the developers would drop in once a fortnight to answer a couple of questions and in a seemly Un-Australian manner, decided not to respond to them.

Now, any "offensive post" is simply deleted or your account is closed (Source).

Quoted:
A couple of days back allot of users was banned for 90 days, because their posts are uncomfortable, not because they are evil but because they demand to get what they have paid for and been promised.

Using offensive words or newbie questions - like - "how do you use PHP with Morfik", or any mention of "ASP.NET" will simply get you banned or your postings removed.

In the mean-time, your reviewer was using Visual Studio 2010 to write websites. At least it makes customers happy and brings in revenue.

I'm not sure about developers using Morfik. Maybe the name Morfik gives some clues about the kind of product it is - it eases the pain, makes the user delusional and emptying his wallet, get fired from jobs and leads to loss of income.

You can read the train-wreck in action at this moment happening on Morfik forums.

Tarry ho, would you like to go to the pub and have some Victoria Bitter? ...

:)

Tuesday, April 5, 2011

Scenes I'd like to see

1) Why not distribute Delphi/64 over Embarcardero's AppWave Store?

2) Why not make all EXEs produced by Delphi/32 and Delphi/64 (i.e., unless you have valid license from Embarcadero) only working inside AppWave store, max upto 100 customers (for starter edition)?

3) Why not redistribute Delphi/C++ Builder, AQTime and FinalBuilder with all updates inside AppWave Store?

Troll Tracking

Troll tracking has started to become more accurate - the latest research shows Internet trolls can be identified to nearest 690 meters or close to 100 meters (or approximately 1 building in other words)

IP Address of Doom?
In situations where person lives in rural areas (like in Aussie outback or on a Texas Ranch), it's pretty obvious who is posting those inflammatory remarks on Embarcadero newsgroups or constantly uploading to those web-based file-sharing sites.

This reminds me of the radar dome feature in Red Alert...

Now only if they could add geolocation with advertising  into Embarcadero's Delphi/C++ Builder or even DBArtisan, it's going to be really fun...


:) 

Commercial Break


We will return to you after this commercial break

(Translation of Commercial, from Romanian to English)

Nu pot = I cannot

Nu vreau = I don't want
Nu pot = I cannot
Nu vreau = I don't want
Nu vreau sa raman indiferent = I don't want to remain indifferent
Nu pot sa stau deoparte = I cannot remain away
Nu vreau sa renunt = I don't want to ronnounce
Nu cred in limite = I don't believe in limits
Indrazneste = Dare!

Friday, April 1, 2011

Commercial Break

We will return to your regular schedule after these following Czech caroling videos. It's kinda funny. This must be a small world. Your reviewer remembers a time when your reviewer was singing Czech Christmas carols...

Sunday, March 27, 2011

SciMark2 and Delphi

Your reviewer was surprised with SciMark test ported to Delphi that Mr. Phillip Goh posted.

On a Core i7-2600K it achieved:

**                                                              **
** SciMark2 Numeric Benchmark, see http://math.nist.gov/scimark **
** for details. (Results can be submitted to pozo@nist.gov)     **
**                                                              **
Using       2.00 seconds min time per kenel.
Composite Score:         1885.62
FFT             Mflops:  1426.20    (N=1024)
SOR             Mflops:  1146.66    (100 x 100)
MonteCarlo:     Mflops:   515.48
Sparse matmult  Mflops:  2096.31    (N=1000, nz=5000)
LU              Mflops:  4243.46    (M=100, N=100)

With same Delphi version:

**                                                               **
** SciMark2a Numeric Benchmark, see http://math.nist.gov/scimark **
**                                                               **
** Delphi Port, see http://code.google.com/p/scimark-delphi/     **
**                                                               **
Mininum running time = 2.00 seconds
Composite Score MFlops:   576.03
FFT             Mflops:   363.08    (N=1024)
SOR             Mflops:   935.87    (100 x 100)
MonteCarlo:     Mflops:   181.13
Sparse matmult  Mflops:   488.35    (N=1000, nz=5000)
LU              Mflops:   911.74    (M=100, N=100)

Readers are welcome to submit their own tests and find their own conclusions.
The C++ version is 3.2 times faster than Delphi version.

Readers can download the test at http://code.google.com/p/scimark-delphi and run it on their own computers.


There are deep implications beyond MFlops, FFT, LU and other metric tests.

Suppose you tell an organization to "get the latest hardware" to run your Delphi apps faster.

This benchmark was run on an Intel Core i7-2600K, 3.4GHZ (TurboBoost to 3.7GHZ). This is quite expensive for consumers. Most corporations would probably buy a Core i3 or Core i5 to give to their staff to use. If the program is not optimized to take advantage of latest hardware, it's like telling whatever expensive hardware you give it, it gives very little performance gains.

Suppose you're the developer creating these wonderful apps that sell for money but for some reason, there's this part which takes incredibly long, like generating reports, crunching numbers for sales report, making that graph (licensed from TeeChart) or computational intensive operation (like posting to proprietary Delphi Database). It takes hours or maybe a whole day to generate report.

Your competitor uses C# (or JavaScript or C++) and then makes a competing app, which seems to be 30 or maybe 50 times quicker than your app. What happens next?

You can foresee trouble that starts to brew.

Update 1:
The benchmark for Delphi is from Mr. Phillip Goh's Google Code site. Download the link from that GoogleCode website, it comes with 3 EXE files. From looking at the binary, it is GCC.

Friday, March 25, 2011

How not to File Share Delphi in Eastern Europe

In certain forums, there's always this person who have a need to share "Delphi 6, 7, 2005, 2006, C++ Builder" and unfortunately, many of them live in Romania and... Czech Republic.

Unknown to them, since Borland sold off their Delphi assets to Embarcadero, it was later found that Embarcadero has presence in Romania and Czech Republic.

For instance, the head regional manager of Embarcadero Romania and the sales manager at Embarcadero Czech can easily go and get a court order to Deutsche Telekom (and other ISPs) to disclose the IP addresses for those illegal forums and FTP sites.

Here are some suggestions to fight against piracy in their own countries:

a) The registrar for the .EU and .CZ domains keeps records who pays for what and who the owners are. They can strike off a domain based on fraud registration. (i.e., person gave fake credentials to register domain for software piracy).

b) They can bring the ISP to court to lookup the IP address of the idiots who opens FTP sites to share Embarcadero Delphi and C++ Builder...

Hint: the physical IP address of them are in Sofia, a few miles from Embaradero's head office :).

c) They can then advertise the person's name publicly after going to court. That way, everyone will never employ these persons ever again.

d) Bring RapidShare to court to find the actual IP address of that person. One company solved this by setup a fake file-sharing website to nab the actual IP address of the file-sharing person.

The funny thing about is, Delphi developers complain there are no jobs, maybe reason is stinkers sharing Embarcadero Delphi are doing this to their own people in their own countries.


Article Update: Czechoslovakia changed to Czech.

Thursday, March 24, 2011

JavaScript Performance vs. Delphi

Native compiled code should be faster than JavaScript interpreted code, the usual saying goes.

New Kids on the Block?
There are many reasons why Delphi developers claim Native development is better: It creates smaller EXEs (if you consider that 20megs setup packages to be pushed every month is fun for customers), it is faster (with certain exceptions) and better overall experience (like no garbage collection, so Delphi apps usually crash Windows 7, with Delphi Server Apps crashing Windows 2008 server with unstable TCP/IP and consuming 2 Gigs before dying).

JavaScript is considered the worst language (by Delphi developers' point of view) for coding:
  • It is not strictly type-cast, 
  • Has overall very poor performance and very, very poor floating point performance
  • Consumes lot of memory 
  • Waste of development time (i.e., the answer is IntraWeb instead)
  • Is interpreted and therefore, easy to make mistakes.
Yet, since Delphi developers eyes are closed to the world (i.e., the world revolves around Delphi and nothing else. A Delphi developer is a Delphi developer for life, they cannot open their eyes to learn other things).

The world passes by Delphi, both in price, feature and performance.

With JavaScript, there is:
  • Server Side Java Script (SSJS)- use JavaScript on server to stream web-pages,
  • Desktop JavaScript - why use Delphi for, when you can use JavaScript for "native" development
  • JavaScript.NET - the "unpopular" version of JavaScript
  • Javascript Java - see Rhino.
  • SQL with SQL - Using JavaScript to query Oracle, MSSQL and MySQL (except Delphi proprietary databases)

Costs for learning JavaScript is free with many IDEs available (see: Eclipse). There is working Intellisense (This is broken in many versions of Delphi), many free scripts available (example: HotScripts.com), many Ajax frameworks available (see: Moo Library, Node.JS, JQuery and so on).


Project Disclosure?
Your reviewer was looking at a post by Eric Grange how "another language" beat Delphi.

The problem with this lies in the way how formerly Borland handled disclosure of "floating point  benchmarks", performance benchmarks. Many (former) professors (i.e., the gray-hair one who teaches you computer science) were silenced by Delphi's license agreement preventing them to speak up against Delphi.

While other compiler vendors (D++, C++, PHP) started to optimize their floating point with lesser languages (FreePascal, GCC, RealBasic) starting to compile with SSE2 (and even SSE3, SSE4) optimizations and giving developers good floating point performance, C++ Builder & Delphi languished with i386, i486, MMX (Pentium) performance.

It was like saying, since the day Anders Hejlsbery left, Borland could find nobody to fix floating performance since Delphi 2.

It could be considered a classic conspiracy theory - Floating Point are like UFOs and floats around in the sky and the official policy is that floating points that fly faster than the average thing in the sky does not officially exist.

If the next version of Delphi still have same floating point performance, same problems and just bug-fixes (i.e., it should be called Delphi 2009 update '11)... it would be really, really tough sell...

Saturday, March 19, 2011

How not to appraise your competitors

How not to appraise your competitors
Your reviewer was looking at the Delphi Product Manager's blog, Mr. Michael Rozlog(1) and wondered if he was preaching to the choir(2). Mr. Michael Rozolog's blog goes two ways - writing opinions "Mobile will be a possible future" (which may be true) but the second one your reviewer do have opinion against: bashing competition. Posts like "Top 10 technology predictions" in the guise of promoting future, "Java is the cobol of the 90's" which bash Java.

Does the Emperor have no clothes in the future?
When you preach to the choir - you can make all sorts of insults towards other competitors, that they are no good, that their products are useless and will not help you. You can make assertions that your product is the finest development tool in the whole world and buying this product will make you hundreds of thousands (of dollars), if not millions (of dollars). You can make all sorts of claims, misrepresentations and allegations. But this is the real world, the world does not revolve around Delphi, it does not revolve around Embarcadero and if you cannot provide a working and affordable solution, there are other vendors hard at work to provide working and affordable solutions.

Your reviewer sees the usual pulpit preaching that other solutions are bad and Embarcadero's solutions are superior. Posts like "Java continues to be the Cobol of the 90's", "3D gaming technology is not the next big thing yet", "Top 10 technology predictions of the future" sounds like advising on all things you should not do with Delphi.

Sounds more like:
- Avoid 3D because Delphi's floating point and 3D libraries are not up-to par. Even Chris Benson wonders why the same EXE built with a physics engine ported to Delphi is much slower in Delphi.(3)

- Avoid TCP/IP SOAP stacks because RemObjects SOAP interop requires you to buy RO SOAP for NET or Java because the RO SOAP client/server serves up non-compliant SOAP packets whereas JavaSoap and NET SOAP interop with each other.

Corrections Requested
Your reviewer corrects some of Mr. Michael Rozlog's predictions with realistic assumptions:

- Native Development will be "in the game" again. He argues because of the smartphone booming. The hard issue is that he wants to make a logical fallacies framework: if you will take that Native Development will be the future, you will think in general that Delphi will be great. Also he states things that are true for VM in particular too: the idea that you can use whatever your OS can bring.
To be fair, there are places where native development do matter: performance critical parts of code. Games are the best frame to say so, bot to say in perspective, here is where Delphi as performance do not shine. Anyway, Mike was kind enough to estimate that games are not what it will happen. Many things changing native development (as of Win32/VCL)  are dead for some years. Your reviewer not here to say that it will disappear, but as of today reality are not that relevant. Is like if you write compilers you should know most likely assembly language, but never use it, excluding for that 10% that you have no other option (even in this case, you can write to LLVM or to VM's bytecodes, so rules are a bit different today).

Another area where "native development" matter is to achieve responsive guarantees that the a VM (mostly on underpowered device) is not always capable of. Anyway, this is different in many ways today, like Android uses a fairly decent VM (that have a JIT for some time), Windows Phone too, and in supported languages Delphi (or Delphi support) is not included.

Is Java really the next Cobol?
- Is it really Java a Cobol "replacement"? Why does Mike said things that he knows already, since he worked as the JBuilder Product Manager and he understands how Java works? He wants to promote his software that he's selling. At the end, he bashes the two platforms are competing Delphi at its heart: Java and .NET. Both are not as much as phone toys software, but are platforms that work on enterprise. Don't worry, he bashes one year before RIA (and he apologizes next year). that was another competition of Delphi: if you can distribute your application in browser, using either Flash, Silverlight or JavaFx, so you will not need Delphi anymore. Even you will use an HTML5 application, can become rich enough to not become RIA, browsers support that. Look to Facebook that you don't believe me or GApps (GMail, Google Docs, Google Calendar). Did you heard a Delphi's server side site that is widely used? Does anyone use JBuilder anymore?(3)

(Did anyone find a working, affordable and usable equivalent TCP/IP, HTTP, SOAP and RIA stack in Delphi?)

 Even Java did not released a big overhaul for some reasons as internal hardships (Your reviewer can argue that Delphi did the same from 2002 till Delphi 2006 making to stagnate as platform). Java is a platform that evolves and innovate. Is also much faster than .Net have to offer in raw performance and how applications scale. Delphi does not scale well server side as does not have support for 64 bits and huge heaps. Java and .Net offer mature support for 64 bits at least for 5 years to date. Java bring stable betas for at least 1 year as time. Some things may not be there for deployment, but everyone seems to love the message boxes that sometimes appear to Delphi application, and many complained on Delphi applications and libraries stability. JRuby is a very active project. Also GWT or Android could not exist without Java heritage, and they build and run and move as we speak.

At the end the problem is not about which platform is the best, your reviewer does believe that .NET is not a silver bullet, but on the other hand, Delphi as is today is not a better replacement for .NET.

Some things are missing in Delphi and as far as it seem for me, Delphi will lag behind more and more to "impress" people that will be long gone to .Net like platforms. AIR runtime for me at least appear a more mature distribution platform: a very small runtime to run, a fairly fast JIT that will generate for any web application an instant response, accelerated controls to: see movies, to make controls with easy workflows from Photoshop. Do you need speed for your HPC code and you cannot use Java as backend? You can call it from AIR by handling data via TCP. Theoretically Silverlight 4 let you call native code directly, if you allow it.

At the end, will Mike promote open ideas? Maybe never. As far as I'm concerned, probably your reviewer should not write this post, on the other hand, just thinking that making blunt statements at the end will hurt his blogging authority. Wanna see a more interesting and less biased posts? Look on Cliff Click(6) and Java in general, or Miguel de Icaza(7), or Linus Torvalds.

Your reviewer wonders why Mr. Michael Rozlog not praise his competitors? The Mozilla Team praises Chrome's JavaScript implementation(8)



Wanna biased talking persons, look also on Steve Balmer's quote: "someone will pay that much on an iPhone" he said... and people did.

Some of your reviewer's more accurate predictions vs. Mr. Michael Rozlog's predictions are:

1. It will be less usage of "native code" in enterprise word. People need to scale, a garbage collector give predictable throughput, a memory leak more  unlikely. Second problem is the software stack: vertical stacks are mostly in JEE or high level frameworks. And as C++ is hard, you will likely invest on a Ruby on Rails implementation or PHP implementation.
Talking about Garbage collection to Delphi developers is like talking to a lazy person who cannot check their own work because AQTime (standard) is massively crippled and requires US$599 for accurate profiling.

Did anyone hear about the Delphi developers who had a memory leak in the server application and the server applicate ate up 2 Gigs of memory before failing? Maybe nobody did because there are no Delphi embedded servers or lack of sales due to customers complaining about a big server app that eats-up 2GB of memory...

2. More applications will go towards browser-only, maybe HTML5: FF4, IE9, Chrome, Safari and Opera will have guaranteed JIT for all instances running your code. This will make clear that users will get a bit richer experience, maybe flash like from browsers.

3, "Going native" will happen probably on PHP server side, as Facebook's HipHop will get more traction and most of it's bugs will be fixed. No other platforms will likely get this path. Node.JS a Google JavaScript server side projects will get more traction for somewhat more complex server side part.

4. Google Go will be hit and still miss. Language sugar is not enough to change the world, just making interfaces minimalist will mean that some people may use it, still will not give to it momentum. As it have just C like integration, have no advantage to Java, C#, or Delphi on that matter.

5. A lot of Free to play game will appear. Browser based may use flash and integrated socially. Native ones will be free to play like MMORPG or so. The baseline will be connected and to one level social. The business model will change for a lot of games

6. (Your reviewer have just one biased prediction and is somewhat related with my project, but will happen your reviewer think for a lot of projects:) The tendency will be for people to integrate higher level platforms on top of old codebases. GCC is necessary for most people, sometimes reflection, a good code completion also helps. What your reviewer mean with this is that many giant applications will offer higher level platform interoperation: OpenOffice may rewrite some of the dialogs using  Java or Qt (this will be a 2012 prediction) to make the messy code to go away. Your reviewer predict this because your reviewer work on a fairly complex logic app. This application if was written in C++ was much less advanced than the C# today codebase. Your reviewer really think that similar codebase would require much bigger team and much more extensive tooling but with a lower market price.


(1) Michael Rozlog Blog. http://blogs.embarcadero.com/michaelrozlog/
(2) Idioms. http://www.phrases.org.uk/meanings/preaching-to-the-choir.html
(3) Box2D. Chris Benson's blog. http://chrisbensen.blogspot.com/2011/01/delphi-box2d.html
(4) JBuilder 2008 review. TheRegister. http://www.theregister.co.uk/2008/04/28/jbuilder_2008_review_rough_edges/
(5) HipHop. FaceBook. https://github.com/facebook/hiphop-php/wiki/
(6) Cliff Click's Blog. http://www.azulsystems.com/blog/
(7) Miguel de Icaza Blog. http://tirania.org/blog/
(8) David Mandelin's blog. CranShaft. http://blog.mozilla.com/dmandelin/2010/12/08/crankshaft/

Sunday, March 13, 2011

Beam me up Scotty, part II

Hi Scott,

Can you please check your mailbox and contact me...

First issue: The (other) forums are rigged. If you used the same password (as is for your Gmail or Yahoo account) for that forum, the mods and admins can find out your password by looking in the forum-database and steal your GMail or (Yahoo) account. If you are using same passwords as your Gmail or Yahoo account or any other account, please change it.

Second issue: I'd best advise that you stay away from those forums as those forums record down your City, Location, State as you go browsing along. If your ISP has enabled look-up or "IP triangulation", they can trace you down to the nearest 100m where you live.

I'm sure the forum admins will flatly deny these statements but think about it when you got hacked and got some other mysterious things happened to you...

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.

Saturday, February 5, 2011

Delphi in Russia

Delphi in Russia and the Russian Federation
Foreign correspondent

A discussion about Delphi in Russia starts with listening to Russian customers, Russian software developers, their lecturers (i.e., presence of Delphi in Russian centers of tertiary learning) and the Russian Delphi market.

Delphi in Russia is about the hopes and dreams of software developers, about tertiary education and Delphi in usage in Russia (compared with Java, NET, and other languages) along with the joblessness, false hopes, broken dreams and broken people. These are their stories.

The Old and the New
In the freezing cold, an old man walks around a park in St. Petersburg (formerly Leningrad) drowning his sorrows in alcohol. A Russian DelphiHater walked, nothing to do on a Saturday evening with his Russian developers, his Russian developers recognize the old person, remembering many years ago, he was one of their lecturers and for some reason, he left that University.

The Russian DelphiHater asked how he came of that state, and what could be done to help him - was he jobless? was he having some difficulties? What happened to him? The developers said to move on and ignore him.

Many years ago, the Universities used to teach Delphi, Borland Pascal and Turbo-Pascal. This is evident by sites like Torry.ru, Pascal.ru (the former site), pascal.sources.ru, BPascal.ru, FreePascal.ru, sql.ru DelphiPlus.org (if you are an English speaker, use Google Translate or Yahoo BabelFish to view those web-sites). The pascal.sources.ru site has bit more in-depth free component and articles which then seem to flow into Torry.net as paid components from Russian Developers.

TurboPascal, Turbo C++ and other Borland products used to be very popular in Russia, you would see almost every DOS app written by Russian developers either in Borland Pascal, TurboPascal, Turbo C++ and using Borland's products rather than QuickBasic, Microsoft Professional Basic, Microsoft Professional C++ (now called Visual Studio). It was simple to develop in TurboC++, Borland Pascal with MS-DOS. Just change the code-page to 866 and run your DOS applications.

Communist File-Sharing
It was simple to develop with TurboC++ with copying files via floppy disks. Many years ago, they would use FidoNet (and still popular now-a-days) and upload files and share freely. It was easy to get and "share" MS-DOS, Windows 3.0, Windows 3.1 (provided you buy your own floppies) and other Western software.

Hassles with Borland/CodeGear and Embarcadero
When Borland/Inprise raised prices from US$99 to US$999, then US$1999 (and later to US$4999 - Architect, then Euros 4995) for Delphi and later started on-line activation in Delphi 6/7/2005/2007/2009/2010/2011 with so many hassles to get a legal copy of Delphi in Russia, Universities in Russia (and former USSR states, such as Ukraine, Georgia and Belarus) stopped using Delphi and switched to more modern languages such as Visual C++, Java, PHP and other 4GL languages (now Lisp.NET, Prolog.NET).

Students who graduated recently (class of 2005 onwards) learned Java, Visual C++, PHP and UML - much needed skill-set employers would appreciate. It was earlier reported CodeGear software development tools[1] were to be installed in Russian computers, but that courtesy does not extend to - former Soviet states (such as Ukraine or Belarus) and students who once graduated and wanting a full copy of Delphi... well... found themselves locked out of their Educational Edition.



Here is your reviewer's advice if your school teaches Delphi:
1) Install Windows XP-SP3 onto a clean-boot Virtual Machine. (Preferably, use Virtual Box)
2) Make sure all Windows XP-SP3 service packs are installed.
3) Install Delphi with ALL options and ALL service packs
4) Make a copy of this VM-image and keep in safe place in case need to reactivate.

Later:
5) Make a network share to local disk drive, say, your C:\ drive mapped to D:\ inside your VM.

If troubles occur:
6) If the Delphi/C++ Builder stops working, overwrite the VM with the original VM
7) Do your work as usual.



Here is your reviewer's advice if your school provides Microsoft Software:
1) Remember to download all Windows CD images - especially Windows 7 professional, Windows 7 Ultimate, Windows 2003, Windows 2008, Windows 2008R2 server, and Windows XP from your school's partnership Microsoft school partnership website.
2) You can ignore downloading Vista.
3) Download Office XP/2003/2007/2010
4) Claim the maximum limit of keys [all the 5 keys and 2 server licenses] and put them into a safe place or print them out in case you have hard-disk crash.
5) Download Visual Studio Professional, VSTO and SharePoint servers.
6) Do this before you graduate from your school and before the school semester year finishes.
7) Don't be stupid and sell them for money or give them to your friends.
8) Other software vendors give free fully functional software - Remember to get the keys for 1C, Enterprise Architect Academic Edition, Visual Paradigm Academic Version and other software.
9) The day you gradate or the day the school semester year finishes,  you will lose access to this site but the keys are still valid.



Alexandr* learned Delphi at his University, created a nice Win32 application as final project for his degree to graduate. The syllabus is very rigorous because unofficially - it is known many students failed their final year project and exams. Some of the students who failed ended up working in non-software jobs or repeating the same year again just to pass their exams. "It was like an insult. Suppose you want to practice your Pascal development or brush-up your skills (while looking for a job) after University, what  are you going to do?"

"Go to any book-store. How many books for Delphi are translated to Russian? How many books for C#, C++, SQL are translated to Russian?" Alexandr exclaims. It would be hard to convince anyone to use (legal) Delphi or license legal Delphi components.

The irony of this is some of the best Delphi components are made in Russia - FastReports, TRichView and in former Soviet states (Ukraine and Belarus). There is a large hidden Delphi community but very few developers willing to take leadership. Leadership costs money, lots of money. To buy one copy of Embarcadero Delphi professional (US$899) or almost 3 or 4 months of wages for a Delphi Developer.

There is also deep criticism of costs. If Delphi is to be popular, it should be low-cost and have a student edition which students can use after they graduate. For example, Microsoft has the BizSpark, Empower, Partner and other programs which provide low-cost fully functional versions of Visual Studio and plenty of training materials along with it.

For example, in the BizSpark, it costs US$100 for 3 years and it is known many Russian companies signed-up for this.

Microsoft Russia provides a fully-russian Website (msdn.microsoft.com, switch language to Russian) and academic resources in Russian.

Every 3 or 4 months, there would be a Microsoft Academic fair in various parts of Russia. Your reviewer would encourage developers to attend. At the fair, there would be lucky draw to win X-box, Visual Studio, Vista licenses, along with gift bags containing Visual Studio 2005 (now 2008, 2010) Professional licenses or equivalent. Depending on which trade-show or convention or fair, they allow you to win free Vista (and now Windows 7) licenses.

Work like a Robot
The problems with Delphi are not only in learning, but also at work. Search for Delphi jobs in popular Russian jobs websites - Yandex, Rabota, hh.ru (and you get so few jobs compared with C++/C# jobs (like 20 jobs vs 10,000 jobs) and most of the Delphi jobs are from (what seems to be) unpopular companies.

The average wages of Russian Delphi developers starts from US$300 to US$2000 per month (9000 Rubles-60,000 Rubles), depending on city and location.

The average rate is US$700-1,000 per month (as of writing this article) for good software developers. Obviously, most software developers ask for double or triple (US$3,000) but cannot seem to keep their job unless they are "good" or "experts." For example, they ask for US$2,000 but then do such bad jobs they get laid-off and then get a different job with lesser wages.

If the person works in a remote place outside St. Petersburg or Moskva, his cost of living would be much lower. You would find Russian  developers who live in rural areas who earn much less.

Students earn much less, like US$150 - US$400 per month, as an apprentice. Some even work for free (provided you provide food, vodka and lodging -- woman not included). The reason for so low wages is to learn the trade and craft before the students grow too old. It would be very regretful that a person learns about computer sciences and learns nothing. Many years pass, the person is considered too old to switch jobs (or go back to school).

Your reviewer looks at some of the statements said by Russian Delphi developers and what they really mean:

Statement: "I cannot get a job in Moscow so I moved back to my parents house"
What it really means: "I did such bad jobs in many companies and everyone knows my work is so bad that I can no longer get a job in Moscow, so I moved back to my parents rural house after running out of money."

Statement: "There are few jobs for Delphi developers in St. Petersburg"
What it really means: "The jobs required me to work hard, but I made big mess of Delphi projects and then failed to complete the task and I got laid off. Many companies in St. Petersburg gave me many chances and I failed many times".

Statement: "I do not get any reply from companies using Delphi in Moscow".
What it really means: "The companies did an on-line search for [name] and found you were doing illegal things after office-hours and refused to hire you".

Statement: "I am very desperate and need a job, I am willing to take a job as beginner C++ or PHP or Java developer"
What it really means: "I realize all my Delphi skills are useless and I cannot get a job easily. I am willing to learn everything all over again, please give me a second chance or an opportunity to re-learn everything."

Statement: "I did not get any bonus the past few years".
What it really means: "The company I worked for paid for lots of Delphi libraries and have no money left to pay for bonuses."

Statement: "The company I work for does not use Delphi"
What it really means: "The company used to use Delphi but the financial cost is so high and requires lots of libraries compared to Visual Studio, they eventually migrated to either Java or Visual Studio".

Statement: "The company went out of business"
What it really means: "The company I worked for laid-off all its employees and terminated all of them after trying many ways to make money using Delphi".

Statement: "I am an expert in Delphi"
What it really means: "I have zero knowledge in Java, PHP or NET. Most websites, applications are written using Java, PHP or NET."

The third-party problem
The problems with Delphi in Russia begins with third-party components. Before Delphi 2009, Russian-speaking developers had to develop in two code-pages or even three code-pages: Russian-English-Ukrainian, Russian-English-Polish, Russian-English-Czech, while in NET it was all Unicode. While many Russian developers develop only for Russian and then English as an after-thought, the end-result was ANSI and code-page mess.

Before the release of Delphi 2009, most developers were struggling with string, widestring, and mixing the two caused headaches. Although it was easy to make EN-RU switch easily, former Soviet States and Eastern Bloc countries such as Ukraine, Georgia uses a dialect of Russian (Ukrainian), CZech, Slovakian, the text would lose characters because certain characters would no be transposed easily with ANSI text without switching three different code-pages.

Worse, the third-party vendors made no effort to make their product use WideString instead of String until the release of Delphi 2009 which made it easier to use Unicode. Delphi 2009, Delphi 2010, Delphi XE forced everyone to use string as 2 characters (DelphiUnicodeString) instead of 1 character.

It lead to humorous situation: How long would it take a Russian Delphi developer to move to Unicode? Seven years. Four years for CodeGear to release Delphi 2009 (4 years too late, after releasing Delphi 2005, Delphi 2006, Delphi 2007 with more and more promises), One year (to force the component developers to move to Delphi 2009, Delphi 2010) and Two more years to fully convert from String (PAnsiChar) to String (PWideChar). Of course, provided the company employing the Delphi developer does not collapse.

How long would it take for Russian Delphi developers to move to 64-bit platform? That question is yet to be answered, but it seems everyone is moving to NET (64-bits), PHP (PHP/64), Ruby (Ruby/64), Java (JVM/64), C/C++ (OSX/64, Linux/64, Win64).

OSX is now 64-bit and former applications written for 32-bit OSX no longer work or barely works. Message: "This product is not compatible with OSX 64 and will shut down. Click OK to send the crash report to Apple". There are even rumors iPad v2 will be 64-bits and have a 32-bit emulation layer for older ARM apps. [MacRumors, Apple Insider].

Russian Third-Party components
Many Russian developers would use the Delphi TNT components (now owned by TMS) and former Unicode components (ElPack, TRichView). ElPack was developed in Ukraine and sold to LMD (Germany). TRichView is developed in Russia. FastReports is developed in Russia. Many of the developers using FastReport would use their WideMemo component (introduced in FastReports 3.0). Costs start to increase very quickly. (Most companies dislike licensing components and hence, the poor Delphi developers have to work without them)

Russian Money Management
How do developers in Russia send money to the developers? They use MoneyGram, small-business Merchant accounts (linked to debit cards) and the usual payment methods (ShareIT, RegNow, Digital River).

The trick, is to withdraw money incrementally and use ShareIT, RegNow and Digital River like a sort-of bank account. Instead of hassle to send money to other developers, you pay them direct from ShareIT (i.e., pay another developer from ShareIT directly).

Some vendors accumulate US$50,000 or more but declare low revenues. How? Simple. Instead of a bulk sum payment, they put a lower reserve rate (e.g., pay out US$1,000 every month) and then go overseas and splurge on lavish holidays ("I brought this nice flat-screen TV from Poland").

CodeGear vs. Sun vs. Zend. vs. Microsoft
Your reviewer looks at the syllabus guide in several universities and found most of the Delphi materials were really old compared to Sun's Java course or learning PHP courses or even learning C# or VB.NET courses.

Your reviewer listened to the list of complaints from teachers, lecturers and professors of Higher Learning, Tertiary Education centers and Universities. In brief, the problem is software licensing costs in Soviet terms.

Suppose a Tertiary Education center wanted to license Delphi and some libraries to teach the basics of computer sciences to students for three years (or four years), the answer from Embarcadero would be to get it "at a discount and not free". Sometimes, the budget for almost the whole of computer sciences department would be as much as the cost of licensing Delphi and the 3rd party libraries itself. That would be madness. "You charge the students a nominal fee to attend this undergraduate course and then all the money collected goes to CodeGear!" To make matters worse, sometimes there is not sufficient licenses to go around (There are 200 computers, but because of many students applied, there is need for 20 more licenses) and the license for Delphi is on-line activation.

Whereas, for Microsoft, the lecturer would call Microsoft Russia (via phone) and then get the Academic editions of Microsoft products for free, for both their students and academic staff, along with a website (a sub-section of msdn.microsoft.com) custom-made for students to download licensed software from Microsoft.

Delphi and Teaching Problems
Listening to lecturers who gave Delphi a chance:
- Not to mention teaching problems - Suppose you want to teach fundamentals of computer sciences - the Stack, Queue, List (not TList - ask the students to make their own list), Array and other things. How are you going to license more copies of Delphi for students to bring do the course-work at home? It would be nonsense to license more copies of Delphi for students themselves to use.
Suppose a student goes and have problems installing Delphi on their home PCs, what happens next? ...

Then you want to teach Delphi and C++ together. Why the double-license and need to install twice - Delphi and then C++? (note: Older versions of Delphi had separate installs, now they are together)

Then you want to teach appreciation of databases, RDBMS, SQL algebra, normalization, what will you use to teach students to use to connect to them? (Ooi, you need to use third-party libraries to connect to them).

For example, even though Firebird is an excellent database, why is it that curiously, Delphi has no adapter for FireBird. It only has for InterBase. Later, you want to use MySQL but there is no (free and good) adapter for it.

Then, you want to teach SOAP services and remote-ing. What are you going to use with Delphi and C++ Builder? ...

Then, you want to teach UML with Delphi, What free solutions are available for both student and lecturer to learn with Delphi and C++ Builder? ...

How are you going to teach STL with C++ Builder when half of the STL and Boost Library are not working in C++ Builder 2005, 2006, 2007, 2010? It was surprising that bugs with C++ Builder were not fixed and only fixed in annual updates. ...

Unless the components, libraries and Delphi is available at nominal cost for learning, it will be very unlikely that Delphi (even with discounts) will be favorable for teaching.

Few semesters later, many of the former people who lectured Delphi, Delphi and Delphi replaced it with Visual Studio, C++, Java and PHP. It was easy to see why -

Tell students to make a linked list in C++. Very simple:
Step 1. Costs are controlled. In the start of the academic year, the lecturers hand-out the login/password to the academic Microsoft site.

Step 2. Few weeks later, download the student-handouts and lecturer notes from the Microsoft site. Get everything ready for class computers and academia.

Step 3. Do the lecture and give course-work to students and give them advice and what to do. The lecturers then give out a skeleton Visual C++ project for students to learn what to do and tell them to code this-part, that-part and other-parts.

Step 4. Grade the assignment and give student feedback.

(Same goes with Java assignments)

Intra-Nyet and teaching "VCL for Web".
Delphi comes with a library called "VCL for the Web" or IntraWeb.

The people want to teach IntraWeb but stymied by high-costs and problems with hosting IntraWeb.

For example, it is now mandatory that students learn about E-commerce and how to make an advanced website written using ASP.NET or Java or PHP. Making advanced websites is now an essential skill-set for students who wish to graduate.

For example, it is advertised heavily that Delphi can be used to make superb websites and it's a "hidden secret" that people rarely uses.

Mr. Chad Hower (the person who wrote IntraWeb) keeps on telling how good his product is, how people have made wonderful sites (most of the testimonials on the AToZed website goes to private websites which cannot be seen by the 99% of the people who want to buy it) and come with a nice subscription license. The subscription price is very expensive for Russian students.

Put yourself as a lecturer who wants to teach IntraWeb to 200 students (Class of the 2008, will graduate in 2010) who will later tell their employers they learned "IntraWeb" at their University or at their College.

The first problem is that the IntraWeb distribution that comes with Delphi is full of bugs and "needs an update", then "Indy needs an update" and you need to spend 200 individual licenses because it is needed for students to deploy the site live to a web-server to show their work.

Who is going to install and update IntraWeb for 200 students? Why is it that Sun Java can install the EJB server-stack and Visual Studio comes with working ASP.NET libraries?

The next problem is trying to find why you can deploy 200 Java sub-sites and 200 ASP.NET sub-sites on a server, and why you cannot deploy 200 student IntraWeb sites on the same server. By the way, how much does it cost to get an unlimited license for 200 students?

To make matters worse, with the latest version of Delphi XE, the IntraWeb requires a license (hint: more payment) to use IntraWeb on IIS. So it means that it is not possible anymore to host 200 student IntraWeb websites without spending money, whereas you can do it for almost free for Java and ASP.NET

The next problem is site aesthetics. With how bad looking the IntraWeb websites looks, do you think anyone will use it? A website made with IntraWeb looks like it came from 1998 when people were making bare-bone websites.

How are you going to teach students to make a shopping-cart website when that is available only in the high-end "Enterprise" edition of IntraWeb?

What course-material is available at nominal charge or free for IntraWeb, so students can learn at their own pace and own time?

What core concepts can you teach with IntraWeb that are present in other languages? The mechanisms for session-handling seems to be a big secret in IntraWeb. The mechanisms for page-mode, cookie is available only in the Enterprise edition of IntraWeb.

How are you going to make a website with IntraWeb and SOAP-server?

In the end, it is so expensive to learn about IntraWeb that the lecturers decided to avoid it fully and teach Java or PHP to their students. Most students favor PHP, given that most of the discussion and bulletin boards all over the Internet use PHP.

Object Modeling, UML and Delphi - Ooi, Ooi, Ooi
Another best-kept secret in Delphi is modeling and ability to use UML models in Delphi, except this is also available in Java, ASP.NET, even Ruby and PHP now.

Many students use Visual Paradigm Academic Edition, Enterprise Architect (RU) edition and Visual Studio modeling, Java UML.

With Delphi, since Bold, UML and other tools are only available in the Architect edition, it is purely nonsense. Suppose for example, you are a lecturer and want to teach Delphi & UML. What tools are available to teach concepts of UML modeling with Delphi? At what cost will cost to teach Delphi with UML to students?

To market?
Not to mention, many universities do surveys about the Job market and what to teach the next batch of students what is favorable to learn, so the students learn real-world skills employers will value.

Criticisms towards this site and replies
Your reviewer read some of the criticisms on several Russian websites and there seems to be lot of animosity between Russian Delphi Lovers and Russian Delphi haters.

First of all, there should be fair and honest debate about programming languages in Russia. This is not protected speech (such as criticizing the Communist party or about Soviet values in Modern Russia) or anything political. It is about hopes and dreams of people who may eventually become disillusioned or feel like failing.


Criticism - Delphi is a good product

If Delphi is such good product, why is Mail.RU not written in Delphi or Pascal-based scripting language? What about lesser known sites - Torry.ru use PHP and Sybase MySQL for their website.

Criticism - Tons of hate
Please read this site over and over again. Many years ago, your reviewer was one of the best supporter for Delphi but other people treated your reviewer like garbage or rubbish. Many of them like to tell lies and deeply hurt your reviewer. Your reviewer got fed-up of the lies, hypocrisy and hate and started to write about all the bad things about Delphi.

Criticism - Career Advancement - what's next?
Suppose someone tells you, you learn accountancy and after that, you can become an accountant and have a good job and can earn an honest living. There are many accountancy jobs and there is need for expert-level accountants to do auditing and eventually become manager or chief-financial officer. Now someone tells you, learn about Computer-sciences and learn about how computers works and get a job... but there is complete opposite - the Delphi market is depressed, how many expert-level Delphi developers run their own companies and become very accomplished?

In other words:
Learn Accountancy ----- Accounts Clerk ----- Accountant ----- Financial Manager ----- Chief Financial Officer.

Learn Medicine ----- Houseman ----- Junior Doctor ----- Doctor ---- Specialist

Learn Delphi ----- Junior Developer ----- Developer ----- ??? ----- ???

Career path #2:
Learn Delphi -- become TeamB and then no future path except to be a TeamB member all your life.
(Remember that TeamB people are unpaid for their time)

It seems with Delphi in Russia, after you become an expert, you have no more career advancement after that.

Brave things to say
In the Putin government, you must not be afraid to voice out your opinion. Here are some bold suggestions:

- can we ask DelphiPlus.org to convert to fully use Real-Thin-Client or maybe use WebShock, the Delphi-made WebServer (from BPDX LLC)?

- can we ask Torry.RU to upgrade their site to use Intraweb and maybe use DA-SOFT.RU AnyDac?

- can we ask the Russian advertisers who advertise on Torry's to upgrade their third-party libraries to the latest version of Delphi, like ShellPlus for Delphi XE, or SVCom for Delphi XE?

- can we ask Torry.RU to give an invoice made with a Delphi PDF library, such as Gnostice PDF libraries?

- can we ask more Russian Delphi programmers to buy Delphi, C++ Builder architect version instead of Visual Studio Team Edition?

- the forum in SQL.ru is not so good. Can you switch it to Real Thin Client forum? (The Delphi vendor Real Thin Software have a nice forum written in Delphi)

- Can we ask Yandex.RU to make their PuntoSwitcher re-written in Delphi?

- What happened to missing websites, like AnimatedMenus.com (Website selling Delphi components?) or companies in Russia who used to use Delphi?


Russian Popular software:
Kaspersky Anti-virus (Made in Russia) is made using Visual C++ with BCGSoft. This is from deep analysis into the Kaspersky anti-virus program. The reason why it was made in Visual C++ was because of floating point advances in Visual C++ whereas in Delphi, the floating-point is i386/i486.

Three years ago, one Delphi developer leaked out Kaspersky source codes to the web. It is true Kasperspy uses Delphi, but the later versions seems to have removed all traces of the Delphi source codes (none of the EXEs are written in Delphi).

Some users have brought Webroot Spy Sweeper (Delphi), SpyBot Search and Destroy (Delphi) but the scanning is very slow.

ABBYY software house (Made in Russia) is made using Visual C++ and uses certain algorithms found in ACM and IEEE papers for their OCR product.

In Russia, the most visible Delphi software developers seem to be one-person or two-persons software development businesses. There are few exceptional cases.

If Delphi was popular, then there would be many jobs for Russian developers in Russia, but it seems that time has passed.

Conclusions
It is hoped that many of the students who graduated from the Universities in Russia do not end up with broken dreams, broken hopes, broken bones (beaten-up after owing money and not paying back) and broken families.

Learning Delphi has brought mixed blessings to developers and former people who have learned Delphi. Most of them have moved on because of job-issues.

Updates to this article

- Most of the things written in this article will fall on deaf-ears and life goes on. The prices will not decrease.

- Last week, Embarcadero introduced a "Starter Edition" of Delphi, but with condition of people who earn US$1000 or less who can buy it. For employers, it makes no difference, the (total cost of Delphi with the 3rd party subscriptions) and cost of employing a Delphi developer is still too high. It would be better said, better to ask the developers to learn based on jobs-requirements advertised.

- Delphi XE was released and IntraWeb requires payment to purchase the ability to host on IIS websites.

- Many of the Delphi components are out-of-reach prices for Delphi developers in Russia. If someone earns US$700 a month, it is very expensive to ask a Russian to buy something that costs US$200.

Thanks
Your reviewer would like to thank many (former) lecturers, many (Delphi) people for their feedback and contributions into writing this article.

Corrections
1) Typographical errors corrected.
2) Update from Torry used Sybase to Torry uses MySQL.

[1] http://edn.embarcadero.com/article/37606
* Not their real names but may sound familiar