Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2009 23:42:16

george
От:
Зарегистрирован: 2006-06-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Область применения

ибо после boo писать на питоне смысла нет для меня. для меня скорость кода важна, и красота кода. с первым у питона серьезная проблема.



Офлайн

#2 Янв. 13, 2009 00:04:05

NightmareZ
От: Симферополь
Зарегистрирован: 2009-01-08
Сообщения: 40
Репутация: +  0  -
Профиль   Адрес электронной почты  

Область применения

george
ибо после boo писать на питоне смысла нет для меня. для меня скорость кода важна, и красота кода. с первым у питона серьезная проблема.
Почему тогда Boo, а не C#? Что-то я не заметил, что Boo лучше.
Просто, имхо, Python и C# - параллельные вселенные…. а Boo - это обрубок шарпа с синтаксическим сахаром, позаимствованным от питона.



Офлайн

#3 Янв. 13, 2009 00:05:17

cleg
От:
Зарегистрирован: 2006-11-09
Сообщения: 153
Репутация: +  0  -
Профиль   Отправить e-mail  

Область применения

в Воо есть динамическая типизация. что например мне показалось удобным когда я писал СОМ-обертку…



Офлайн

#4 Янв. 13, 2009 01:33:37

NightmareZ
От: Симферополь
Зарегистрирован: 2009-01-08
Сообщения: 40
Репутация: +  0  -
Профиль   Адрес электронной почты  

Область применения

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);
}
}
}



Офлайн

#5 Янв. 13, 2009 02:23:03

george
От:
Зарегистрирован: 2006-06-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Область применения

динамическая типизация появилась только сейчас в шарпе, в бу была изначально (с 2002 г). В бу делегаты описываются почти также как в Питоне, да и благодаря выводу типа (изначально, в шарпе счас тоже фрагменты) все выглядит приятней. Короче питон с поддержкой net шаблонов, делающий ненужным шарп лично для меня. Обрубок - это зря, вполне продуманный и самостоятельный язык. Однако если ты шарпер, может и не стоит лезть в Boo. выигрышь в компактности кода не более 50%, в остальном вряд ли. В boo есть макросы, которых по функционалу нет ни в шарпе ни в немерле. короче на лету можно получать доступ к потрохам компилятора и произвольно переколбашивать читаемый им код.
я это не использую, но если это появилось раньше года на три, то много б времени себе сэкономил. короче шарп бу нагоняет, но и бу развивается довольно неплохо для некоммерческого языка.



Офлайн

#6 Янв. 13, 2009 02:57:35

george
От:
Зарегистрирован: 2006-06-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Область применения

чтобы насчет компактности подтвердить вот твой код на 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. так что не все так просто, как кажется на первый взгляд.



Отредактировано (Янв. 13, 2009 03:21:23)

Офлайн

#7 Янв. 13, 2009 09:43:22

NightmareZ
От: Симферополь
Зарегистрирован: 2009-01-08
Сообщения: 40
Репутация: +  0  -
Профиль   Адрес электронной почты  

Область применения

george
Однако если ты шарпер, может и не стоит лезть в Boo.
Я не могу не лезть. Шило в одном известном месте :)

george
В boo есть макросы, которых по функционалу нет ни в шарпе ни в немерле. короче на лету можно получать доступ к потрохам компилятора и произвольно переколбашивать читаемый им код.
Про макросы не знал. Почитаю. Кста, ссылки на хороший мануал нету? В BooPrimer о макросах не нашёл.

george
еще вот этот код будет работать быстрее чем твой (угадай почему) раза в 2, а если поменять new_lst = на new_lst = (i for i in list if i > 50)
то в 20. так что не все так просто, как кажется на первый взгляд.
Ну я могу в C# массив создать вместо списка. Или new_lst = (,) чем-то принципиально от массива отличается?



Офлайн

#8 Янв. 13, 2009 09:45:16

NightmareZ
От: Симферополь
Зарегистрирован: 2009-01-08
Сообщения: 40
Репутация: +  0  -
Профиль   Адрес электронной почты  

Область применения

Я вообще не говорю, что Boo - плохой язык. Меня смущают лишь две вещи - то, что он мало распространён и то, что у него нет поддержки крупных компаний, как у того же C#.



Офлайн

#9 Янв. 13, 2009 12:07:51

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Область применения

NightmareZ
Про макросы не знал. Почитаю. Кста, ссылки на хороший мануал нету? В BooPrimer о макросах не нашёл.
http://boo.codehaus.org/Syntactic+Macros

PS: я тоже полез Boo смотреть - радует :)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#10 Янв. 13, 2009 14:46:57

NightmareZ
От: Симферополь
Зарегистрирован: 2009-01-08
Сообщения: 40
Репутация: +  0  -
Профиль   Адрес электронной почты  

Область применения

Ну не знаю…. не знаю…. а на практике зачем оно может понадобиться?

Я бы радовался чему-нить наподобие шаблонов из C++ (но не дженерикам).



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version