george
Янв. 12, 2009 23:42:16
ибо после boo писать на питоне смысла нет для меня. для меня скорость кода важна, и красота кода. с первым у питона серьезная проблема.
NightmareZ
Янв. 13, 2009 00:04:05
george
ибо после boo писать на питоне смысла нет для меня. для меня скорость кода важна, и красота кода. с первым у питона серьезная проблема.
Почему тогда Boo, а не C#? Что-то я не заметил, что Boo лучше.
Просто, имхо, Python и C# - параллельные вселенные…. а Boo - это обрубок шарпа с синтаксическим сахаром, позаимствованным от питона.
cleg
Янв. 13, 2009 00:05:17
в Воо есть динамическая типизация. что например мне показалось удобным когда я писал СОМ-обертку…
NightmareZ
Янв. 13, 2009 01:33:37
cleg
в Воо есть динамическая типизация. что например мне показалось удобным когда я писал СОМ-обертку…
В C# тоже есть динамическая типизация:
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var list = new List<int>();
var rnd = new Random(DateTime.Now.Second);
for (int i = 0; i < 10; i++)
list.Add(rnd.Next(100));
var newList = from i in list
where i > 50
select i;
foreach (var n in newList)
Console.WriteLine(n);
}
}
}
george
Янв. 13, 2009 02:23:03
динамическая типизация появилась только сейчас в шарпе, в бу была изначально (с 2002 г). В бу делегаты описываются почти также как в Питоне, да и благодаря выводу типа (изначально, в шарпе счас тоже фрагменты) все выглядит приятней. Короче питон с поддержкой net шаблонов, делающий ненужным шарп лично для меня. Обрубок - это зря, вполне продуманный и самостоятельный язык. Однако если ты шарпер, может и не стоит лезть в Boo. выигрышь в компактности кода не более 50%, в остальном вряд ли. В boo есть макросы, которых по функционалу нет ни в шарпе ни в немерле. короче на лету можно получать доступ к потрохам компилятора и произвольно переколбашивать читаемый им код.
я это не использую, но если это появилось раньше года на три, то много б времени себе сэкономил. короче шарп бу нагоняет, но и бу развивается довольно неплохо для некоммерческого языка.
george
Янв. 13, 2009 02:57:35
чтобы насчет компактности подтвердить вот твой код на boo
rnd = Random(date.Now.Second)
list = map(range(10), {e | rnd.Next(100)} )
new_lst =
print new_lst
хоть посимвольно хоть построчно значительно компактней. но здесь негде развернуться. когда код реально сложный, выигрыш значительно заметней.
еще вот этот код будет работать быстрее чем твой (угадай почему) раза в 2, а если поменять new_lst = на new_lst = (i for i in list if i > 50)
то в 20. так что не все так просто, как кажется на первый взгляд.
NightmareZ
Янв. 13, 2009 09:43:22
george
Однако если ты шарпер, может и не стоит лезть в Boo.
Я не могу не лезть. Шило в одном известном месте :)
george
В boo есть макросы, которых по функционалу нет ни в шарпе ни в немерле. короче на лету можно получать доступ к потрохам компилятора и произвольно переколбашивать читаемый им код.
Про макросы не знал. Почитаю. Кста, ссылки на хороший мануал нету? В BooPrimer о макросах не нашёл.
george
еще вот этот код будет работать быстрее чем твой (угадай почему) раза в 2, а если поменять new_lst = на new_lst = (i for i in list if i > 50)
то в 20. так что не все так просто, как кажется на первый взгляд.
Ну я могу в C# массив создать вместо списка. Или new_lst = (,) чем-то принципиально от массива отличается?
NightmareZ
Янв. 13, 2009 09:45:16
Я вообще не говорю, что Boo - плохой язык. Меня смущают лишь две вещи - то, что он мало распространён и то, что у него нет поддержки крупных компаний, как у того же C#.
PooH
Янв. 13, 2009 12:07:51
NightmareZ
Про макросы не знал. Почитаю. Кста, ссылки на хороший мануал нету? В BooPrimer о макросах не нашёл.
http://boo.codehaus.org/Syntactic+MacrosPS: я тоже полез Boo смотреть - радует :)
NightmareZ
Янв. 13, 2009 14:46:57
Ну не знаю…. не знаю…. а на практике зачем оно может понадобиться?
Я бы радовался чему-нить наподобие шаблонов из C++ (но не дженерикам).