Здравствуйте, FR, Вы писали:
FR>Понятно меня просто смутило то что файл читается как бинарный без корректировки концов строк.А так оно почти дословно перепишется:
Ну то есть никаких преимуществ Питон на этой задачке не дает? Кстати, что насчет кодировки?
Здравствуйте, VladD2, Вы писали:
VD>Извини, но сто раз говорено, что регистрировать ком-объекты нужно при инсталяции, ане при запуске. Это все от лени и отсутсвия времения.
Лень тут не при чем. Для добавления в инсталлер нужно всего навсего добавить 2 строчки в nsis-скрипт. На шарпе кода регистрации больше.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Тем более пока C#2 нет, а переносимые варианты появятся еще позже.
VD>Папа! Как же так? ... есть, а слова нету? (с)
[quote]
Microsoft подводит сильно. У нас релиз в середине лета, в конце прошлой осени я строил планы выпуска на 2.0
Придется толкать первую версию на 1.1
[/quote]
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, eao197, Вы писали:
E>>Не знаю, Влад. В области компонентного подхода ничего не могу сказать.
VD>Видимо одной из проблем в разговорах на этом форуме является то, что мы все специализируемся на разном. Я вот наоборот в КОП много шавок съел. Выбор мной дотнета в основном и был обусловлен самой лучшей на сегодня компонентной моделью (из виденных мной).
Имхо, это не проблема, а огромное достоинство. Без RSDN я варюсь в собственном соку и вижу перед собой только ограниченный круг задач и способов их решений. А на RSDN за время моего участия в нем я очень много для себя узнал.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, eao197, Вы писали:
E>> — то, что VladD2 и теперь уже WolfHound прибегают к аргументу, что линукс их не интересует
VD>О. Опять я крайний.
Нет, Влад. Ситуация немного другая.
Насколько я смог заметить, ты здесь являешься чуть ли не самым активным пропагандистом .Net-а. В этом нет ничего плохого, имхо. Но вот когда ты, например, мне объясняешь, что .Net -- это круто, то хотелось бы, чтобы ты учитывал то обстоятельство, что для меня очень важным критерием является переносимость. И здесь .Net пока (пока?), имхо, сильно проигрывает как Java, так и C++, так и Python, Ruby, Perl,... Поэтому было бы более объективно, если бы ты в разсказах про .Net делал оговорку, что это ориентированно, в первую очередь, на Windows. И, как следствие, не пытался переманивать в .Net тех, которые занимаются кроссплатформенной разработкой (возможно ли это? )
VD>При этом против Линукса я ничего не имею. Даже рад за то что он есть. Все же от отсуствия конкурениции проигрывает в первую очередь потребитель. А я как раз потребитель.
VD>В общем, пусть рассцветают все цветы. Но мне хватит и тех, что растут у меня на грядке.
+1
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
S>>> Все зависит от предметной области. 1С относительно недавно, но количество программистов растет с каждым днем. S>>> И относительно не бесплатен
ANS>>Опен-соурсе рулит, однозначно
VD>На что мне не нравится 1С, но надо признать, что такие выкрики звучат просто смешно даже на фоне 1С-а.
Чего сказать то хотел? Что открытость тамошних конфигураций для модификации не является фактором успеха?
Здравствуйте, Borisman2, Вы писали:
B>Кстати, одним из главных преимуществ Питона я считаю встроенный тип данных — "словарь" (mapping, hashtable, как Вам больше нравится). Это не пустяк, это ОЧЕНЬ и ОЧЕНЬ серьезное преимущество.
Мда.. это действительно супер аргумент...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, AndrewVK, Вы писали:
AVK>Ну то есть никаких преимуществ Питон на этой задачке не дает? Кстати, что насчет кодировки?
import codecs # в принципе, эти две строчки можно заменить одной:
StreamReader = codecs.getreader("UTF-8") # from encodings.utf_8 import StreamReader
def readKeys(fl):
for line in StreamReader(fl):
if line.startswith("END"):
break
try: code, value = line.split()
except ValueError: continue
if code == "K":
currentKey = value
elif code == "V":
yield (currentKey, value)
keys = dict(readKeys(file("data.txt", "rb")))
print keys
VladD2 wrote: > Здравствуйте, _vovin, Вы писали: > > _>Мое и не только мнение — сколько не смотри, а вкус блюда не узнаешь не > _>попробовав. > > > А ты уверен, что это я не попробовал, то что ты предлагаешь, а не ты то что я?
Ну скажем, если взять мой опыт *плотной* работы в шарпе — 1 год, жаве —
2 года, то твои два запуска среды смолтока будут смотреться не очень. =)
> > _>Тут дело в способе мышления, а не в знании конструкций и паттернов. > > Намикашь, что у кого-то он убогий?
Намекаю, что он другой. Это как в задачах оптимизации — выбор другой
точки отсчета позволяет найти лучший локальный экстремум.
Т.е. с мерилом мэйнстримовых языков не увидишь главные фишки.
> > _>http://www.livejournal.com/users/behrk/318434.html > _>Человек стал работать со смолтоком после того, как устроил голосование > _>какой новый язык стоит изучить. Так что мнение можно считать > _>не-"фанатическим". > > О... Если новички будут выбирать язык программирования по глосованию на нашем сайте, то все программисты на територии бывшего СССР будут писть на С++ и Шарпе.
Молодец, погавкал на неотносящееся к делу замечание.
Смысл в том, что он не был фанатом, ему просто люди посоветовали. После
этого он своими мозгами дошел до подобной оценки. Так что ее можно
рассматривать как *объективную*, насколько это применимо к оценке языков
людьми.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, FR, Вы писали:
FR>>Понятно меня просто смутило то что файл читается как бинарный без корректировки концов строк.А так оно почти дословно перепишется:
AVK>Ну то есть никаких преимуществ Питон на этой задачке не дает? Кстати, что насчет кодировки?
Почему никаких, чуть чуть есть, код короче немножко и не пришлось вручную функцию писать. а по кодировке никаких проблем(и изменений в коде функции)
Здравствуйте, FR, Вы писали:
FR>Угу только это не полная программа, надо еще кучу не нужной обвязки
Это ты про остальные четыре строки, из которых две — это } ?
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, FR, Вы писали:
FR>Почему никаких, чуть чуть есть, код короче немножко
Это все фигня, особенно если учесть что ты опустил указание кодировки.
FR> и не пришлось вручную функцию писать.
Опять вопросы библиотеки. Мне интересна была способность к выражению алгоритмов, а не то какие функции в питоне есть. Если тебе так хочется я моуг привести решение на шарпе в несколько строк, которое потребует гору кода на питоне. Только это ни о чем не говорит.
FR> а по кодировке никаких проблем(и изменений в коде функции) FR>
Это отступление от условий задачи. В условиях было сказано что в качестве аргументов передается имя файла, а не поток. Да ты сам написал что перевел почти дословно, и именно дословный перевод я и увидел.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, FR, Вы писали:
FR>>Почему никаких, чуть чуть есть, код короче немножко
AVK>Это все фигня, особенно если учесть что ты опустил указание кодировки.
У тебя в коде и в условиях задачи тоже нет указания кодировки.
FR>> и не пришлось вручную функцию писать.
AVK>Опять вопросы библиотеки. Мне интересна была способность к выражению алгоритмов, а не то какие функции в питоне есть. Если тебе так хочется я моуг привести решение на шарпе в несколько строк, которое потребует гору кода на питоне. Только это ни о чем не говорит.
Так я не виноват что ты нашел задачу которая почти на всех процедурных языках примерно так и будет выглядеть
FR>> а по кодировке никаких проблем(и изменений в коде функции) FR>>
AVK>Это отступление от условий задачи. В условиях было сказано что в качестве аргументов передается имя файла, а не поток. Да ты сам написал что перевел почти дословно, и именно дословный перевод я и увидел.
фигня:
import codecs
def FillFromHashToDisk(FileName):
fin = codecs.open(FileName, "rb", "utf_8")
props = {}
while True:
parts = fin.readline().split(' ')
if parts[0][:3] == "END": break
if parts[0] == "K":
key = fin.read(int(parts[1]))
elif parts[0] == "V":
props[key] = fin.read(int(parts[1]))
return props
print FillFromHashToDisk("data.txt")
Здравствуйте, FR, Вы писали:
AVK>>Это все фигня, особенно если учесть что ты опустил указание кодировки.
FR>У тебя в коде и в условиях задачи тоже нет указания кодировки.
В дотнете UTF-8 по умолчанию.
FR>Так я не виноват что ты нашел задачу которая почти на всех процедурных языках примерно так и будет выглядеть
А вот это фик его знает. Тем более что помимо процедурного питон вподдерживает функциональный стиль. Вобщем плохому танцору задачи мешают
AVK>>Это отступление от условий задачи. В условиях было сказано что в качестве аргументов передается имя файла, а не поток. Да ты сам написал что перевел почти дословно, и именно дословный перевод я и увидел.
FR>фигня: FR>
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, VladD2, Вы писали:
VD>>ВМВаре
IT>Блин.... ну это я с трудом перевёл в конце концов
. Ладно... вдруг кто не угодал — VMware.
VD>>ЦИГВИН
IT>А это что такое?
Тады скажу по научному CygWin — http://www.cygwin.com.
IT>Влад, если у тебя нет латиницы на компе, то давай мы для тебя нарисуем переводчик из кирилицы в латиницу
Лучше автаматический. И щоб ошибки поправлял.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, eao197, Вы писали:
E>Насколько я смог заметить, ты здесь являешься чуть ли не самым активным пропагандистом .Net-а. В этом нет ничего плохого, имхо. Но вот когда ты, например, мне объясняешь, что .Net -- это круто, то хотелось бы, чтобы ты учитывал то обстоятельство, что для меня очень важным критерием является переносимость.
Каждый отталкивается от своих предпосылок. Я как бы не скрываю, что все возможности дотнета можно получить только на МС-ых платформах. На других же дотнет пока что в стадии CLR + BCL (стандартная библиотека) ну и что бох подаст .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, FR, Вы писали:
FR>Почему никаких, чуть чуть есть, код короче немножко и не пришлось вручную функцию писать. а по кодировке никаких проблем(и изменений в коде функции)
Тю... Чуть-чуть? А где же "гораздо короче" и "радикально чернее?" .
А теперь представь себе, что код написан с помощью решарпера или 2005-ой студии. Итого молучаем более быстрое написание заведомо более надежного кода. А твое "чуть-чуть" опять заключается в том, что кое что уже встроено в библиотеку.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, FR, Вы писали:
FR>Угу только это не полная программа, надо еще кучу не нужной обвязки
Ясно, начинаем искать отмазки. А на то чно код значительно проще плевать.
VD>>Я тебе тоже могу привести кучу примеров где у дотнета имеется готовые решения и ты задолбашся колатить код чтобы их реализовать.
FR>Дело в не готовых решениях а в том что на питоне легко и просто писать.
Что за манера вмето аргументов включать заезжанные пластинки. Ты тут уже всем доказал, что разницы между Питон и Шарпом особой нет. А я тебе больше скажу, что и писать на Шарпе быстрее, так как чахлая командрая строка Питона не идет ни в какое сравнение с РеШарпером и студией 2005. Да и читать проще, так как не нужно разгадывать краксворды на тему какой у переменной должен быть тип, правильно ли сделано присвоение, какоей метод вызовется в этот раз и т.п. Лично я себя не раз ловил на мысли, что трачу на это кучу времени. Если метод полиморфен по дизану, то хотя бы ясно за что страдашь, но зачем страдать за идею?
FR>Для скорости у меня плюсы есть
Во-во. Между тем Шарпа для этого хватает. Хотя и плюсы тоже намного проще подключаются.
VD>>А что тебе пойдет? Вот у меня почти доделанные: VD>>* R# — парсер, метапреобразователь и генератор кода написанный на C#. VD>>* Rsdn.Editor — редактор кода вроде Синтилы написанный на C#. VD>>* RSDN@Home — опять же написанный на C#.
FR>вообще-то имелись в виду небольшие задачки для измерения пипи
Ну, пипы бывают разными . Зачем же мерить то, что без микроскопа не разглядеть. Давай уж "по взрослому".
В том то все и дело, что Шарп сравнивается с Питоном и Руби по простоте написания кода, и с С++ по скорости. И там, и там у него есть слабыве места. Но они довольно не значительные. А вот кумулятивный эффект выходит очень даже значительный.
FR>интересно, где ни будь можно взглянуть на это?
На игрушки? Да, качай и играйся. Самая известная http://arenawars.krawall.de/com/phpBB2/index.php
VD>>Хотелось бы увидить хотя бы что-то похожее написанное на Питоне или Руби.
FR>Ну у меня питон не основной язык и на нем сделана только куча утилиток и скрипты для игр. А так софта на питоне пишется много, на том же sf достаточно проектов на питоне.
Ну, дал бы сслочки на достойные (рас знашь). А то у меня складывается впечатления, что это язык для похвалы. Хвалить его любят. Примеры на нем тоже любят давать. А вот как речь заходит о серьезных задачах, так кроме как на "клей" Питон то и не годится.
FR>То что ты считаешь недостатками, для определенного класса задач только достоинства.
Ты так и не смог это доказать. Твой род задач — это халтурное программирование, мелкая автоматизация и т.п. Все это можно делать и на том же Шарпе. Причем получается даже быстрее.
FR>Мне Руби не нравится тем что на нем легко писать write only код, на питоне это сложнее.
На руби можно писать намного более элегантный код. Незнаю, что ты там в нем усмотрел "райт-онли". А плохой код можно писать на чем угодно. Это как раз не сложно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.