В очередной раз чертыхнувшись решил поделиться причиной этого чертыхания с народом.
А чертыхнулся я по банальной причине...
Выдался свободный день и я сел за реструктуризатор БД для Януса. Код там в общем-то довольно простой, но объемный. Ну, то что нехватает метапрограммирования — это как бы само собой . Но вот то что, мне будет нехватать таких банальных вещей как кортежи (tuples), я даже подумать не мог!!!
А тем не мнее я раз двадцать уже чертыхнулся выбирая другие, и смею заметить, куда более не удобные и громоздкие решения вместо того, чтобы возвратить из функции кортеж! Причем иногда я плевал и создавал временные классы-пары. Думал сделать дженерик-класс Tuple<T1, T2>, но поглядев на читаемость, а вернее не читаемость, награмождений из:
плюнул и создал специализированную пару... На четверки уже не решился.
Причем самое противное, что анонимные типы из превью C# 3.0 меня не выручили бы. Мне нужно возвращать кортежи из функций, а этого то создатели C# 3.0 и не предусмотрели. И это при том, что драли идею они конечно же с функциональных языков.
В общем, понять это нельзя. Такое ощущение, что все кто претендует на криативность ходят "своими" путями просто из приципе.
ЗЫ
Кто бы мог подумать год назад, что я буду задумываться над тем, что неплохо было бы, чтобы МС выгнал к чертям Хейгельбергов и Саттеров и набрал поляков-студентов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Как думаете что мне больше всего нехватает в C# из Nemer
VladD2,
> нехватать таких банальных вещей как кортежи (tuples), я даже подумать не мог!!! > > <...> > > Кто бы мог подумать год назад, что я буду задумываться над тем, что неплохо было бы, чтобы МС выгнал к чертям Хейгельбергов и Саттеров и набрал поляков-студентов.
А Саттер-то тут причем? Да и в C++ tuples вполне реализуются на уровне библиотек...
Posted via RSDN NNTP Server 2.0
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re: Как думаете что мне больше всего нехватает в C# из Nemer
Здравствуйте, VladD2, Вы писали:
VD>Кто бы мог подумать год назад, что я буду задумываться над тем, что неплохо было бы, чтобы МС выгнал к чертям Хейгельбергов и Саттеров и набрал поляков-студентов.
Спорим на ящик пива, через год-два ты будешь точно так же бухтеть на "поляков-студентов". Стоит не так, висит кривовато... Да ты, брат, эстэт, едрён-батон.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Как думаете что мне больше всего нехватает в C# из Nemer
VD>Кто бы мог подумать год назад, что я буду задумываться над тем, что неплохо было бы, чтобы МС выгнал к чертям Хейгельбергов и Саттеров и набрал поляков-студентов.
Кто бы мог подумать? Думали многие читатели твоих фанатичных дифирамбов C#
Не со зла говорю, просто так оно и есть.
Re: Как думаете что мне больше всего нехватает в C# из Nemer
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>А Саттер-то тут причем?
Инструкция для тех у кого плохо с юмором. Если сзади высказывания стоит смайлик, то это шутка.
Саттер попался под руку просто потому-что мужик с именем. Проблема в том, что даже ворох именитых людей не способны оградить МС от хождения по весьма странным путям.
ПК> Да и в C++ tuples вполне реализуются на уровне библиотек...
Паш, ты издевашся? Такую грязь я и на C# напишу за 5 минут!
Но поглядев на такое я лучше выбиру другие пути. А имей я в своем распоряжении кортежи как в Нэмерле я выбрал бы их. И код получился чистым, простым и удобным в поддержке.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, McSeem2, Вы писали:
MS>Спорим на ящик пива, через год-два ты будешь точно так же бухтеть на "поляков-студентов". Стоит не так, висит кривовато... Да ты, брат, эстэт, едрён-батон.
С удовольствием бы бухтел на поляков.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как думаете что мне больше всего нехватает в C# из Ne
VD>Паш, ты издевашся? Такую грязь я и на C# напишу за 5 минут!
Это как раз ерунда. Можно пережить. А вот это уже с трудом:
int i = get<0>(t); i = t.get<0>(); // okint j = get<0>(ct); // ok
get<0>(t) = 5; // ok
get<0>(ct) = 5; // error, can't assign to const
...
double e = get<1>(t); // ok
get<1>(t) = 3.14; // ok
get<2>(t) = A(); // error, can't assign to const
A aa = get<3>(t); // error: index out of bounds
... << RSDN@Home 1.2.0 alpha rev. 646 on Windows XP 5.1.2600.131072>>
Собственно, чтобы было понятно. Вот пример код на Nemerle:
// Формируем строку формата "str" и список аргуменов (выражений в них подсавляемых).
def (str, args, _) = exprs.FoldRight(("", [], 0), fun(expr, accumulator)
{
// Выделяем из кортежа отдельные значения
// str - формируемая строка форамата.
// args - формируемый список выражений параметров.
// i - счетчик количества параметров.
def (str, args, i) = accumulator;
def x = expr.ToString(); // Преобразуем текущее выражение в строку.
// Функция Unquot(s) убирает обрамляющие ковычки из строки.
def Unquot(s) { s.Substring(1).Substring(0, s.Length - 2) }
// AddTwiceBraces(s) удваиват знаки "{" и "}".
def AddTwiceBraces(s) { s.Replace("{", "{{").Replace("}", "}}") }
if (x.Length > 0)
{
// Если стока начинается с ", то это просто подстрока которую нужно
// обработать и добавить в строку формата.if (x[0] == '"')
(str + AddTwiceBraces(Unquot(x)), args, i)
// иначе это "встроеное" подвыражение выделенное из строки.
// Для каждого такого подвыражения нужно добавить с форматную строку
// тег вида {x} где x - это номер подвыражения, а так же добавить выражение
// в список выражений которые в посделствии будут формировать параметры.else
(str + "{" + i.ToString() + "}", expr :: args, i + 1)
}
else// Если строка пуста, то ничего не делаем.
accumulator
});
попробуй переписать его на С++ не заменяя рекурсию на цикл и ты поймешь насколько неудобна эмуляция кортежей.
Кстати, надо еще учитывать то, что кортеж в Нэмерле можно передавать в функцию вместо ее параметров. Так вызовы:
F(1, "text", 1.2);
и
def tuple1 = (1, "text", 1.2);
F(tuple1);
аналогичны.
Это позволяет описывать функции в терминах двух тюплов. Первый описывает возвращаемое значени, а второй параметры.
Таким образом можно рассматривать функцию как всегда принимающую один параметр и возвращающую одно значение. Это делает язык очень выразительным, а его концепции очень простыми.
Вот это я называю отличным дизайном!
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, AndrewVK, Вы писали:
VD>>Паш, ты издевашся? Такую грязь я и на C# напишу за 5 минут!
AVK>Это как раз ерунда. Можно пережить.
Тебе может и ерунда. А я лично терпеть такую грязь в своем коде не намерян.
AVK>А вот это уже с трудом: AVK>
AVK>int i = get<0>(t); i = t.get<0>(); // ok
AVK>int j = get<0>(ct); // ok
AVK>get<0>(t) = 5; // ok
AVK>get<0>(ct) = 5; // error, can't assign to const
AVK> ...
AVK>double e = get<1>(t); // ok
AVK>get<1>(t) = 3.14; // ok
AVK>get<2>(t) = A(); // error, can't assign to const
AVK>A aa = get<3>(t); // error: index out of bounds
AVK>
+1
Без поддержки языка кортежи к сожалению выглядят неуклюже.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как думаете что мне больше всего нехватает в C# из Ne
> Это как раз ерунда. Можно пережить. А вот это уже с трудом: >
> int i = get<0>(t); i = t.get<0>(); // ok
> int j = get<0>(ct); // ok
> get<0>(t) = 5; // ok
> get<0>(ct) = 5; // error, can't assign to const
> ...
> double e = get<1>(t); // ok
> get<1>(t) = 3.14; // ok
> get<2>(t) = A(); // error, can't assign to const
> A aa = get<3>(t); // error: index out of bounds
>
А здесь что не так?
Posted via RSDN NNTP Server 2.0
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[3]: Как думаете что мне больше всего нехватает в C# из Ne
AndrewVK,
> ПК> в C++ tuples вполне реализуются на уровне библиотек... > > t.get<0> ничем не лучше t.Val1.
Лучше, конечно: в первом случае значения можно перебирать в цикле (времени компиляции). Впрочем, можно чуть более конкретно показать, как тебе больше нравится?
Posted via RSDN NNTP Server 2.0
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
>> Это как раз ерунда. Можно пережить. А вот это уже с трудом: >>
>> int i = get<0>(t); i = t.get<0>(); // ok
>> int j = get<0>(ct); // ok
>> get<0>(t) = 5; // ok
>> get<0>(ct) = 5; // error, can't assign to const
>> ...
>> double e = get<1>(t); // ok
>> get<1>(t) = 3.14; // ok
>> get<2>(t) = A(); // error, can't assign to const
>> A aa = get<3>(t); // error: index out of bounds
>>
ПК>А здесь что не так?
Вот это:
int i = get<0>(t);
по нормальному должно выглядеть так:
def (i, _) = t;
или так:
def (a, b, c, d) = t;
где a, b, c, d — это переменные тип тип и значения которых соотвествуют полям кортежа.
Это:
i = t.get<0>(); // ok
вообще не должно компилироваться.
А создание долно выглядеть так:
(1, "ss")
и чтобы никаких лишних фигней.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Кто бы мог подумать год назад, что я буду задумываться над тем, что неплохо было бы, чтобы МС выгнал к чертям Хейгельбергов и Саттеров и набрал поляков-студентов.
А без этого нельзя использовать Nemerle? Прямо сейчас.
Re: Как думаете что мне больше всего нехватает в C# из Nemer
Здравствуйте, VladD2, Вы писали:
VD>Кто бы мог подумать год назад, что я буду задумываться над тем, что неплохо было бы, чтобы МС выгнал к чертям Хейгельбергов и Саттеров и набрал поляков-студентов.
Так насколько я понимаю, разработка Nemerle идет на майкрософтовский гранд, так что можно считать MS уже набрал этих самых студентов
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Превратим окружающую нас среду в воскресенье.
Re[5]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>А здесь что не так?
Сравни с C# 3
var t = new (IntValue = 1, DoubleValue = 12.75, AValue = new A());
var t2 = new (2, 17.75, new A("A"));
int i = t.IntValue;
double d = t.DoubleValue;
A a = t2.AValue;
t2 = t1;
Здравствуйте, Oyster, Вы писали:
I>>А без этого нельзя использовать Nemerle? Прямо сейчас.
O>Можно, но на коммерческих проектах стрёмно.
Речь шла о вполне конкретной задаче. Почему нельзя было использовать Nemerle я тоже не понял. Заодно и продемонстрировал бы интероперабельность между языками в рамках Net.
Здравствуйте, Andrei N.Sobchuck, Вы писали:
ANS>Речь шла о вполне конкретной задаче. Почему нельзя было использовать Nemerle я тоже не понял. Заодно и продемонстрировал бы интероперабельность между языками в рамках Net.
А может, Влад и использует уже
Re: Как думаете что мне больше всего нехватает в C# из Nemer
AndrewVK,
> ПК>А здесь что не так? > > Сравни с C# 3 >
> var t = new (IntValue = 1, DoubleValue = 12.75, AValue = new A());
> var t2 = new (2, 17.75, new A("A"));
>
Это к tuples напрямую не относится, для этого нужно что-нибудь типа auto из следующего C++:
auto t = make_tuple(1, 12.75, A());
auto t2 = make_tuple(2, 17.75, A("A"));
>
> int i = t.IntValue;
> double d = t.DoubleValue;
> A a = t2.AValue;
> t2 = t1;
>
Не вполне уловил, почему можно писать t2.AValue: при инициализации t2 имена не указаны... Или же все tuples в C# 3.0 имеют одни и те же members, имена которых определяются их типами?
За исключением имен не вижу существенной разницы даже с существующими сегодня в C++ решениями:
int i = get<0>( t );
double d = get<1>( t );
A a = get<2>( t2 );
Posted via RSDN NNTP Server 2.0
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: Как думаете что мне больше всего нехватает в C# из Ne
Ну, это уже на любителя... В любых мало-мальски нетривиальных случаях мне больше нравится explicit typing:
int i;
tie(i, ignore) = t;
хотя в некоторых случаях было бы, безусловно, удобно.
> Это: >
> i = t.get<0>(); // ok
>
> вообще не должно компилироваться.
Гм... Не вижу причин, почему, за исключением того, что должно быть так:
i = get<0>( t );
У этого синтаксиса есть очень существенное преимущество по сравнению с (i, _): возможность итерации по значениям t в compile-time цикле.
> А создание долно выглядеть так: >
> (1, "ss")
>
> и чтобы никаких лишних фигней.
Ну, от make_tuple(1, "ss") отличие, имхо, не очень большое.
Posted via RSDN NNTP Server 2.0
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
> ПК>int i = get<0>( t );
> ПК>double d = get<1>( t );
> ПК>A a = get<2>( t2 );
> ПК>
> Эти захардкоденные номера при обращении к элементам tuple... > И не выразительно. > И подвержено ошибкам (при смене порядка следования элементов в tuple).
Правда. Но, имхо, tuples и не должны использоваться "глобально", на мой взгляд там более адекватным будет явное определение соответствующей структуры.
Posted via RSDN NNTP Server 2.0
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
eao197 wrote: > Эти захардкоденные номера при обращении к элементам tuple... > И не выразительно. > И подвержено ошибкам (при смене порядка следования элементов в tuple).
Для незахардкоденых есть структуры
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[3]: Как думаете что мне больше всего нехватает в C# из Ne
VladD2,
> Кстати, надо еще учитывать то, что кортеж в Нэмерле можно передавать в функцию вместо ее параметров. Так вызовы: >
> F(1, "text", 1.2);
>
> и >
> def tuple1 = (1, "text", 1.2);
> F(tuple1);
>
> аналогичны.
Это приятная возможность. Впрочем, никто не мешает сделать поддержку следующего:
auto tuple1 = make_tuple(1, "text", 1.2);
call(&F, tuple1);
> Это позволяет описывать функции в терминах двух тюплов. Первый описывает возвращаемое значени, а второй параметры. > > Таким образом можно рассматривать функцию как всегда принимающую один параметр и возвращающую одно значение. Это делает язык очень выразительным, а его концепции очень простыми.
Если бы я разрабатывал язык сегодня, скорее всего, так бы и делал. Кста, подобная же концепция обобщается и на параметризацию типов в духе шаблонов C++: там можно считать, что тип параметризуется списком типов.
Posted via RSDN NNTP Server 2.0
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Павел Кузнецов, Вы писали:
ПК>>
ПК>>int i = get<0>( t );
ПК>>double d = get<1>( t );
ПК>>A a = get<2>( t2 );
ПК>>
А нафига такие танцы с бубном? tuple удобен когда из функции надо вернуть несколько значений одновременно, юзать их для чего-то другого я смысла не нашел. Когда tuple возвращается из функции сразу юзаем tie для распаковывки его по переменным и все ок.
// Классика жанра:
// двоичный поиск в сортированном массиве
// возвращаем пару <найдено,индекс>template <class Array, class T> pair<bool, int>
bin_search(const Array &array, const T &key);
void test()
{
bool ok;
int pos;
// кортеж из функции сразу распаковываем, юзая функцию tie
// tie(...) { return Tie<>(...); } где Tie - хелпер-класс распаковки кортежей
tie(ok, pos) = bin_search(some_array, some_key);
if (ok) // понеслась
work_with(some_array[pos]);
}
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
После этого можно будет написать t.IntProperty? Правильный ответ: нельзя. Проблема именно в этом.
>>
>> int i = t.IntValue;
>> double d = t.DoubleValue;
>> A a = t2.AValue;
>> t2 = t1;
>>
ПК>Не вполне уловил, почему можно писать t2.AValue: при инициализации t2 имена не указаны...
Извини, наврал мальца. Правильно так:
var t = new {IntValue = 1, DoubleValue = 12.75, AValue = new A()};
int IntValue = 2; double DoubleValue = 12.75; A AValue = new A("A");
var t2 = new {IntValue, DoubleValue, AValue};
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>А Саттер-то тут причем? Да и в C++ tuples вполне реализуются на уровне библиотек...
Мои 5копеек:
В С++ уже есть std::pair, так что Владу если бы он писал на Янус на С++ не понадобилось бы изобретать велосипед, кроме того, Янус мог бы называться много приятней Янус++, но это на любителя.
Есть и функция std::map::insert() которая этот тупл использует.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Правда. Но, имхо, tuples и не должны использоваться "глобально", на мой взгляд там более адекватным будет явное определение соответствующей структуры.
Возможно. Но я тут в маленьком проекте применил как раз локально кортеж с 3 параметрами. И даже локально выглядело это преотвратно. Настолько, что я выкинул и добавил внутренний класс.
Здравствуйте, Kluev, Вы писали:
K>А нафига такие танцы с бубном? tuple удобен когда из функции надо вернуть несколько значений одновременно, юзать их для чего-то другого я смысла не нашел.
Плохо искал. Типичный пример — некий временный контейнер с результатами каких либо расчетов.
Здравствуйте, srggal, Вы писали:
S> В С++ уже есть std::pair, так что Владу если бы он писал на Янус на С++ не понадобилось бы изобретать велосипед, кроме того, Янус мог бы называться много приятней Янус++, но это на любителя.
S> Есть и функция std::map::insert() которая этот тупл использует.
Может тогда расскажешь чем он лучше KeyValuePair<K, V>?
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, srggal, Вы писали:
S>> В С++ уже есть std::pair, так что Владу если бы он писал на Янус на С++ не понадобилось бы изобретать велосипед, кроме того, Янус мог бы называться много приятней Янус++, но это на любителя.
S>> Есть и функция std::map::insert() которая этот тупл использует.
AVK>Может тогда расскажешь чем он лучше KeyValuePair<K, V>?
Тем, что:
a) Он наш, родной, С++ный;
б) Тем что он compile-time
в) Тем что он появился раньше
в) тем что Владу он не понравился ( Влад грил, что он использовал Tuple )
ЗЫ За юмор ниже пояса — не бить
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>У этого синтаксиса есть очень существенное преимущество по сравнению с (i, _): возможность итерации по значениям t в compile-time цикле.
Влад сейчас тебе раскажет про макросы Nemerle и будет прав.
С++ со всеми своими щаблонами мягко говоря нурвоно курит в углу.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Kluev, Вы писали:
K>>А нафига такие танцы с бубном? tuple удобен когда из функции надо вернуть несколько значений одновременно, юзать их для чего-то другого я смысла не нашел.
AVK>Плохо искал. Типичный пример — некий временный контейнер с результатами каких либо расчетов.
Давай конкретнее, а то фраза какие либо расчеты, это про сферического коня в вакууме.
Результаты расчетов и по ссылкам из функции можно вернуть. Конкретный пример — поиск ближайшего сегмента поли-линии:
// idx - номер сегмента
// t - в какую точку на сегменте проецируется pt [0, 1]
// dist- растояние от pt к сегменту. void closest_segment(const Point3d &pt, int &idx, double &t, double &dist);
Недостатки в том, что при вызове приходится передавать все параметры, даже если они не нужны.
Можно заюзать указатели и NULL, но тогда добавится оверхед на проверку параметров.
Третий вариант заюзать кортеж и сразу распаковать в локальные переменные:
// к примеру нужен только индекс и расстояниеint idx;
double dst;
tie(idx, _, dst) = pline.closest_segment(pt_from); // t пропускаем
Однако и сдесь нет совершенства т.к. прийдется помнить что куда возвращается. Когда передается по ссылкам, то intellisense напоминает порядок аргументов. Кстати пришла идея использовать класс unused для игнора ненужных параметров:
closest_segment(pt_from, idx, unused, dist);
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Kluev, Вы писали:
K>Результаты расчетов и по ссылкам из функции можно вернуть. Конкретный пример — поиск ближайшего сегмента поли-линии:
K>
K>// idx - номер сегмента
K>// t - в какую точку на сегменте проецируется pt [0, 1]
K>// dist- растояние от pt к сегменту.
K>void closest_segment(const Point3d &pt, int &idx, double &t, double &dist);
K>
K>Недостатки в том, что при вызове приходится передавать все параметры, даже если они не нужны.
На самом деле этот подход мне больше нравится и я его использую. Но проблема с ним в том, что он не поддерживает безопасность исключений. Если исключение возникнет после присваивания значения какому-то параметру ссылке, то откатить это изменение уже не просто. Правда, в большинстве случаев и не нужно.
K>Можно заюзать указатели и NULL, но тогда добавится оверхед на проверку параметров.
Этот оверхед настолько минимален (один if на каждый опциональный параметр), что про него можно и не говорить. Вполне себе нормальное решение с нулевыми указателями.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Как думаете что мне больше всего нехватает в C# из Nemer
Здравствуйте, Kluev, Вы писали:
K>Однако и сдесь нет совершенства т.к. прийдется помнить что куда возвращается. Когда передается по ссылкам, то intellisense напоминает порядок аргументов. Кстати пришла идея использовать класс unused для игнора ненужных параметров: K>
closest_segment(pt_from, idx, unused, dist);
Точно! Ф топку tuples, юзайте unused
struct Unused
{
template <class T>
operator T& ()
{
static T dummy;
return dummy;
}
};
extern Unused unused;
//=================================================void foo(int &x, double &y, string &s);
void test()
{
int x;
double y;
string s;
foo(x, y, s); // беру все
foo(unused, y, s); // почти все
foo(unused, unused, s); // мне много не надо
}
Re[12]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Kluev, Вы писали:
K>Точно! Ф топку tuples,
+1
K> юзайте unused
Однако, для того-же std::string передача указателя вместо ссыки с последующей проверкой на NULL будет дешевле.
Да и могут быть классы, которые в многопоточной программе могут привести к проблемам из-за наличия:
K>[c] K> template <class T> K> operator T& () K> { K> static T dummy; K> return dummy; K> } K>};
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Ну, это уже на любителя... В любых мало-мальски нетривиальных случаях мне больше нравится explicit typing: ПК>
ПК>int i;
ПК>tie(i, ignore) = t;
ПК>
ПК>хотя в некоторых случаях было бы, безусловно, удобно.
Явная типизация в большинстве случаев только ухудшает читабельность. Но если она нужна, то ее можно задать по месту:
using Nemerle.IO;
def t : double * string = (1.0, "aaa");
print("$t\n");
Но по жизни это не требуется.
>> Это: >>
>> i = t.get<0>(); // ok
>>
>> вообще не должно компилироваться.
ПК>Гм... Не вижу причин, почему,
Потому-что не должно быть 20 вариантов.
ПК> за исключением того, что должно быть так: ПК>
ПК>i = get<0>( t );
ПК>
ПК>У этого синтаксиса есть очень существенное преимущество по сравнению с (i, _): возможность итерации по значениям t в compile-time цикле.
Паш, какие нафиг комайл-тайм циклы в языке не имеющем специальных средств для этого?
А извращения могут быть любыми. Уж извини, но С++ с Нэемерлом в компайлтайме не тягаться.
В немерле есть синтаксис индексации кортежа:
t[0]
но применяется он не часто, так как нафиг не нужно. Делать же циклы по нему бессмысленно так как у него могут быть разные типы.
Что касается комайлатайма, то с ним все ОК. Работа ведется на уровне выражений. Вот, например, код макроса преобразовывающего содержимое произвольного кортежа в строку:
Здравствуйте, AndrewVK, Вы писали:
AVK>Сравни с C# 3 AVK>
AVK>var t = new (IntValue = 1, DoubleValue = 12.75, AValue = new A());
AVK>var t2 = new (2, 17.75, new A("A"));
AVK>int i = t.IntValue;
AVK>double d = t.DoubleValue;
AVK>A a = t2.AValue;
AVK>t2 = t1;
AVK>
Вот только есть две проблемы.
1. Это не кортэжи. У t и t2 динамический тип недоступный из кода. Так что из функции их не вернут.
2. Нет совместимости между анонимными типами объявленными в разных строках. Так что их не скопировать нельзя, ни стравнить.
К тому же в Нэмереле есть красивая модель. Как я уже говорил кортеж и список параметров фукнций возаимозаменимы. Это очень красивое решение резко упрощающее трактование языка и даже кодогенерацию (для формирования списка параметров достаточно сформировать кортеж).
В общем, взяли отличную идею и изуродывали как бог черепаху.
Надеюсь, что знающие люди им пальцем ткнут и к релизу они таки реализуют полноценные кортежи.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, igna, Вы писали:
VD>>Кто бы мог подумать год назад, что я буду задумываться над тем, что неплохо было бы, чтобы МС выгнал к чертям Хейгельбергов и Саттеров и набрал поляков-студентов.
I>А без этого нельзя использовать Nemerle? Прямо сейчас.
Можно. Но вот рефакторинг и полноценный комплит-вод при этом ждать прийдется очень долго. К тому же МС отшлифовала бы язык и компилятор как следует.
В общем, хорошая подержка и коммерческий вид очень важная вещь. А ведь новые продукты еще нужно пиарить. Хотя... хорошая вещь все равно дорогу себе пробьет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, ie, Вы писали:
ie>Так насколько я понимаю, разработка Nemerle идет на майкрософтовский гранд, так что можно считать MS уже набрал этих самых студентов
Это разные вещи. Они могут позаимствовать идеи, а могут и вообще сделать вид, что не заметили ничего.
А внутренняя команда выдает реальный продукт.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Kluev, Вы писали:
K>>Точно! Ф топку tuples,
E>+1
E>)
K>> юзайте unused
E>Однако, для того-же std::string передача указателя вместо ссыки с последующей проверкой на NULL будет дешевле. E>Да и могут быть классы, которые в многопоточной программе могут привести к проблемам из-за наличия:
K>>
K>> template <class T>
K>> operator T& ()
K>> {
K>> static T dummy;
K>> return dummy;
K>> }
K>>};
В многопоточной программе проблеммы можно порешить юзая
template <class T>
operator T& ()
{
return Static<T>::value; // юзаем не локальную стaику, а глобальную
}
[/c]
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>1. Это не кортэжи. У t и t2 динамический тип недоступный из кода. Так что из функции их не вернут.
Я в курсе. Это был просто пример.
VD>2. Нет совместимости между анонимными типами объявленными в разных строках. Так что их не скопировать нельзя, ни стравнить.
Из спецификации:
Within the same program, two anonymous object initializers that specify a sequence of properties of the same names and types in the same order will produce instances of the same anonymous type.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Kluev, Вы писали:
K>>Давай конкретнее, а то фраза какие либо расчеты, это про сферического коня в вакууме.
AVK>Давай. AVK>
Ну и в чем смысл? кортеж используется как локальный тип данных внутри функции. Для этого написать
struct elemTuple
{
int i;
list<int> list;
int[] array;
}
писаниниы не намного больше, а по удобству лучше, человеческие названия у полей. А вот если бы такой кортеж возвращался бы из функции...
Полей правдо маловато, штук 20 было бы удобнее
Ф топку такие кортежи, мы лучше будем struct и unused пользовать
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
AVK>После этого можно будет написать t.IntProperty? Правильный ответ: нельзя. Проблема именно в этом.
Честно говоря, не понимаю, зачем нужно t.IntProperty в tuples... Нужно IntProperty — заводим соответствующую структуру. Нужно несколько значений — tuples. Нет?
AVK>Извини, наврал мальца. Правильно так: AVK>
AVK>var t = new {IntValue = 1, DoubleValue = 12.75, AValue = new A()};
AVK>int IntValue = 2; double DoubleValue = 12.75; A AValue = new A("A");
AVK>var t2 = new {IntValue, DoubleValue, AValue};
AVK>
А зачем мне локально оборачивать именованные значения в tuple, через который я затем с ними же буду работать как с именованными значениями?..
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, AndrewVK, Вы писали:
AVK> я тут в маленьком проекте применил как раз локально кортеж с 3 параметрами. И даже локально выглядело это преотвратно. Настолько, что я выкинул и добавил внутренний класс.
Имхо, tuples должны использоваться в "обобщенном" коде, где нам не важна семантика данных, а важны их количество и типы. Грубо говоря, как список, но с элементами разного типа. В самом деле, не даешь же ты имена индивидуальным элементам списков
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, WolfHound, Вы писали:
ПК>> У этого синтаксиса есть очень существенное преимущество по сравнению с (i, _): возможность итерации по значениям t в compile-time цикле.
WH> Влад сейчас тебе раскажет про макросы Nemerle и будет прав. WH> С++ со всеми своими щаблонами мягко говоря нурвоно курит в углу.
Это-то тут причем? Речь не о языке, а о синтаксисе. Синтаксис (i, _) не позволяет выразить итерацию по значениям tuple, а синтаксис get<n>(t) — позволяет.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[3]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
ie>>Так насколько я понимаю, разработка Nemerle идет на майкрософтовский гранд, так что можно считать MS уже набрал этих самых студентов
VD>Это разные вещи. Они могут позаимствовать идеи, а могут и вообще сделать вид, что не заметили ничего.
А могут и прегласить развивать идеи уже внутри МС и те вряд ли откажутся.
VD>А внутренняя команда выдает реальный продукт.
Это да.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, AndrewVK, Вы писали:
AVK>Из спецификации: AVK>
Within the same program, two anonymous object initializers that specify a sequence of properties of the same names and types in the same order will produce instances of the same anonymous type.
Без возможности объявить этот тип это замечание без толку.
Возможно они просто пока неуспели все доделать и к релизу мы увидим полноценное решение.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Юнусов Булат, Вы писали:
VD>>плюнул и создал специализированную пару... На четверки уже не решился.
ЮБ>Ecma C# and Common Language Infrastructure Standards ЮБ>там ближе к низу сурсы CommonGenerics
Это все не то. И неудобно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Юнусов Булат, Вы писали:
ЮБ>Значит кто то из нас что то забыл, бывает
Нет. Значит кто-то прочел текст и не смог понять смысл.
Повторяю еще раз. Нудобно пользоваться дженерик-типами вместо кортежей. Ну, неудобно и все. Нужен более краткий синтаксис. Нужна поддержка компилятора. Нужен вывод типов. Без всего этого получается больше проблем чем удобств.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, srggal, Вы писали:
S> В С++ уже есть std::pair, так что Владу если бы он писал на Янус на С++ не понадобилось бы изобретать велосипед, кроме того, Янус мог бы называться много приятней Янус++, но это на любителя.
В С++ ничено нет. Есть в библиотеках. В библиотеках есть где угодно. Но речь не об этом. Речь о неуклюжести и неудобстве.
В общем, это то что нельзя доказать. Это нужно пробовать. Написав 3-4 более менее объемные функции с кортежами, а не с их эмуляцией ты поймшь о чем речь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, srggal, Вы писали:
S>Тем, что: S> a) Он наш, родной, С++ный;
Нда, вести родство с языками программирования... это жуе... уууу...
S> б) Тем что он compile-time
А... А у "их" значичь другой?
S> в) Тем что он появился раньше
Чем что? У тебя пробелы в изучении истории? С++ в задумках небыло когда появился Лисп и S-выражения.
S> в) тем что Владу он не понравился ( Влад грил, что он использовал Tuple )
Владу вообще не нравятся эмуляции и извращения. Он любит простые и чистые решения. Чем проще и чище, тем лучше.
S>ЗЫ За юмор ниже пояса — не бить...
...выше пояса.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Это-то тут причем? Речь не о языке, а о синтаксисе. Синтаксис (i, _) не позволяет выразить итерацию по значениям tuple, а синтаксис get<n>(t) — позволяет.
Tuples
def t = (1, "one");: a tuple is a set of values which no name to recognise them
def fst = t[0];: use 0-based index to get the items
Ы?
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, srggal, Вы писали:
S>> В С++ уже есть std::pair, так что Владу если бы он писал на Янус на С++ не понадобилось бы изобретать велосипед, кроме того, Янус мог бы называться много приятней Янус++, но это на любителя.
VD>В С++ ничено нет. Есть в библиотеках.
STL — стандартная библиотека С++. std::pair описан в стандарте языка. Спор об этом — это флейм, и Мы рискуем скатится к тому, что в С++ нет исключений, они есть в компиляторе.
VD>В библиотеках есть где угодно. Но речь не об этом. Речь о неуклюжести и неудобстве. VD>В общем, это то что нельзя доказать. Это нужно пробовать. Написав 3-4 более менее объемные функции с кортежами, а не с их эмуляцией ты поймшь о чем речь.
Я понял, о чём идет речь, но целью моего сообщения было напомнить С++ комьюнити, что передать два значения можно не только при помощи Тупла.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Это приятная возможность.
Ага. А знашь где она становится особенно приятна? В метапрограммировании! Попробуй на плюсах сформировать параметры для костнуктора и т.п. А на Нэмерле ты делашь список и формируешь на его основе кортеж который интерпретируется компиялтором как список параметров метода! Вот реальный пример:
// Добавляем в начала списока параметров парамер содержащий строку формата.
// сам список параметров при этом разворачиваем, так как формировался он в обратном порядке.
def args = <[ $(Helper.GenerateId() : string) ]> :: args.Reverse();
...
// Формируем выражение форматированного вывода и возвращаем его как результат работы макроса.
// Этот код заместит вызов макроса. Консрукция ( .. $args) сформирует кортэж с параметрами.
// В Nemerle кортежи и списки параметров функций равнозначны. Так что можно считать, что
// сформирован список парамтеров!
<[ Localiser._instace.Format( .. $args) ]>
Конструкция ".. $args" разворачивает список в значения кортежа. А кортеж интерпретируется как параметры вызова. В итоге мы красиво и легко формируем вызов метода с переменным числом параметров. И при этом все типизированно и с контролем в компайлтайме!
Это то о чем я даже мечтать не мог.
ПК> Впрочем, никто не мешает сделать поддержку следующего: ПК>
Не. И грязновато. И не дает той гениальной простоты и завершенности дизайна языка.
Я вообще фигею как хорошо сочетаются некоторые части дизайна Нэмерла. Мужики явно нащупали .
>> Таким образом можно рассматривать функцию как всегда принимающую один параметр и возвращающую одно значение. Это делает язык очень выразительным, а его концепции очень простыми.
ПК>Если бы я разрабатывал язык сегодня, скорее всего, так бы и делал. Кста, подобная же концепция обобщается и на параметризацию типов в духе шаблонов C++: там можно считать, что тип параметризуется списком типов.
Да. Действительно! И автоматом решается проблема создания типов с переменным числом параметров.
Как говорится все гениальное просто.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Это-то тут причем? Речь не о языке, а о синтаксисе. Синтаксис (i, _) не позволяет выразить итерацию по значениям tuple, а синтаксис get<n>(t) — позволяет.
1. В Нэмерле есть и индексация, но без извратов.
2. Как не странно в немерле без проблем можно перебирать значения кортежей. Как это выглядит я уже приводил.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Это-то тут причем? Речь не о языке, а о синтаксисе. Синтаксис (i, _) не позволяет выразить итерацию по значениям tuple, а синтаксис get<n>(t) — позволяет.
В Nemerle абсолютно иной подход к compile-time, поэтому причем, а вот синтаксис как раз ни причем. Так что если бы был только синтаксис (i, _)(индексирование константами там тоже есть), он бы все равно позволял проитерироваться по значениям tuple в compile-time, так как в Nemerle во время компиляции доступна любая информация о любом типе, можно конструировать и деконструировать любые элементы AST. В добавок ко всему compile-time в Nemerle это по сути дела полноценный run-time, в отличие от "вычислений" с помощью шаблонов C++.
Я не говорю, что подход C++ принципиально хуже подхода Nemerle. В ряде случаев он даже имеет свои преимущества. Но если речь идет именно о гибкости расширении языка и возможностях времени компиляции, то C++ однозначно проигрывает.
Re[6]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, srggal, Вы писали:
S>>Тем, что: S>> a) Он наш, родной, С++ный;
VD>Нда, вести родство с языками программирования... это жуе... уууу...
Хуже/лучше чем с обезьяной ?
S>> б) Тем что он compile-time
VD>А... А у "их" значичь другой?
Дженерики в C# разве не имеют ничего общего с рантайм ? Я , к сожалению, точно сказать не могу ибо не владею вопросом, слышыл краем уха что некоторые вроде дженерики работают через рефлекшн, конечно если я не напутал. Поправьте в 2х словах если не трудно.
S>> в) Тем что он появился раньше
VD>Чем что?
Может тогда расскажешь чем он лучше KeyValuePair<K, V>?
VD>У тебя пробелы в изучении истории? С++ в задумках небыло когда появился Лисп и S-выражения.
Чем грузины (KeyValuePair<K, V>)
S>> в) тем что Владу он не понравился ( Влад грил, что он использовал Tuple )
VD>Владу вообще не нравятся эмуляции и извращения. Он любит простые и чистые решения. Чем проще и чище, тем лучше.
Отчего же Влад так любит работать на виртуальном байт-коде, который не имеет ничего общего с реальным и который потом какой-то приблудой компилируется в конретный машинный ?
Это я к тому, что ИМХО не стоит быть таким категоричным.
ЗЫ Я на Вашей стороне — пользоваться Туплами одинаково неудобно и на С№ и на С++. Просто на Шареп пишут менее терпимые и более разнеженные, а С++ серам, суровым парням, лишних пару байт набить на клавиатуре, либо распознгать и интерпретировать при промотре исходникоф — не в западло
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Это то о чем я даже мечтать не мог.
/С ехидной интонацией/ А в Ruby это уже давным давно было И если бы ты в свое время меньше доказывал мне, что C# подходит для скриптования лучше, чем Ruby, а посмотрел бы сам на Ruby, то мечтать бы о таком ты мог бы начать гораздо раньше
Зато сейчас... Nemerle, Nemerle...
От чего ты будешь фанатеть завтра?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
VD>Явная типизация в большинстве случаев только ухудшает читабельность. Но если она нужна, то ее можно задать по месту:
Если говорить об исходном примере можно еще так:
def (i : int, _) = t;
VD>Но по жизни это не требуется.
+1
VD> Вот, например, код макроса преобразовывающего содержимое произвольного кортежа в строку:
Вообще-то нет, хотя я сам так сначала подумал, глядя на название. На самом это макрос, определяющий для произвольного класса/структуры функцию ToString возвращающую строку в формате "кортежа"(типа вот этого — "(1, aha, 23.0)"). Для преобразования содержимого кортежа в строку слава богу метод ToString прекрасно работает.
В стандартной макро-библиотеке Nemerle на самом деле очень мало макросов для кортежей, а то что есть мягко говоря не очень полезное, на мой взгляд конечно. Но compile-time циклы по кортежам точно можно делать. Хотя справедливости ради стоит отметить, что там больше compiler-internals магии, чем собственно поддержки языка.
В принципе если бы мне например что-то такое понадобилось, я бы с легкостью написал, но честно говоря я сходу не могу придумать, где бы вообще могла пригодиться итерация по элементам кортежа во время компиляции(разве что генерация кода сериализации и ввода/вывода).
Re[5]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, srggal, Вы писали:
S>STL — стандартная библиотека С++. std::pair описан в стандарте языка. Спор об этом — это флейм, и Мы рискуем скатится к тому, что в С++ нет исключений, они есть в компиляторе.
Ну, так не флэйми. Есть язык, а есть его библиотеки. Не путай мягкое с теплым.
S>Я понял, о чём идет речь, но целью моего сообщения было напомнить С++ комьюнити, что передать два значения можно не только при помощи Тупла.
Да передать их можно кучей способов. Тот только есть простые и интуитивные, а есть неудобные и громоздкие. Только и всего.
Сделать "как в С++" в C# можно без особых проблем. Но это неудбно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
WH>Tuples
WH>def t = (1, "one");: a tuple is a set of values which no name to recognise them
WH>def fst = t[0];: use 0-based index to get the items
WH>Ы?
Кстати, несмотря на это пройтись в цикле по кортежу так не удастся. У полей ведь могут быть разные типы. Вместо этого кортеж можно представить как список выражений или как тип со списком полей.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, srggal, Вы писали:
S>Я понял, о чём идет речь, но целью моего сообщения было напомнить С++ комьюнити, что передать два значения можно не только при помощи Тупла.
Про этот костыль всем прекрасно извесно. И появился он исключительно из-за того что в С++ не нормальных кортежей.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, srggal, Вы писали:
WH>Про этот костыль всем прекрасно извесно.
Я Вам не скажй за всю Одессу,
но в этом флейме, в который, к сожалению, переросло обсуждение темы, никто про pair не вспомнил. ТОлько сразу про Тупл.
WH>И появился он исключительно из-за того что в С++ не нормальных кортежей.
Если не затруднит, на чем основывается такой вывод ? Здравый смысл или факты ?
Мне кажется, что сначала появился pair, и несколько позже начались исследования С++ на предмет Tuple.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>/С ехидной интонацией/ А в Ruby...
С добродушной интонацией: А руби не прошел ценза. Не катируются у нас тормозные скриптовые языки с кучей проблем в дизайне.
E>Зато сейчас... Nemerle, Nemerle... E>От чего ты будешь фанатеть завтра?
Увидим.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, srggal, Вы писали:
S>Хуже/лучше чем с обезьяной ?
Обезьяна — теплокровное животное наделенная мозгом. А...
S>Дженерики в C# разве не имеют ничего общего с рантайм ?
Применительно к данному случае они ничем от шаблонов не отличаются.
Шаблоны С++ воплощаются компилятором. А дженерики джит-компилятором.
VD>>Владу вообще не нравятся эмуляции и извращения. Он любит простые и чистые решения. Чем проще и чище, тем лучше. S>Отчего же Влад так любит работать на виртуальном байт-коде, который не имеет ничего общего с реальным и который потом какой-то приблудой компилируется в конретный машинный ?
Не уловил связи.
Что касается байткодов, то я с ними не работаю. Их читают разные джит-компиляторы. Я максимум что делаю — это смотрю их через Рефлектор (декомпилятор). А при отладке я вижу такой же гнусный ассемблер.
S>Это я к тому, что ИМХО не стоит быть таким категоричным.
Не будь.
S>ЗЫ Я на Вашей стороне — пользоваться Туплами одинаково неудобно и на С№ и на С++. Просто на Шареп пишут менее терпимые и более разнеженные, а С++ серам, суровым парням, лишних пару байт набить на клавиатуре, либо распознгать и интерпретировать при промотре исходникоф — не в западло
Понимаш ли в чем дело? Разница между нашими подходами в том, что ты думашь сколько ты набьешь кода, а я о том насколько понятным будет мой код. Только и всего.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Как думаете что мне больше всего нехватает в C# из N
E>в многопоточных программах с одинаковой вероятностью приведет к проблемам. Даже с std::string. Не говоря о том, что могут быть и более сложные классы.
Такие случаи — редкость. В основном в игнор просятся простые вещи типа Point3d да инты с даблами. И программер должен знать, что он делает и чем он пользуется. Поэтому я не юзаю std::string и STL из-за непредсказуемости реализации (и убогости STL велосипедов).
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>С добродушной интонацией: А руби не прошел ценза. Не катируются у нас тормозные скриптовые языки с кучей проблем в дизайне.
Вай, вай! А где в Янусе нужна высокая скорость работы?
В Web-приложениях, например, Ruby спокойно конкурирует с Java.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
E>>От чего ты будешь фанатеть завтра?
VD>Увидим.
А вот теперь посмотри: год назад, ты уверял меня, что C# -- это круто, что нужно бросать C++ и писать на C#. Послушал бы я тебя тогда, к сегодняшнему моменту чего-нибудь успел бы сделать на C#. Но чу! C# то не так крут, есть и круче. Значит, нужно бросать C# и писать на Nemerle. С такими же перспективами через 1.5 года перебраться под OCaml/NET (к примеру).
Так что получается, что на массированную рекламу лучше не поддаваться, никуда не перепрыгивать. Время покажет, на какую платформу имеет смысл переходить. Может и правда это будет Nemerle. Если так, то я ничуть не огорчусь, что C# прошел мимо меня.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, srggal, Вы писали:
S>>Я Вам не скажй за всю Одессу, S>>но в этом флейме, в который, к сожалению, переросло обсуждение темы, никто про pair не вспомнил. ТОлько сразу про Тупл.
ИМХО: pair это очень конкретный и специальный случай кортежа, и вспоминать о нём не к лицу. Даже суть его вынесена в название (парочка ) и появился он, скорее всего, (а скорее всего так и есть) именно для использования в контейнерах для пар ключ/значение, а не для поддержки идеи кортежей, в том виде, в каком я хочу быть свободным использовать её.
ДЭ!
Re[12]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, srggal, Вы писали:
S>Я Вам не скажй за всю Одессу, но в этом флейме, в который, к сожалению, переросло обсуждение темы, никто про pair не вспомнил. ТОлько сразу про Тупл.
А толку то от этого недоделанного кортежа на 2 элемента? Такую штуку я могу и C#2 запросто навернуть. Вот только толку от этого нету.
WH>>И появился он исключительно из-за того что в С++ не нормальных кортежей. S>Если не затруднит, на чем основывается такой вывод ? Здравый смысл или факты ?
Здравый смысл разумеется. Если бы в языке были нормальные кортежи то никто в здравом уме не стал бы придумывать свой.
S>Мне кажется, что сначала появился pair, и несколько позже начались исследования С++ на предмет Tuple.
Если ты про boost::tuple то это тоже костыль. Как вобщемто большая часть буста.
Причем С++ чем дальше тем больше превращается в огромного жутика обвешанного всякой фигней... и это при том что комитетчики придерживаются принципа зачем вводить в язык то что реализуется библиотекой? Вот только что-то у них это не получается... За то получается у авторов Nemerle за что им большой респект. Там половина языка (а может и больше) в библиотеке... С++у такое и не снилось. И не приснится уже никгда... ибо этот титаник на глиняном айсберге рушится под собственным весом.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Явная типизация в большинстве случаев только ухудшает читабельность.
-1
ПК>>У этого синтаксиса есть очень существенное преимущество по сравнению с (i, _): возможность итерации по значениям t в compile-time цикле.
VD>Паш, какие нафиг комайл-тайм циклы в языке не имеющем специальных средств для этого?
Функциональные, через рекурсию.
VD>А извращения могут быть любыми. Уж извини, но С++ с Нэемерлом в компайлтайме не тягаться.
Это я в данной теме не обсуждаю. Я только высказался относительно двух разных форм записи: (i, _) = t vs. i = get<0>(t).
VD>В немерле есть синтаксис индексации кортежа: VD>
VD>t[0]
VD>
VD>но применяется он не часто, так как нафиг не нужно. Делать же циклы по нему бессмысленно так как у него могут быть разные типы.
Именно из-за разных типов я и сказал о compile-time циклах. Это вполне осмысленно для любых утилит обобщенной обработки tuples. Кстати, какого типа выражение t[0] в Nemerle?
VD>2. Что такое make_tuple?
Перегруженный шаблон функции, создающей tuple.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[3]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Vermicious Knid, Вы писали:
ПК>>Это-то тут причем? Речь не о языке, а о синтаксисе. Синтаксис (i, _) не позволяет выразить итерацию по значениям tuple, а синтаксис get<n>(t) — позволяет.
VK>В Nemerle абсолютно иной подход к compile-time, поэтому причем, а вот синтаксис как раз ни причем. Так что если бы был только синтаксис (i, _)(индексирование константами там тоже есть), он бы все равно позволял проитерироваться по значениям tuple в compile-time
Но с помощью другого синтаксиса. Это все, что я хотел сказать по этому поводу.
VK>Я не говорю, что подход C++ принципиально хуже подхода Nemerle. В ряде случаев он даже имеет свои преимущества. Но если речь идет именно о гибкости расширении языка и возможностях времени компиляции, то C++ однозначно проигрывает.
Нет, речь о том, что можно делать с помощью одного способа выражения доступа к значениям tuple, и чего нельзя делать с помощью другого способа выражения доступа к значениям tuple.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: Как думаете что мне больше всего нехватает в C# из Ne
Вопрос: зачем комитет C++ решил ввести в новый стандарт локальный вывод типов для переменных? Неужели чтобы ухудшить читабельность?
ПК>Именно из-за разных типов я и сказал о compile-time циклах. Это вполне осмысленно для любых утилит обобщенной обработки tuples.
В Nemerle для кортежей никаких костылей в принципе не нужно, это внутренний тип. Они реализуют Equals, GetHashCode, ToString, поддерживается сериализация.
Если этого недостаточно, то можно во-первых попытаться расширить классы внутренней библиотеки, которые отвечают за фактическую реализацию кортежей. А во-вторых есть макросы. Вот пример макроса, который во время компиляции генерирует и возвращает(прямо в AST) строку с описанием типа кортежа. Если ему задать в качестве второго параметра true, то он еще и выведет эту строку в консоль(тоже во время компиляции).
using Nemerle.Compiler;
using Nemerle.Macros;
macro TupleTypeToString(tuple, verbose : bool = false)
{
def getTupleArgs(tupleExpr)
{
match (tupleExpr.Type.Fix())
{
| MType.Tuple (args) => args
| _ => Message.FatalError($"expected expression of tuple type, got $(tupleExpr.Type)")
}
}
def tupleArgs = getTupleArgs(ImplicitCTX().TypeExpr(tuple));
def sb = System.Text.StringBuilder("(");
foreach(argType in tupleArgs)
sb.Append(argType.Fix().ToString()).Append(" ");
sb.Append(")");
when (verbose)
System.Console.WriteLine(sb);
<[ $(sb.ToString() : string) ]>
}
Вот пример использования:
using System;
def make_tuple[A,B](a : A, b : B) : A * B
{
(a, b)
}
def x = make_tuple(1, "abc");
def y = (1, 2, 3, 4, 5, 6, 7, 8, 9);
def z = (System.Text.StringBuilder(), 2.0, 'a');
def xyz = (x, y, z);
def xTypeStr = TupleTypeToString(x);
def yTypeStr = TupleTypeToString(y);
def zTypeStr = TupleTypeToString(z);
_ = TupleTypeToString(xyz, true);
Console.WriteLine(xTypeStr);
Console.WriteLine(yTypeStr);
Console.WriteLine(zTypeStr);
Вот что будет выведено в консоль во время компиляции:
((int * string) (int * int * int * int * int * int * int * int * int) (System.Text.StringBuilder * System.Double * char) )
А вот что показывает рефлектор:
// code skipped ...string text1 = "(int string )";
string text2 = "(int int int int int int int int int )";
string text3 = "(System.Text.StringBuilder System.Double char )";
Console.WriteLine(text1);
Console.WriteLine(text2);
Console.WriteLine(text3);
Я надеюсь само собой понятно, что расширение функциональности для генерации кода на базе вышеприведенного кода не представляет особой сложности:
Здравствуйте, Vermicious Knid, Вы писали:
ПК>>-1
VK>Вопрос: зачем комитет C++ решил ввести в новый стандарт локальный вывод типов для переменных? Неужели чтобы ухудшить читабельность?
[Не]явная типизация [не]явной типизации рознь. В ряде (простых) случаев с неявной типизацией читабельность лучше, в ряде (более сложных) — хуже. Я не согласен с оценкой соотношения первых и вторых ("Явная типизация в большинстве случаев только ухудшает читабельность"); у меня опыт ровно обратный
.
ПК>>Именно из-за разных типов я и сказал о compile-time циклах. Это вполне осмысленно для любых утилит обобщенной обработки tuples.
VK>В Nemerle для кортежей никаких костылей в принципе не нужно, это внутренний тип. Они реализуют Equals, GetHashCode, ToString, поддерживается сериализация.
VK>Если этого недостаточно, то можно во-первых попытаться расширить классы внутренней библиотеки, которые отвечают за фактическую реализацию кортежей. А во-вторых есть макросы. <...>
И? Как это является возражением к тезису о необходимости использования в этом случае отличного от (i, _) = t синтаксиса? В случае get<n>(t) может быть использован тот же синтаксис. Это все, что я хотел сказать по этому поводу.
VK> <...>
ПК>>Кстати, какого типа выражение t[0] в Nemerle?
VK> Я надеюсь вышеприведенный пример ответил на данный вопрос.
Честно говоря, не вполне...
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>А вот теперь посмотри: год назад, ты уверял меня, что C# -- это круто, что нужно бросать C++ и писать на C#. Послушал бы я тебя тогда, к сегодняшнему моменту чего-нибудь успел бы сделать на C#. Но чу! C# то не так крут, есть и круче. Значит, нужно бросать C# и писать на Nemerle. С такими же перспективами через 1.5 года перебраться под OCaml/NET (к примеру).
нет предела совершенству
хотя OCaml/NET вряд ли представит что-то новое по сравнению с немерле
E>Так что получается, что на массированную рекламу лучше не поддаваться, никуда не перепрыгивать. Время покажет, на какую платформу имеет смысл переходить. Может и правда это будет Nemerle. Если так, то я ничуть не огорчусь, что C# прошел мимо меня.
Вот и будешь ты так сидеть, а языки будут проходить и проходить.... мимо тебя
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladGalkin, Вы писали:
VG>ИМХО: pair это очень конкретный и специальный случай кортежа, и вспоминать о нём не к лицу. Даже суть его вынесена в название (парочка ) и появился он, скорее всего, (а скорее всего так и есть) именно для использования в контейнерах для пар ключ/значение, а не для поддержки идеи кортежей, в том виде, в каком я хочу быть свободным использовать её.
В контексте того, что Влад сообщил о том, что вмесчто удобного Tuple Nemerle ему пришлось писать свой класс на два значения — ИМХО очень к лицу вспомнить и про std::pair.
И случай этот не конретный, в частности в терминах С++, опять же не скажу за всю Одессу, — Кортеж служит для передачи анонимных значений, а std::pair — поименных ( first, second ). Но это так, к слову — ИБО КАЗУИСТИКА
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Обезьяна — теплокровное животное наделенная мозгом. А...
А может ли обезьяна, при наличии мозга, программировать, пусть даже на таком удобном языке как C#, а на Nemerle ?
Такие вот родственнички
VD>Применительно к данному случае они ничем от шаблонов не отличаются. VD>Шаблоны С++ воплощаются компилятором. А дженерики джит-компилятором.
как это не чем. В С++ инстанцирование шаблона осуществляется во время компиляции, а в C#, тоже, что понимается под этим в С++, производится в в рантайм.
Исходный вопрос был чем Дженерик KeyValuePair<K, V> лучге чем шаблон std::pair
Может тогда расскажешь чем он лучше KeyValuePair<K, V>?
и один из пунктов, которые я привел — это был compile-time. После этого Вы грите что это в конте5сте данного обсуждения несуществено .
VD>>>Владу вообще не нравятся эмуляции и извращения. Он любит простые и чистые решения. Чем проще и чище, тем лучше. S>>Отчего же Влад так любит работать на виртуальном байт-коде, который не имеет ничего общего с реальным и который потом какой-то приблудой компилируется в конретный машинный ?
VD>Не уловил связи. VD>Что касается байткодов, то я с ними не работаю. Их читают разные джит-компиляторы. Я максимум что делаю — это смотрю их через Рефлектор (декомпилятор). А при отладке я вижу такой же гнусный ассемблер.
Виртуальная машина — эот эмуляция реальной, байт-код — это псевдо код — эмуляция машинного
Т.е. дело иметь с эмуляциями — Вы любите, назвать это извращением язык не поварачивается
S>>ЗЫ Я на Вашей стороне — пользоваться Туплами одинаково неудобно и на С№ и на С++. Просто на Шареп пишут менее терпимые и более разнеженные, а С++ серам, суровым парням, лишних пару байт набить на клавиатуре, либо распознгать и интерпретировать при промотре исходникоф — не в западло
VD>Понимаш ли в чем дело? Разница между нашими подходами в том, что ты думашь сколько ты набьешь кода, а я о том насколько понятным будет мой код. Только и всего.
Для кого понятным ? Для домохозяйки ? Для телеведущего ? Для компилятора ? Или для адекватного специалиста ? В Делфи код ещё более наглядный. TForm1.OnClose() и все дела.
Мой продакшн-код тоже понятный, очень наглядный — это даже не аксиома, ИБО эот не мои слова.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, eao197, Вы писали:
E>Вай, вай! А где в Янусе нужна высокая скорость работы?
В первую очередь при поиске сообщениёй в Базе, когда её размер превыщает 1 Гигабайт.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Д>Вот и будешь ты так сидеть, а языки будут проходить и проходить.... мимо тебя
Весь вопрос в том, куда они будут проходить, если в топку, то пусть себе идут
ЗЫ ЖДУ минуса с нетерпением
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
S>В контексте того, что Влад сообщил о том, что вмесчто удобного Tuple Nemerle ему пришлось писать свой класс на два значения — ИМХО очень к лицу вспомнить и про std::pair. S>
В таком случае таки к лицу. Но вот если бы пришлось заиметь класс на 3 значения...
S> И случай этот не конретный, в частности в терминах С++, опять же не скажу за всю Одессу, — Кортеж служит для передачи анонимных значений, а std::pair — поименных ( first, second ). Но это так, к слову — ИБО КАЗУИСТИКА
Казуистика, чистой воды, так как в том же Nemerle я могу спокойно использовать pattern matching для того, чтобы осуществлять поименный доступ к элементам кортежа. Не будем далеко ходить и возьмём пример из курсов по Nemerle:
def divmod (x, y) {
def div = x / y;
def mod = x % y;
(div, mod)
}
match (divmod (142, 13)) {
| (d, m) =>
System.Console.WriteLine ($ "div=$d, mod=$m");
}
// Output: div=10, mod=12
Здравствуйте, Дарней, Вы писали:
Д>хотя OCaml/NET вряд ли представит что-то новое по сравнению с немерле
Ты уверен, что Nemerle -- это что-то новое? Мне кажется, это очень симпатичная попытка запихнуть в NET то, что было опробованно на других языках.
Д>Вот и будешь ты так сидеть, а языки будут проходить и проходить.... мимо тебя
Языки путь идут. Их каждый год порядка 200 рождается и столько же умирает.
Главное, чтобы интересная и устраивающая меня работа мимо меня не проходила. А, как показывает мой опыт, язык программирования здесь вовсе не определяющую роль играет.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, srggal, Вы писали:
E>>Вай, вай! А где в Янусе нужна высокая скорость работы? S>В первую очередь при поиске сообщениёй в Базе, когда её размер превыщает 1 Гигабайт.
А развернуть свою мысль можешь?
Разве в Янусе поиском не Jet занимается?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
VladD2 wrote: > K>// tie(...) { return Tie<>(...); } где Tie — хелпер-класс распаковки кортежей > А эти хэлперы нужно ручками писать?
Все уже украдено (написано) до нас. В Бусте в том числе.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Ты уверен, что Nemerle -- это что-то новое? Мне кажется, это очень симпатичная попытка запихнуть в NET то, что было опробованно на других языках.
в нашей области придумать что-то принципиально новое — это вообще практически нереально. У всего можно найти какой-то прототип. Да и вообще, ничто не ново под луной (С)
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
WH>Причем С++ чем дальше тем больше превращается в огромного жутика обвешанного всякой фигней... и это при том что комитетчики придерживаются принципа зачем вводить в язык то что реализуется библиотекой? Вот только что-то у них это не получается... За то получается у авторов Nemerle за что им большой респект. Там половина языка (а может и больше) в библиотеке... С++у такое и не снилось. И не приснится уже никгда... ибо этот титаник на глиняном айсберге рушится под собственным весом.
А ведь чертовски верно замечено! Нэмерел действительно воплощает в жизть этот самый принцип. Ведь по сути базовая часть языка очень мала.
Что есть Нэмерле?
Поддержка:
* ООП — класс, перечисления, варианты, методы, свойства, поля.
* Обобщенного программирования — параметризация типов и функций (т.е. дженерики).
* Функциональных вычислений — вложенных функции, константы, рекурсия и оператор match, вычисления выражений (арифметика, битовые операции, вызов функций).
* Императивного программирования — переменные (локальные и поля). И это все что нужно для поддержки ИП!!! .
* Метапрограммирования — макросы (в том числе переопределение синтаксиса и операторов), квази-цитирование, AST, средства получения метаинформации о элементах AST.
Все остальное — надстройка над этими основопологающими фичами! Может какую мелочь я пропустил, но сути дела это не меняет. Блин, мыслимо ли это, но даже операторы &&/|| являются макросами.
База языка очень мала. С++ и темболее C# просто монстры по сравнению с этим языков. Но стройная и сбалансированная модель в купе с продуманной системой расширения зыка приводят к тому, что по расширяемости ему нет равных среди статически типизированных языков.
И при этом, что очень важно, ненужны никакие компромисы.
Когда я слышу про невероятную расширяемость С++ мне становится смешно. Я не видел ни одного безпроблемного расширения С++. Взять те же кортежи. Целое море обвязки, но краткого и удобного синтаксиса добиться так и не удается. А если вспомнить, о том, что почти все рсширения на шаблонах, а те очень часто приводят к жудчайшим сообщениям об ошибках, то становится очень грусно.
Сложность и противоричивось С++ так высока, что даже мегакорпорации не в силах создать полноценных компиляторов не говоря уже о средствах интелисенса и рефакторинга. Между тем Нэмерле превосходя С++ почти по всем параметрам прост до безобразия и его реализация сделана тремя студентами в качестве курсовой.
Объем всех (!) файлов из каталога ncc (компилятора Нэмерла) составляет ~2.4 мегабайта! И это при том, что среди них не малую долю занимает код тестов (без него код компилятора составляет 1.5 мега.).
Код всех макросов (в том числе if/else, while, for, foreach, ..., printf, ... занимает ~177 килобайт!
Сравним это с бустом. Сколько там занимают эти костыли? А ведь и без них компилятор С++ — это море кода!
Подытожу...
Нэмерле язык несомненно более выразительный чем C++ и C#, такой же безопасный как C# в safe-режиме, почти столь же просой как С, лучше поддающийся расширению чем С++.
Короче С++ точно идет неверным путем. База азложенная в С++ явно неверна. Чтобы выполнить принцип "зачем вводить в язык то что реализуется библиотекой" нужно разрабатывать язык так, чтобы он в первую очередь имел средства создания тех самых библиотек. Причем безкомпромисные.
Блин, ему бы коммерческое воплощение и вопрос мэйстрим-языка на ближайшие 10 лет был бы закрыт.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Имхо, tuples должны использоваться в "обобщенном" коде, где нам не важна семантика данных, а важны их количество и типы. Грубо говоря, как список, но с элементами разного типа.
Что то я не улавливаю сценарий. Если состав кортежа задается извне, то очевидно, что сам кортеж в итоге будет виден в инстанцированном типе. Следовательно проблемы с бессмысленными именами элементов кортежа остаются. Если же кортеж используется только внутри, то либо он используется в служебных целях и состав кортежа известен заранее, но тогда опять же имена элементов должны быть осмысленными, либо когда мы не обобщенным программированием занимается, а кодогенерацией. В этом случае действительно можно обойтись циферками, тем более что они итерацию позволяют. Но в таких случаях есть куда более эффективные и удобные средства, нежели элементы обобщенного программирования. Примеров на Nemerle Влад уже приводил более чем достаточно. Основная мысль в том, что tuples по большому счету всего лишь уменьшают размер исходного кода (незначительно, но на мелких и частых применениях заметно), что для кодогенерации вобщем то некритично, поскольку столь же успешно (не на С++ ) можно сгенерировать вместо кортежа специализированную структуру.
ПК> В самом деле, не даешь же ты имена индивидуальным элементам списков
Передергиваешь. Количество строк обычно меняется в рантайме произвольным образом, а вот количество колонок бывает что и фиксированное на этапе компиляции.
Здравствуйте, VladD2, Вы писали:
VD>База языка очень мала. С++ и темболее C# просто монстры по сравнению с этим языков. Но стройная и сбалансированная модель в купе с продуманной системой расширения зыка приводят к тому, что по расширяемости ему нет равных среди статически типизированных языков.
VD>И при этом, что очень важно, ненужны никакие компромисы.
+1
VD>Когда я слышу про невероятную расширяемость С++ мне становится смешно. Я не видел ни одного безпроблемного расширения С++. Взять те же кортежи. Целое море обвязки, но краткого и удобного синтаксиса добиться так и не удается. А если вспомнить, о том, что почти все рсширения на шаблонах, а те очень часто приводят к жудчайшим сообщениям об ошибках, то становится очень грусно.
ИМХО после Немерле вам будет много на что грусно смотреть и не только в С++.
VD>Сложность и противоричивось С++ так высока, что даже мегакорпорации не в силах создать полноценных компиляторов не говоря уже о средствах интелисенса и рефакторинга. Между тем Нэмерле превосходя С++ почти по всем параметрам прост до безобразия и его реализация сделана тремя студентами в качестве курсовой.
Как уже на этом форуме обсуждалось, не факт, что в плане интелисенса и рефакторинга Немерле будет сильно отличаться о С++, во всяком случае макросы Немерле, ещё сыграют роль камня на шее разработчиков этих инструментов.
VD>Объем всех (!) файлов из каталога ncc (компилятора Нэмерла) составляет ~2.4 мегабайта! И это при том, что среди них не малую долю занимает код тестов (без него код компилятора составляет 1.5 мега.).
VD>Код всех макросов (в том числе if/else, while, for, foreach, ..., printf, ... занимает ~177 килобайт!
VD>Сравним это с бустом. Сколько там занимают эти костыли? А ведь и без них компилятор С++ — это море кода!
Да, С++ такой язык, много исходников, много файлов, это не Перл в котором многие вещи делаются одной строкой, иногда размером более 120 символом
VD>Подытожу...
VD>Нэмерле язык несомненно более выразительный чем C++ и C#, такой же безопасный как C# в safe-режиме, почти столь же просой как С, лучше поддающийся расширению чем С++.
+1
VD>Короче С++ точно идет неверным путем. База азложенная в С++ явно неверна. Чтобы выполнить принцип "зачем вводить в язык то что реализуется библиотекой" нужно разрабатывать язык так, чтобы он в первую очередь имел средства создания тех самых библиотек. Причем безкомпромисные.
=1
Избитая тема, C++ идёт своим путем, как у Макаревича, про вагонные споры: "Один сошел где-то под Таганрогом, среди Бескрайних полейб ... И каждый пошел своей дорогой, а поезд пошел своей".
И не факт сто паровоз это Немерле, паравоз, это скорей в целом процесс развития ИТ, а Немерле, С++ и остальные ЯП да и технологии , все это пассажиры. И где они сойдут для движения паравоза — не важно
Но что сойдут — это даже не теорема.
Дык, а смысл так восхищаться одним из пассажиров и подкалывать другого ?
И в этом поезде нет безбелетников.
Пассажиры разные, пути у них разные, цели их путешествия совпадают лишь отчасти.
Так что — я за МИР
Но я занимаю позицию сходную с позицией eao197.
VD>Блин, ему бы коммерческое воплощение и вопрос мэйстрим-языка на ближайшие 10 лет был бы закрыт.
Вопрос был бы закрыт до следующей подобной курсовой.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Честно говоря, не понимаю, зачем нужно t.IntProperty в tuples... Нужно IntProperty — заводим соответствующую структуру.
А зачем тогда вобще эти кортежи нужны?
ПК> Нужно несколько значений — tuples. Нет?
Сценарий можно, где типы значений все известны, а их семантика нет?
ПК>А зачем мне локально оборачивать именованные значения в tuple, через который я затем с ними же буду работать как с именованными значениями?..
Для улучшения читаемости кода. Собствено в C# 3.0 нормальных кортежей нет, как тут справедливо заметили. А то что есть предназначено для улучшения читаемости операции проекции:
class A
{
int X,
int Y,
string Z
}
...
var la = new List<A>();
...
foreach (var element in la.Select(new {X, Z}))
{
Console.WriteLine(element.X); // OK
Console.WriteLine(element.Y); // compile-time error
Console.WriteLine(element.Z); // OK
}
Если переписать это же в декларативную форму, эффект будет еще заметнее.
Увы, на бустовских кортежах такое не повторишь. А писать под каждую проекцию отдельную структуру это уже перебор.
Здравствуйте, Дарней, Вы писали:
Д>Здравствуйте, srggal, Вы писали:
S>>Весь вопрос в том, куда они будут проходить, если в топку, то пусть себе идут
Д>в топку однозначно попадают программисты, которые не интересуются ничем новым.
-1
Языки путь идут. Их каждый год порядка 200 рождается и столько же умирает.
Главное, чтобы интересная и устраивающая меня работа мимо меня не проходила. А, как показывает мой опыт, язык программирования здесь вовсе не определяющую роль играет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, srggal, Вы писали:
E>>>Вай, вай! А где в Янусе нужна высокая скорость работы? S>>В первую очередь при поиске сообщениёй в Базе, когда её размер превыщает 1 Гигабайт.
E>А развернуть свою мысль можешь? E>Разве в Янусе поиском не Jet занимается?
Мне, как пользователю Януса, как-бы фиолетово кто и что чем занимается.
Хочется чтобы поиск в Янусе работал быстрей, что прийдется менять для этого меня, как пользователя это не должно волновать.
Если я не ошибаюсь то на этом форуме Павел Дворкин в топике по эффективности уже грил, о том, что поиск Через FireFox[NNTP](могу и ошибиться) работает гараздо быстрей чем в Янусе.
Вот именно об этом я говорю, что ещё можно разворачивать ?
Но это как бы моя позиция как обычного пользователя.
А как продвинутый пользователь, и разработчик, я забиваю на это неудобство ИБО Янус шаровый, и более удобный.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[12]: Как думаете что мне больше всего нехватает в C# из N
S>Языки путь идут. Их каждый год порядка 200 рождается и столько же умирает.
S>Главное, чтобы интересная и устраивающая меня работа мимо меня не проходила. А, как показывает мой опыт, язык программирования здесь вовсе не определяющую роль играет.
С одной стороны, знание языков и прочих инструментов не делает тебя профессионалом само по себе. Профессионалом делает только умение выбрать подходящий к нужной задаче инструмент.
С другой стороны, чтобы уметь выбрать нужный инструмент, нужно эти инструменты знать. Поэтому программист, который любую задачу пытается решить своим любимым старым лобзиком, отправляется — ну ты сам понимаешь, куда.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, srggal, Вы писали:
E>>Разве в Янусе поиском не Jet занимается?
S>Мне, как пользователю Януса, как-бы фиолетово кто и что чем занимается. S>Хочется чтобы поиск в Янусе работал быстрей, что прийдется менять для этого меня, как пользователя это не должно волновать.
Собственно мой вопрос к VladD2 основывался на том, что в разных баталиях по поводу производительности Януса вообще и поиска в нем в частности, разработчики Януса говорили, что тормоза Януса лежат в Jet (т.е. на уровне работы с БД). А поиска быстрого нет потому, что нет индексатора и поиск ведется чуть ли не SQL-ный LIKE. Отсюда и тормоза и малая релевантность результатов поиска.
Так вот, если в Янусе на C# сделан только GUI и работа с БД (через Jet), отображением (через IE-компонент) и работа с сетью (синхронизация), то где здесь требуется высокая производительность? Такая, которую не смог бы обеспечить Ruby в подобных условиях.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, AndrewVK, Вы писали:
E>>то где здесь требуется высокая производительность?
AVK>Например для отрисовки грида.
Учитывая, что Ruby не сам отрисовывает такие вещи, а через C++ные библиотеки (FOX или Qt), то не думаю, что здесь будет серьезная разница в производительности.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[13]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Дарней, Вы писали:
Д>С одной стороны, знание языков и прочих инструментов не делает тебя профессионалом само по себе. Профессионалом делает только умение выбрать подходящий к нужной задаче инструмент. Д>С другой стороны, чтобы уметь выбрать нужный инструмент, нужно эти инструменты знать.
Не согласен с последним утверждением. Выбор инструмента для задачи из тех инструментов, которые ты знаешь -- это всего лишь выбор между имеющимися в твоем распоряжении любимыми лобзиками (которых у нормальных людей не может быть много, имхо).
Гораздо важнее уметь найти информацию о всех инструментах, которые могут помочь тебе решить конкретную задачу. Затем произвести первичную фильтрацию, оставить несколько наиболее вероятных претендентов, и выбрать уже из них победителя. Причем уровень твоего собственного текущего знания какого-то инструмента может не играть вообще никакой роли (если только не предельно сжатые сроки на реализацию).
Например, когда я искал для своей задачи скриптовый язык, я имел очень отдаленное представление о том, что такое Ruby. Тем не менее, Ruby оказался победителем по целому ряду факторов. Но в тройку финалистов (вместе с Perl и Python) он попал тогда, когда я его вообще не знал. Более важно на тот момент было то, что Ruby был на большом количестве платформ, для него было достаточно документации, у него был небольшой объем исходников (на С) и пр. А первоначально я перебрал штук двадцать языков (помню, что мне понравились еще Ici-4, Lua, c-smile и Groovy).
И подобная ситуация не только с языками, но даже с библиотками и фреймворками для конкретного языка. Например, мне приходилось выбирать такие вещи, как библиотека для поддержки криптографии (Crypto++, но сейчас бы выбрал Botan), для работы с SSL (OpenSSL, хотя тогда еще GnuTLS была в бетах, да и C++ная CryptLib так же очень достойно выглядела), для GUI (Qt с серьезным отрывом, хотя есть и весьма достойные конкуренты в лице FOX, wxWidgets, FLTK, Ultima++), общесистемная кроссплатформенная библиотека (ACE, хотя и здесь есть куча альтернатив). Во всех случаях в процессе выбора я узнал о таком количестве альтернатив (причем весьма серьезных), про которое даже не подозревал. И только в случае с OpenSSL и Qt выбор был сделан в пользу инструмента, о котором я знал заранее. А вот про Crypto++ и ACE я узнал уже в процессе поисков.
Так что я придерживаюсь мнения, что абстрактные, не примененные знания -- это мусор, от которого мой мозг очень быстро избавляется. Есть такая особенность -- все, что не нужно в течении нескольких недель (а то и дней) выветривается абсолютно. Гораздо важнее суметь получить и обработать новые знания из окружающего мира именно тогда, когда они потребуются. Но это my way, не могу его никому рекомендовать.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
VD>>Явная типизация в большинстве случаев только ухудшает читабельность.
ПК>-1
Речь идет о тех случаях когда тип однозначно выводится из контекста конечно.
ПК>Функциональные, через рекурсию.
В C# их нет. В Nemerle я все что нужно переберу штатными средствами. Так что нет нужны в переборе значений кортэша через индекс. А С++ с его тараканами мня не интересует.
VD>>А извращения могут быть любыми. Уж извини, но С++ с Нэемерлом в компайлтайме не тягаться.
ПК>Это я в данной теме не обсуждаю. Я только высказался относительно двух разных форм записи: (i, _) = t vs. i = get<0>(t).
Дык ты говоришь, что get<0>() нужен именно для перебора в компайлтайме. Я же тебе отвечаю, что в Нэмерле есть специальные средтства. Так что по жизни при использовании кортэжей в Немерле обращаться к синтаксису x[y] не требуется.
ПК>Именно из-за разных типов я и сказал о compile-time циклах. Это вполне осмысленно для любых утилит обобщенной обработки tuples.
См. выше.
ПК>Кстати, какого типа выражение t[0] в Nemerle?
Того же что и элемент кортэжа. Физически кортэж выраждается в дженерик-класс, если конечно компилятор его полностью не устраняет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Вай, вай! А где в Янусе нужна высокая скорость работы?
Знашь, тут и так на Янус со всех сторо говорят, что он подтормаживает. Прикинь, что было бы если бы он был на Руби? Он бы и вылетал чаще, и тормозил больше.
К тому же кроме януса есть еще много чего. Прикинь как убдет тормозить парсер на Руби? А во что выльется текстовый редактор?
E>В Web-приложениях, например, Ruby спокойно конкурирует с Java.
Да не очень то. Порталы с большой загрузкой делают на Яве, а не на Руби.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Andrei N.Sobchuck, Вы писали:
S>>В первую очередь при поиске сообщениёй в Базе, когда её размер превыщает 1 Гигабайт.
ANS>?!! То есть тормозит таки C#?
2 тебе по логике.
Тормозит С++.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, eao197, Вы писали:
E>Про проблемы в дизайне Ruby можно подробнее?
Легко. Главная — это слабый контроль эээ... мм... компилятора то вообще нет. Так что даже не знаю чего. Ну, скажем так парсера.
Переменные не типизированные и не объявляемые. А это глюки и жизнь на тестах.
Далее динамическое изменение. А это неизвеность при загрзуке любого модуля.
Текстуальные макросы. В общем, весь бугет в одном флагне. Ну, разве что еще доступа по неверным адресам нехватает и грязи в непроинициализированных переменных.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, eao197, Вы писали:
E>А вот теперь посмотри: год назад, ты уверял меня, что C# -- это круто, что нужно бросать C++ и писать на C#.
А я и сейчас это утверждаю. Проблемы плюсов резко преревешивают их достоинства.
E> Послушал бы я тебя тогда, к сегодняшнему моменту чего-нибудь успел бы сделать на C#.
Дык, заметь. Все смог бы использовать из Нэмерла. А так мучашся с плюами и Руби.
E> Но чу! C# то не так крут, есть и круче. Значит, нужно бросать C# и писать на Nemerle. С такими же перспективами через 1.5 года перебраться под OCaml/NET (к примеру).
OCaml не имеет ничего, что могло бы дать ему серьезные конкурентные приемущества в данном плане.
E>Так что получается, что на массированную рекламу лучше не поддаваться, никуда не перепрыгивать. Время покажет, на какую платформу имеет смысл переходить. Может и правда это будет Nemerle. Если так, то я ничуть не огорчусь, что C# прошел мимо меня.
Правильно. И зря ты С++ и Руби мучашь. Пиши на С и тогда проблем не будет. Ну, разве что свободного времени не будет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, srggal, Вы писали:
S>А может ли обезьяна, при наличии мозга, программировать, пусть даже на таком удобном языке как C#, а на Nemerle ?
Ну, я видел множество обезьян программирующих на С++. Так что на C# и Nemerle — легко.
А вот где ты видел чтобы С++ на чем-то программировал?
S>Такие вот родственнички
S>как это не чем. В С++ инстанцирование шаблона осуществляется во время компиляции, а в C#, тоже, что понимается под этим в С++, производится в в рантайм.
Извини, ты читать умешь? Я по этому поводу уже ответил.
S>Исходный вопрос был чем Дженерик KeyValuePair<K, V> лучге чем шаблон std::pair S>
S>Может тогда расскажешь чем он лучше KeyValuePair<K, V>?
Лучше? А кто говорил, что они лучше? Хотя ты прав. Лучше. Таки с помощью эмита можно действительно создать их специализцию в рантайме. Да и распростроняются они не в виде текстовых файлов, а в сборках. В этот тношении конечно луше.
Но я то говорил о том, что они не хуже.
Улавливашь разницу?
S>и один из пунктов, которые я привел — это был compile-time. После этого Вы грите что это в конте5сте данного обсуждения несуществено .
Дык я тебе и ответил, что дженирики вопложаются тоже в компайл-тайме. Только он у них в другое время производится. Только и всего.
S>Виртуальная машина — эот эмуляция реальной, байт-код — это псевдо код — эмуляция машинного
У тебя явно недостаточно сведений о работе рантайма дотнета, чтобы вести эту дискуссию. Предлагаю тебе восполнить этот пробел и если захочешь, то продолжим разговор.
Твои же подмигивания в данном случае выглядят мягко говоря странно.
VD>>Понимаш ли в чем дело? Разница между нашими подходами в том, что ты думашь сколько ты набьешь кода, а я о том насколько понятным будет мой код. Только и всего.
S>Для кого понятным ?
Для тех кто будет его читать. То есть в первую очередь для себя любимого.
S> Для домохозяйки ? Для телеведущего ? Для компилятора ? Или для адекватного специалиста ?
Ну, домохозяек опустим, а вот для неадекватного специалиста хорошо бы чтобы код тоже был понятен. Ведь если он полезет его править, то хотя бы не угробит окончательно.
S> В Делфи код ещё более наглядный.
Чем где?
S> TForm1.OnClose() и все дела.
Это типа "- Да совсеми. Надо все взять и поделить!"?
S>Мой продакшн-код тоже понятный, очень наглядный — это даже не аксиома, ИБО эот не мои слова.
Боюсь даже спросить "чьи".
Вообще с настроем вроде твоего хороший код писать трудно. Ведь если ты решил писать код ради скорости его написания не обращая при этом внимания на его понятность, то скррее всего ты наколбасишь малопонятных и не интуитивных решений. Если это не так, то я могу толко порадоваться за тебя. И по сожалеть о том, что не все так круты на свете.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
VD>> в Янусе 2.5 метра кода. И просто так его переписывать никто не будет.
ПК>Неужели? А как же столь расхвалявшиеся
Здравствуйте, eao197, Вы писали:
E>Учитывая, что Ruby не сам отрисовывает такие вещи, а через C++ные библиотеки (FOX или Qt), то не думаю, что здесь будет серьезная разница в производительности.
А нафига тогда Ruby вобще нужен, если грид на С++, модель данных на С++ (потому что от нее зависит скрость отрисовки), формирование текста сообщения на С++ (потому что от скорости форматтера тоже многое зависит), подсветка синтаксиса в редакторе на С++, докинг на С++, работа с веб-сервисом на С++ (потому что нужен быстрый SOAP-форматтер).
Здравствуйте, AndrewVK, Вы писали:
AVK>А нафига тогда Ruby вобще нужен, если грид на С++
Грид на C++ потому, что в Ruby нет нативной реализации GUI.
AVK>, модель данных на С++ (потому что от нее зависит скрость отрисовки), формирование текста сообщения на С++ (потому что от скорости форматтера тоже многое зависит), подсветка синтаксиса в редакторе на С++, докинг на С++, работа с веб-сервисом на С++ (потому что нужен быстрый SOAP-форматтер).
Все остальное совсем не факт.
И нафига быстрый SOAP-форматтер, если затем будет качаться информация по узкому каналу?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[16]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
AVK>>А нафига тогда Ruby вобще нужен, если грид на С++
E>Грид на C++ потому, что в Ruby нет нативной реализации GUI.
А в янусе его море, этого нативного GUI.
E>Все остальное совсем не факт.
Факт. Потеря в производительности на порядок в любой из этих точек привела бы к серьезным проблемам.
E>И нафига быстрый SOAP-форматтер, если затем будет качаться информация по узкому каналу?
А кто сказал про узкий канал? Производительности моего WiFi, к примеру, вполне хватает чтобы заметно подгрузить этим форматтером процессор.
Здравствуйте, AndrewVK, Вы писали:
AVK>А в янусе его море, этого нативного GUI.
И? Весь этот нативый GUI пойдет через C++ный FOX.
E>>Все остальное совсем не факт.
AVK>Факт. Потеря в производительности на порядок в любой из этих точек привела бы к серьезным проблемам.
Пока нет замеров, не факт.
E>>И нафига быстрый SOAP-форматтер, если затем будет качаться информация по узкому каналу?
AVK>А кто сказал про узкий канал? Производительности моего WiFi, к примеру, вполне хватает чтобы заметно подгрузить этим форматтером процессор.
Так www.rsdn.ru может отдавать данные со скоростью твоего WiFi?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[18]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
AVK>>А в янусе его море, этого нативного GUI.
E>И? Весь этот нативый GUI пойдет через C++ный FOX.
А нафик тогда Руби?
AVK>>Факт. Потеря в производительности на порядок в любой из этих точек привела бы к серьезным проблемам.
E>Пока нет замеров, не факт.
Факт. Потому что замеры есть. У меня десяток снапшотов профайлера по сю пору на диске валяется.
AVK>>А кто сказал про узкий канал? Производительности моего WiFi, к примеру, вполне хватает чтобы заметно подгрузить этим форматтером процессор.
E>Так www.rsdn.ru может отдавать данные со скоростью твоего WiFi?
Здравствуйте, VladD2, Вы писали:
VD>К тому же кроме януса есть еще много чего. Прикинь как убдет тормозить парсер на Руби? А во что выльется текстовый редактор?
Нет, не представляю. Regex-пы парсятся на Ruby влет. Говорю тебе поскольку на меня на Ruby огромные log-файлы перелопачиваются.
E>>В Web-приложениях, например, Ruby спокойно конкурирует с Java.
VD>Да не очень то. Порталы с большой загрузкой делают на Яве, а не на Руби.
Пока. А вообще, свое незнание предмета ты компенсируешь аргессией, так? Вот здесь
eins.de serves about 1.2 million dynamic page impressions on a good day. The new incarnation is serving up the 25 sub-communities on different domains in a single Rails application. It was, however, not before Febuary of this year when our iterative optimizations of both system configuration and application code lead to a point where we were able to deal with this amount of traffic.
The site largely lives through dynamic pages and information rendered based upon user preferences or things like online status or relationship status. This kept us from taking the easy way out by just using page or fragment caching provided by Rails itself.
The application servers are dual Xeon 3.06GHz, 2GB RAM, SCSI U320 HDDs RAID-1. The database servers are dual Xeon 3.06GHz, 4GB RAM, SCSI U320 HDDs RAID-1. The proxy server is a single P4 3.0GHz, 2GB RAM, SCSI U320 HDDs RAID-1.
... Basecamp by 37signals (www.basecamphq.com)
...
Basecamp does about 400,000 dynamic requests per day (everything from
seeing the login page to viewing the project dashboard). That’s a size-
able number when nothing can be cached. It’s currently handled by two
web/application servers that each run 15 FastCGI processes and 50–100
Apache 1.3.x processes on dual 2.4GHz Xeons with 2GB of RAM. These
machines usually sit between 0.5 and 1.5 in load.
The MySQL database server is separate but shared with two other appli-
cations from 37signals (Ta-da List and Backpack). There are hundreds
of thousands of rows, not millions. The biggest table is about 500,000
rows. Despite serving three applications, the database server usually
runs around 0.1 to 0.3 in load—the database is not the bottleneck for
Basecamp—which is great news for scaling. Just add another applica-
tion/web server when the two current ones are not enough, and we’ve
added a lot more capacity.
... 43 Things by the Robot Co-op (www.43things.com)
...
43 Things processes about 200,000 dynamic requests per day (after three
months online) across its two application/web servers and the single ded-
icated database server (all dual 3GHz Xeons with 2GB RAM). Each Apache
1.3.x web server runs 25 FastCGI processes. Load on the servers rarely
exceeds 0.3 and CPU idle time is usually in excess of 80%
...
Rapid Reporting is runningtheiridentity and income verification engine on
top of a Rails system. It’s used by roughly 80% of the top 1000 mortgage
underwriters in the United States and is built to handle 2 million mortgage
application transactions per month.
During their initial tests to assert whether Rails was a usable platform
for their application, they did 3,000 requests per second on a simple test
application across their10machine cluster. The realapplication processes
somewhere around 300 requests/second on a similar setup, performing
interesting business logic. Processing mortgages means following GLBA
compliance, so audit trails are generated and permissions are checked in
many places.
...
И это данные на момент выхода книги (т.е. годичной давности).
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Легко. Главная — это слабый контроль эээ... мм... компилятора то вообще нет. Так что даже не знаю чего. Ну, скажем так парсера.
VD>Переменные не типизированные и не объявляемые. А это глюки и жизнь на тестах.
VD>Далее динамическое изменение. А это неизвеность при загрзуке любого модуля. VD>Текстуальные макросы. В общем, весь бугет в одном флагне.
Да уж... Либо это клиника, либо попытка рассуждать о вкусе устриц, которых ты не только не пробовал, но еще и не видел.
Кстати, жизнь на тестах -- это очень спокойная жизнь.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
E>А вот теперь посмотри: год назад, ты уверял меня, что C# -- это круто, что нужно бросать C++ и писать на C#. Послушал бы я тебя тогда, к сегодняшнему моменту чего-нибудь успел бы сделать на C#. Но чу! C# то не так крут, есть и круче. Значит, нужно бросать C# и писать на Nemerle. С такими же перспективами через 1.5 года перебраться под OCaml/NET (к примеру).
Дык. Давай все-таки подсчитаем
Год назад было пора переползать на C# (скорее — года полтора-два). Через год-полтора будет пора переползать на Nemerle. Может быть.
Если бы переполз — то в течение двух лет использовал бы преимущества новой платформы и лучше подготовился к появлению еще лучшей.
ИМХО — все правильно бы сделал.
Re[19]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Учитывая, что Ruby не сам отрисовывает такие вещи, а через C++ные библиотеки (FOX или Qt), то не думаю, что здесь будет серьезная разница в производительности.
А зачем нам убоги ГУИ от Qt и в добавок геморрой с С++?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, srggal, Вы писали:
S>ИМХО после Немерле вам будет много на что грусно смотреть и не только в С++.
Ну, почему же. Вот подход C# очень понятен. Упор на безопасность и простоту. То что разработчики не могут сделать просто и безопасно они просто не делают. Причем стараются не допустить, чтобы что-то можно было сделать самому.
S>Как уже на этом форуме обсуждалось, не факт, что в плане интелисенса и рефакторинга Немерле будет сильно отличаться о С++, во всяком случае макросы Немерле, ещё сыграют роль камня на шее разработчиков этих инструментов.
Дык уже кое-что есть. Хотел бы я поглядеть на интелисенс для С++ в 85-ом году. Когда и шаблонов то небыло как таковых.
Сложность конечно выше чем в случае с Шарпом, но все детерминировано.
VD>>Сравним это с бустом. Сколько там занимают эти костыли? А ведь и без них компилятор С++ — это море кода! S>Да, С++ такой язык, много исходников, много файлов, это не Перл в котором многие вещи делаются одной строкой, иногда размером более 120 символом
Я говорю об объеме кода компилятора и костыльных библиотек (т.е. библиотек не предоставляющих реальной функциональности, а закрывающих пробелы в языке).
S>Дык, а смысл так восхищаться одним из пассажиров и подкалывать другого ? S>И в этом поезде нет безбелетников.
Ож уж эти аналогии. Языки — это не пасажиры. Это скорее инструменты. Вот какой смысл ползоваться пирачинным ножиком для строительства дома?
S>Так что — я за МИР
И я ха гешл
VD>>Блин, ему бы коммерческое воплощение и вопрос мэйстрим-языка на ближайшие 10 лет был бы закрыт. S>Вопрос был бы закрыт до следующей подобной курсовой.
Что-то они не часто появляются.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, mrozov, Вы писали:
M>ИМХО — все правильно бы сделал.
Ну не верю я в скорое наличие нормальной реализации NET под Unix-ом. Чтобы программы из-под Windows без проблем под Unix-ом работали. Так что не получил бы в эти год-полтора бы преимуществ от новой платформы, т.к. не везде она была.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, mrozov, Вы писали:
M>>ИМХО — все правильно бы сделал.
E>
E>Ну не верю я в скорое наличие нормальной реализации NET под Unix-ом. Чтобы программы из-под Windows без проблем под Unix-ом работали. Так что не получил бы в эти год-полтора бы преимуществ от новой платформы, т.к. не везде она была.
Не, ну это поняяятно. Тут люди еще очень хороший пример с OLE приводили — проще застрелиться, чем на c# писать. .net — отличная среда для mainstream-а.
А вот Java могла бы сойти и в твоем случае. У них там исключительно вкусные вещи уже несколько лет как в ходу. Тот же ant, hibernate, junit, spring... Нормальные ide, опять же.
Re[15]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, mrozov, Вы писали:
M>А вот Java могла бы сойти и в твоем случае. У них там исключительно вкусные вещи уже несколько лет как в ходу. Тот же ant, hibernate, junit, spring... Нормальные ide, опять же.
Да, Java 5 вполне себе ничего. Но ведь не сразу, к сожалению, она такой стала.
Но и все равно, привыкнув к C++ным шаблонам переходить на Java совсем не хочется.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, eao197, Вы писали:
E>Эти захардкоденные номера при обращении к элементам tuple... E>И не выразительно. E>И подвержено ошибкам (при смене порядка следования элементов в tuple).
Для С++ добавление новых внутренних типов ничего не стоит, в отличие от .Net, где множества типов "по-месту" засоряют целевую сборку.
Ведь в С++ можно прямо в теле метода определять типы:
void MyFunc() {
struct tuple { int i; double d; } t = { 1, 1.0};
...
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, AndrewVK, Вы писали:
K>>А нафига такие танцы с бубном? tuple удобен когда из функции надо вернуть несколько значений одновременно, юзать их для чего-то другого я смысла не нашел.
AVK>Плохо искал. Типичный пример — некий временный контейнер с результатами каких либо расчетов.
Здравствуйте, vdimas, Вы писали:
V>Для С++ добавление новых внутренних типов ничего не стоит, в отличие от .Net, где множества типов "по-месту" засоряют целевую сборку.
Что такое засоряют? Лично я никогда не испытывал проблем с таким "засорением".
V>Ведь в С++ можно прямо в теле метода определять типы:
V>
eao197,
M>>А вот Java могла бы сойти и в твоем случае. У них там исключительно вкусные вещи уже несколько лет как в ходу. Тот же ant, hibernate, junit, spring... Нормальные ide, опять же.
E>Да, Java 5 вполне себе ничего. Но ведь не сразу, к сожалению, она такой стала. E>Но и все равно, привыкнув к C++ным шаблонам переходить на Java совсем не хочется.
А приходится Все (!) проекты на Java, с которыми я так или иначе сталкивался, использовали связку с xslt для генерации исходников. Вот такое едрён-батон "метапрограммирование"...
Здравствуйте, eao197, Вы писали:
E>Так вот, если в Янусе на C# сделан только GUI и работа с БД (через Jet), отображением (через IE-компонент) и работа с сетью (синхронизация), то где здесь требуется высокая производительность? Такая, которую не смог бы обеспечить Ruby в подобных условиях.
Вы меня простите НО если бы смогли, то почему ничего не сделали ?
Мужики взяли- и сделали, теперь отбиваются от пользователей.
Но вот грить, я бы мог сделать если бы не .....
Это как-то не очень серьёзно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, srggal, Вы писали:
S>Но вот грить, я бы мог сделать если бы не .....
Где я говорил, что я бы смог?
Disclaimer для тех, кто попытается еще поспекулировать на эту тему: у меня нет желание делать еще один Янус. Ни на C++, ни на Ruby. Просто потому, что я им не пользуюсь. И потому, что у меня своих проектов хватает.
Ruby был упомянут к том, что в GUI приложениях, которые работают с сетью и с БД, имхо, быстродействие самой прикладной логики не столь важно. Поэтому GUI приложения для задач, аналогичных Янусу вполне могут разрабатываться на Ruby, Python, Perl, Smalltalk, Tcl/Tk и других интерпретируемых языках.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Пока. А вообще, свое незнание предмета ты компенсируешь аргессией, так? E>Вот здесь E>
E>eins.de serves about 1.2 million dynamic page impressions on a good day.
...
E>The application servers are dual Xeon 3.06GHz, 2GB RAM, SCSI U320 HDDs RAID-1. The database servers are dual Xeon 3.06GHz, 4GB RAM, SCSI U320 HDDs RAID-1. The proxy server is a single P4 3.0GHz, 2GB RAM, SCSI U320 HDDs RAID-1.
У богатых свои причуды. Набы столько такого железа!
Короче читайте меньше рекламного булшита и бльше интересуйтесь у людей который по паре раз на день заглядивают на веб-сервер у которого действительно процессоры кипят от нагрева.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Да уж... Либо это клиника, либо попытка рассуждать о вкусе устриц, которых ты не только не пробовал, но еще и не видел.
Ну, раз у тебя по существу вопросов нет, то можешь порассуждать об устрицах, тфу. о дотнете.
E>Кстати, жизнь на тестах -- это очень спокойная жизнь.
Я же не призываю тебя все бросить и заняться изучением какой-то там современной попсы. Опаси боже! Живи на тестах.
Как там у Цоя то было? Следи за собой... будь осторожен...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Как думаете что мне больше всего нехватает в C# из N
E>>eins.de serves about 1.2 million dynamic page impressions on a good day.
VD>...
E>>The application servers are dual Xeon 3.06GHz, 2GB RAM, SCSI U320 HDDs RAID-1. The database servers are dual Xeon 3.06GHz, 4GB RAM, SCSI U320 HDDs RAID-1. The proxy server is a single P4 3.0GHz, 2GB RAM, SCSI U320 HDDs RAID-1.
VD>У богатых свои причуды. Набы столько такого железа!
Я думаю, что это железо стоит гораздо дешевле того софта, который на нем крутится.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[15]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Ruby был упомянут к том, что в GUI приложениях, которые работают с сетью и с БД, имхо, быстродействие самой прикладной логики не столь важно.
Here’s a good measure of performance. A certain sorting algorithm that determines the most active conversations. 100ms in Java, but a painfully slow 500ms in Ruby (5x). Once you add database query and networking, the difference between the languages is about 10%. 10% is not a big difference.
Идеи в обоих случаях одни и те же. Не сомневаюсь ни на пол-процента.
Ну не могут комрады из ms не быть в курсе.
Просто несколько разные задачи и ограничения. Разного толка — тут и обратная совместимость и психология и сроки/бюджет.
А вот еще мысля — я вот не жду от nemerle повышения кпд работы, пока нет нормальный интеграции со средой. Ежели задача полноценной поддержки (ака рефакторинг, подсветка синтексиса и т.п.) на данном этапе не решаема, значит nemerle — плохой язык. Чисто академический. Любопытный и не более того.
Решаемая проблема? Очень может быть. Но не сейчас. А что там будет в c# 4.0?
Другая мысля — при изучении nemerle часто возникает мысль — "Вот классная фича! Правда, в c# она тоже есть, но там она захардкожена". Так вот — мне до одного места "внутренняя красота языка", если конечный результат в точности тот же. И если в c# будет 90% того, что мне нужно — никуда я с него не слезу.
Если я действительно неправ по обоим пунктам — да слава Богу! Осталось дожить.
Re[14]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, mrozov, Вы писали:
M>Ну не могут комрады из ms не быть в курсе.
Тут дело не в знании. Тут дело в видинии.
Есть такой анекдот.
Пяточек и Винипух зашли в мясную лавку...
— Вини! Вини! А это мой портрет!
— Да? (скептически)
— Да, да!!!
— А что-то он какой-то странный. Как-то странно разлинован. Везде какие-то циры... надписи...
— А это мясник рисовл. Он так видит.
Вот и тут похожая фигня. У каждого свое видение.
M>Просто несколько разные задачи и ограничения. Разного толка — тут и обратная совместимость и психология и сроки/бюджет.
Ну, их бюджет дай бог каждому. А что касается совместимости, то очень многое можно сделать ее не ломая.
Да и я был бы рад если бы в МС просто сделали Нэмерле еще одним языком в VS. Есть же МС++?
M>А вот еще мысля — я вот не жду от nemerle повышения кпд работы, пока нет нормальный интеграции со средой. Ежели задача полноценной поддержки (ака рефакторинг, подсветка синтексиса и т.п.)
Подсветка то не проблема. Вот интелисенс и рефаторинг — это да. Плюс поддержка отладчика пока что тоже никуда не годная. Порой в нужном месте невозможно поставить точку останова. Потому и хочется, чтобы МС проетк поддержали. И не грантами, а рельно.
M> на данном этапе не решаема, значит nemerle — плохой язык.
Как сказать. Пару дней программирования на нем и начинашь ворчать на C#.
M> Чисто академический. Любопытный и не более того. M>Решаемая проблема? Очень может быть. Но не сейчас. А что там будет в c# 4.0?
3.0 то не ясно когда будет. А в нем пока что серьезных изменений не предвидится. Пара тройка приятных сахарков.
M>Другая мысля — при изучении nemerle часто возникает мысль — "Вот классная фича! Правда, в c# она тоже есть, но там она захардкожена". Так вот — мне до одного места "внутренняя красота языка", если конечный результат в точности тот же. И если в c# будет 90% того, что мне нужно — никуда я с него не слезу.
Хм.
1. Есть некоторые фичи которых к сожалению в Шаре нет. Вот эта тема как раз про одну из них.
2. Вопрос не во встроенности foreach-а. Мне тоже наплевать как он там сделан. Но язык (в прочем как любой проект) имеющий более ичистую архитектуру проще развивать. C# только сложно развивать, но еще и невозможно. Ведь код управлется МС. А Нэмерле предоставляет штатные средства расширения. Причем это не "эддины" сделанные чтобы отмазаться. Это фича которую они сами исползуют во всю.
M>Если я действительно неправ по обоим пунктам — да слава Богу! Осталось дожить.
Я думаю, что Нэмерле это отличный дизайн и отточенные идеи. Если их развить то получится действительно революционная вещь. Но если все сойдет на тормозах мы получим еще один Лисп++.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Как думаете что мне больше всего нехватает в C# из N
VD>Спасибо. Я им сам пользовался. Уж лучше банальный Вынь.
ИМХО — хуже всего что под Win они все равно самописку свою показывают, хотя можно было — бы врапперов сделать.
Под Nix ещё как-то можно с этим мириться, но под Win как-то бьёт в глаза.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
E>>Я думаю, что это железо стоит гораздо дешевле того софта, который на нем крутится.
VD>Рубирельсов с МайСкулями то? Не смешите мои тапочки.
Во-первых, в разработку RoR и MySQL было вложенно действительно больше денег, чем в приобретение приведенной аппаратуры. Это распространяются OpenSource продукты бесплатно.
Во-вторых, речь шла не об инструментах (а RoR и MySQL это только инструменты), а о прикладной задаче и софте, который ее решает на RoR и MySQL.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[14]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Во-первых, в разработку RoR и MySQL было вложенно действительно больше денег, чем в приобретение приведенной аппаратуры. Это распространяются OpenSource продукты бесплатно.
А ведь могли бы сэкономить купив Оракл 10ж и какой-нить недорогой сервер приложений на Яве.
E>Во-вторых, речь шла не об инструментах (а RoR и MySQL это только инструменты), а о прикладной задаче и софте, который ее решает на RoR и MySQL.
Да, да. Софт на Руби и ПХП очень дорог в разработке. Очень большие деньги уходят на юнит-тесты и кор-ревью. Ведь мы то знам кто в основном пишет на этих великих технологиях.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Как думаете что мне больше всего нехватает в C# из N
судя по твоему описанию, ты выбирал инструменты, которые ты не знал, но для задач, которые тебе уже были знакомы. Тебе например были известны основные фичи, по которым ты выбирал язык для задачи — наличие каких-то возможностей, конструкций языка и так далее. Это и есть то, о чем я говорил — "знать инструменты". Чтобы выбрать для себя электродрель, не нужно иметь опыт работы с электродрелью каждой из фирм, которые их выпускают. Но нужно знать, что существует такой класс инструментов, какие задачи ими решаются, а какие — нет.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали: VD>Ну, их бюджет дай бог каждому. А что касается совместимости, то очень многое можно сделать ее не ломая.
Это точно. После того, как эти парни сумели сделать длинные имена файлов, оставив совместимость с DOS, я понял, что нет пределов обратной совместимости.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
VD>Легко. Главная — это слабый контроль эээ... мм... компилятора то вообще нет. Так что даже не знаю чего. Ну, скажем так парсера.
VD>Переменные не типизированные и не объявляемые. А это глюки и жизнь на тестах.
VD>Далее динамическое изменение. А это неизвеность при загрзуке любого модуля. VD>Текстуальные макросы. В общем, весь бугет в одном флагне. Ну, разве что еще доступа по неверным адресам нехватает и грязи в непроинициализированных переменных.
Большой опыт написания на Ruby? Рад видеть такого мастера и гуру.
Влад, извини за сарказм, но у тебя просто потрясающая способность судить обо всем даже не пробуя. Причем ладно бы по жизни, а то в инженерной дисциплине. Кстати, статья интересная для тебя у Гоблина:
Здравствуйте, eao197, Вы писали:
E>Ruby был упомянут к том, что в GUI приложениях, которые работают с сетью и с БД, имхо, быстродействие самой прикладной логики не столь важно. Поэтому GUI приложения для задач, аналогичных Янусу вполне могут разрабатываться на Ruby, Python, Perl, Smalltalk, Tcl/Tk и других интерпретируемых языках.
+1
1С — на что тормознутая скрипт-машинка, однако с доисторических десктопов обслуживает себе торговлю/производство и бухгалтерию.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Дарней, Вы писали:
Д>судя по твоему описанию, ты выбирал инструменты, которые ты не знал, но для задач, которые тебе уже были знакомы.
А что бывает по другому?
Бывает так, что нужно искать инструмент для задачи, которую ты не знаешь как решать?
Д>Тебе например были известны основные фичи, по которым ты выбирал язык для задачи — наличие каких-то возможностей, конструкций языка и так далее.
Нет, не так. Я знал, что мне нужен скриптовый язык. Т.е. язык, который позволяет запускать программы прямо из исходников без их предварительной ручной компиляции и без необходимости пользоваться для запуска какими-нибудь дополнительными инструментами. Этот язык должен был иметь реализации на большом количестве платформ или, в крайнем случае, иметь такие исходники, которые бы позволили мне самому перенести его куда потребуется.
Это был первый критерий. На этом этапе меня не интересовали фичи внутри самих языков. Эти фичи стали важны, когда определился круг полуфиналистов
Д>Это и есть то, о чем я говорил — "знать инструменты". Чтобы выбрать для себя электродрель, не нужно иметь опыт работы с электродрелью каждой из фирм, которые их выпускают. Но нужно знать, что существует такой класс инструментов, какие задачи ими решаются, а какие — нет.
Как раз термин "знать инструменты" подразумевает знание конкретных электродрелей и их основные параметры.
А вот знание о том, что существует такой класс инструментов, как электродрели -- это, скорее "иметь представление об инструментах".
Имхо, важно иметь актуальные представления об инструментах. А вот конкретные знания лучше приобретать по мере необходимости, поскольку делается это не так уж и сложно.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
...Настоящий мастер — он ведь ни к чему вообще не стремится. Потому что разум человечишки не позволяет ему понять, что же ему, человечишке, в этой жизни на самом деле надо. Только Кришна знает, что в этом мире зачем. Поэтому настоящий мастер не суетится, а занимается тем, что ему интересно...
Вот C++ и Ruby мне интересно
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[15]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
E>>Во-первых, в разработку RoR и MySQL было вложенно действительно больше денег, чем в приобретение приведенной аппаратуры. Это распространяются OpenSource продукты бесплатно.
VD>А ведь могли бы сэкономить купив Оракл 10ж и какой-нить недорогой сервер приложений на Яве.
Это ты стебался или серьезно говорил?
E>>Во-вторых, речь шла не об инструментах (а RoR и MySQL это только инструменты), а о прикладной задаче и софте, который ее решает на RoR и MySQL.
VD>Да, да. Софт на Руби и ПХП очень дорог в разработке. Очень большие деньги уходят на юнит-тесты и кор-ревью. Ведь мы то знам кто в основном пишет на этих великих технологиях.
И кто?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, denis_krg, Вы писали:
_>Большой опыт написания на Ruby? Рад видеть такого мастера и гуру. _>Влад, извини за сарказм, но у тебя просто потрясающая способность судить обо всем даже не пробуя.
Кто тебе сказал, что я не пробовал Руби?
_> Причем ладно бы по жизни, а то в инженерной дисциплине.
Если есть что сказать по делу, то говори. Если нет, то убери понты в корман.
Пока что ни по одному из моих замечаний не было ни одного толкового возражения. Только переход на личности.
_>Почитай, можешь даже мне "минус" поставить )))
На кой ты мне здался? Перейдешь грань пойдешь в баню. А так... говори все что хочешь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
VD>Кто тебе сказал, что я не пробовал Руби?
VD>На кой ты мне здался? Перейдешь грань пойдешь в баню. А так... говори все что хочешь.
Те, кто по-серьезному пробуют — не рубят с плеча. Твой же подход отдает кулхацкерством, многоуважаемый Господин Модератор Форума (тридцать три раза Ку).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
VD>>А ведь могли бы сэкономить купив Оракл 10ж и какой-нить недорогой сервер приложений на Яве.
E>Это ты стебался или серьезно говорил?
А как серьезно можно говорить о деноках вооженных в открытые проекты?
Кого они трогают?
E>И кто?
Ну, на ПХП в основном те кому не в лом, или не нужно учиться программировать на серьезных языках. Руби пока что (а может и вообще) слишком большая экзотика.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Как думаете что мне больше всего нехватает в C# из N
E>...Настоящий мастер — он ведь ни к чему вообще не стремится. Потому что разум человечишки не позволяет ему понять, что же ему, человечишке, в этой жизни на самом деле надо. Только Кришна знает, что в этом мире зачем. Поэтому настоящий мастер не суетится, а занимается тем, что ему интересно...
E>Вот C++ и Ruby мне интересно
Мастре, Вы меня извините, но похоже вам больше всего нравится лясы с нами тут точить. А Руби и С++ для вас только прикрытие.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, vdimas, Вы писали:
E>>Ruby был упомянут к том, что в GUI приложениях, которые работают с сетью и с БД, имхо, быстродействие самой прикладной логики не столь важно. Поэтому GUI приложения для задач, аналогичных Янусу вполне могут разрабатываться на Ruby, Python, Perl, Smalltalk, Tcl/Tk и других интерпретируемых языках.
V>+1
V>1С — на что тормознутая скрипт-машинка, однако с доисторических десктопов обслуживает себе торговлю/производство и бухгалтерию.
Изумительный пример. 1C написан на С++.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Бывает так, что нужно искать инструмент для задачи, которую ты не знаешь как решать?
Это вопрос о том что понимать под знанием решения. Если говорить о знании в приципе, то я пожалуй знаю как решить любую задачу. А если говорить о конкретной, то до ее первого решения я пожалуй не знаю как ее решать. Учитывая, что лично я ни разу не решал совершенно идентичную задачу дважды, то пожлай, что можно сказать, что я никогда заранее не знаю как решать задачу. Ну, или всегда знаю... в принципе.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
VD>Мастре, Вы меня извините, но похоже вам больше всего нравится лясы с нами тут точить. А Руби и С++ для вас только прикрытие.
Фрагмент рейтинга активности за месяц (полученный только что):
Здравствуйте, eao197, Вы писали:
E>получается, что точить лясы мне нравится точить в 2.64 раза меньше, чем тебе. А C#, .NET и Nemerle для тебя только прикрытие
VladD2 маскируется, под маской крокодила? Вернее слоника.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[17]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
VD>А как серьезно можно говорить о деноках вооженных в открытые проекты? VD>Кого они трогают?
Например, IBM, HP, Oracle, Google, Sun, Novell, Siemens, Nokia, Ericsson, Sony, ... Очень многие крупные компании предпочитают инвестировать в OpenSource, чем развивать собственные закрытые продукты в одиночку.
VD>Ну, на ПХП в основном те кому не в лом, или не нужно учиться программировать на серьезных языках.
Ага, а Yahoo пишут ламеры-школьники.
VD>Руби пока что (а может и вообще) слишком большая экзотика.
Если ты оглянешься вокруг, то увидишь, что ситуация вокруг Ruby меняется. Как раз благодоря RubyOnRails.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[13]: Как думаете что мне больше всего нехватает в C# из N
V>>1С — на что тормознутая скрипт-машинка, однако с доисторических десктопов обслуживает себе торговлю/производство и бухгалтерию.
VD>Изумительный пример. 1C написан на С++.
Да хоть на ассемблере. Большинство скрипт-машин на С/С++ написано, как шустрых так и не очень.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[14]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, denis_krg, Вы писали:
_>Розового. С большими стразами по всей ж....
Гоблина почитал, но ИМХО: нехорошо людей обижать, тем более так, Влад много чего сделал, тот же "Янус" из которого я сейчас пишу эти строки.
Так что он (опять-таки ИМХО): не из тех, кто со стразами.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[14]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
V>>1С — на что тормознутая скрипт-машинка, однако с доисторических десктопов обслуживает себе торговлю/производство и бухгалтерию.
VD>Изумительный пример. 1C написан на С++.
То есть, перенос 1С на C# автоматом ускорит выполнение скриптов? Сильная трава.
Здравствуйте, eao197, Вы писали:
E>Например, IBM, HP, Oracle, Google, Sun, Novell, Siemens, Nokia, Ericsson, Sony, ... Очень многие крупные компании предпочитают инвестировать в OpenSource, чем развивать собственные закрытые продукты в одиночку.
Полностью согласен. Oracle и IBM просто миллионрды вложили в МайСкуль. А свои 10g и DB/2 забросили совсем.
Ты меня извини, но чушь это. ОпенСорс это или 4fun, или попытка насолить соседу. Oracle и IBM развивают Линукс чтобы поднасрать МС. В то же время Oracle живет с Oracle 10g, а IBM в проектах что приносят деньки использует AIX просто потму, что он несараним с Линуксом по надежности и масштабируемости.
VD>>Ну, на ПХП в основном те кому не в лом, или не нужно учиться программировать на серьезных языках.
E>Ага, а Yahoo пишут ламеры-школьники.
Мне плевать на Yahoo. Это неуловимый джо. Он просрал все что можно google-ю. К тому же тут фанаты чего не поподя заявляют, что он на их любимой игрушке написан. И на С++ его писали, и на Лиспе. Вот ты теперь похоже утверждашь, что на ПХП.
Если Yahoo, тем хуже для Yahoo.
VD>>Руби пока что (а может и вообще) слишком большая экзотика.
E>Если ты оглянешься вокруг, то увидишь, что ситуация вокруг Ruby меняется. Как раз благодоря RubyOnRails.
Меняетс, меняется. Руби только в нем в упор не видно. А мир то меняется.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, denis_krg, Вы писали:
_>Те, кто по-серьезному пробуют — не рубят с плеча. Твой же подход отдает кулхацкерством, многоуважаемый Господин Модератор Форума (тридцать три раза Ку).
Фанатсвовать надо меньше. Тогда начнешь осозновать, что Руби далек от совершенства по многим показателям. И тогда критическая его оценка не будет казаться чем-то неприемлемым и отдающим чем попало.
Что до серьезных людей с серьезными подходами, то они в этой жизни делают что-то поезное себе и обществу, а не ходят по сайтам и наклеивают ярлыки на других.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Andrei N.Sobchuck, Вы писали:
VD>>Изумительный пример. 1C написан на С++.
ANS>То есть, перенос 1С на C# автоматом ускорит выполнение скриптов? Сильная трава.
Не перестаю радоваться с твоей логики. А твои постоянные упоминания травы наводят на мысль, что рождается она под допингом.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
VD>Полностью согласен. Oracle и IBM просто миллионрды вложили в МайСкуль.
Юродствуешь? Может тогда объяснишь, зачем Oracle собирается покупать MySQL и JBoss?
VD>Ты меня извини, но чушь это. ОпенСорс это или 4fun, или попытка насолить соседу. Oracle и IBM развивают Линукс чтобы поднасрать МС. В то же время Oracle живет с Oracle 10g, а IBM в проектах что приносят деньки использует AIX просто потму, что он несараним с Линуксом по надежности и масштабируемости.
Не думаю, что IBM вкладывает миллиарды в Linux только ради мести M$. В первую очередь они о своей прибыли беспокоятся. И получают, что характерно. А если при этом плохо M$, то это проблемы M$.
OpenSource это серьезное явление, у которого много сторон. Тебя, например, не удивляет, что кроме инвестиций в OpenSource для минимизации последующих издержек и денег с техподдержки/консалтинга, есть еще и получение прибыли от продаж OpenSource продуктов? Вдумайся! Люди пишут OpenSource программы и продают их. И денег на жизнь хватает. Те же TrollTech и BerkeleyDB (которых недавно Oracle и прикупил).
VD>Меняетс, меняется. Руби только в нем в упор не видно. А мир то меняется.
Ruby shines over .Net for school portal приглядись Вот такие первые ласточки впоследствии погоду и делают.
И не странно ли, что книга Agile Web Development On Rails была лидером продаж на Amazon?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[18]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
VD>>>Изумительный пример. 1C написан на С++.
ANS>>То есть, перенос 1С на C# автоматом ускорит выполнение скриптов? Сильная трава.
VD>Не перестаю радоваться с твоей логики. А твои постоянные упоминания травы наводят на мысль, что рождается она под допингом.
Логика моя мне "любовна и прельстива". Ну и в качестве демонстрации покажи мне мои письма где идёт "постоянные упоминания травы". На C# это же не должно занять много времени
Здравствуйте, VladD2, Вы писали:
VD>В 1C движек работающий с БД на С++ написан. И дижок форм. А на скриптах там только мелкая объвязка. Притом тормоза от 1С-а действительно не детские.
Да, кстати. Если формы и отчеты заполняются небольшим количеством данных, то 1С отображал данные молниеносно еще в бытность Пентиумов-66, т.е. с движком форм и отчетов все нормально в плане эффективности. Главное, чтобы скриптов поменьше было навешано на события открытия/заполнения. Именно на этих скриптах все и тормозится. Хотя, тут скорее всего работает "кумулятивный" эффект вместе с их споосбом работы с БД. Императивный алгоритм, оперирующий сущностями сисемы выливается в построчный запрос данных и построчную модификацию. Более угребищного способа ну просто невозможно было изобрести. (А простые отображения списков/деревьев делаются сами "движком" и потому довольно эффективны).
Для примера, перепроводка большой розничной накладной (около 3 тыс. строк) за "вчера" на 1С в одной из систем занимала более 5-ти минут (конфигурация на MS SQL). Моя система перепроводила на той же технике эти накладные за 4 сек.
VD>В продуктах вроде Януса на прикладном языке написано куда больеше чем в 1С. Так что не надо сравнивать несравнимые веши.
Вообще-то Янус я не трогал... не я трогал... не трогал я...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[19]: Как думаете что мне больше всего нехватает в C# из N
VladD2 wrote: > Полностью согласен. Oracle и IBM просто миллионрды вложили в МайСкуль. А > свои 10g и DB/2 забросили совсем.
Можно вопрос? Это всегда так бывает, что после общения с технологиями МС
люди начинают ненавидеть (от зависти ) свободный софт?
В тот же MySQL вкладываются десятки миллионов долларов. Тот же SAP решил
забросить свою SapDB и переходить на MySQL (чтобы не зависеть от Оракла).
Обвинять Оракл в неподдержке MySQL — слегка странно.
> Ты меня извини, но чушь это. ОпенСорс это или 4fun, или попытка насолить > соседу. Oracle и IBM развивают Линукс чтобы поднасрать МС. В то же время > Oracle живет с Oracle 10g, а IBM в проектах что приносят деньки > использует AIX просто потму, что он несараним с Линуксом по надежности и > масштабируемости.
Ага, конечно. И код GPFS и других передовых решений они тоже просто так
переносят в Линукс.
> E>Ага, а Yahoo пишут ламеры-школьники. > Мне плевать на Yahoo. Это неуловимый джо. Он просрал все что можно > google-ю.
Да? Однако, они вторые по объему продажи рекламы.
> К тому же тут фанаты чего не поподя заявляют, что он на их > любимой игрушке написан. И на С++ его писали, и на Лиспе. Вот ты теперь > похоже утверждашь, что на ПХП.
Они на целом наборе языков пишут.
> E>Если ты оглянешься вокруг, то увидишь, что ситуация вокруг Ruby > меняется. Как раз благодоря RubyOnRails. > Меняетс, меняется. Руби только в нем в упор не видно. А мир то меняется.
Ага, технологии МС все больше устаревают и становятся похожи на
творчество программистов-неумех...
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[18]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Дарней, Вы писали:
ANS>>То есть, перенос 1С на C# автоматом ускорит выполнение скриптов? Сильная трава.
Д>автоматом — нет. При наличии прямых рук и времени на перепроектирование — да.
Там основное замедление наверно в их способе построчного считывания/модифицирования данных. Их т.н. сервер приложений 8.0 немного изменил систему георафически, но суть работы с данными осталась прежней... Короче, вряд ли вы найдете еще одну систему с таким "абстрэкшн пеналти".
"Перепроектировать" — это как-то слабо звучит в качестве диагноза. С 0-ля, абсолютно с 0-ля надо все делать и дать разработчикам нормальный SQL, а не чертовщину типа: R2343, R4546
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[20]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Cyberax, Вы писали:
>> E>Если ты оглянешься вокруг, то увидишь, что ситуация вокруг Ruby >> меняется. Как раз благодоря RubyOnRails. >> Меняетс, меняется. Руби только в нем в упор не видно. А мир то меняется.
C>Ага, технологии МС все больше устаревают и становятся похожи на C>творчество программистов-неумех...
Есть такое дело. У МС все слишком тяжеловесно, с претензией на монументальность, и как правило все сделано через ж-пу.
Вспомнить хотябы СОМ, пусть земля ему будет пухом. Каким-то чудом микрозуд сумел промыть мозг толпам программеров и манагеров убедив многих, что СОМ — это что о чем вы мечтали. Дон Коробочка кричал, что СОМ — это Love, но выяснилось что COM отнюдь не сахар и вообше п овкусу больше на г. похоже.
Re: Как думаете что мне больше всего нехватает в C# из Nemer
Здравствуйте, VladD2, Вы писали:
VD>А чертыхнулся я по банальной причине... VD>Выдался свободный день и я сел за реструктуризатор БД для Януса. Код там в общем-то довольно простой, но объемный. Ну, то что нехватает метапрограммирования — это как бы само собой . Но вот то что, мне будет нехватать таких банальных вещей как
кортежи (tuples), я даже подумать не мог!!!
Это в PYTHON ё.
The animals went in two by two, hurrah, hurrah...
Re[18]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, vdimas, Вы писали:
V>>Да хоть на ассемблере. Большинство скрипт-машин на С/С++ написано, как шустрых так и не очень.
VD>В 1C движек работающий с БД на С++ написан. И дижок форм. А на скриптах там только мелкая объвязка. Притом тормоза от 1С-а действительно не детские.
Это не обвязка а поностью отдельный язык, с конфигуратором и доступом к метаданным. Тормоза из за того , что используется диспатчный язык аля васик, и несоответствия SQL объектной модели. VD>В продуктах вроде Януса на прикладном языке написано куда больеше чем в 1С. Так что не надо сравнивать несравнимые веши.
Еы в этом уверен??? Посмотри конфигурации по 20 МБ
и солнце б утром не вставало, когда бы не было меня
Re[20]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Cyberax, Вы писали:
C>Можно вопрос? Это всегда так бывает, что после общения с технологиями МС C>люди начинают ненавидеть (от зависти ) свободный софт?
Можно вопрос? Это всегда так бывает, что после общения со свободным софтом
люди начинают ненавидеть (от зависти ) технологии МС?
Здравствуйте, AndrewVK, Вы писали:
AVK>Можно вопрос? Это всегда так бывает, что после общения со свободным софтом AVK>люди начинают ненавидеть (от зависти ) технологии МС?
s/зависть/жадность/g
А вообще да, всегда
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[21]: Как думаете что мне больше всего нехватает в C# из N
AndrewVK wrote: > C>Можно вопрос? Это всегда так бывает, что после общения с технологиями МС > C>люди начинают ненавидеть (от зависти ) свободный софт? > Можно вопрос? Это всегда так бывает, что после общения со свободным софтом > люди начинают ненавидеть (от зависти ) технологии МС?
Ага, почти у всех. Только не от зависти, а от того, что приходится
писать на этом #%$*#(&$)*$.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[19]: Как думаете что мне больше всего нехватает в C# из N
V>Для примера, перепроводка большой розничной накладной (около 3 тыс. строк) за "вчера" на 1С в одной из систем занимала более 5-ти минут (конфигурация на MS SQL). Моя система перепроводила на той же технике эти накладные за 4 сек.
Некорректное сравнение, (хотя и близкое к истине). Нужно смотреть на сам алгоритм, рассмотреть дбф вариант
Кривые ручки могут все опаганить. Примеров много. У меня в разных конфигурациях эта операция может отлтчаться в 100 раз
и солнце б утром не вставало, когда бы не было меня
Re[20]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Cyberax, Вы писали:
C>Можно вопрос? Это всегда так бывает, что после общения с технологиями МС C>люди начинают ненавидеть (от зависти ) свободный софт?
Ага, почти у всех. Только не от зависти, а от того, что больше не приходится
писать на этом #%$*#(&$)*$.
C>В тот же MySQL вкладываются десятки миллионов долларов.
Серьезно? Готов всего за 2 лимона слелать СУБД лучше чем МайСкуль.
C> Тот же SAP решил C>забросить свою SapDB и переходить на MySQL (чтобы не зависеть от Оракла).
Ты перепутал МайСкуль, и МсСкуль.
C>Обвинять Оракл в неподдержке MySQL — слегка странно.
Да уж. Так что не делай такого.
C>Они на целом наборе языков пишут.
То есть не на ПХП?
C>Ага, технологии МС все больше устаревают и становятся похожи на C>творчество программистов-неумех...
Да, да. Незабывай повторять это перед сном.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
C>>В тот же MySQL вкладываются десятки миллионов долларов.
VD>Серьезно? Готов всего за 2 лимона слелать СУБД лучше чем МайСкуль.
Мне вспоминаются твои слова, когда то-то начинал говорить, что Янус можно было бы лучше написать. Типа много здесь таких пыталось.
Думаю, что только ленивый не пытался бросить в MySQL камень. А ничего, жив курилка.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[20]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
VD>>Полностью согласен. Oracle и IBM просто миллионрды вложили в МайСкуль.
E>Юродствуешь?
Да! А что?
E> Может тогда объяснишь, зачем Oracle собирается покупать MySQL и JBoss?
Дай угадаю. Устраняют опасного конкуретна?
E>OpenSource это серьезное явление, у которого много сторон. Тебя, например, не удивляет, что кроме инвестиций в OpenSource для минимизации последующих издержек и денег с техподдержки/консалтинга, есть еще и получение прибыли от продаж OpenSource продуктов?
Ой, я тут по случаю несколько ОпенСорсов написал. Не подскажишь как бы их кому втюхать?
E> Вдумайся! Люди пишут OpenSource программы и продают их.
Не. Не ...и продают их. А так... люди пишут ОпенПроекты, а другие люди продают все что качается. Все что не качается раскачивают и продают.
E> И денег на жизнь хватает. Те же TrollTech и BerkeleyDB (которых недавно Oracle и прикупил).
Ничего. Ща Оракл прикупит МайСкуль и ОпенДазабанным настанет каюк.
E>Ruby shines over .Net for school portal приглядись Вот такие первые ласточки впоследствии погоду и делают.
Хочешь сказать, что .net захватил все школы и народ теперь думает как бедных школьников снять с этой ядовитой иглы?
E>И не странно ли, что книга Agile Web Development On Rails была лидером продаж на Amazon?
Незнаю. Я от тебя о ней слышу в первые.
В общем, ты меня извини, но в засилии Руби в мире ты меня не убедишь. На этом сайте есть 2-3 фаната этого дела. В то время как Ява, дотнет и С++ занимают 99% рынка. Так что оставьте агитки для школьников. А то им еще с игля дотнета на рельсы перходить.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Как думаете что мне больше всего нехватает в C# из N
VladD2 wrote: > E> Может тогда объяснишь, зачем Oracle собирается покупать MySQL и JBoss? > Дай угадаю. Устраняют опасного конкуретна?
Да, представь себе. Oracle купил обоих производителей storage engine'ов,
которые используются в MySQL (MySQL покупает у них лицензию для продажи
не под GPL).
Ну а JBoss на световые годы лучше Oracle'овского сервера приложений Java.
> Ой, я тут по случаю несколько ОпенСорсов написал. Не подскажишь как бы > их кому втюхать?
Бери пример с IBM — оказывай консалтинговые услуги за $$$$$$$.
> E> И денег на жизнь хватает. Те же TrollTech и BerkeleyDB (которых > недавно Oracle и прикупил). > Ничего. Ща Оракл прикупит МайСкуль и ОпенДазабанным настанет каюк.
Не купит. MySQL не намерен продаваться Oracle'у (отсюда и танцы с
покупкой BDB Оракулом).
> Хочешь сказать, что .net захватил все школы и народ теперь думает как > бедных школьников снять с этой ядовитой иглы?
Нет, для этого .NET слишком слаб.
> Незнаю. Я от тебя о ней слышу в первые. > В общем, ты меня извини, но в засилии Руби в мире ты меня не убедишь. На > этом сайте есть 2-3 фаната этого дела. В то время как Ява, дотнет и С++ > занимают 99% рынка. Так что оставьте агитки для школьников. А то им еще > с игля дотнета на рельсы перходить.
Не надо Java и .NET приравнивать. В Java нет "The One True Way"(tm),
поэтому на ней писать намного приятнее.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[21]: Как думаете что мне больше всего нехватает в C# из N
VladD2 wrote: > C>В тот же MySQL вкладываются десятки миллионов долларов. > Серьезно? Готов всего за 2 лимона слелать СУБД лучше чем МайСкуль.
Не получится Один BDB больше стоит
> C> Тот же SAP решил > C>забросить свою SapDB и переходить на MySQL (чтобы не зависеть от Оракла). > Ты перепутал МайСкуль, и МсСкуль.
Нет, не перепутал. Тем более, что там где работает SAP (big iron)
никаким MS даже не пахнет.
> C>Они на целом наборе языков пишут. > То есть не на ПХП?
Ага, они еще используют Python, С++, С, и Schema
> C>Ага, технологии МС все больше устаревают и становятся похожи на > C>творчество программистов-неумех... > Да, да. Незабывай повторять это перед сном.
У меня это творчество каждый день перед глазами, к сожалению.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[22]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Cyberax, Вы писали:
C>Ну а JBoss на световые годы лучше Oracle'овского сервера приложений Java.
Спорно. Оракловый сервер (ex Orion Application Server) конечно значительно менее функционален, но концептуально он куда чище и архитектура у него значительно лучше.
Здравствуйте, VladD2, Вы писали:
E>>И не странно ли, что книга Agile Web Development On Rails была лидером продаж на Amazon?
VD>Незнаю. Я от тебя о ней слышу в первые.
Здравствуйте, AndrewVK, Вы писали:
AVK>Спорно. Оракловый сервер (ex Orion Application Server) конечно значительно менее функционален, но концептуально он куда чище и архитектура у него значительно лучше.
По свидетельству очевидцев, желания переходить с JBoss на Оракловский сервер у людей нет.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[22]: Как думаете что мне больше всего нехватает в C# из N
eao197 wrote: > AVK>Спорно. Оракловый сервер (ex Orion Application Server) конечно > значительно менее функционален, но концептуально он куда чище и > архитектура у него значительно лучше. > По свидетельству очевидцев, желания переходить с JBoss на Оракловский > сервер у людей нет.
Ага, подтверждаю. JBoss — он легковесный и простой в настройке сервер
приложений. А Oracle'овский — это жуткое монстроидальное творение.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[23]: Как думаете что мне больше всего нехватает в C# из N
AndrewVK wrote: > C>Ага, почти у всех. Только не от зависти, а от того, что приходится > C>писать на этом #%$*#(&$)*$. > Непонятно только куда примкнуть open source на .NET
Для того, чтобы разглядеть OpenSource для .NET требуется увеличительное
стекло. Большая часть тулзов — от MS или с закрытыми исходниками.
А вот для Java есть целая OpenSource-экосистема, начиная от IDE
(Eclipse, NetBeans) и заканчивая Enterpise-серверами. При этом всегда
есть пространство для выбора — одних web-framework'ов штук 10 будет
(JSF, Struts, Tapestry, Spring...), и даже JVM есть в виде Sun JVM, GCJ,
BEA JRockit и IBM JVM (JRockit реально можно использовать вместо
Sun'овской).
Причем OpenSource проекты для Java поддерживаются крупными компаниями
или фондами (см. Jakarta, JBoss, Eclipse). А вот для .NET пишут, в
основном, энтузиасты.
В общем, Java после программирования под MS-технологии кажется глотком
свежего воздуха.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[25]: Как думаете что мне больше всего нехватает в C# из N
AndrewVK wrote: > E>По свидетельству очевидцев, желания переходить с JBoss на Оракловский > сервер у людей нет. > Еще бы. За просто так гору кода переписывать.
С этим, кстати, проблем нет В мире Java уважают стандарты, и код
написаный по J2EE-спеке обычно без особых проблем перемещается между
app-серверами. Лично видел перенос достаточно большого приложения из IBM
WebSphere в BEA Weblogic.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[21]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
E>> Может тогда объяснишь, зачем Oracle собирается покупать MySQL и JBoss?
VD>Дай угадаю. Устраняют опасного конкуретна?
Все-таки опасного?
Re[23]: Как думаете что мне больше всего нехватает в C# из N
AndrewVK wrote: > C>Ну а JBoss на световые годы лучше Oracle'овского сервера приложений Java. > Спорно. Оракловый сервер (ex Orion Application Server) конечно > значительно менее функционален, но концептуально он куда чище и > архитектура у него значительно лучше.
Агащаз.
В JBoss используется JMI для всех компонентов. Собственно само ядро
NetBoot в JBoss'е занимает около 30Кб кода, все остальное делается
managed bean'ами. И всем этим можно управлять из единой консоли.
Это приводит к тому, что для включения новой машины в кластер JBoss'ов
достаточно просто запустить netboot'овое ядро и сказать ему соединиться
к кластеру (причем кластер самоорганизующийся, без центральной машины).
При этом на него новый узел скачается нужный код и узел кластера
автоматически начнет работу.
Oracle Application Server на этом фоне выглядит крайне бледно, даже с их
новой технологией "hot deploy". У них просто очередной J2EE-сервер, без
выдающихся фич. Да еще и стоит как самолет, вдобавок.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[26]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Cyberax, Вы писали:
C>С этим, кстати, проблем нет В мире Java уважают стандарты, и код C>написаный по J2EE-спеке обычно без особых проблем перемещается между C>app-серверами.
Агашазблин. В EJB очень много неописываемых стандартом вещей. Не говоря уж о том, что в JBoss есть масса функционала, дополнительного к базовому, тот же JMX к примеру для модулей.
Здравствуйте, Cyberax, Вы писали:
>> Непонятно только куда примкнуть open source на .NET C>Для того, чтобы разглядеть OpenSource для .NET требуется увеличительное C>стекло. Большая часть тулзов — от MS или с закрытыми исходниками.
На sf.net статистика доступна. Можешь ознакомится.
C>В общем, Java после программирования под MS-технологии кажется глотком C>свежего воздуха.
AndrewVK wrote: > C>С этим, кстати, проблем нет В мире Java уважают стандарты, и код > C>написаный по J2EE-спеке обычно без особых проблем перемещается между > C>app-серверами. > Агашазблин. В EJB очень много неописываемых стандартом вещей.
На практике они достаточно совместимы, то есть сервера поддерживают
примерно одинаковый набор расширений. Для WebSphere и WebLogic есть
вообще полуавтоматический конвертер
> Не говоря уж о том, что в JBoss есть масса функционала, дополнительного к > базовому, тот же JMX к примеру для модулей.
Ну если оставаться в пределах спеки J2EE (EJB+Servlets/JSP+JNDI+JDBC),
то все нормально. Ну а если приложение наглухо завязано на особенности
конкретного, то уже ничего не сделать.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[25]: Как думаете что мне больше всего нехватает в C# из N
AndrewVK wrote: >> > Непонятно только куда примкнуть open source на .NET > C>Для того, чтобы разглядеть OpenSource для .NET требуется увеличительное > C>стекло. Большая часть тулзов — от MS или с закрытыми исходниками. > На sf.net статистика доступна. Можешь ознакомится.
Для Java — 18131 проектов, для С++ — 17558 проектов, для С# — 3444
проектов. Разница не на порядок, а всего в 5 раз.
При этом в число проектов на Java туда входит такой монстр как JBoss.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
ПК>>Не получится: там для этого язык менять придется, т.к. t[0] будет возвращать какой-нибудь Object и т.п.
VD>А чем это отличается от t.Val1?
Тем, что Val1 объявлен с указанием некоторого конкретного типа (допустим, Type1):
privateType1 Val1;
а indexer, возвращающий значения разного статического типа для разных аргументов в C#, насколько мне известно, объявить не выйдет.
public/* Что ты напишешь здесь? */this [int index]
{
get { . . . }
set { . . . }
}
В C++ get<0>(t) имеет статический тип, соответствующий типу 0-го значения в данном tuple. Так в C# сделать не получится.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[5]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>>> в Янусе 2.5 метра кода. И просто так его переписывать никто не будет.
ПК>>Неужели? А как же столь расхвалявшиеся
преимущества как можно более быстрого перехода на новые перспективные технологии?
VD>Непонял, а почемты ты ставишь знак равенства между переписыванием чего-то с нуля (без малейшей на то причины) и переходом на новые технологии?
В обсуждавшемся ранее случае C++ -> C# переписывание неизбежно.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[5]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Была бы у меня поддрежка среды хотя бы на уровне С++, то я бы не задумываясь писал бы на Нэмерле уже сейчас. Хотя язык еще в бэтах.
кстати, а что из поддержки среды для тебя нужно? Что в первую очередь, что второстепенно?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[22]: Как думаете что мне больше всего нехватает в C# из N
Не бурусь угадать всей тонкости маркетинга Оракла, но подобные действия как будто слизаны с учебников по экономике (раздела монополии и олигополии).
Сам МайСкуль конечно Ораклу не конкурент и еще очень долго Оракл мог бы спать спокойно. Но:
1. Душить конкурентов лучше в зародыше.
2. К промышленным СУБД люди приходят с ростом их потребностей. Выбор СУБД-заменителя диктуется кучей эфемерных факторов. Проще взять процесс формирования этих факторов под свой контроль чем бороться с из последствиями.
3. Наличие даже мало на что годного конкурирующего продукта приводит к потере денег так как многие ценят бесплатность или дешевость дороже чем другие потребительские характеристики.
В общем, у Оракла есть причины душить конкурента и нет не душить. Чем он и занимается при полном попустительстве антимонопольных ведомств Штатов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[22]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Мне вспоминаются твои слова, когда то-то начинал говорить, что Янус можно было бы лучше написать. Типа много здесь таких пыталось.
E>Думаю, что только ленивый не пытался бросить в MySQL камень. А ничего, жив курилка.
Заметь, я не пытаюсь бросить камень в огород MySQL, я просто смеюсь над заявлением "В тот же MySQL вкладываются десятки миллионов долларов".
На полном серьезе готов создать СУБД превосходящую MySQL по большинству технических характеристик "всего" за 2 лимона баксов. Мне этих денег хватит на 3-4 года безбедной жизни прлюс привлечение трех высококвалифицированных спецов в этой области (штуки эдак по 3 баксов в месяц на рыло).
ЗЫ
Делаются такие проекты оп остаточному принципу и в большинстве случаев энтузиастами.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[22]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Cyberax, Вы писали:
>> C>В тот же MySQL вкладываются десятки миллионов долларов. >> Серьезно? Готов всего за 2 лимона слелать СУБД лучше чем МайСкуль. C>Не получится Один BDB больше стоит
Знашь что значит первое B в BDB?
Короче, 2 лимона на базу и будет вам через 3 года СУБД превосходящая МайСкуль по бльшинству параметров.
C>Нет, не перепутал. Тем более, что там где работает SAP (big iron) C>никаким MS даже не пахнет.
Я не знаю кто такой "big iron", а вот для R3 они явно предпочитают MS SQL и Oracle.
>> C>Они на целом наборе языков пишут. >> То есть не на ПХП? C>Ага, они еще используют Python, С++, С, и Schema
Ну, то есть на ПХП все же не пишут? Размно.
>> C>Ага, технологии МС все больше устаревают и становятся похожи на >> C>творчество программистов-неумех... >> Да, да. Незабывай повторять это перед сном. C>У меня это творчество каждый день перед глазами, к сожалению.
На руки намекашь?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Тем, что Val1 объявлен с указанием некоторого конкретного типа (допустим, Type1): ПК>
ПК>privateType1 Val1;
ПК>
ПК>а indexer, возвращающий значения разного статического типа для разных аргументов в C#, насколько мне известно, объявить не выйдет.
А что дженирики и шаблоны уже отменили?
У конкретного кортежа тип конкретного поля конкретный (извини за тавтологию).
В Немерле кортежи внутри реализуются кортежами.
ПК>
ПК>public/* Что ты напишешь здесь? */this [int index]
ПК> {
ПК> get { . . . }
ПК> set { . . . }
ПК> }
ПК>
ПК>В C++ get<0>(t) имеет статический тип, соответствующий типу 0-го значения в данном tuple. Так в C# сделать не получится.
А зачем? В идеале я предпочел бы видеть y[x], но при эмуляции я согласен и на y.Valx.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Дарней, Вы писали:
Д>кстати, а что из поддержки среды для тебя нужно? Что в первую очередь, что второстепенно?
Комплит вотрд, однозначно. Он ускоряет кодирование насктолько радикально, что без него просто начинашь буксовать на месте.
Я когда пытаюсь писать на Немерле зачастую открываю рядом студию с временным проектом на C# и Рефлектор. И все тольк с целью подсмотреть имена типов, методов...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
>>> То есть не на ПХП? C>>Ага, они еще используют Python, С++, С, и Schema
VD>Ну, то есть на ПХП все же не пишут? Размно.
Здравствуйте, VladD2, Вы писали:
VD>На полном серьезе готов создать СУБД превосходящую MySQL по большинству технических характеристик "всего" за 2 лимона баксов. Мне этих денег хватит на 3-4 года безбедной жизни прлюс привлечение трех высококвалифицированных спецов в этой области (штуки эдак по 3 баксов в месяц на рыло).
VD>ЗЫ
VD>Делаются такие проекты оп остаточному принципу и в большинстве случаев энтузиастами.
Дык в чем проблема-то: достаточно заинтересовать одного из инвесторов MySQL (список здесь: http://www.mysql.com/company/investors.html) и ты получишь эти деньги, а мировая общественность -- более качественную альтернативу MySQL.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[24]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Дык в чем проблема-то: достаточно заинтересовать одного из инвесторов MySQL (список здесь: http://www.mysql.com/company/investors.html) и ты получишь эти деньги, а мировая общественность -- более качественную альтернативу MySQL.
Заинтересуй. Можешь просить больше, все что возьмешь сверху твое.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Дык в чем проблема-то: достаточно заинтересовать одного из инвесторов MySQL (список здесь: http://www.mysql.com/company/investors.html) и ты получишь эти деньги, а мировая общественность -- более качественную альтернативу MySQL.
Ну, то есть у них и не ПХП вовсе, а ты просто факты за уши притянуть хочешь?
В общем, я как бы свою позицию высказал. На ПХП пишут те у кого образования в IT-области нехватает, а что-то по быстрому склепать для веба надо. Вряд ли меня кто в этом переубедит.
Если какая-то здоровая фирма создает на нем код, то я им сочувствую. Хотя понимаю тех кто взял уже готове решение с мыслью "не самому же эту муть писать?".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
E>>И не странно ли, что книга Agile Web Development On Rails была лидером продаж на Amazon?
VD>Незнаю. Я от тебя о ней слышу в первые. VD>В общем, ты меня извини, но в засилии Руби в мире ты меня не убедишь. На этом сайте есть 2-3 фаната этого дела. В то время как Ява, дотнет и С++ занимают 99% рынка. Так что оставьте агитки для школьников. А то им еще с игля дотнета на рельсы перходить.
General Book: Prefactoring General Technical Book: Agile Web Development with Ruby on Rails
Enterprise Project Management: WelcomRisk 2.6
Database Engines and Data Tools: Microsoft SQL Server 2005
Defect Tracking, Change, and Configuration Management: Perforce SCM 2005
Design Tools and Modeling: Lattix LDM 2.0
Development Environments: Visual Studio Team System 2005
Libraries, Frameworks and Components: .NET Framework 2.0
Mobile Development Tools: Crossfire 5.6
Quality Project Management: Rally 5.6
Security Tools: Elemental Compliance System 1.4
Testing Tools: VMTN Subscription 2005
Utilities: Camtasia Studio 3.0 Web Development Tools: Rails 1.0
Hall of Fame: Visual Studio Professional Edition
Не плохие соседи для MSSQL 2005 и .NET Framework 2005, не правда ли?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[25]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
VD>В общем, я как бы свою позицию высказал. На ПХП пишут те у кого образования в IT-области нехватает, а что-то по быстрому склепать для веба надо.
Вот оно как. Слишком прост ПХП этот значит. То ли дело C++, тьфу C# конечно. C++, он слишком сложен и вчера. А ПХП прост и никогда. А C#, то есть Nemerle уже, это — да, это наш Единственно Правильный Язык Программирования (ЕПЯП).
Re[22]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Не плохие соседи для MSSQL 2005 и .NET Framework 2005, не правда ли?
Ага. Осталось узнать кто такой "Jolt".
К тому же я вот не могут понять как книжки связаны с реальным применением языка?
Понимаешь, вот Яву я реально вижу на многих сайтах и даже на десктопе. Дотнет тоже. Причем лично на маей машине дотнета очень не мало. А вот Руби... я его скачал, посмотрел и забыл. Причиной скачивания был пиар на этом форуме Питона и твои сообщения.
Для вэб, если вычисления не главное Руби може и потянет. Приемуществ для сероезных программистов Руби не даст даже в этой обласи. А для создания остального софта Руби явно мало пригоден. Скрипт он и есть скрипт. Как по идеологии, так и по реализации.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, eao197, Вы писали:
E>Может давай ты заинтересуешь, а я у тебя буду одним из этих, как его: E>
E>трех высококвалифицированных спецов в этой области (штуки эдак по 3 баксов в месяц на рыло).
E>
Если бы за разработку MySql действительно бы давали десятки миллионов баксов, то ты бы так стрелки не перводил.
Я просто веду к тому, что бесплатный сыр бывает только в мышеловке.
Никто и копейки не даст на разработку софта если в этом нет его личной заинтересовоннсоти.
Скорее дадут за то, чтобы кто-то этим не занимался, если продукт мешает. Так дела обстаят в случае с Ораклом.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, igna, Вы писали:
I>Вот оно как. Слишком прост ПХП этот значит. То ли дело C++, тьфу C# конечно. C++, он слишком сложен и вчера. А ПХП прост и никогда. А C#, то есть Nemerle уже, это — да, это наш Единственно Правильный Язык Программирования (ЕПЯП).
Есть огромная разница между простой и примитивностью. Вот ХПХ — это примитивность. Единственное его приемущество — простота изучения. А недостаков целый ворох. Причем основной недостаток бездарнейший дизайн.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[23]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, VladD2, Вы писали:
VD>Для вэб, если вычисления не главное Руби може и потянет. Приемуществ для сероезных программистов Руби не даст даже в этой обласи. А для создания остального софта Руби явно мало пригоден. Скрипт он и есть скрипт. Как по идеологии, так и по реализации.
Здравствуйте, VladD2, Вы писали:
VD>Комплит вотрд, однозначно. Он ускоряет кодирование насктолько радикально, что без него просто начинашь буксовать на месте.
VD>Я когда пытаюсь писать на Немерле зачастую открываю рядом студию с временным проектом на C# и Рефлектор. И все тольк с целью подсмотреть имена типов, методов...
то есть в первую очередь автокомплит по классам FCL, и только потом по самой проге?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[28]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Cyberax, Вы писали:
C>На практике они достаточно совместимы, то есть сервера поддерживают C>примерно одинаковый набор расширений.
На моей практике были очень серьезные проблемы.
C> Для WebSphere и WebLogic есть вообще полуавтоматический конвертер
Видимо поэтому и удалось относительно безболезненно перенести. В случае JBoss и OAS такого нет.
C>Ну если оставаться в пределах спеки J2EE (EJB+Servlets/JSP+JNDI+JDBC), C>то все нормально.
Спека не все описывает. Например с CMP-контейнерами не все стандартизовано. И дополнительный дескриптор бинов тоже практически в любом сервере присутствует.
Здравствуйте, Cyberax, Вы писали:
C>Для Java — 18131 проектов, для С++ — 17558 проектов, для С# — 3444 C>проектов. Разница не на порядок, а всего в 5 раз.
Здравствуйте, VladD2, Вы писали:
E>> Может тогда объяснишь, зачем Oracle собирается покупать MySQL и JBoss?
VD>Дай угадаю. Устраняют опасного конкуретна?
а почему ты считаешь, что ОпенСорс немерле может составить конкуренцию С#, а MySql не может...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[22]: Как думаете что мне больше всего нехватает в C# из N
AndrewVK wrote: > C>Для Java — 18131 проектов, для С++ — 17558 проектов, для С# — 3444 > C>проектов. Разница не на порядок, а всего в 5 раз. > Так и время пребывания на рынке несопоставимо.
Я просто констатировал факт — серьезных OpenSource приложений на .NET
достаточно мало. Про причины я вроде бы не говорил.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[28]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Дарней, Вы писали:
Д>то есть в первую очередь автокомплит по классам FCL, и только потом по самой проге?
Скажем так. Важно и то, и то. Но комплит по чужим библиотекам важнее, так как имена из своей пограммы человек обычно знает лучше.
Хотя на большом проекте да еще когда возвращаешся к нему раз в два месяца очень важен комплит и по своему коду. Например, развивать R# без комплита и навигации было бы крайне затруднительно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Как думаете что мне больше всего нехватает в C# из N
AndrewVK wrote: > C>Я просто констатировал факт — серьезных OpenSource приложений на .NET > C>достаточно мало. > Тем не менее они есть. Что как то с твоим тезисом не согласуется.
А я говорил, что их нет _совсем_? Кажется, я говорил про их
сравнительную незначительность. В том же Top10 в SF нет ни одного
.NET-проекта, например.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[9]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, VladD2, Вы писали:
VD>Скажем так. Важно и то, и то. Но комплит по чужим библиотекам важнее, так как имена из своей пограммы человек обычно знает лучше.
VD>Хотя на большом проекте да еще когда возвращаешся к нему раз в два месяца очень важен комплит и по своему коду. Например, развивать R# без комплита и навигации было бы крайне затруднительно.
насколько я понимаю, в FCL нет подходящих средств, чтобы загрузить сборку и получить из нее дерево типов
а в R# что-то такое должно быть, наверно?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[22]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Дарней, Вы писали:
Д>насколько я понимаю, в FCL нет подходящих средств, чтобы загрузить сборку и получить из нее дерево типов Д>а в R# что-то такое должно быть, наверно?
В Немерле все внешние сборки оборачиваются в их структуры. Более того есть даже специльный модуль автодополения, но он в очень зачаточном состоянии.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Andir, Вы писали:
E>>И денег на жизнь хватает. Те же TrollTech и BerkeleyDB (которых недавно Oracle и прикупил).
A>Про BerkeleyDB есть ссылочка?
Здравствуйте, VladD2, Вы писали:
VD>2. Вопрос не во встроенности foreach-а. Мне тоже наплевать как он там сделан. Но язык (в прочем как любой проект) имеющий более ичистую архитектуру проще развивать. C# только сложно развивать, но еще и невозможно. Ведь код управлется МС. А Нэмерле предоставляет штатные средства расширения. Причем это не "эддины" сделанные чтобы отмазаться. Это фича которую они сами исползуют во всю.
Есть ещё одна забавная штука у Ne. Архитектура языка позволяет практически бесконечно экспериментировать с и шлифовать синтаксис языка, делая его одновременно несовместимым и в тоже время совместимым с предыдущими версиями. Так от ошибок прошлого можно будет легко отказаться и не тащить их ради обратной совместимости в светлое будущее. Старый код будет компилироваться, новый будет использовать новые фичи и будет свободен от старого наследия. И всё это будет возможно даже в одном проекте.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Kupaev, Вы писали:
K>Здравствуйте, WolfHound, Вы писали:
WH>>...ибо этот титаник на глиняном айсберге рушится под собственным весом.
K>За это отдельное спасибо.
хлебом не корми дай че-нить зачморить....
за что спасибо? за рушится или за очередную "вот гов... этот ваш <подставить по вкусу>"
Re[10]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Константин Л., Вы писали:
WH>>>...ибо этот титаник на глиняном айсберге рушится под собственным весом.
K>>За это отдельное спасибо.
КЛ>хлебом не корми дай че-нить зачморить....
КЛ>за что спасибо? за рушится или за очередную "вот гов... этот ваш <подставить по вкусу>"
За фразу как таковую. Она мне понравилась. А по поводу ее применения и прочего вы как-нибудь без меня, ОК?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Re[11]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Kupaev, Вы писали:
K>Здравствуйте, Константин Л., Вы писали:
WH>>>>...ибо этот титаник на глиняном айсберге рушится под собственным весом.
K>>>За это отдельное спасибо.
КЛ>>хлебом не корми дай че-нить зачморить....
КЛ>>за что спасибо? за рушится или за очередную "вот гов... этот ваш <подставить по вкусу>"
K>За фразу как таковую. Она мне понравилась. А по поводу ее применения и прочего вы как-нибудь без меня, ОК?
ок, только вот она так же некрасива, как и бессмысленна
Re[12]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, Константин Л., Вы писали:
K>>За фразу как таковую. Она мне понравилась. А по поводу ее применения и прочего вы как-нибудь без меня, ОК?
КЛ>ок, только вот она так же некрасива, как и бессмысленна
Я как-нибудь сам решу, какие фразы мне должны нравиться, а какие нет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Re[2]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Павел Кузнецов, Вы писали:
>> Кто бы мог подумать год назад, что я буду задумываться над тем, что неплохо было бы, чтобы МС выгнал к чертям Хейгельбергов и Саттеров и набрал поляков-студентов.
ПК>А Саттер-то тут причем? Да и в C++ tuples вполне реализуются на уровне библиотек...
Гы, сына, LOL. Паттерн-матчинг, без которого туплы практически бесполезны, ты тоже реализуешь на уровне библиотеки, да?
Re[3]: Как думаете что мне больше всего нехватает в C# из Ne
Gaperton wrote:
> Гы, сына, LOL. Паттерн-матчинг, без которого туплы практически бесполезны, ты тоже реализуешь на уровне библиотеки, да?
boost::tie, вот и весь паттерн-матчинг.
Posted via RSDN NNTP Server 2.0
Re[19]: Как думаете что мне больше всего нехватает в C# из N
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, VladD2, Вы писали:
VD>>В 1C движек работающий с БД на С++ написан. И дижок форм. А на скриптах там только мелкая объвязка. Притом тормоза от 1С-а действительно не детские.
V>Да, кстати. Если формы и отчеты заполняются небольшим количеством данных, то 1С отображал данные молниеносно еще в бытность Пентиумов-66, т.е. с движком форм и отчетов все нормально в плане эффективности. Главное, чтобы скриптов поменьше было навешано на события открытия/заполнения. Именно на этих скриптах все и тормозится.
Вообще-то в состав 1С входит профайлер. Посмотри на процентовку, и увидишь, что большую часть времени (70-90%) система проводит запросах к БД, а не скриптовом языке. Как и должно делать любое нормальное приложение БД — скорость языка описания бизнес-логики не критична, если у проектировщика руки из задницы не растут, конечно.
V>Хотя, тут скорее всего работает "кумулятивный" эффект вместе с их споосбом работы с БД. Императивный алгоритм, оперирующий сущностями сисемы выливается в построчный запрос данных и построчную модификацию. Более угребищного способа ну просто невозможно было изобрести. (А простые отображения списков/деревьев делаются сами "движком" и потому довольно эффективны).
Медленно работает потому, что она при обращениях к объектам синхроннно лезет на файл-сервер. Вероятно, ты имеешь в виду сетевую версию.
V>Для примера, перепроводка большой розничной накладной (около 3 тыс. строк) за "вчера" на 1С в одной из систем занимала более 5-ти минут (конфигурация на MS SQL). Моя система перепроводила на той же технике эти накладные за 4 сек.
Писать под 1С так, чтобы работало быстро, надо уметь. В 1С, как и везде, надо уметь использовать сильные стороны технологии, а не слабые. Или, другими словами — плохому танцору яйца мешают. Например, начиная с версии 7.7 еще в дремучем 99 году, когда я этим занимался, запросы на 1С языке запросов транслировались в SQL и выполнялись целиком на стороне сервера. Грамотные пацаны это еще тогда знали, и писали запросы вместо дурацкого лазения по объектам в построчном режиме.
А еще грамотные пацаны и девчонки в тяжелых случаях запускали сетевую 1С на сервере приложений, чтобы она работала с дисками локально, и использовали рабочие места в качестве "тонкого клиента", присылая окошки. Вот тогда разница в производительности по сравнению с самодельными решениями была незаметна, а сроки разработки отличались раз в 10 в пользу 1С. А еще в совсем тяжелых случаях никто не запрещает из 1С через ADO слазить в обычную БД.
Re[4]: Как думаете что мне больше всего нехватает в C# из Ne
Здравствуйте, Programmierer AG, Вы писали:
PA>Gaperton wrote:
>> Гы, сына, LOL. Паттерн-матчинг, без которого туплы практически бесполезны, ты тоже реализуешь на уровне библиотеки, да? PA>boost::tie, вот и весь паттерн-матчинг.
Что только не придумают. И что, работает?
Re: Как думаете что мне больше всего нехватает в C# из Nemer
Здравствуйте, VladD2, Вы писали:
VD>... Ну, то что нехватает метапрограммирования — это как бы само собой . Но вот то что, мне будет нехватать таких банальных вещей как кортежи (tuples), я даже подумать не мог!!!
Я так понимаю что тебе таки не хватает Lisp'а в C#
В том смысле что таки пора открыть этот файл:
C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\Samples\clisp\clisp.htm.
Re[2]: Как думаете что мне больше всего нехватает в C# из Ne
Gaperton wrote: > PA>boost::tie, вот и весь паттерн-матчинг. > Что только не придумают. И что, работает?
Ну вот как-то так:
#include <string>
#include <iostream>
#include <ostream>
#include <boost/tuple/tuple.hpp>
using namespace std;
using namespace boost;
int main()
{
int t11;
double t12;
string t13;
// можно так
tie(t11,t12, t13) = make_tuple(1, 2.0, "3");
cout << t11 << " " << t12 << " " << t13 << endl;
// а еще так (а-ля let (_,x,_) = (1,2.0, "3"))double x;
tie(tuples::ignore,x, tuples::ignore) = make_tuple(1, 2.0, "3");
cout << x << endl;
// А вот так уже не получится
//int t21, t22, t23, t24;
//tie(t21, tie(t22,t23), t24) = make_tuple(1, make_tuple(2,3), 4);return 0;
}
Конечно, это не паттерн матчинг, но что есть, то есть. Да и сдается мне,
что boost::tuple никто не использует, больно уж чужеродная штука. Да и
оверхеду синтаксического вагон.
Posted via RSDN NNTP Server 2.0
Re[3]: Как думаете что мне больше всего нехватает в C# из Ne