XI (doc): IntraWeb 11
When is IW 11 coming? What is planned for IW 11?
We’re still not ready to move to IW 11. IMO there are still too many issues with IW 10. Most of them are around CB being neglected for many years, and Unicode issues caused by Delphi 2009.
The CB stuff I think is mostly caught up. We spent a LOT of time on that.
Why did Unicode Impact IW so much and not other 3P libs?
The Unicode stuff forced a lot of changes, and had a lot more impact than on other VCL libraries because IntraWeb being internet centric has to not just pass “strings” but often encode and decode them. If we simply treated strings as atomic objects as most 3P libs can, then we would be in better shape.
Older Delphi Versions
We also support pre Unicode Delphis and some bugs snuck in as we modified code to support Unicode. This is why some non Unicode Delphi users have also found new bugs since the introduction of Unicode support.
Unicode is a good thing, and IW is better for it, but the impact on the code was not trivial.
The Chinese Bug
We spent a lot of time on the “Chinese bug”. It turned out not to be in IntraWeb, but in VCL. It also can possibly affect other languages besides Chinese as the problem was UTF-8 decoding under certain situations in WebBroker. If you are affected by this bug, please contact CodeGear about a hotfix.
Remaining Major Issues
The remaining issues are mostly more issues surrounding Unicode in corner areas users continue to press into. We are of course continuing to fix them.
Aside from some corner issues around Unicode, IW 10 is pretty solid as it is basically 9 + Unicode + basic Silverlight support. However I think we need to remain in this superstablization phase a bit longer.
I realize some users see this as “stagnation” but I assure you we do have plans for 11. We are also working on CrossTalk which will enhance IW’s abilities.
When we move to 11, we want 10 to be solid enough that from a coding standpoint we can solidly focus on 11 and not be switching back and forth between code bases.
What’s in 11
Everything in 11 is still fluid. We have many ideas, but exactly how many will make it is not determined yet. Here are a few.
CrossTalk of course will be available before IW 11, but it also opens up a lot of possibilities for IW itself as well as IW users.
Using CrossTalk we plan to investigate options for integration with certain features of ASP.NET, including the possibility to deploy an IW application as an unsafe ASP.NET application. As there would be a Delphi DLL involved most servers would require a special permission, but deploying as an ASP.NET application would allow for integration with ASP.NET. It potentially could also greatly simplify deployment as deploying and configuring ISAPI DLLs continues to be a challenging task.
Many many years ago we investigated using Java, ActiveX, and Flash to develop many “super” controls such as grids, combos, etc. For various reasons, each was decided against. We believe Silverlight overcomes the obstacles though and plan to proceed along this path with Silverlight.
Most people do not know it, but IW code actually dates back Delphi 2, circa 1997. Browsers and the Internet have changed a lot as well. The first IW was HTML 3.2 and supported IE 2.0 (or was it 1.0?) and Netscape. This was pre CSS, pre tabbed browsing, and even pre frames!
We’ve also been down the Kylix, Delphi.NET, and even Visual Studio.NET 2003 (Using Delphi.NET) paths. All of these factors have greatly impacted the code. Most of the extra code has long since been removed, but many design decisions remain, as well as code left for compatibility reasons.
We would very much like to make some major changes to certain areas of the code to be more “fresh” for the current state of web development. This however will cause some code breakage, see below.
HTML 5 has some very interesting features, and well before it is official Firefox and IE are expected to support the upcoming standard. Of course we would like to support it, but possibly could IW 11 support only HTML 5?
We’ve discussed this item before. Phones are much more capable than they were a few years ago and most phones using the internet now use at least HTML 3.2. Because of this we again will investigate dropping WAP support to simplify the code base. WAP users don’t fear however, IW 10 will still be maintained, likely indefinitely (see below).
More widely used than WAP, it still accounts for quite a small portion of our users base. No final decision has been made here as of yet.
WAP and HTML 3.2 have been carried forward in IW versions, but aside from a few bug fixes no major enhancements have been needed nor made. We are considering therefore making major changes to IW 11 and allowing it focus on full browsers.
However we consider supporting our users to be a very important thing, and thus potentially giving IW10 special status. Our policy has always been to support the current shipping version. Along with the super stabilization policy, we could continue to support and maintain IW 10 as needed. This would make two existing versions of IW. 10, and post 10. Post 10 being 11 at first, but then later 12, 14, 15, etc.
umPartial works very well and predates AJAX by many years. For many years IW was the only tool to offer such functionality. In addition, umPartial can still do quite a few things AJAX cannot.
However AJAX takes advantage of functionality available in newer browsers, and there are many libraries and controls that can be leveraged. With IW now having AJAX support, it makes sense to consider deprecating umPartial and focusing on AJAX instead.
Code Breakage is a major issue. Its happened in IW before, most notably from 5.1 to 6. We are very hesitant to make any major changes that break code. Such changes have huge impacts on users and prevent users from moving forward.
If we supported 10 as a special version, at least users who could not move forward would not feel abandoned – at least not initially. However the new features would be going into 11 and beyond. This would still put pressure on users to migrate at some point and create a lot of negative feelings with users.
One only has to look at Delphi 7 users versus 2009, or VB 6 versus VB.NET to see the conflicts pending here. Its a very complicated issue, and thus we would like to hear from you.
Stay source code compatible with 10? Break some code? Break everything for the better?