Na blogu Paula Vicka, jednoho ze členů týmu vyvíjejícího jazyk Visual Basic .NET, vyšlo v poslední době několik článků o nové verzi tohoto jazyka - Visual Basic 10. Současná verze 9 přinesla mnoho novinek, jubilejní desítka ale bude v mnohém daleko revolučnější.
Jednou z připravovaných novinek by měly být implicitní konce řádků. Visual Basic nemá céčkovou syntaxi, protože vychází z jazyka BASIC vzniknuvšího v 60. letech, dávno před céčkem, které je až z let sedmdesátých. V céčkových jazycích (C, C#, C++, Java, PHP atd.) se na konci příkazů píší středníky. Basic používá k oddělení příkazů znak konce řádku, tzn. na každém řádku jeden příkaz. Pokud je příkaz moc dlouhý a chcete pokračovat na dalším řádku, můžete na konec řádku napsat znaky mezera a podtržítko, a pak plynule pokračovat na řádku dalším. Pokud chcete naopak nacpat dva příkazy na jeden řádek, oddělíte je dvojtečkou.
Vzhledem k tomu, že tyto případy nenastávají příliš často, připadá mi daleko logičtější psát znaky navíc pouze v případě, když dělám něco výjimečného, než "zbytečné" středníky psát vždy a všude kvůli 1% případů, kdy budu mít moc dlouhý příkaz. Stejně je za 99% středníků v céčku konec řádku a před 95% konců řádků jsou zase středníky.
VB10 má mít ale implicitní konce řádků, to znamená, že sám pozná, jestli příkaz už končí, anebo pokračuje na dalším řádku. Pokud na konci řádku necháte například čárku nebo binární operátor, kompilátor si řekne, že se asi bude pokračovat na dalším řádku. To samé může fungovat, pokud necháte na řádku otevřenou závorku a pokračujete na řádku dalším. Velice pěkné je to u atributů, když chcete v současném VB použít atribut, musíte za něj uvést mezeru a podtržítko, pokud ho píšete na samostatný řádek. Pokud implicitní konce řádků budou, nebude to nutné. Velice užitečné to také bude u dotazů v LINQ, ty bývají dlouhé a je vhodné je strukturovat na více řádků.
Měly by přibýt také automaticky implementované vlastnosti, ty už C# má, a dále pár dalších věcí, které už podle mě nejsou tak zajímavé. Doufám, že se ve VB.NET objeví konstrukce yield return z C#, ta je velice užitečná.
Myšlenka chytrých kompilátorů se mi líbí, nevidím důvod, proč by měl být vývojář nucen striktně dodržovat pravidla, která v mnoha případech život spíše komplikují. Jsem pro to, aby kompilátor tam, kde to jde a kde to není sporné, uhodnul, co programátor chce, a udělal to. Implicitní konce řádků jsou věc, na kterou se opravdu hodně těším. Sekvence znaků mezera podtržítko není právě nejšťastnější a takto půjdou dělit dlouhé příkazy na více řádků i bez ní.