Tuesday, September 4, 2012

A compiler guy leaves

Foreign Correspondent from UK

In a short note, Mr. Barry Kelly had left Embarcadero.

You might see a stone-monkey

How it should be done — the Inca Zuma moment
Last year, the parent company of Embarcadero brought over Novell CrapWare NetWare, that iconic company that dominated networking with their IPX/SPX protocol and Novell NetWare servers. Atlas, Novell placed their bets on console-based static-binding, static-linking with the defunct Watcom C++ compilers while Microsoft focused on GUI-based Windows NT servers.

Novell would have dethroned TCP/IP, NETBIOS, OS/2 LAN Manager, Windows NT and Bunyan Vines with their superior IPX/SPX implementation until open-access TCP/IP became popular due to  per-user, per-server licenses Novell wanted. Novell used to tell how superior their product was compared to everything else. Due to very cost-prohibitive licensing - newer startups - Netscape (now Mozilla FireFox) used to bundle Trumpet WinSock with their Netscape bundle and allowed you dial-up into FTP and WWW servers. AOL UK (also called AOHell or AOYuck), CompServe UK made nice business selling PPP dial-up modem access to the Internet. The rest, was history.

The people at Novell knew about the future — their company was betting on Novell Linux (formerly SuSe Linux) and C# instead of Sun Java for Networking Administration tools. Their cross-platform Java-based Networking admin. tools garnered plenty of negative press reviews that made people shun Novell's products. Novell sponsored Mono, the foundation of non-Microsoft C# framework implementation.

The week Novell take-over was announced, Miguel de Icaza lost his job. Almost all of Mono developers were let go. Icaza's team should have been re-assigned to work on Embarcadero's compiler products.

Maybe there was some mismatch of ideals — open-source was the next generation, closed-source compilers was backwards and behind. Because nobody could see what the compiler did, a language was either blessed or cursed by the back-end toolchain. Presumably, if Embarcadero had more foresight, they would open-source their compiler and IDE, then let people write solutions on-top of it - Thoughts on Embarcadero's business model. Arguably, solutions made with Delphi would let people pay their bills and claw-back the Delphi-advantage from C++, C# and Java.

I have a FireMonkey dream... 
I want this kind of graphics quality for my next Delphi App

One of the biggest licensees of Mono is Unity3D, the spanky game development tools-company with estimated to have more revenue than Embarcadero itself. It would put FireMonkey to shame. Where's textures, meshes and occult culling, light-rays, water-rendering, FBX and correct physics in FireMonkey? They should have based FireMonkey on DirectX 11 and OpenGL instead of DirectX 9 (or DX10). Why is FireMonkey not game-engine quality?

You can easily compare the two companies' forums -  Embarcadero's and Unity3D's - one full of ALM (Ailing, Lamenting & Moaning), complainers and whiners, the other full of games wanting to be released to this world.

Many developers publish Unity3D PC, Mac, iOS and Android games. Internally it uses Mono C# for Android, Mono C# for iOS, Mono C# for PC and Mono C# for Mac. Optionally, games made with Mono is best experienced with Stereo head-sets.

Delphi with latest FireMonkey FMX2, newer this, newer that*, would be the emperor with no clothes on. All the Emperor's MVP advisors were just YES-people.  It took a child to blurt out that the latest EULA was unfair and caused a 180-degrees EULA change.

(* because the full change-list is not published)

Visa, not MasterCard
Around last year, Embarcadero off-shored Delphi to Romania and Russia. The VGScene parts of Delphi to Russia, the compiler parts to people in Romania then laid-off several important people with the compiler development.

Compiler development is hard work. The dream of a 64-bit LLVM-back-end for Delphi (instead of GPL GCC) would be like asking a rag-tag team of people to work like slaves and still be in the same position for the next six years.

Delphi Compiler World Tour
Mr. Barry would have toured the world, obtained multiple visas to USA, Romania, Russia (maybe call it Street Fighter X) and teach compiler internals to the new fresh people. The management could have moved all their compiler guys to a secret country where they can house all their people in one office (HP or Compaq style of management).

It also begets interesting questions - how would a person setup the Delphi Compiler toolchain in his house? Did Barry have physical security, similar to 10 Downing Street where the Prime Minister lives? Why couldn't Barry ask to hire his friends since the Universities in the British London area have a module which focuses heavily on compiler design on their 3rd year of University studies?

Hiring the whole cohort of University grads and Aussie QUT Pascal graduates to make the next generation of Delphi, directed by Miguel de Icaza would have been the right direction.

Mr. Barry's departure comes at a time when things turned south and your correspondent wishes him the best in future.

Cutting corners
Recently, this blog received feedback from Embarcadero ex-employees having dissented that they could not make Kylix and QT work together. The old Borland C++ compiler could not compile QT and caused lot of crashing in Windows, Linux and Mac.

The Mono, GCC compiler optimisations and GPL-based toolchain are way ahead of Delphi's and C++ Builder compiler, but cannot be reproduced without huge amount of effort from the closed-source compiler team. You could copy large amount of GPL codes into Kylix but that would trigger a GPL violation, so the idea was to stop it fully and use another cross-platform solution. They adopted Eugene KSDEV's VGScene, DXScene as their new FireMonkey foundations.The promises (e.g., KSDEV customers receiving a free copy of Delphi) was largely ignored.

In order to get their 64-bit compiler upto par with Microsoft Visual C++, there is allegations of Visual C++ functions run-time disassembly inserted into DCC64. In fact, Delphi x64 even uses Visual C++ x64 object files natively, whereas for ICC (Intel C++ Compiler), GCC you had to prepare the sources to compile with ICC and GCC prior to usage, since OBJ and LIB files were totally different from each compiler.

Another nagging dissent was curious GPL usage in Delphi for Mac's export to Free Pascal. Since it requires FreePascal to export to iOS, any code-contribution to FreePascal (to fix FireMonkey iOS bugs) would have meant Emb. have secretly used FreePascal's sources in their Mac product. Instead, Emb. decided to suspend iOS in favor of another 2 year wait for a working non-GPL compiler.

Anyone waiting for Delphi fixes for iOS, would be in same boat as those waiting for IntraWeb to be successful and Bold for Delphi ... to the point where almost nobody uses it. The people in the Emperor's courtyards continue to play the piper (out of fear for losing their MVP status) and continue to pay the Emperor's tax (for fear of losing updates).

It is also unclear whether Delphi developers live in a yellow submarine - A Sinking Ship or a Submarine?

1 comment:

Bunny said...

Banyan Vines - but thanks for considering us and in the video too!