2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 
Сообщение13.08.2006, 03:54 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Yuri Gendelman писал(а):
Но представьте, что код приложения содержит сотню тысяч строк. Даже в своем коде такого размера через год сходу не разберешься. А на разбор чужого, если он _специально_ не подготовлен для отчуждения, может понадобиться время, сопоставимое с его проектированием заново.

Не согласен :D — заметно большее, чем проектирование заново. Скорее всего, в несколько раз большее.

Тут есть два момента: (а) возможность локальной модификации, когда достаточно разобраться в небольшой части кода, и (б) законная возможность нанять специалиста и поправить код. В США были прецеденты, когда фирма-контрактор (и разработчик специального, для данного клиента, ПО) подавала в суд на своего бывшего клиента, ушедшего к конкуренту за сопровождением кода.

Спасибо за историю MSC. Правда, остается вопрос, кто его делал в далеком 1985 - MS или Lattice, но это не важно — все равно жутко интересно.

А тяжеловесность .NET — это, в первую очередь, необходимость осваивать очень большую библиотеку. На мой вкус, одно из достоинств Python — это возможность его не знать, в том смысле, что его можно осваивать маленькими кусочками, нужными для решения текущей задачи. С .NET этот номер проходит в заметно меньшей степени, да и догадаться, где искать нужные классы/методы заметно труднее.

 Профиль  
                  
 
 
Сообщение13.08.2006, 07:32 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Добавлю о модификациию. Мой основной комп — лаптоп '01 или '02 с ATI mobile видеокартой. ATI не делает драйверов, потому что они отданы на откуп OEM. Toshiba и вовсе плюет на меня, говоря что у нее проблем нет. Я знаю несколько характерных ситуаций, когда комп зависает, и, уверен, мог бы поправить драйвер. Выиграли бы все владельцы этих тошиб (ну, или те из них, кто все еще пользуют винды). А так — я расматриваю ATI как крупный недостаток при любой покупке. :)

 Профиль  
                  
 
 
Сообщение13.08.2006, 17:35 


13/07/06
68
Цитата:
Какие языки программирования и библиотеки хороши для написания несложного визуального интерфейса (логические игры, оффлайн-тесты с картинками и т. п.)?

Наиболее продвинутые на настоящий момент библиотеки - GTK и Qt. Qt очень высокого качества и со множеством возможностей, но хромает тем, что, во-первых для написания коммерческого кода она становится платной, во-вторых её язык - С++, работа с которым довольно хлопотна, а количество биндингов к другим языкам скудно. GTK - несколько тормозная, и со своими "особенностями", особенно в отношении кроссплатформенности. Наибоее простой и эффективный метод для создания интерфейсов без лишних изысков и заморочек - tcl/tk. wxWidgets в основном пригодна для портирования приложений из-под MFC. Для написания собственно интерфейсов с нуля мне показалась весьма тормозной, глюкавой и нелогичной.

Язык - судя по многим данным наиболее оптимален на сегодняшний момент OCaml. Не могу поделиться личными впечатлениями о нём, я с ним не работал. Для небольших и несложных программ выбор языка вобщем не критичен, главное по понятным причинам избегать однодневок типа visual basic, Delphi, .NET. Для сложных проектов весьма и весьма желательно разделять логику программы и интерфейсную часть. При этом упрощается проектирование и отладка, а также выбор языков для логики в соответсвии решаемой задаче делается более богатым.

Цитата:
в случае прменения не коммерческого продукта, в работе над которым заинтересована фирма-производитель (денежно, взятыми обязательствами и т.п.), а продукта, сделанного эээ... энтузиастами?? Они же в любой момент забьют на него, и все... То, что он кем-то спонсируется - слабая гарантия.

Open Source - это не сборище энтузиастов, а модель ведения бизнеса, со всеми вытекающими.

Цитата:
ув. Егор, имхо, если для вас важны именно те причины, на которые вы указали, то используйте стабильный, коммерческий компилятор.

Дело не в компиляторе а в соответствии стандартам самой программы. Если программа не использует особенности определённого компилятора, случайно или умышленно, сменить компилятор - не проблема. И появляется возможность компилировать под определённую платформу наиболее подходящим для этой платформы компилятором.

Цитата:
Между прочим, Вы цитируете bugmakerа как аргумент. Но его позицию трудно принять безоговорочно. Тем более, что он считает, что всем следует двигаться в сторону функционального программирования, вообще не признавая никаких практических доводов. Народ не знает Lisp — пусть выучит. А Вы про Python так…

Ещё раз повторюсь, Common Lisp, про который я упоминал неоднократно - НЕ функциональный. Насчёт двигаться к функциональному - я вроде такого не говорил? В любом случае, хотя большинство алгоритмических задач наиболее эффективно решаются функциональными методами, для довольно большого класса задач чисто функциональный подход не только неэффективен, но просто затруднителен. На примере Lisp я просто обосновал свой тезис о том, что "революционные достижения" были давным-давно решены более эффективными методами. Конечно, появление более эффективных языков неизбежно - но к ним всякие visual basic и .net явно не относятся. ИМХО Не относится сюда и Питон. Если будет интересно, почему - обосную.

Цитата:
2. В этих продуктах будет поддерживаться формат Офиса;

Это совсем непросто технически.
Цитата:
3. Я смогу какое-то время надеяться на поддержку Микрософта, ибо вступая с ним к коммерческие отношения, коими является лицензия, я получаю, кроме права пользования самой программой, еще и поддержку производителя.

Служба поддержки - не благотворительная организация. Если ей будет невыгодно поддерживать что-либо, Вам остаётся только надеяться.
Цитата:
1. Большие программные продукты от больших софтварных фирм;

Каковые фирмы в основном и замечены в "кидалове", вынужденном или в соответствии своей политике.
Цитата:
2. За повсеместное использование языков C/C++ вместо десятков полу-осмысленных, полу-документированных, полу-совместимых реализаций других языков.

Почему не ассемблера?
Цитата:
Еще древние греки подметили, что демократия, как власть толпы

Власть толпы - охлократия. Демократия - власть народа. Это очень разные понятия.
Цитата:
есть мнение, что Микрософт тесно сотрудничает с Интелом.

До недавнего времени почти так и было. На настоящий момент Microsoft своей технической несостоятельностью просто гробит Intel, чем весьма охотно пользуется (пока?) единственный конкурент - AMD.
Цитата:
Все-таки найти брошенный OpenSource проект как минимум не сложнее, чем коммерческий, "убитый" корпорацией-прародительницей.

Зато найти процветающим настолько вопиюще безграмотный Open Source проект, как например visual vasic или .net, практически невозможно. И убитый умышленно, причём насмерть, так что нельзя оживить, только потому что продолжать его невыгодно - тоже.

Цитата:
А советы типа "если Вас что-то не устраивает, Вы можете поправить код сами" мне почему-то напоминают мультфильм про Маленького Мука. Помните его состязание в беге с леопардом? И напутствие эмира: "Если леопард догонит тебя, он может тебя съесть. С другой стороны тебе предоставляются такие же права."

В случае с Open Source прав у вас несколько больше: вы можете нанять кого-нибудь, чтобы он поправил. Разработчикам тоже хочется кушать, как ни странно. Open Source - это не халява, не коммунизм, не благотворительность. Вам придётся оплачивать работу. Но только ту, которая ещё не сделана, а не каждую копию и не каждую новую версию каждый раз как у разработчиков кончаются деньги и они за Вас решают что Вам пора обновить свой софт и оборудование.

Цитата:
Даже в своем коде такого размера через год сходу не разберешься. А на разбор чужого, если он _специально_ не подготовлен для отчуждения, может понадобиться время, сопоставимое с его проектированием заново.

Зависит от качества кода. Можно сделать сотню строк, в которых без пузыря не разберёшся, а можно и миллион строк грамотно структурировать.
Цитата:
Собственно и в вариантах C++/MFC/COM или C++/XWindows то же самое - помимо языка нужно хорошо знать библиотеки.

Многое зависит от логичности библиотек. Нелогичные и безграмотно спроектированные разработчикам приходится всё время переписывать заново, как в случае с COM например. X Window API не менялся с лохматого года, только добавляются новые фичи.
Цитата:
Причем в Unix это усугубляется отсутствием удобных сред типа VS.

VS - удобен, реально? Он хотя бы фолдинг научился делать? Попробуйте vim или emacs и вам не захочется больше осквернять свой монитор таким буквосочетанием как VS,

 Профиль  
                  
 
 
Сообщение13.08.2006, 18:16 
Заслуженный участник


15/05/05
3445
USA
незваный гость писал(а):
Спасибо за историю MSC. Правда, остается вопрос, кто его делал в далеком 1985 - MS или Lattice...

На указанной Вами страничке написано: "If memory serves, MSC 4.0 was the first real Microsoft C compiler." Правда я не знаю, как там у автора со склерозом :)

 Профиль  
                  
 
 
Сообщение13.08.2006, 18:26 
Заслуженный участник


15/05/05
3445
USA
bugmaker писал(а):
Язык - судя по многим данным наиболее оптимален на сегодняшний момент OCaml. Не могу поделиться личными впечатлениями о нём, я с ним не работал.

Собственно дальше можно не читать.

 Профиль  
                  
 
 
Сообщение13.08.2006, 19:08 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Yuri Gendelman писал(а):
На указанной Вами страничке написано: "If memory serves, MSC 4.0 was the first real Microsoft C compiler." Правда я не знаю, как там у автора со склерозом

Со склерозом не знаю, а кредитом доверия — плохо. По крайней мере, на то, кто купил Lattice, у Wikipedia свое мнение.

 Профиль  
                  
 
 
Сообщение13.08.2006, 19:33 
Заслуженный участник


15/05/05
3445
USA
незваный гость писал(а):
Со склерозом не знаю, а кредитом доверия — плохо. По крайней мере, на то, кто купил Lattice, у Wikipedia свое мнение.

На сайте Lattice написано, что "SAS Institute acquired Lattice in 1987".

 Профиль  
                  
 
 
Сообщение13.08.2006, 20:25 


21/03/06
1545
Москва
bugmaker писал(а):
Дело не в компиляторе а в соответствии стандартам самой программы. Если программа не использует особенности определённого компилятора, случайно или умышленно, сменить компилятор - не проблема. И появляется возможность компилировать под определённую платформу наиболее подходящим для этой платформы компилятором.

Прочитайте, пожалуйста, первое сообщение данной темы, и потом скажите - как написать программу в соответствии _СТАНДАРТАМ_ для работы с GUI Windows и Юниксах? Что, уже есть стандарт на бибилиотеки для работы с GUI?


bugmaker писал(а):
]
Цитата:
2. В этих продуктах будет поддерживаться формат Офиса;

Это совсем непросто технически.

Поясните пожалуйста, что именно непросто технически, и почему?

bugmaker писал(а):
Цитата:
3. Я смогу какое-то время надеяться на поддержку Микрософта, ибо вступая с ним к коммерческие отношения, коими является лицензия, я получаю, кроме права пользования самой программой, еще и поддержку производителя.

Служба поддержки - не благотворительная организация. Если ей будет невыгодно поддерживать что-либо, Вам остаётся только надеяться.

Предлагаю вам еще раз внимательно перечитать мою цитату, в которой нет ни слова о благотворительности.

bugmaker писал(а):
Цитата:
3. Большие программные продукты от больших софтварных фирм;

Каковые фирмы в основном и замечены в "кидалове", вынужденном или в соответствии своей политике.

Примеры пожалуйста приведите.

bugmaker писал(а):
Цитата:
2. За повсеместное использование языков C/C++ вместо десятков полу-осмысленных, полу-документированных, полу-совместимых реализаций других языков.

Почему не ассемблера?

Потому что C/C++. Если бы я был за повсеместное использование ассемблера, то так бы и написал, а так я за повсеместное использование C/C++.
:lol: :lol: :lol:

bugmaker писал(а):
Цитата:
Еще древние греки подметили, что демократия, как власть толпы

Власть толпы - охлократия. Демократия - власть народа. Это очень разные понятия.

Пожалуйста, объясните, разницу этих понятий? И, да, привожу свою цитату полностью, чтобы вы поняли, какой смысл в нее закладывался:
Цитата:
Еще древние греки подметили, что демократия, как власть толпы - невозможный политический строй, ведущий к разрухе.

Имелось ввиду, что нельзя давать всем (в моем понятии - толпе) возможность влиять в равной степени с проффесионалами на принятие решения. Например: если я позволю каждому пользователю моего компьютера переконфигурировать его в соответствии со своими потребностями - у меня в компьютере будет разруха. Если я позволю каждому моему гостю воспитывать мою кошку - у меня будет разруха. Если я позволю каждому "программисту" править мою программу, у меня наступит разруха.

Все, устал :)

 Профиль  
                  
 
 
Сообщение13.08.2006, 21:33 
Заслуженный участник


15/05/05
3445
USA
e2e4 писал(а):
bugmaker писал(а):
Власть толпы - охлократия. Демократия - власть народа. Это очень разные понятия.
Пожалуйста, объясните, разницу этих понятий?

Согласен с bugmaker'ом.
Согласно Платону существуют три формы правления, каждая в двух вариантах:
$\begin{tabular}{||c||c|c||c||}
\hline
\emph {форма} & \emph {
Кстати, согласно Платону при смене формы правления меняется и вариант. Т.е. монархию может сменить олигархия или охлократия, но не аристократия или демократия.

 Профиль  
                  
 
 
Сообщение13.08.2006, 21:37 


13/07/06
68
Обзор тулкитов:
http://freshmeat.net/articles/view/928
http://www.free-soft.org/guitool/
Собственно, реально можно ещё обратить внимание на FOX и FLTK.

Цитата:
Что, уже есть стандарт на бибилиотеки для работы с GUI?

Конечно есть, куда им деваться? Если программа со всем её окружением соотвествует например стандарту С99, и использует например только вызовы, описанные в соотвествующей редакции POSIX API и X Standards (man 7 XStandards), она несомненно будет соотвествовать соотвествующим стандартам и спецификациям.

Цитата:
Поясните пожалуйста, что именно непросто технически, и почему?

Форматов doc много. Больше одного. Все они сложны и спецификации их AFAIK закрыты. Также, они имеют многочисленные встроенные недостатки, такие как корявость работы с уникодом в Word 97 и младше, и плотная завязанность на умерший уже OLE (OLE2?). Со всеми интимными подробностями можно ознакомиться у разработчиков OpenOffice. Поддержка их в полном объёме программами третьих сторон поэтому затруднительна. Макимум, чего можно ожидать - хорошей конвертилки, хотя бы в стандартизованный формат международного обмена информацией, но и этого пока вроде бы нету.
Цитата:
Предлагаю вам еще раз внимательно перечитать мою цитату, в которой нет ни слова о благотворительности.

Прочитал. Много думал. Косвенно, есть. Служба поддержки - оплачиваемая. Грубо и упрощённо говоря, при росте расходов на неё, её эффективность повышается, и, теоретически, повышаются доходы фирмы - прямо, путём платной поддержки, или косвенно - привлечением клиентов и ростом репутации. Если разность этих функций изобразить на графике, должен быть некоторый минимум, когда при дальнейшем росте расходов на техподдержку затраты начинают расти быстрее, чем доходы от её деятельности. Очевидно, грамотная служба бизнес-планирования будет держать расходы максимально близко к минимуму на этом графике. Положение же самого минимума зависит от качества продукта, количества пользователей, положения фирмы на рынке, и от многого другого. Реально положение дел с Microsoft таково, что их бесплатная техподдержка - пустая формальность, а платная - настолько дорога, что пользоваться её услугами бесмысленно, дешевле будет использовать другое ПО.
Цитата:
Примеры пожалуйста приведите.

Вынужденное кидалово - Delphi, запланированное - отказ от visual basic, WIN API и тотальный переход на .net, смена форматов в MS Office, появление Vista с её "ниже среднего" совместимостью со старыми версиями Windows и жоркостью до ресурсов, несколько несовместимых между собой релизов .net, принципиальные by design дыры в всех версиях Windows, малоработающая техподдержа Microsoft, откровенный саботаж 64битных платформ им же. Это только то, что вспомнилось с ходу.
Цитата:
Потому что C/C++. Если бы я был за повсеместное использование ассемблера, то так бы и написал, а так я за повсеместное использование C/C++.

Хм, ну ладно, я сам напросился на такой ответ :D . Просто интересно, Вас лично не напрягает тот факт, что разработка программ на них весьма дорога, неэффективна и не позволяет легко добиться качественных продуктов?
Цитата:
Пожалуйста, объясните, разницу этих понятий? И, да, привожу свою цитату полностью, чтобы вы поняли, какой смысл в нее закладывался:

Я понял смысл и в общем согласен, только уточнил терминологию. Понятия луче описаны здесь
http://ru.wikipedia.org/wiki/Охлократия
http://ru.wikipedia.org/wiki/Демократия
Цитата:
Если я позволю каждому "программисту" править мою программу, у меня наступит разруха.

Есть некоторая (даже очень большая) разница с предыдущими. Воспитывание кошки - это процесс только качественный, т.е. приводящий к изменениям, не всегда желательным, исходного объекта. Правка программы - это процесс эволюционный: после правки Вашей, безусловно замечательной, программы будем иметь 1) исходную программу 2) "правленую" программу. Более вероятно что при прочих равных наименее жизнеспособное из двух "умрёт", а значит, ситуация как минимум не ухудшится. Это и подтверждается практикой: когда я первый раз был вынужден (буквально вынужден, т.е. не по своей воле из любопытства, или других личных мотивов, но исключительно по жестокой необходимости, т.к. под Windows не было необходимого для решения поставленной передо мной задачи софта) использовать Linux не подозревая об его существовании ещё за день до того, был просто поражён его простотой, удобством, скоростью работы и богатым возможностями.

 Профиль  
                  
 
 
Сообщение14.08.2006, 06:25 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
e2e4 писал(а):
Если я позволю каждому "программисту" править мою программу, у меня наступит разруха.

Очень во многих случаех имеет место быть коллективное владение кодом. Это — одно из основоположений XP (extreme programing). Очень часто бывает в корпоративной среде. И ничего, разруха наступает не часто.

Кроме того, не стоит путать — доступность исходняков не означает, что каждый может править Ваш код. Даже в очень либеральных лицензиях всяк может сделать копию кода, и править ее. Но Вы не обязаны включать чужие изменения. Примером является $\TeX$овская лицензия — когда можно править, но выпускать исправленное только под другим именем.

 Профиль  
                  
 
 
Сообщение14.08.2006, 07:19 


21/03/06
1545
Москва
Ув. незванный гость, я же поставил слово программист в кавычки :). Я вовсе не говорю, что программу должен писать один человек, но если программу пишут несколько людей, то все они должны очень четко понимать, что они делают.
К сожалению, ввиду экономии на зарплатах, в фирмах, где я работал и работаю, принимают на работу непроффесионалов, зато с амбициями. На этой почве часто возникают проблемы.

 Профиль  
                  
 
 
Сообщение14.08.2006, 19:52 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Неделю назад была статья в Financial Times. Совпадение?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group