powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Морально устаревшие элементы языков высокого уровня
25 сообщений из 355, страница 11 из 15
Морально устаревшие элементы языков высокого уровня
    #35983429
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLo,

Я бы не хотел тут развязывать священных войн между паскальщиками и Сишниками)). Я делал проекты как на Дельфях, так и на С++ и хорошо представляю себе сильные и слабые стороны обоих этих языков, также уважаю Джоэла как толкового популяризатора, поэтому спорить с ним было бы нескромно с моей стороны))). Одно только замечание:
В плане быстродействия очень многое зависит от реализации языка. В т.ч. и при работе со строками. Возьмем С++. Многочисленное семейство функций str.. в стандартной библиотеке, так же, как и работа со строковыми массивами посредством выделения памяти из кучи - это всё поддерживается уже больше в целях совместимости со старыми исходниками и старыми проектами, написанными в стиле С, нежели для современных проектов. Если Вам так претит поиск завершающего нуля для сишной строки - не используйте строки в стиле char * . Используйте контейнер String , который Вам так же предоставляет STL.
Подумайте - если Вы, скажем, копируете или ещё как манипулируете одной очень большой строкой и/или делаете всё это в циклах, то накладные расходы на определение длины вашей строки по сравнению со временем окончания самой операции копирования просто мизерны и смешно говорить об этом как о недостатке по сравнению с тем же паскалем. Прошерстить строку в оперативке в поиске нуля - это в современной машине - тьфу и растереть. Ненамного дольше, чем считать первый байт паскальной строки, чтобы этим пренебречь
Другое дело, что тут подводные камни, связанные с надежностью, с переполнениями и т.п., но не будем в это вдаваться, а то точно утонем).
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983445
Фотография gds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КnicktcherЛюбую современную прикладную задачу можно реализовать как, допустим, на Дельфях, так и на
C++ за сопоставимое время. Если Вы знаете какую-либо задачу, с которой справится только какая-то одна система - назовите, поспорим.Традиционно, есть БД, нужно к ней прикрутить серверную логику. Варианты:
1. На хранимых процедурах в SQL.
2. .Net или Java
3. C++ или Delphi

ИМХО: Последние два ну никак не подходят для этой задачи. Их выбор для этой задачи может обернуться крахом.
Мне показалось или вы не совсем корректную задачу привели.
Если правильно понял речь идет о языках программирования. Несомненно Серверную логику надо реализовывать в самой БД. Процедуры, триггеры, Курсоры, Функции, пакеты, и т.п. Но тогда задача приложения сводиться к тому, чтобы:
послать селект, получить данные, отобразить инфу, внести инфу в БД через процу.
со всеми этими задачами вспавятся я думаю все перечисленные вами языки и IDE. Но на мой взгляд самым отпимальным было бы либо delphi либо C#.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983452
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nicktcherXDiaBLo,

Я бы не хотел тут развязывать священных войн между паскальщиками и Сишниками)). Я делал проекты как на Дельфях, так и на С++ и хорошо представляю себе сильные и слабые стороны обоих этих языков, также уважаю Джоэла как толкового популяризатора, поэтому спорить с ним было бы нескромно с моей стороны))). Одно только замечание:
В плане быстродействия очень многое зависит от реализации языка. В т.ч. и при работе со строками. Возьмем С++. Многочисленное семейство функций str.. в стандартной библиотеке, так же, как и работа со строковыми массивами посредством выделения памяти из кучи - это всё поддерживается уже больше в целях совместимости со старыми исходниками и старыми проектами, написанными в стиле С, нежели для современных проектов. Если Вам так претит поиск завершающего нуля для сишной строки - не используйте строки в стиле char * . Используйте контейнер String , который Вам так же предоставляет STL.
Подумайте - если Вы, скажем, копируете или ещё как манипулируете одной очень большой строкой и/или делаете всё это в циклах, то накладные расходы на определение длины вашей строки по сравнению со временем окончания самой операции копирования просто мизерны и смешно говорить об этом как о недостатке по сравнению с тем же паскалем. Прошерстить строку в оперативке в поиске нуля - это в современной машине - тьфу и растереть. Ненамного дольше, чем считать первый байт паскальной строки, чтобы этим пренебречь
Другое дело, что тут подводные камни, связанные с надежностью, с переполнениями и т.п., но не будем в это вдаваться, а то точно утонем).
Во-первых я просто ответил на высказывание что сишные строки быстрее всего. Я сказал что это неправда, бывают строки и получше стандартных сишных. И всё. А во-вторых не String, а string.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983462
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gdsАлексей КnicktcherЛюбую современную прикладную задачу можно реализовать как, допустим, на Дельфях, так и на
C++ за сопоставимое время. Если Вы знаете какую-либо задачу, с которой справится только какая-то одна система - назовите, поспорим.Традиционно, есть БД, нужно к ней прикрутить серверную логику. Варианты:
1. На хранимых процедурах в SQL.
2. .Net или Java
3. C++ или Delphi

ИМХО: Последние два ну никак не подходят для этой задачи. Их выбор для этой задачи может обернуться крахом.

Мне показалось или вы не совсем корректную задачу привели.
Если правильно понял речь идет о языках программирования. Несомненно Серверную логику надо реализовывать в самой БД. Процедуры, триггеры, Курсоры, Функции, пакеты, и т.п. Но тогда задача приложения сводиться к тому, чтобы:
послать селект, получить данные, отобразить инфу, внести инфу в БД через процу.
со всеми этими задачами вспавятся я думаю все перечисленные вами языки и IDE. Но на мой взгляд самым отпимальным было бы либо delphi либо C#.

Совершенно согласен, gds.
Алексей К, неудачный пример. Серверная логика всегда реализуется именно средствами БД, а не прикладными высокоуровневыми языками. Для коннекта с любой БД есть универсальный подход с ODBC
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983474
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати насколько я знаю, в Оракле есть возможность писать встроенные процедуры на жаве
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983484
Фотография gds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoКстати насколько я знаю, в Оракле есть возможность писать встроенные процедуры на жаве
да да имено так оно и есть. Если у вас есть поддержка явы. Там даже компонент идет в компдекте Java SDK.
Но мне ближе к душе PL/SQL.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983487
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLo,

Правильно, молодец))
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983505
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nicktcherСовершенно согласен, gds.
Алексей К, неудачный пример. Серверная логика всегда реализуется именно средствами БД, а не прикладными высокоуровневыми языками. Для коннекта с любой БД есть универсальный подход с ODBCОткуда тогда беруться холивары на тему "n-tier" vs "логика в SQL"? :-)

Я не сторонник выноса логики из СУБД без особых на то причин. Я лишь хотел привести необоснованный вынос логики из СУБД в качестве примера выбора неверной архитектуры, и, как следствие, неверных средств разработки. Впрочем, если Вы считаете пример неудачным - я не настаиваю. :-)
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983507
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nicktcherXDiaBLo,

Правильно, молодец))
Это насчёт пункта 2

авторТрадиционно, есть БД, нужно к ней прикрутить серверную логику. Варианты:
1. На хранимых процедурах в SQL.
2. .Net или Java
3. C++ или Delphi

ИМХО: Последние два ну никак не подходят для этой задачи. Их выбор для этой задачи может обернуться крахом.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983511
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gdsXDiaBLoКстати насколько я знаю, в Оракле есть возможность писать встроенные процедуры на жаве
да да имено так оно и есть. Если у вас есть поддержка явы. Там даже компонент идет в компдекте Java SDK.
Но мне ближе к душе PL/SQL.

Ага, вообще конечно, надо использовать наиболее подходящий инструмент для соответствующей ситуации. Действительно, СУБД Oracle оснащена встроенной JVM, что позволяет встраивать прям в базу соответствующие жавные процедуры. Но сам Oracle всегда настойчиво подчеркивает, что для серверной части оптимальным по быстродействию будет использование PL/SQL, а Java предназначен больше для использования в промежуточном слое.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983518
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nicktchergdsXDiaBLoКстати насколько я знаю, в Оракле есть возможность писать встроенные процедуры на жаве
да да имено так оно и есть. Если у вас есть поддержка явы. Там даже компонент идет в компдекте Java SDK.
Но мне ближе к душе PL/SQL.

Ага, вообще конечно, надо использовать наиболее подходящий инструмент для соответствующей ситуации. Действительно, СУБД Oracle оснащена встроенной JVM, что позволяет встраивать прям в базу соответствующие жавные процедуры. Но сам Oracle всегда настойчиво подчеркивает, что для серверной части оптимальным по быстродействию будет использование PL/SQL, а Java предназначен больше для использования в промежуточном слое.
Когда я работал в НИИ, один коллега мне упоминал, что в Оракле жавные процедуры сильно ограничены по вычислительным ресурсам, видимо чтобы Ораклу не мешать... Так что думаю да, они даже насильно заставляют поменьше пользоваться жавой :)
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983537
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLo
Когда я работал в НИИ, один коллега мне упоминал, что в Оракле жавные процедуры сильно ограничены по вычислительным ресурсам, видимо чтобы Ораклу не мешать... Так что думаю да, они даже насильно заставляют поменьше пользоваться жавой :)

нет, нет, они не ограничены конечно и насильно никто не заставляет, просто в Oracle очень хорошо отшлифован уже стык между ядром PL/SQL и ядром SQL (это ж всё таки родственнички!), вот там как раз выигрыш по сравнению с Java-машиной существенный
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983547
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eee-pc
а сколько кодировок появилось за это время, ппц. почему например все flash видео сайты делают свой формат, не совместимый с другими ? тоже и здесь. это не си заставляет делать си-строки (кстати сказать, что си-строки вполне достойны, кроме того, самые быстрые из всех). это удары под ребра заставляют крутится
1) Честно говоря я не понял связи с flash video. Возможно вы имели в виду что-то другое?

2) C-строки не могут быть быстрыми или медленными. Они не могут быть никакими потоу что их просто не существует. Есть некая каноническая библиотека (объявленная string.h) для работы с ASCIIZ-массивами. С этого начинается любое программирование строк на низком уровне.И все начинающие сишники её изучают. Это как ассемблер. Но она не лишена недостатков. Например, довольно сложно сделать return string из функции, особенно если она рекурсивная. Сложно конкатенировать строки в условиях расположения в стеке. И еще много чего сложно. Есть также немалый процент нареканий со стороны безопасности С-кода. Существуют эксплоиты, испольуют атаку на ASCIIZ массивы. Но..... существует масса прикладных библиотек. Каждая из которых навязывает свою собственную концепцию работы со строками. MFC, VCL, STL, и прочие *L создают свой собственный ни с чем не совместимый набор абстракций. Но ни одна из них так и не стала частью ЯЗЫКА. Они по прежнему остаются custom-библиотеками. И программист С++ должен лавировать между ними, выбирая удобную для себя методику. А когда методик несколько.... начинается АЛИС КАПУТ, о котором мы писали выше.

По поводу скорости. Мне сложно говорить без сравнительных примеров и бенчмарков, поэтому, если возникнет желание - давайте поднимем отдельный тред, в котором сравним скорость поиска подсроки в строке для различных library. Если этот тест покажется вам неполным или недостаточным - предложите свой. Я буду не против.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983554
Фотография gds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К
Я не сторонник выноса логики из СУБД без особых на то причин. Я лишь хотел привести необоснованный вынос логики из СУБД в качестве примера выбора неверной архитектуры, и, как следствие, неверных средств разработки. Впрочем, если Вы считаете пример неудачным - я не настаиваю. :-)
Я тоже не сторонник выноса логики за пределы БД. Но зачастую иногда бывает это единственным выходом, по разным на то причинам. Например единая (своеобразная) обработка данных для нескольких модулей в Комплектном ПО. И если это случилось, то в "идеальном" варианте я бы написал эту логику на С/С++ - если надо обеспечить максимально бытродействие, а потом подключил бы куда мне удобно. Хоть к Delphi, хоть к C#, хоть к C++, хоть к Java - если она позволяет. Поправде говоря ни разу не писал на ней.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983605
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin Jну яЭто не удобно ))) Это так и должно быть у белых людей )))

поясните. "неудобно должны быть", "неудобно у белых людей" ???

разница в двух позициях
Не, разница в одной позиции. Пробела. Есть разница между неудобно и не удобно.
Перевожу проще - "не удобно" - это слабая форма, предпочитаю покрепче )))
Или: Это не удобно, а так и должно быть у белых людей.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983611
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nicktcher
Подумайте - если Вы, скажем, копируете или ещё как манипулируете одной очень большой строкой и/или делаете всё это в циклах, то накладные расходы на определение длины вашей строки по сравнению со временем окончания самой операции копирования просто мизерны и смешно говорить об этом как о недостатке по сравнению с тем же паскалем. Прошерстить строку в оперативке в поиске нуля - это в современной машине - тьфу и растереть. Ненамного дольше, чем считать первый байт паскальной строки, чтобы этим пренебречь

Мне кажется что это как раз явный алгоритмический антипаттерн. Поиск нуля, действительно тривиален, но если эта операция будет в цикле то вы получите серъёзную просадку в производительности. А если строка при этом буде расти в размере, то можно получить и квадратичную и кубическую сложности алгоритмов.

Хранить длину строки отдельно - тоже антипаттерн. Но уже не алгоритма а дизайна. Такой код трудно сопровождать.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983655
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Мне кажется что это как раз явный алгоритмический антипаттерн. Поиск нуля, действительно тривиален, но если эта операция будет в цикле то вы получите серъёзную просадку в производительности.
...


В принципе согласен, каюсь, эт я не слишком удачный пример привел(. Для особо запущенных случаев скорее всего лучше отойти от использования стандартных функций и придумать какой-нить свой алгоритм, оптимальный в данной конкретной ситуации. Кстати, если мы обрабатываем одну и ту же строку, то простое и эффективное решение - "закэшировать" её длину при первой итерации и при дальнейших манипуляциях с этой строкой динамически менять.
Я вот только затрудняюсь представить пример, где бы у сишников возникали бы подобные сложности)).
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35983660
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixinBagaBagaДа и на кой мне к счетчику цикла i присобачивать по сути "квалификатор пространства имен" MyBestCompanyForeverI?

Буквоедство detected. Речь идет об именах классов а не о именах переменных. Вы для счетчика класс заводите? Тогда приаттачивайте имя, да.

Так. У классов чегой-то дописывать нужно... А у структур???
Да, если не в курсе, то итератор (о С++ речь) - это таки да, класс. Ну и какая тут экономия???
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35984208
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 All

По поводу ASCIIZ. Я немножко поковырял поисковики на предмет истории возникновения ASZII-нулевых строк. Первые сообщения об этом формате мелькают в статьях, посвящённых PDP (Programmed Data Processor). Это семейство довольно древних ЭВМ. Так вот. Из обрывков информации я узнал, что ASCIZ строка имела аппаратную реализацию на PDP. Впоследствии формат был перенесён на Intell архитектуры, у которых не было этой поддержки, из за чего, Pascal строки на Intell работают эффективнее.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35984264
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

серию PDP и конкретную команду - в студию
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35984280
ябщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗабаненныйСкачал CLARION7 - только установил. Так дай жеж ссылку, где нам взять?
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35984340
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил...
Что-то типа того. Две ассемблерные команды копируют строку из источника в получатель.
Код: plaintext
1.
2.
 10 $: movb (r1)+, (r0)+ ; copy until a null

bne  10 $ ; not done 
Насчёт версии - к сожалению не уточнил. Но мне гуглить уже лениво. Так-что если хотите - ищите сами.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35984366
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gds
ИМХО: Си очень мошьный и инструмент в хороших руках.
Си мне не нравится именно из-за своей ненужной усложненности. Ассемблер еще мощнее в умелых руках, но ну его нафиг.
Проблема в том, что нет ни одного нормального кроссплатформенного компилятора а-ля QT, только для языка Си++.
Странно, подход с кроссплатформенным компилятором более выигрышный, чем кроссплатформенная виртуальная машина, как JAVA или NET, почему все силы разработчиков ушли на JRE и NET, непонятно.
Будь у меня выбор (альтернатива QT) я бы поклал на СИ++ с большой крыши. Это язык не для человека.
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35984370
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hor_netСтанная беседа...
Овладевайте слепым 10-и пальцевым методом набора текста и это решит проблему "избыточности" языков.
Ну в самом деле, ну сколько вы тратите на набивку и сколько на обдумывание решения. Набивка это ничтожное время. Там нечего уже экономить.

ну да, конечно, давайте на ассемблере набивать код... Обдумывать то больше будем.
Если в языке есть мусорный код, от него надо избавляться. Зачем делать язык чрезмерно усложненным. Я лично не понимаю, зачем такая кривая схема включения H-файлов. Понимаю, так удобно компилятору, но человеку так не удобно.

Человек знает, что у него есть классы, объявление интерфейса и реализации он может сделать в разных файлах, система их проиндексировать и не нужно никаких инклюдов. Инклюды - это пережитки прошлого...
...
Рейтинг: 0 / 0
Морально устаревшие элементы языков высокого уровня
    #35984371
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КHor_netНу в самом деле, ну сколько вы тратите на набивку и сколько на обдумывание решения. Набивка это ничтожное время. Там нечего уже экономить.Проекты бывают разные. Видимо Вам повезло с вашими проектами, при реализации которых приходится думать. А бывают проекты, где всё давным давно уже обдумано, и само по себе программирование давно превратилось в тупое набивание текста.

Интересно, в QT Creator события привязываются к элементам управления в IDE или ручками?
...
Рейтинг: 0 / 0
25 сообщений из 355, страница 11 из 15
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Морально устаревшие элементы языков высокого уровня
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]