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

Tuesday, February 1, 2011

You don't MK the customer, Part II

Around the internet, this blog gets mentioned in music-related forums and musician sites.

Your reviewer going to do the opposite. Instead of talking about Delphi, Your reviewer going to put the focus on the musician.

I went and discuss this with a couple of my musician friends and asked for an opinion. Suppose you make a great track and want to get it published. But... the end result does not sound so good or the software to do job does not perform so well... what happens? every day the music does not deliver or get sold, you lose money or do not get paid.

Suppose you make a bad track and doesn't sound so well. You put hours and hours into making the track sound great and things don't go as planned. What do you do? If the guitar gets out-of-tune, you go and tune it..., if the piano gets messed-up, too bad, you get another piano... (and your loss).

Suppose your guitar was out-of-tune or sold with manufacturing defects. Do you go back to the shop and get a refund or at least, a replacement new guitar? What if the store said: No refunds, the thing comes (new) with 101 defects and different from what was advertised? Someone should take a class-action lawsuit against the vendor and there would be mass-recalls (or Total Recall :).

Many musicians are not rich and the people who make music spend heavily on music-related purchases to make good music.

Suppose you go and buy a guitar and get no-refund, the store-owner asks you to shove-it and then goes and call you (names), (curse-words), etc. Would you go back to that store ever again? I would not even go back to that store ever again. Worse, the people related to them go and speak badly about you, and make you look foolish and stupid.

Morale of the Story
If there was a morale in the story, it would be people are transitions to 64-bits and they are looking for a pure 64-bit solution to bypass the 4GB limit and work without problems. Audio files (mixed with video) goes into hours. Try doing "broadcast quality" where you need lot of fidelity, quality, not to mention - hard-disk space and memory-space.

It's a pity that everyone takes side with the software vendors, expecting them to give "loyalty discounts" (no they won't) or pay money on referrals (no they won't), nobody takes the side of the customer who has to suffer bad quality software and put-up with this kind of customer-service and insults.

It's not the customer's loss (who pays for the software?) but the software vendor's loss. It's the customer's fault he brought without "knowing", except that the software vendor went and delete all the bad things on their forum and then left all the nice words there. At the end of the day, business goes on as usual, nothing changes. No good deed goes unpunished.

Oh sure, have you seen a musician mess-up while performing or get into a brawl with a listener? It would be all over YouTube or on FailBlog (or need to "cite CollegeHumor").

In the mean time, that poor musician out there who brought that FL (studio) struggles to make some music and cover his losses. Go ahead, laugh at him... That person would later buy a non-Delphi product that works correctly ... and works with 64-bits and make kick-ass music.

Your reviewer stands up for customers and say enough is enough. You don't do such stupid things to customers...