Здравствуйте, Eugeny__, Вы писали:
Y>>>>Я вот такой софт для ЖД знаю http://kaprem.com/ Y>>>>А Вы какой? MM>>>АСУ Станции примерно половины железных дорог России. A>>так вот почему они мне летом не могли найти станцию на собственной железной дороге! (повбывав бы) E__>АСУ станции и система продажи билетов(я так понимаю, через нее станцию искали?) — это очень разные вещи.
я уж понял... но осадочек остался
E>Последняя(Экспресс 3) крутится на юниховых IBM мэйнфреймах(приходилось с ней работать), так что Делфей там точно нет.
делфей нет на мэйнфреймах??? Delphi НЕ НУЖЕН
E>А проблема с поиском — это скорее или некомпетентность кассира(интерфейс системы ни разу не интуитивный, и неопытный кассир мог тупить легко), или того, кто вводил описание станции, так что спокойнее, без паники .
да нормально всё — я ж туда как-то добрался просто когда станция везде по разному пишется (я знаю 4 варианта!!!) — могли бы сделать поиск похитрее.
Здравствуйте, wety, Вы писали:
W>Здравствуйте, BlackEric, Вы писали:
W>>>Delphi — это старый добрый Pascal со всеми вытекающими последствиями: W>>>- низкая производительность (хуже .Net 4.0 минимум в 3 раза); BE>>Тесты в студию
W>Хм. Для начала надо придумать как и что тестировать. Есть идеи? W>Хотя бы примерный тест на C# подскажите, а я его тогда и реализую окончательно и на C# и на Delphi. W>А ещё надо будет скачать эту 2010/XE(2011) (если только такая есть на торрентах).
Trial?
низкая производительность (хуже .Net 4.0 минимум в 3 раза); — А на чем же это утверждение основано?
W>>>- неудобная среда разработки (нет элементарного resharper); BE>>Вы 2010/XE(2011) видели? Ничем не уступает MS VS 2008
W>Нет, не видел. Как-то уже не слежу за этим Delphi.
Зра. После прикрутки юникода в Delphi 2009 весьма неплох.
W>>>- отсутствие средств для написания и использования snippet'ов (на момент 2004 года, сейчас может что и поменялось). BE>>Автокомплита вполне достаточно. BE>>Все остальное долно быть вынесено в функции. Если очень критично по производительности, то функция должна быть inline
W>>>Так? Так! BE>>Не так!
W>Как же так??? W>Поможешь написать тест для прогонки на C# и Delphi? Просто нужна идея, а не код.
Идеи:
1. Факториал, Фибонначи
2. Хэши MD5, Sha-1 (крипто API и криптопровайдеры не юзать)
3. Генерация preview для каталога изображений (использовать одинаковую технологию обработки изображений: GDI+, OpenGL, DirectX)
Здравствуйте, Cadet, Вы писали:
C>Здравствуйте, BlackEric, Вы писали:
BE>>NullPointer exception ничем не хуже
C>Конечно не хуже. Лучше, глянув на StackTrace я сразу определяю место ее возникновения, иду и исправляю. Вот AV это жопа, тяжело искать.
Аналогично: смотрю на StackTrace либо ищу утечки через MemCheck
Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, enji, Вы писали:
E>>Вы не поверите Но это так — есть чел, который сидит на объекте в 300 км от города с ноутом, на котором стоит win98 и gsm модемом. Как обычно сроки горят, все надо запустить еще вчера. И чего ему сказать — чтобы поменять параметры оборудования вам нужно скачать 30 метров с сайта микрософт или sun?
E>>И такие случаи не редкость... MM>Так если не редкость, может пора уже научить этих людей, как скачать несчастные 30 метров до командировки? Или Винду обновить. Это тоже не редкость
ну да. у меня, бывало, командировки за 40 минут организовывались и ноутбук находился. с тем, что на нем оказалось. Какие там нафик дотнеты или фреймворки? Дай боже мысли в кучу собрать и ничего не забыть просто слить на винт для последующей разборки в паровозе.
Здравствуйте, BlackEric, Вы писали:
BE>В Delpi можно писать не используя ручного управления памятью! Чем он и хорош: где нет работы с железом и не критична производительность можно и не знать что такое pointer. BE>А при желании можно писать в C++ стиле с указателами, PChar вместо string и т.д.
И часто такие подходы используются вместе, в одном блоке кода? Кто мешает использовать C# там, где нужна простота и C++ — где нужна производительность? PInvoke или COM для объединения.
BE>NullPointer exception ничем не хуже
Null Pointer легко локализуем. Access Violation зачастую возникает после повреждения какого-нибудь куска памяти и понять, где первоисточник, зачастую, очень сложно.
Могу привести еще кучу примеров:
Edit-n-continue. Идеально работает в Visual Studio, и не снился Delphi.
Нормальный отладчик с нормальной визуализацией типов (в т.ч. коллекций).
Рефакторринг, автоматическая генерация методов, переименование, поиск зависимостей.
Визуализация классов в виде диаграмм.
Родная поддержка Regexp и XML.
Совместимость с Linux (Mono жив, Kylix забыт).
Совместимость x86/x64.
Наличие упрощенной Compact Framework для WinMobile.
Наличие кучи сторонних плагинов для студии (VisualAssist тот же).
Иерархическая организация классов через namespace. Достаточно помнить "что-то в System.IO", чтобы быстро найти нужный класс, не тратя времени на обзор справки.
E>>А проблема с поиском — это скорее или некомпетентность кассира(интерфейс системы ни разу не интуитивный, и неопытный кассир мог тупить легко), или того, кто вводил описание станции, так что спокойнее, без паники . A>да нормально всё — я ж туда как-то добрался просто когда станция везде по разному пишется (я знаю 4 варианта!!!) — могли бы сделать поиск похитрее.
Они туда, как я понимаю, стараются не лезть. Система страрая, но сама по себе работает очень хорошо. А то, что некоторые работники-идиоты не могут правильно написать название станции...
Кстати, поиск там не такой и плохой.
А опытные кассиры коды большинства станций, куда можно ехать из этого города, вообще наизусть знают.
Кстати, можно варианты написания станции в студию?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, пыщьх, Вы писали:
П>Здравствуйте, BlackEric, Вы писали:
BE>>В Delpi можно писать не используя ручного управления памятью! Чем он и хорош: где нет работы с железом и не критична производительность можно и не знать что такое pointer. BE>>А при желании можно писать в C++ стиле с указателами, PChar вместо string и т.д. П>И часто такие подходы используются вместе, в одном блоке кода? Кто мешает использовать C# там, где нужна простота и C++ — где нужна производительность? PInvoke или COM для объединения.
И зарплату платим за C# и C++
BE>>NullPointer exception ничем не хуже П>Null Pointer легко локализуем. Access Violation зачастую возникает после повреждения какого-нибудь куска памяти и понять, где первоисточник, зачастую, очень сложно.
Есть такое. Но это неизбежная плата за прямой доступ к памяти. П>Могу привести еще кучу примеров:
П>
П>Edit-n-continue. Идеально работает в Visual Studio, и не снился Delphi.
хз что такое П>Нормальный отладчик с нормальной визуализацией типов (в т.ч. коллекций).
В Делфи2010 вроде ничем не хуже П>Рефакторринг, автоматическая генерация методов, переименование, поиск зависимостей.
Есть П>Визуализация классов в виде диаграмм.
Вроде есть. Не использовал ни разу нигде П>Родная поддержка Regexp и XML. нету П>Совместимость с Linux (Mono жив, Kylix забыт).
FreePascal/Lazarus. П>Совместимость x86/x64.
Есть во FreePascal. Но это серьезный недостаток П>Наличие упрощенной Compact Framework для WinMobile. нету П>Наличие кучи сторонних плагинов для студии (VisualAssist тот же).
Дохрена и больше П>Иерархическая организация классов через namespace. Достаточно помнить "что-то в System.IO", чтобы быстро найти нужный класс, не тратя времени на обзор справки.
Нет. Но это не критично. П>
Здравствуйте, BlackEric, Вы писали:
BE>И зарплату платим за C# и C++
Не зарплату, а лицензионные отчисления
Если "зарплатама", то споры о языке программирования бессмысленны. Какой язык насяльника назовет, на таком и писатама.
BE>>>NullPointer exception ничем не хуже П>>Null Pointer легко локализуем. Access Violation зачастую возникает после повреждения какого-нибудь куска памяти и понять, где первоисточник, зачастую, очень сложно. BE>Есть такое. Но это неизбежная плата за прямой доступ к памяти.
Угу. А нафига он нужен в большинстве UI-ориентированных свистоперделок?
П>>Edit-n-continue. Идеально работает в Visual Studio, и не снился Delphi. BE> хз что такое
Это когда в середине работы программы видишь баг, исправляешь код и продолжаешь выполнение пофиксенного кода без перезапуска. Де-факто можно набросать сигнатуру метода, запустить выполнение и реализовывать его пошагово, выполняя каждую строчку сразу после написания, убеждаясь в корректности кода.
BE>...
Ну вот, C# — Delphi 4:0. А что нужное есть в Delphi, чего нет в C#?
Здравствуйте, snaphold, Вы писали:
S>5 лет назад думал, что дни его сочтены. Ан нет. S>Причины? Много уже написанного крупного софта? И получается он будет жив всегда?
Конечно. Точно так же живы фортран, кобол, лисп и даже ассемблер. Ничего странного в этом нет.
Материал из Википедии — свободной энциклопедии, -_*
Здравствуйте, BlackEric, Вы писали:
П>>Ну вот, C# — Delphi 4:0. А что нужное есть в Delphi, чего нет в C#?
BE>1. Работает на голом Win32.
0.0001% юзкейсов, где это действительно нужно BE>2. Ручное управление памятью.
IDisposable BE>3. И там где нужны первые 2 пункта гораздо проще в работе чем C++
COM/PInvoke
Пока Номер <= 50 Цикл
//.. тело цикла...
КонецЦикла;
Я понимаю, почему 1С так распространен, в чем его преимущества, но убежден что писать на нем это насилие над своим мозгом. Вот старый добрый делфи это другое дело.
Здравствуйте, Eugeny__, Вы писали:
E__>А опытные кассиры коды большинства станций, куда можно ехать из этого города, вообще наизусть знают.
какой интерес тестить систему в таком примитивном случае? естественно, мы заказывали билеты на поезд из Питера на вокзалах в Москве и Нижнем Новгороде ответ был один — "а это вообще что и где?"
E__>Кстати, можно варианты написания станции в студию?
пофиксить хочешь?
вот: ст.Найстен?ярви
варианты:
— если смотреть расписание поезда 350А, будет "найстен'яр" (они там режут названия, за что им отдельное спасибо! )
— если выбирать из списка у них, то там "найстен'ярви"
— непосредственно на станции (опустим момент что я там вообще забыл, ибо там вообще ничего нет) есть два станционных домика с надписями "найстеньярви" и "найстенъярви". ыыы...
допустим, мы посмотрели название на станции или скажем на гугломапе (там с твёрдым знаком).
вводим в поиск... а вот фигу! мало того что оно там твёрдый знак в мягкий конвертит, так ещё ведь и не находит — у них же в базе используется "'"! ну тему sql inject-а я проверять не стал...
П>Визуализация классов в виде диаграмм. П>
Вообще эту штуку Борланд придумал куда раньше МС. Был у них такой тул — Together назывался, кажется. Вот диаграмма классов в студии как раз по его мотивам.
Здравствуйте, Трурль, Вы писали:
W>>ого скока програмулек, практически ни одной не знаю, но вот Altium Designer и FL Studio действительно крупный софт, пользовался, добро Т>А слова Skype, The Bat!, Total Commander ничего не напоминают?
ничего хорошего
-_*>Здравствуйте, snaphold, Вы писали:
S>>5 лет назад думал, что дни его сочтены. Ан нет. S>>Причины? Много уже написанного крупного софта? И получается он будет жив всегда?
-_*>Конечно. Точно так же живы фортран, кобол, лисп и даже ассемблер. Ничего странного в этом нет.
Здравствуйте, nullptr_t, Вы писали:
_>-_*>Конечно. Точно так же живы фортран, кобол, лисп и даже ассемблер. Ничего странного в этом нет.
_>вы норкоман — всё есть ассемблер
Здравствуйте, MxMsk, Вы писали:
E__>>На любом языке класс, суммирующий обработчики(при их наличии в нем) пишется за пару минут. А вот возможность иметь ссылку на метод — это фича языка. MM>А вот здесь поспорю. "Пишется за пару минут" и встроена в язык, в том числе с почти lock free подпиской — это все-таки разные вещи.
То, что делегаты организованы как списки не очень-то и хорошо. Во-первых, криво с точки зрения дизайна. Возьмем делегат вида:
delegate int CallBack();
Что он будет возвращать?
Во-вторых, приходится жертвовать производительностью ради этой списочности.
При этом единственный сценарий, при котором мультиделегаты востребованы — это события. Не говоря уж о том, что я вообще не вижу строгой необходимости именно в делегатах для реализации событий (в конце концов у нас ООП язык), без мульти-делегатов уж точно можно обойтись. Делается простенький хелпер для подписки, который сохраняет старый делегат и вызывает его тоже. Этот хелпер при желании можно "встроить" в библиотеку, хоть в сам класс Delegate.
И все. Сделали бы в Шарпе так — было бы лучше.
А вообще, если бы товарищ Хейлсберг не написал в свое время письмо в МС про то, как ему нравятся Джава и Дельфи, но как не нравится то, что там нет/неправильно реализованы делегаты, и делегаты бы в C# не добавили вообще, то сейчас вместо этого говна был бы скорее всего полноценный функциональный тип, которого при работе с лямбдами очень не хватает.
В общем отсутствие мульти-делегатов — это плюс.
Отсутствие делегатов вообще — два плюса.