<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>http://blog.marcocantu.com/</id><title>marcocantu.blog</title><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><subtitle>Techie Italian Blogging on Delphi and More</subtitle><generator>GeoAtomService</generator><rights>©2005 Marco Cantù</rights><updated>2013-05-17T10:21:11.290Z</updated><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/marcocantublog" /><feedburner:info uri="marcocantublog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>Of Strings, Immutability, COW, and AnsiStrings</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/59jMsJMJUZM/strings_immutability_cow_ansistrings.html" /><id>http://blog.marcocantu.com/blog/strings_immutability_cow_ansistrings.html</id><published>2013-05-17T10:21:11.290Z</published><updated>2013-05-17T10:21:11.290Z</updated><summary>Not unexpectedly, there is debate in the Delphi community around strings in the NextGen compiler. Here are some (partial) clarifications. </summary><content type="html">
    &lt;p&gt;Not unexpectedly, there is debate in the Delphi community around strings in the NextGen compiler, touching on string immutability, copy-on-write, the loss of the AnsiString type in Delphi's new iOS compiler, and the like. Some sources are:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href="http://delphitools.info/2013/05/13/immutable-strings-in-delphi/"&gt;delphitools.info/2013/05/13/immutable-strings-in-delphi/&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href="https://forums.embarcadero.com/thread.jspa?threadID=87171"&gt;forums.embarcadero.com/thread.jspa&lt;/a&gt; (very long thread)&lt;/li&gt;
      &lt;li&gt;
        &lt;a href="http://blog.synopse.info/post/2013/05/11/Delphi-XE4-NextGen-compiler-is-disapointing"&gt;blog.synopse.info/post/2013/05/11/Delphi-XE4-NextGen-compiler-is-disapointing&lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;Before I start, let me clarify that this blog post is not the result of any internal debate or discussion, so it is not an official company position. It does reflect my understanding of the current scenario and it is a direct reaction, after reading some of the posts above (which do contain a lot of insight and good ideas).&lt;/p&gt;
    &lt;p&gt;Let me start with what I posted as a comment to the first blog entry above: &lt;/p&gt;
    &lt;p style="margin-left: 40px;"&gt;
      &lt;em&gt;Very nice roundup about the features and advantages of strings in Delphi compared to other platforms. I agree on some speed loss compared to FastCode, but mostly because we moved away from assembly (given platform portability is very relevant for Delphi today). Also, TStringBuilder can be faster in the scenarios it beats the native memory manager in terms of pre-allocations, something FastMM4 does pretty well on Windows, the native iOS allocator doesn’t seem so smart doing.&lt;br&gt;&lt;/br&gt;
      &lt;/em&gt;
    &lt;/p&gt;
    &lt;p style="margin-left: 40px;"&gt;
      &lt;em&gt;Stay assured, there is no plan to change anything going forward unless there is a proven advantage. This is particularly true for immutable strings. They could provide some advantage (for example in heavy multi-threading, when managing string fragments, and in other scenarios)… but will also have disadvantages. At this point there is no definitive decisions on this. Strings in the current Delphi iOS compiler are NOT IMMUTABLE, there is only a warning indicating where things might change in the future. Native might change, not will certainly change.&lt;/em&gt;
    &lt;/p&gt;
    &lt;p&gt;The last part is key to the debate. The current implementation of strings is still centered around the COW (Copy-On-Write) mechanism, with some really minor differences. And you can change a string in each of the following ways in Delphi for iOS (aka, our NextGen compiler):&lt;/p&gt;
    &lt;p&gt;
      &lt;em&gt;Delete(S, 1, 2); // not allowed&lt;br&gt;&lt;/br&gt;
Insert(S, 1, 'He'); // not allowed&lt;br&gt;&lt;/br&gt;
S[7] := 'T'; // not allowed&lt;br type="_moz"&gt;&lt;/br&gt;
      &lt;/em&gt;
    &lt;/p&gt;
    &lt;p&gt;I grabbed these three lines from the forum thread. The first and the latter (and their TStringHelper equivalents) are still and will be allowed in the future. The only question is if their performance will stay the same or decrease, which will make sense if most other string operations will become faster. As for the last statement, this triggers a warning in Delphi for iOS (a warning you can disable), indicating a potential future compatibility. This means there is an internal evaluation of truly immutable strings, no decision taken.&lt;/p&gt;
    &lt;p&gt;We more than welcome input, but better if based on some substance. Immutable strings are used in some languages to help the garbage collector, and that's something we don't need (given we don't have and don't plan adding a GC in Delphi). But they are used in other language that break away from the concept of linear strings (string s= array of characters) and use a concept of string fragments (string = tree of immutable string fragments, potentially shared by different strings). Again, this is just a research area, and there is nothing decided. Unless we prove significant advantages, we won't deviate from the current model.&lt;/p&gt;
    &lt;p&gt;So getting back to the thread, at one point someone suggested a petition around 4 requests:&lt;/p&gt;
    &lt;p&gt;
      &lt;em&gt;
        &lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;- the loss of AnsiString (and single byte Chars)&lt;/span&gt;
        &lt;br&gt;&lt;/br&gt;
        &lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;- that strings may become immutable&lt;/span&gt;
        &lt;br style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/br&gt;
        &lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;- that strings are either 1-based or 0-based&lt;/span&gt;
        &lt;br style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/br&gt;
        &lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;- the re-implementation of RTL functions with rather suboptimal code&lt;/span&gt;
      &lt;/em&gt;
    &lt;/p&gt;
    &lt;p&gt;Let me comment in the reverse order:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;Improving RTL functions is always a goal. honestly, with fewer RTL functions (and fewer string types) it becomes easier to focus on those.&lt;/li&gt;
      &lt;li&gt;For now, 1-based or 0-based is just a local compiler option, not sure if the request is to keep it this way...&lt;/li&gt;
      &lt;li&gt;Immutability, as described above, is a potential future, which would be implemented only if there is a proven advantage&lt;/li&gt;
      &lt;li&gt;The loss of AnsiString is the most controversial issue. The problem is that it is also the loss of UTF8String. And of AnsiChar. And of using pointers to directly manage character buffers. Which is not really lost, because this is what we are doing internally and suggesting externally. I do understand the request, but it seems to have different implications for different people (and string formats). Optimizing for English language is not a primary goal, as Delphi is used a lot around the world. Improving the management of &lt;em&gt;raw dynamic arrays of bytes storing characters&lt;/em&gt; is certainly on the table. &lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;Two more (short) comments related with other complains. &lt;/p&gt;
    &lt;p&gt;The first is around the fact we are supposedly "dumbing down" the language or making it "Java-like". I really disagree this is the case. Adding features shared by many modern languages doesn't imply dumbing down, but might have the effect of making the language easier to learn and use. Letting the power users go ahead with all the tricks they know of. Cleaning up the large collection of string types goes in this direction. The fact a type is not native implies that an operation requires a function call rather than an internal (magic) function call, but I don't see a huge difference in using a record with methods versus a native type, for any complex operation.&lt;/p&gt;
    &lt;p&gt;The second is the idea that we should help maintaining the code on very old versions of Delphi. This is quite debatable. We are adding language features across compilers (Delphi ships with 5 compilers today) for platform cross-platform compatibility. Worrying about how to write Delphi code that shines today and still works on Delphi 6 (a twelve years old development tool) would be like asking Microsoft to add WinRT support in Visual Basic 6.&lt;/p&gt;
    &lt;p&gt;Now having said this we are open to feedback, particularly constructive feedback and suggestions. And would someone want to start an open source project to implement a few cross-platform Delphi string types (AnsiString, UTF8String), I'll be willing to contribute.&lt;/p&gt;
    &lt;p&gt; &lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/59jMsJMJUZM" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/strings_immutability_cow_ansistrings.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>Italian Delphi Day 2013</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/oT55thj6r58/italian_delphi_day_2013.html" /><id>http://blog.marcocantu.com/blog/italian_delphi_day_2013.html</id><published>2013-05-17T08:18:43.025Z</published><updated>2013-05-17T08:18:43.025Z</updated><summary>On June 6th there will be the 12th edition of the Italian Delphi Day, featuring local and international speakers.</summary><content type="html">
    &lt;p&gt;On &lt;strong&gt;June 6th&lt;/strong&gt; there will be the 12th edition of the &lt;strong&gt;Italian Delphi Day&lt;/strong&gt;, featuring local and international speakers, including myself as Delphi PM and Bruno Fierens of TMS. Beside conference style presentations, the day will see roundtable discussions, showcases, and lots of Q&amp;A sessions, covering all Delphi things, form iOS to databases, from web development to 3D user interfaces. The day before the event has some &lt;strong&gt;pre-conference tutorials&lt;/strong&gt;, 4 seminars in 2 parallel tracks, in which Andrea Magni and Paolo Rossi will cover some of the most recent features of Delphi (FireDAC, iOS, Language changes, Live Bindings).  &lt;/p&gt;
    &lt;p&gt;All Italian developers are invited to the &lt;em&gt;largest annual gathering of Delphi developers&lt;/em&gt;, a full day devoted to the product produced as an independent event by Wintech Italia, with the help of a few sponsors. After organizing the event for many years, I'm now a guest speaker, and will cover the present and future of Delphi. Detailed information and sign up at:&lt;/p&gt;
    &lt;p style="text-align: center;"&gt;
      &lt;a href="http://www.delphiday.it"&gt;
        &lt;strong&gt;www.delphiday.it&lt;/strong&gt;
      &lt;/a&gt;
    &lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/oT55thj6r58" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/italian_delphi_day_2013.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>XE4 Articles, Comments, Intelli-J, and More</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/F-IzIP634fk/xe4_articles_comments.html" /><id>http://blog.marcocantu.com/blog/xe4_articles_comments.html</id><published>2013-05-16T13:52:11.390Z</published><updated>2013-05-16T13:53:19.768Z</updated><summary>Couple of links about XE4 articles and comments.  Plus my initial take on Google moving away from Eclipse. </summary><content type="html">
    &lt;p&gt;
      &lt;content xmlns:gxi="http://geode.it/gxi/2.0/"&gt;
        &lt;p&gt;I saw a very interesting article on ZDNet about a real case of an Australian company in the medical field. You can read the article, with extensive #34es from &lt;a href="http://www.malcolmgroves.com/blog/"&gt;Malcolm Groves&lt;/a&gt;, at &lt;a href="http://www.zdnet.com/pascal-still-an-advantage-for-some-ios-android-developers-7000014743/"&gt;www.zdnet.com/pascal-still-an-advantage-for-some-ios-android-developers-7000014743/&lt;/a&gt;. I also witnessed a few companies trying to switch away from Delphi and realizing this is much more difficult than they had anticipated, because despite great marketing, most other development tools have their own shortcomings. Now, while migrating to Unicode or mobile requires you to have a second look to your code, a lot of it moves over quite seamlessly, including database access, and more.&lt;/p&gt;
        &lt;p&gt;Speaking of other tools, I think Eclipse received a significant blow yesterday by the announcement of Google transitioning their "primary" Android IDE from it to Intelli-J. This is a very nice Java tool, with a free community edition and a paid version including high-end features. I guess that when some of our users claim all IDEs should be free these days, we have a counterpoint (honestly they do have lower prices, but they are selling "only" an IDE, while we have compilers and libraries on top of it).&lt;/p&gt;
        &lt;p&gt;In terms of comments, we found a very nice one from Wilfred Olouch on this &lt;a href="http://blogs.embarcadero.com/davidi/2013/05/14/42692"&gt;David I blog post&lt;/a&gt; on iOS support in Delphi XE4 vs. XE2 (which is also worth reading), answering to why a developers should pay for an IDE to build iOS apps, when xCode is free from Apple:&lt;/p&gt;
        &lt;p style="margin-left: 40px;"&gt;
          &lt;em&gt;I can think of three reasons that apply to me and might to you as well:&lt;br&gt;&lt;/br&gt;
(1) I already know the Delphi language and prefer it to Objective C&lt;br&gt;&lt;/br&gt;
(2) The drop component / double-click / code behind model is easier than the X-Code inlet/outlet, etc model&lt;br&gt;&lt;/br&gt;
(3) when FireMonkey for Android ships, there will be no X-code for Android; your app in Delphi will cross-compile.&lt;/em&gt;
        &lt;/p&gt;
        &lt;p&gt;Three points I fully agree with, thanks for the coincise summary, Wilfred.&lt;/p&gt;
      &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/F-IzIP634fk" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/xe4_articles_comments.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>Delphi XE4 IDE videos by José León</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/tserGPT36YQ/delphi_xe4_ide_joseleon.html" /><id>http://blog.marcocantu.com/blog/delphi_xe4_ide_joseleon.html</id><published>2013-05-14T20:39:47.974Z</published><updated>2013-05-14T20:39:47.974Z</updated><summary>José León has been posting some in depth videos about the changes in the Delphi IDE to support iOS development (and not only that) in XE4.</summary><content type="html">
    &lt;p&gt;José León has been posting some in depth videos about the changes in the Delphi IDE to support iOS development (and not only that) in XE4.&lt;/p&gt;
    &lt;p&gt;The complete series is on his blog at &lt;a href="http://joseleon.es"&gt;joseleon.es&lt;/a&gt;. Specifically the first three videos were published in &lt;a href="http://joseleon.es/?m=201304"&gt;April&lt;/a&gt;, while there have been 6 more already in &lt;a href="http://joseleon.es/?m=201305"&gt;May&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;This is the first one, as an example (and a very nice one):&lt;/p&gt;
    &lt;p&gt;
      &lt;iframe width="640" height="360" src="http://www.youtube.com/embed/zWxUvQFl7SM?feature=player_embedded" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;
    &lt;/p&gt;
    &lt;p&gt;Stay tuned to José blog for more about the RAD Studio IDE.&lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/tserGPT36YQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/delphi_xe4_ide_joseleon.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>IBLite, Free InterBase for iOS</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/qrhs9XOdoOE/iblite_free_interbase_ios.html" /><id>http://blog.marcocantu.com/blog/iblite_free_interbase_ios.html</id><published>2013-05-09T09:14:11.212Z</published><updated>2013-05-09T09:14:11.212Z</updated><summary>Embarcadero has formally announced IBLite, the free version of IB ToGo for iOS, already shipping in RAD Studio XE4</summary><content type="html">
    &lt;p&gt;Embarcadero has formally announced IBLite, the free version of IB ToGo for iOS, already shipping in RAD Studio XE4. You can read the announcement at &lt;a href="http://edn.embarcadero.com/article/43128"&gt;edn.embarcadero.com/article/43128&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;As you might know, &lt;strong&gt;IBToGo&lt;/strong&gt; is a DLL-based or in-process version of InterBase, requiring no deployment and giving developers access to the same InterBase GDB files and almost all of the same features of the server version of the RDBMS. Being in-process only an application at a time can use the specific database file, but beside that features are complete and include full transactions support and concurrent access by multiple threads of the same application. Another notable feature IBToGo shares with the full database is strong encryption support. Now this database engine has been available also on iOS: in this case you bind the library to your app executable, given dynamic libraries cannot be used on iOS. Delphi XE4 has full support for this, right in the box. The same library, anyway can also be used to connect to a full InterBase server.&lt;/p&gt;
    &lt;p&gt;The second part of the announcement, even more relevant, is that there is a new version of this in-process engine called &lt;strong&gt;IBLite&lt;/strong&gt; and currently available only for iOS. This is completely free and can be used in free and commercial apps, with some limitations on database size and the lack on encryption support. Again, this is fully supported in Delphi XE4 for iOS, in the same way of IB ToGo. In fact, there is only one library and you get one behavior or the other depending on the license file you deploy along with the application. Notice, you have to log on Embarcadero web site to ask for that licence file: instructions are in the email with the Delphi or RAD Studio license.&lt;/p&gt;
    &lt;p&gt;Finally, &lt;strong&gt;why&lt;/strong&gt; do you want to do this, adding extra files to your deployment rather than using the built-in SQLite engine? Beside the fact this is totally up to you, given Delphi for iOS has also full integrated support for SQLite, the advantages are in the file compatibility with InterBase, the extensive feature set, the quality of the SQL engine, and its speed... and the ability to switch to an encrypted database (you don't want to have plain sensitive data on a portable device, do you?) with a license change and no modification in your app code.&lt;/p&gt;
    &lt;p&gt;Delphi for iOS supports IBToGo and IBLite via dbExpress, FireDAC, and IBX. And you get a free developer license of the InterBase server, now part of the RAD Studio installation.&lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/qrhs9XOdoOE" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/iblite_free_interbase_ios.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>XE4 DataBase Components Updates and the Reviewers Guide</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/dh7OBra30QU/xe4_database_components_updates_rguide.html" /><id>http://blog.marcocantu.com/blog/xe4_database_components_updates_rguide.html</id><published>2013-05-03T20:17:41.426Z</published><updated>2013-05-03T20:17:41.426Z</updated><summary> Two hot fixes for XE4: IBX and a FireDAC update. Plus the reviewers guide.</summary><content type="html">
    &lt;p&gt;There are two hot fixes available for the database side of XE4:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;IBX (Interbase Express) is now available for registered users at &lt;a href="http://cc.embarcadero.com/item/29408"&gt;cc.embarcadero.com/item/29408&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;The FireDAC Enterprise download for XE4 (if you are entitled to it) is at &lt;a href="http://cc.embarcadero.com/item/29368"&gt;cc.embarcadero.com/item/29368&lt;/a&gt;. It has been updated from the original version, so you might want to download it again.&lt;/li&gt;
      &lt;li&gt;The FireDAC Professional for Mobile, similarly, is at &lt;a href="http://cc.embarcadero.com/item/29410"&gt;cc.embarcadero.com/item/29410&lt;/a&gt; for registered users and has been updated since the original version.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;This is the link to the reviewers guide, a non-technical introduction to Delphi for iOS: &lt;a href="http://edn.embarcadero.com/article/43099"&gt;edn.embarcadero.com/article/43099&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt; &lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/dh7OBra30QU" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/xe4_database_components_updates_rguide.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>Assorted Delphi XE4 Links</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/lOnFQRfnuc4/assorted_delphixe4_links.html" /><id>http://blog.marcocantu.com/blog/assorted_delphixe4_links.html</id><published>2013-04-24T17:06:04.439Z</published><updated>2013-04-24T17:06:04.439Z</updated><summary>I've been busy with launch webinar and other activities, but also spent some time online. Here is a collection of links related with Delphi XE4. </summary><content type="html">
    &lt;p&gt;I've been busy with launch webinar and other activities, but I've also spent some time online. Here is a collection of links related with Delphi XE4:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;JT on True Native at &lt;a href="http://blogs.embarcadero.com/jtembarcadero/2013/04/18/true-native/"&gt;blogs.embarcadero.com/jtembarcadero/2013/04/18/true-native/&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;Long long post with many technical details by Brian Long at &lt;a href="http://blog.blong.com/2013/04/delphi-for-ios-aka-delphi-xe4-aka-rad.html"&gt;blog.blong.com/2013/04/delphi-for-ios-aka-delphi-xe4-aka-rad.html&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;I know someone at Embarcadero will be unhappy &lt;g&gt; but there is a FishFact for iOS at &lt;a href="https://www.youtube.com/watch?feature=player_embedded&amp;amp;v=6rDyD7k24Z0"&gt;https://www.youtube.com/watch?feature=player_embedded&amp;v=6rDyD7k24Z0&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;Very nice tip about persistent setting in Delphi iOS by David Clegg at &lt;a href="http://edn.embarcadero.com/article/43065"&gt;edn.embarcadero.com/article/43065&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;Jose Leon on what's new in the IDE at &lt;a href="http://joseleon.es/?p=165"&gt;joseleon.es/&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;Jens Fudge on ARC and other language changes at &lt;a href="http://delphi.exotech.dk/#post18"&gt;delphi.exotech.dk/#post18&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;Long long list of QC fixes at &lt;a href="http://edn.embarcadero.com/article/43068"&gt;edn.embarcadero.com/article/43068&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;Sarina blogged about &lt;a href="http://blogs.embarcadero.com/sarinadupont/2013/04/23/creating-a-segmented-control-for-ios-in-xe4/"&gt;segmented controls for iOS&lt;/a&gt; and &lt;a href="http://blogs.embarcadero.com/sarinadupont/2013/04/23/adding-custom-app-icons-and-setting-supported-orientations/"&gt;custom icons and orientations&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;All download links are here, &lt;a href="http://delphi-insider.blogspot.com/2013/04/download-links-for-delphi-xe4-cbuilder.html"&gt;delphi-insider.blogspot.com/2013/04/download-links-for-delphi-xe4-cbuilder.html&lt;/a&gt; (very useful, Tim)&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;That's all for now, more will come as information and technical tips become available.&lt;/p&gt;
    &lt;p&gt; &lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/lOnFQRfnuc4" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/assorted_delphixe4_links.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>My Delphi Podcast Interview</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/Pm-XXpQRa_k/delphi_podcast_52.html" /><id>http://blog.marcocantu.com/blog/delphi_podcast_52.html</id><published>2013-04-24T08:04:54.334Z</published><updated>2013-04-24T08:04:54.334Z</updated><summary>I was interviewed by Jim McKeeth for a new episode of the Delphi Podcast.</summary><content type="html">
    &lt;p&gt;I was interviewed by Jim McKeeth for a new episode of the Delphi Podcast. The first good news here is that the podcast is coming back after quite some time, kudos to Jim for that. The second news is I was interviewed for it, and spent quite some time chatting about Delphi in general, Delphi for iOS in particular, future plans for the product, my own personal projects including books, and so on.&lt;/p&gt;
    &lt;p&gt;Listen to or download from at &lt;a href="http://delphi.org/2013/04/52-delphi-xe4-for-ios/"&gt;http://delphi.org/2013/04/52-delphi-xe4-for-ios/&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;PS. There is still time to register for today's Delphi XE4 Launch Webinar at &lt;a href="http://embt.co/RADXE4PAS"&gt;embt.co/RADXE4PAS&lt;/a&gt;. I'll be talking about language changes and database support. JT and Sarina will cover all other areas of the product. And I'll be online to answer questions at 3pm European time today (6 am pacific), 8 pm European time (11 am pacific).&lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/Pm-XXpQRa_k" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/delphi_podcast_52.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>Delphi Language for Mobile Development Paper</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/eBUR9W0qmR4/delphi_language_mobile_wp.html" /><id>http://blog.marcocantu.com/blog/delphi_language_mobile_wp.html</id><published>2013-04-22T16:13:50.155Z</published><updated>2013-04-22T16:13:50.155Z</updated><summary>My Delphi Language for Mobile Development white paper is now available as a free download.</summary><content type="html">
    &lt;p&gt;I wrote a 40 pages technical white paper covering all of the language changes in XE4 for mobile development (tied to the new ARM LLVM-based Delphi compiler). The document covers the reasons for the changes (technical and not), covers these language changes in detail, and offers best practices for keeping your code compatible with both the desktop and mobile compilers.&lt;/p&gt;
    &lt;p&gt;I might blog sections from the paper in the coming weeks, but I recommend getting the free PDF (basically this is &lt;strong&gt;
        &lt;em&gt;a short book I wrote&lt;/em&gt;
      &lt;/strong&gt; as part of my job at Embarcadero), you can get the PDF at &lt;a href="http://www.embarcadero.com/resources/white-papers/application-development"&gt;http://www.embarcadero.com/resources/white-papers/application-development&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;Here is the Table of Contents (which is not in the document itself):&lt;/p&gt;
    &lt;p&gt;1. A NEW COMPILER ARCHITECTURE&lt;br&gt;&lt;/br&gt;
1.1: Introducing LLVM&lt;br&gt;&lt;/br&gt;
1.2: Delphi and LLVM&lt;br&gt;&lt;/br&gt;
1.3: Why Changes in the Delphi Language?&lt;br&gt;&lt;/br&gt;
1.4: What Stays the Same?&lt;br&gt;&lt;/br&gt;
1.5 The Delphi Compilers in XE4&lt;/p&gt;
    &lt;p&gt;2. THE STRING TYPE&lt;br&gt;&lt;/br&gt;
2.1: Only One String Type&lt;br&gt;&lt;/br&gt;
2.2: Reference-Counted Strings&lt;br&gt;&lt;/br&gt;
2.3: Copy-On-Write and Immutable Strings&lt;br&gt;&lt;/br&gt;
2.4: Using the TStringBuilder class&lt;br&gt;&lt;/br&gt;
2.5: Zero-Based Access&lt;br&gt;&lt;/br&gt;
2.6: Using the TStringHelper Intrinsic Type Helper&lt;br&gt;&lt;/br&gt;
2.7: Managing One-Byte Strings&lt;/p&gt;
    &lt;p&gt;
      &lt;br&gt;&lt;/br&gt;
3. AUTOMATIC REFERENCE COUNTING&lt;br&gt;&lt;/br&gt;
3.1: ARC Coding Style&lt;br&gt;&lt;/br&gt;
3.2: The Free and DisposeOf methods under ARC&lt;br&gt;&lt;/br&gt;
3.3: Weak References&lt;br&gt;&lt;/br&gt;
3.4 Checking for Memory Problems&lt;br&gt;&lt;/br&gt;
3.5: The Unsafe Attribute&lt;br&gt;&lt;/br&gt;
3.6 Low-Level Reference Counting Operations&lt;br&gt;&lt;/br&gt;
3.7 Summary of TObject’s Construction and Destruction Methods under ARC&lt;br&gt;&lt;/br&gt;
3.8: Bonus Feature: Operator Overloading for Classes&lt;br&gt;&lt;/br&gt;
3.9: Mixing Interfaces and Classes&lt;/p&gt;
    &lt;p&gt;
      &lt;br&gt;&lt;/br&gt;
4. OTHER LANGUAGE CHANGES&lt;/p&gt;
    &lt;p&gt;5. RTL CONSIDERATIONS&lt;br&gt;&lt;/br&gt;
5.1: RTL and Cross Platform&lt;br&gt;&lt;/br&gt;
5.2: File Access&lt;br&gt;&lt;/br&gt;
5.3 Replacing String Lists With a Generic Dictionary&lt;br&gt;&lt;/br&gt;
5.4: Libraries and Packages&lt;/p&gt;
    &lt;p&gt;6. CONCLUSION&lt;br&gt;&lt;/br&gt;
 &lt;/p&gt;
    &lt;p&gt;Hope you like it. Feel free to ask for more information here or (even better) email me. The plan is to update the document in the coming months.&lt;/p&gt;
    &lt;p&gt; &lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/eBUR9W0qmR4" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/delphi_language_mobile_wp.html</feedburner:origLink></entry><entry><author><name>marcocantu</name><uri>http://www.marcocantu.com</uri></author><title>Delphi XE4 Is Available</title><link href="http://feedproxy.google.com/~r/marcocantublog/~3/9iyOUgE9bZo/delphi_xe4_available_today.html" /><id>http://blog.marcocantu.com/blog/delphi_xe4_available_today.html</id><published>2013-04-22T15:31:30.092Z</published><updated>2013-04-22T15:31:30.092Z</updated><summary>Delphi XE4 is available, both the trial version and the release product. Info, announcement, webinar, code snippets, videos, and much, much more.</summary><content type="html">
    &lt;p&gt;As of today (a couple of hours ago) &lt;strong&gt;Delphi XE4 is available&lt;/strong&gt;. This is a very significant new version of Delphi, since it adds to Windows and Mac development the announced iOS ARM compiler and the complete support for the iOS platform (RTL, FireMonkey, Indy, Database access, DataSnap, full development and deployment to simulator and device from the Delphi IDE...)&lt;/p&gt;
    &lt;p&gt;The &lt;strong&gt;product pages&lt;/strong&gt; are available starting from &lt;a href="http://www.embarcadero.com/products/delphi"&gt;http://www.embarcadero.com/products/delphi&lt;/a&gt; and also &lt;a href="http://www.embarcadero.com/products/rad-studio"&gt;http://www.embarcadero.com/products/rad-studio&lt;/a&gt;. Notice that RAD Studio invariably includes mobile support, while Delphi has it by default only in the Enterprise version and above. Users of the Professional version can buy it as an add-on. On the other hand, Prism is not part of RAD Studio any more. The formal press announcement has been blogged also by Tim at &lt;a href="http://delphi-insider.blogspot.nl/2013/04/announcing-rad-studio-xe4-delphi-xe4.html"&gt;http://delphi-insider.blogspot.nl/2013/04/announcing-rad-studio-xe4-delphi-xe4.html&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;Speaking of &lt;strong&gt;versions and offers&lt;/strong&gt;, there is a 10% discount for the first month; we highly recommend buying maintenance and support; there is a really minimal fee to move up to XE4 Professional from XE3 Professional (to which you can add the maintenance, the iOS support, and the related maintenance). Embarcadero is moving to more frequent releases than in the past, which is why maintenance is always recommended (even on the plain Professional version). If you are already under maintenance, licences are being sent and you should receive yours within a few days.&lt;/p&gt;
    &lt;p&gt;On maintenance, you can read &lt;strong&gt;Tony's announcement&lt;/strong&gt; &lt;a href="http://blogs.embarcadero.com/tonydelalama/2013/04/22/today-we-honor-you-the-app-developer/"&gt;http://blogs.embarcadero.com/tonydelalama/2013/04/22/today-we-honor-you-the-app-developer/&lt;/a&gt; about "the first mayor release not in September" and his dedication to "the miracle worker who is asked to achieve greatness on a day to day basis" (that is, our customers).&lt;/p&gt;
    &lt;p&gt;Both the trial version and the release product are available today. For the trial there is a standard install, but also an AppWave "&lt;em&gt;instant&lt;/em&gt;" trial. With "instant" we mean it takes minutes to have it up and running, rather than hours. I recommend you try it out, also because it leaves your system un-altered once you remove it. An &lt;strong&gt;instant trial&lt;/strong&gt; FAQ is available at &lt;a href="http://edn.embarcadero.com/article/43067"&gt;http://edn.embarcadero.com/article/43067&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;The &lt;strong&gt;announcement webinar&lt;/strong&gt; will be on Wednesday the 24th (which reminds me I have to finish preparing my section). Sign up at &lt;a href="http://forms.embarcadero.com/forms/AMUSCA1304RADStudioLaunchWeb4-24"&gt;http://forms.embarcadero.com/forms/AMUSCA1304RADStudioLaunchWeb4-24&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;We are releasing the product with a &lt;strong&gt;tutorial&lt;/strong&gt; on iOS development (see &lt;a href="http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorials:_Delphi_iOS_Application_Development"&gt;http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorials:_Delphi_iOS_Application_Development&lt;/a&gt;) and quite a few &lt;strong&gt;videos&lt;/strong&gt;, starting with those at &lt;a href="http://www.embarcadero.com/products/delphi/product-videos"&gt;http://www.embarcadero.com/products/delphi/product-videos&lt;/a&gt;. The product "welcome" page has been replaced by default with documentation, short demos called "code snippets" and related videos.&lt;/p&gt;
    &lt;p&gt;There is much, much more, but if I have sign off this blog post. More will come, very shortly.&lt;/p&gt;
    &lt;p&gt;
      &lt;em&gt;PS: I told you, 2013 is going to be a great year for Delphi&lt;/em&gt;
    &lt;/p&gt;
  &lt;img src="http://feeds.feedburner.com/~r/marcocantublog/~4/9iyOUgE9bZo" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.marcocantu.com/blog/delphi_xe4_available_today.html</feedburner:origLink></entry></feed>
