Pull to refresh
14

Химик и программист.

32
Subscribers
Send message
Тут бы хоть какой-то успеть написать! В языковом пакте 1-2 (м.б. больше) бага, про которые сообщали, но исправлять их не торопятся. Мануал — полный ребус, а на вопросы официальный сайт не отвечает. В прошлой теме сказали, что очень заняты. И я занят, и все время на разгадывание невнятных мануалов тратить не могу — у меня еще другие работы. Пока вижу, что элементарные действия выполнить очень не просто. Какое уж тут самообучение :(
Т.е. если в Бейсике мы пишем For… Next, то в Питоне то же самое, но просто без Next.
М.б. дело привычки, но на мой взгляд большая принципиальная разница.

Проблема Питона и других динамических языков в том

Спасибо. Интересно.
то его там нет

Для школы различие Free Pascal и Delphi не существенны. Еще есть PascalABC.NET.
В рейтинге сказано именно «Delphi/Object Pascal». Согласно Вики Object Pascal — это Delphi, Oxygene, Free Pascal, Virtual Pascal, TMT Pascal, Turbo51. Только ли Delphi в рейтинге не понятно.

для школы я бы выбрал что-то более нейтральное и уж точно не платное


ИМХО можно Free Pascal.
без каких-либо закидонов, архаизмов и художеств автора («я так вижу»)
А отступы разве не закидон? Переход с Питона на С/С++ вызовет огромный шок своими "{}".

Я сам учился на Бейсике ZX Spectrum, потом на QuickBasic. Так вот по ощущениям от программирования Python это шаг в ту же самую сторону.
Я еще помню Бейсик на PDP-11 и Фортран-4 ЕС ЭВМ :) Но и с VBA пришлось познакомится, как и с Фортран-90. Т.о. мне Ваша характеристика Питона много сказала.

вот масштабные проекты я бы на нём делать как раз поостерёгся

Интересно почему? Можно подробнее?
И здесь бы любой живой (поддерживаемый, развивающийся) язык с пологой кривой обучения заранее был бы обречён на победу
Всех языков слишком много. Поэтому часто используют рейтинг TIOBE. Если исходить из него, то самый «живой» это Ява, дальше С и С++. Но и Дельфи/Паскаль, как и Питон устойчиво входят в топ. И кто «обречен на победу»?
Спасибо за разъяснение. Да, если в разных библиотеках разные форматы, разные представления и т.д., то возникает непростая задача совместить трудносовместимое. Видел такие проекты. Сочувствую. Но если вернуться к теме нашего обсуждения, то ИМХО эта проблема и пути ее решения не для изучения в общеобразовательной школе.
Если вам эти технологии не интересны — не пользуйтесь. Зачем демагогию устраивать?
Так это мне говорят:
Абсолютно не зная Питона, на нем у вас получится добиться успеха быстрее, чем на хорошо изученном Делфи.


А я говорил иное: 1) в школе Питон не нужен; 2) важен не язык, а алгоритмы.
Т.о. никакой демагогии с моей стороны.
Не очень понимаю, что значит подружить. Нпр., мой бот с OpenCV, с черным ящиком игры под DirectX и с Windows API дружит без всякого Питона.

Если не секрет, скажите, пожалуйста, какой средний объем кода Вашего проекта и сколько человек в команде?
Если говорить о научном софте, то 99,9% кода уже готово, ничего переписывать не надо.
Далеко не всегда. Многие мое научные программы 100% написаны мной.
В дистрибутиве Питона от Интел он доступен из коробки.
А какая разница поставляется вместе или отдельно?

причем передавать данные из кода на Питоне в код на другом языке и обратно. И это круто.
Что здесь крутого? COM передает, и меня не волнует на каком языке написан код.

Про гугл я спросил не случайно. В Вашем примере github выступил в роли поисковика. Если мой код лежит не на github, то через гугл найдется моя публикация на Хабре, в которой указана ссылка на код. Т.о. github в моем случае роли не играет.

они используют Питон не просто так.
Доказательство не убедительно — м.б. и просто так. Большие и богатые компании могут себе позволить некоторое количество рискованных проектов с очень малой вероятностью успеха. Иногда личные чудачества хозяина компании играют решающую роль. Распространено мнение, что так, нпр., возник VBA. Получится ли у гугла беспилотный автомобиль никто не знает, но реклама гуглу хорошая. М.б. только для рекламы и затеян этот проект.

А вы попробуйте, что-нибудь сделать на Питоне, допустим, игрового бота.
Нет. Так не пойдет. Бремя доказательства лежит на доказующем. Вы пытаетесь убедить меня в пользе Питона для моих проектов. Выше я уже привел их список. Возьмите любой из них и укажите, где конкретно я бы мог воспользоваться Питоном и что это даст?
Текущая популярность языка объясняется тем, что по факту огромное количество задач нуждается именно в таком подходе.
По факту доля всех создаваемых в мире ОС (вроде Amoeba project) очень небольшая от объема всего создаваемого в мире софта. Поэтому думаю, что причина популярности другая.
Это означает, что ваши проекты пишутся очень небольшой командой и состоят из достаточно однородных (по языку и идеологии) проектов. В больших системах это попросту невозможно.
Т.е. если объем моего проекта меньше 10М SLOC, и команда меньше 1000 человек, то мне ОО клей не нужен. Это самое я и говорил выше.

Практически в любой сложной задаче 99.9% кода вы НЕ пишете
Я не про библиотеки. Принимаю за 100% код, который мне нужно написать для решения поставленной задачи.
Штука в том, что как раз задача получения данных из одного места, преобразования в другой вид данных и передачи на вход следующему алгоритму на практике оказывается достаточно муторной.
В моей практике обычно не оказывается.

Смотрите на проблему шире. Не скрипт, который оперирует текстовым вводом-выводом, а именно объектно-ориентированный «клей»


Вот список моих проектов:
1) ПБ-бот
2) Роджерийский бот
3) Игра «из мухи в слона»
4) Тест различных представлений графа

Возьмите любой из них и укажите, где конкретно я бы мог воспользоваться ОО «клеем» и что это даст?
А Вы не поражайтесь, а объясните подробнее, где по-Вашему изврат?
Если в каком-то месте нужна большая производительность, то это место можно переписать на другом языке.


Т.е. во многих сложных задачах (имею в виду теор. оценку для наихудшего случая) 99.9% кода я пишу и отлаживаю на другом языке, а для Питона остается I/O? Но ввод-вывод не проблема для любого современного языка. Зачем мне привлекать другой язык только для этого 0.1% примитивного кода?

Речь идет о магии, точнее о светлой магии MKL


MKL прекрасно работает со многими языками (не знаю случая, где не работает). Я не ставлю в особую заслугу Delphi, что работает с MKL. Вот если бы не работало — было бы возмутительно!

А так… numba — хорошая штука. OpenCV прикручивается так же.
Тут я не понял. Хочу матрицы на GPU обрабатывать и СЛАУ решать, а еще перестановки генерировать. Как обойтись без CUDA?

Я в плане того, что ИИ — это все же математическая модель, а что-то новое в этой области — это гора символьных вычислений и десятки графиковю В этом плане MatPlotLib и SymPy незаменимы.
Десятки графиков и Excel построит. Из программы на Delphi в Excel по СОМ данные передаются без проблем.

Да, только добавляете перед ними import и потом еще пару строк кода. И все.


Хоть пару строк, хоть 20, но скрипт, который запускает сначала одну программу, потом другую, представляется мне наименее важным во всем проекте. Если Питон только для этого использовать — то попробую, если не забуду. Однако с этим и batch-файлы справляются. Зачем ставить дополнительный софт?

Если для этих вычислений недостаточно стека SciPy, то я снимаю перед вами шляпу. Значит вы нырнули действительно очень глубоко.


А разве стандартный калькулятор виндов, передает что-то в чужой стек? И зачем моей задаче, которая может сама себя обслужить, нпр., записать результаты в файл, предавать что-то в стек Питона?

Я из той олдскульной школы математиков, которая не признает компьютеры вообще. Т. е. если ты не можешь решить задачу с помощью ручки и бумаги — ты не в авангарде.


Т.е. если уравнение Шредингера не можешь решить с помощью ручки и бумаги — ты не в авангарде ?! Курчатов, Ландау и др. отдыхают! :)

Некоторые примитивы очень трудно реализовать в программном коде, однако у меня получилось, причем с помощью тех самых второстепенных технологий, PyPi и github-а.
И гугла?

Я действительно уверен, что Питон и «второстепенные технологии» продвигают серьезные проекты.
А я совершенно уверен, что P=NP, земляне произошли от марсиан, и вечный двигатель возможен. У меня доказательств этому нет, а у Вас есть математически строгие доказательства Вашему утверждению?

Прошу прощения если мои ответы кажутся надменными. Для меня держать культурный тон — тоже непростая задача. У меня нет возможности быстро отвечать на комментарии. А их написание занимает довольно много времени, если по другому — то это холивар с моей стороны.

Вы человек старой закалки с серьезным опытом — такого обычной пулей не возьмешь :)
Да, пуля должна быть из очень чистого серебра. Как алхимик, могу Вам сообщить, что в ювелирных ложках и прочих побрякушках слишком много меди, и из самородков серебро не бывает очень чистым. В полупроводниковой промышленности очищают зонной плавкой…

Против холивара в разумных рамках не возражаю и вызов принимаю. Ваши ответы мне не кажутся надменными. Честно говоря, хотя и по возможности мягко выражаясь, они мне кажутся не совсем обдуманными.

Паскаль — это «Война и МирЪ» Толстого. Для обычного обывателя слишком много «букав». Прочитать… осмыслить такой труд капец как не просто. Школьник его прочитает, но всей глубины не поймет. Это реально для зрелого человека.


Если про begin-end, то вопрос: не больше ли пробелов и табуляций в Питоне?

Питон — это «Фиеста» Хемингуэя.
Тут сожалею, что не смогу понять Вашу аналогию, т.к. с детства не люблю Хемингуэя.

Будучи ущербным в чем-то — ты можешь эту ущербность обратить в пользу.
Мой вклад в холивар. Считаю ущербным динамические типы, отступы, групповое присваивание, принципиальные проблемы с эффективностью (в частности, упоминают вызов функций), а также проблемы с многопоточностью. Не вижу путей обратить всё это во благо, особенно в случае школьного обучения.
Шутка или пасквиль?
(Страшно подумать: м.б. и Питон -это шутка, а я тут спорю :)
Моя идея — пиши код почти как написано в ТЗ, а умная оболочка разруливает нестыковки. Если использовать свой язык, как Вы предложили, то это будет ближе к моим идеям. Так на программисте меньше ответственности за ошибки.
Да, только я использовал не свой язык, а Delphi. Вы отметили важный принципиальный момент: чем больше сходство кода с ТЗ — тем он убедительнее.
PPS Прикинул, что 40 уровней может быть многовато для моего предложения…
PS
еще одну фишку моего подхода — дополнительные действия с минисценариями
Ok. Я предложил альтернативное решение. Как часто бывает везде свои ++ / --.
Ничего не мешает сделать подобный код и для 40 атрибутов. 40 уровней для вложенных case, конечно, будет очень объемным. И конечно его надо генерировать с помощью несложной программы или скрипта, а не писать руками, чтобы не ошибиться. На каждой вершине стоит перечислить значения атрибутов:

do_something1; // clienttype=ORGANIZATION doctype=...


Но ИМХО ничего страшного — главное уверенность, что это будет верно работать и легко модифицироваться!

Information

Rating
Does not participate
Registered
Activity