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