Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: C или python  (Прочитано 14452 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: C или python
« Ответ #75 : 27 Июня 2015, 17:32:22 »
Ацетон, полезнее было бы рекомендовать ассемблер, ведь зная ассемблер удивляешься насколько неповоротливые и уродливые программы писал на плюсах, но ты ассемблер не рекомендуешь. А как легко становится отлаживать программы даже без исходного кода... Но ты не рекламируешь ассемблер. Насчёт php если недостаточно учить язык, то и хорошо писать не будешь. И это касается любого языка. Просто того, что недоучив плюсы написать что-то серьёзное почти невероятно, а вот с php такой трюк пройдёт. Но это не плюс c++.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: C или python
« Ответ #76 : 27 Июня 2015, 19:00:54 »
Насчёт php если недостаточно учить язык, то и хорошо писать не будешь. И это касается любого языка. Просто того, что недоучив плюсы написать что-то серьёзное почти невероятно, а вот с php такой трюк пройдёт. Но это не плюс c++.

Язык программирования тут ни при чём. Точнее, его то надо знать, но не в нём проблема. А проблема заключается в программисте и его способности выражать свои мысли. Мысль - первое дело, слово - второе.
« Последнее редактирование: 27 Июня 2015, 19:04:11 от unimix »

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: C или python
« Ответ #77 : 03 Июля 2015, 14:59:01 »
alsoijw,
Если кто то решил заняться членовредительством считая, что знает этот ЯП, то флаг ему в руки и книгу Бьерна Страуструпа по С++. В вашем коде есть детские ошибки от незнания ЯП :)
А я всегда думал, что ЯП должны упрощать разработку...

Пользователь решил продолжить мысль 03 Июля 2015, 15:03:35:

Пользователь решил продолжить мысль [time]24 Июнь 2015, 21:29:45[/time]:
А чё, компиляторы уже не оптимизируют код?
Оптимизируют, но не переписывают. Чуете разницу?
А как же они его оптимизируют без переписывания?  :o

Пользователь решил продолжить мысль 03 Июля 2015, 15:34:08:
Пора становится объективным.
Пора становиться взрослым. :2funny:     
Я думаю, что право на вступление в брак никак не связано с обсуждением  :2funny:

Пользователь решил продолжить мысль 03 Июля 2015, 15:41:01:
Сначала яро что-то доказываем, потом оправдываемся. Пора становится объективным.
Умение признавать свои ошибки - черта адекватных людей. Судя по реакции - не ваша)
Умение не подразумевает обязательного использования.

И да, объективного мнения не существует, кажется, этому учат еще в школе.
А что тогда может быть объективным?
Это понятие [объективность] относительно понятий, представлений, суждений — что они являются отображением материальной действительности, и их содержание не зависит от человека или человечества...

Пользователь решил продолжить мысль 03 Июля 2015, 16:30:32:
Раз уж Вы так хотите, чтобы Вас ткнули носом в Ваше место, то вот Вам интересная информация о том, насколько этот ваш питон производительный: http://habrahabr.ru/post/66562/
range -- это не честно!
xrange -- генератор... реализован на чистом C.

Цитировать
вынос кода в функцию ускоряет работу кода почти вдвое
на сколько мне известно -- "бред сивой кобылы":
Накладные   расходы   на вызов  функции  в Питоне  достаточно  велики,
   особенно   по сравнению   со встроенными   функциями.

Цитировать
отдельная же инициализация range()
Что это?

Что загружалось: .py, .pyc или .pyo ?

Что на счёт Cython, PyPy и т.п.?

Как мерилась производительность? Учитывались ли издержки на загрузку интерпретатора и т.п.?

Цитировать
Код: (python) [Выделить]
print("answer: ", r)
Код: (python) [Выделить]
NameError: name 'r' is not definedЧто как бы намекает  :coolsmiley:

Пользователь решил продолжить мысль 03 Июля 2015, 17:17:10:
Ещё по поводу производительности Python:

С++
(Нажмите, чтобы показать/скрыть)


Python
(Нажмите, чтобы показать/скрыть)

 :P
« Последнее редактирование: 03 Июля 2015, 17:33:45 от Freezeman »

Оффлайн Komorebi

  • Активист
  • *
  • Сообщений: 475
    • Просмотр профиля
Re: C или python
« Ответ #78 : 03 Июля 2015, 18:42:47 »
Ацетон, полезнее было бы рекомендовать ассемблер, ведь зная ассемблер удивляешься насколько неповоротливые и уродливые программы писал на плюсах, но ты ассемблер не рекомендуешь. А как легко становится отлаживать программы даже без исходного кода... Но ты не рекламируешь ассемблер.
Он не объектно-ориентированный и потому не соответствует современным реалиям.

Цитировать
Насчёт php если недостаточно учить язык, то и хорошо писать не будешь. И это касается любого языка. Просто того, что недоучив плюсы написать что-то серьёзное почти невероятно, а вот с php такой трюк пройдёт. Но это не плюс c++.
Проблема php в том, что он не учит правильному дизайну кода, ибо у него самого с этим большие проблемы. Перед тем, как писать что-то на php, лучше ознакомиться с другим языком программирования, иначе ты рискуешь на всю жизнь остаться инвалидом.

Пользователь решил продолжить мысль 03 Июля 2015, 18:47:23:
А как же они его оптимизируют без переписывания?  :o
Лицопальма, если ты сраниваешь стринги компилятор никак не догадается, что с точки зрения логики приложения стринг можно безболезненно заменить на бул или enum. Он тебе лишь может помочь сравнить эти стринги чуть быстрее.
« Последнее редактирование: 03 Июля 2015, 18:47:23 от Ацетон »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: C или python
« Ответ #79 : 03 Июля 2015, 20:06:07 »
Он не объектно-ориентированный и потому не соответствует современным реалиям.
ООП это не плюс или минус, это возможность, инструмент. А умеешь ли ты с нем обращаться... Бывают случаи, когда применение ООП только усложняет код. Просто на ООП пошла мода, уже достаточно давно. Сейчас вроде функциональные становятся популярнее.
Проблема php в том, что он не учит правильному дизайну кода, ибо у него самого с этим большие проблемы. Перед тем, как писать что-то на php, лучше ознакомиться с другим языком программирования, иначе ты рискуешь на всю жизнь остаться инвалидом.
Лицопальма, если ты сраниваешь стринги компилятор никак не догадается, что с точки зрения логики приложения стринг можно безболезненно заменить на бул или enum. Он тебе лишь может помочь сравнить эти стринги чуть быстрее.
Это не проблема учеников, это проблема недоучителей, которые часто сами ничего не знают.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: C или python
« Ответ #80 : 03 Июля 2015, 21:29:40 »

Пользователь решил продолжить мысль 03 Июля 2015, 18:47:23:
А как же они его оптимизируют без переписывания?  :o
Лицопальма, если ты сраниваешь стринги компилятор никак не догадается, что с точки зрения логики приложения стринг можно безболезненно заменить на бул или enum. Он тебе лишь может помочь сравнить эти стринги чуть быстрее.
Так если их можно заменить безболезненно, то где оптимизация?
Не удивлюсь, если чисто алгоритмически вполне можно определить эту безболезненность.

Пользователь решил продолжить мысль 03 Июля 2015, 22:47:41:
Ацетон,
Ещё раз, что там про скорость?  :coolsmiley:

С
(Нажмите, чтобы показать/скрыть)

Python
(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 03 Июля 2015, 23:09:44:
Пример посложнее

С
(Нажмите, чтобы показать/скрыть)

Python
(Нажмите, чтобы показать/скрыть)

Полученные логи идентичны.
Код: (bash) [Выделить]
$ diff -s log.txt log1.txt
Файлы log.txt и log1.txt идентичны
$ diff -s log.txt log2.txt
Файлы log.txt и log2.txt идентичны

(Нажмите, чтобы показать/скрыть)

P.S. [05.07]:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 04 Июля 2015, 20:39:53 от Freezeman »

Оффлайн Komorebi

  • Активист
  • *
  • Сообщений: 475
    • Просмотр профиля
Re: C или python
« Ответ #81 : 04 Июля 2015, 01:12:28 »
Не удивлюсь, если чисто алгоритмически вполне можно определить эту безболезненность.
На этапе выполнения, а не компиляции

Цитировать
time ./pypy_string_test_c
И тут стало понятно, что Вы - человек совсем без мозгов. Мерить производительность командной time?  :laugh:
Давайте я объясню Вам, какой результат Вы на самом деле получили) pypy был закеширован в оперативную память, а новоиспеченный бинарник - нет)

Пользователь решил продолжить мысль [time]04 Июль 2015, 02:22:48[/time]:
ООП это не плюс или минус, это возможность, инструмент. А умеешь ли ты с нем обращаться... Бывают случаи, когда применение ООП только усложняет код. Просто на ООП пошла мода, уже достаточно давно. Сейчас вроде функциональные становятся популярнее.
Не бывает такого, чтобы ООП усложняло код, если это конечно не задачи, которые решает какой-нибудь lisp. Дело не в моде, ООП - это вещь абсолютно естественная и родная для окружающего нас мира, при помощи ООП гораздо проще, удобнее и логичнее эмулировать процессы, происходящие в реальном мире, в виртуальном. Сходство порой доходит до того, что тебе просто достаточно описать некий процесс, происходящий в реальном мире, на нужном языке программирования, и задача будет решена. Вообщем, без ООП сейчас никуда) Может быть где-то и существуют задачи, для решения которых ООП не подходит, но их очень мало.

Цитировать
Это не проблема учеников, это проблема недоучителей, которые часто сами ничего не знают.
Это лишь пример. Не нужно ждать, что тебя кто-то чему-то научит, нужно взять и выучить самому. И изучение с++ - это отличный способ это сделать.
« Последнее редактирование: 04 Июля 2015, 01:24:20 от Ацетон »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: C или python
« Ответ #82 : 04 Июля 2015, 09:23:05 »
Не удивлюсь, если чисто алгоритмически вполне можно определить эту безболезненность.
На этапе выполнения, а не компиляции
Что? Как на этапе выполнения можно узнать что можно оптимизировать?
Не бывает такого, чтобы ООП усложняло код, если это конечно не задачи, которые решает какой-нибудь lisp. Дело не в моде, ООП - это вещь абсолютно естественная и родная для окружающего нас мира, при помощи ООП гораздо проще, удобнее и логичнее эмулировать процессы, происходящие в реальном мире, в виртуальном. Сходство порой доходит до того, что тебе просто достаточно описать некий процесс, происходящий в реальном мире, на нужном языке программирования, и задача будет решена. Вообщем, без ООП сейчас никуда) Может быть где-то и существуют задачи, для решения которых ООП не подходит, но их очень мало.
На хабре статья как программисты хлеб пекли. Наглядный пример того, как ООП можетт усложнить код. Были и другие статьи, но там рассказывалось как избавлялись от классов с ~1 методом.
Это лишь пример. Не нужно ждать, что тебя кто-то чему-то научит, нужно взять и выучить самому. И изучение с++ - это отличный способ это сделать.
Не ждать это применимо к самоучкам. А большинство учатся за деньги.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Lifewalker

  • Гость
Re: C или python
« Ответ #83 : 04 Июля 2015, 13:41:26 »
Были и другие статьи, но там рассказывалось как избавлялись от классов с ~1 методом.
Не помню где видел статью, пропитанную воплем "шожвыгадыделаете!" в том смысле, что ООП корёжит мозг. В качестве образца ООП-кретинизма автор той статьи приводил пример на Java, взятый из какого-то учебного курса. Там был класс, который работал обёрткой для другого класса, при этом новый класс ни делал ничего сверх исходного, не добавлял ни одного поля и ни одного метода. Вот нафига такое ООП?
« Последнее редактирование: 04 Июля 2015, 13:44:49 от Lifewalker »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: C или python
« Ответ #84 : 04 Июля 2015, 14:21:15 »
Не помню где видел статью, пропитанную воплем "шожвыгадыделаете!" в том смысле, что ООП корёжит мозг. В качестве образца ООП-кретинизма автор той статьи приводил пример на Java, взятый из какого-то учебного курса. Там был класс, который работал обёрткой для другого класса, при этом новый класс ни делал ничего сверх исходного, не добавлял ни одного поля и ни одного метода. Вот нафига такое ООП?
Как говорится всё хорошо в меру. Даже ооп.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: C или python
« Ответ #85 : 04 Июля 2015, 14:24:48 »
Тоже выскажусь по поводу ООП. Само по себе идея использования ООП не плоха, пока проект не доходит до некоторой архитектурной сложности. ООП помогает организовывать структуры, но когда возникает потребность рефакторинга (или простого добавления/изменения функционала), затрагивающее базовые классы, имеющих кучу наследников, со своими собственными реализациями базовых методов (а некоторые так вообще имеют множественное наследование) и где во всю используется полиморфизм... Где один класс надо разделить на два класса или наоборот... Многое становится неестественным, запутанным и приходится заниматься больше оформлением классов, чем добавлением/изменением функционала.

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: C или python
« Ответ #86 : 04 Июля 2015, 18:32:32 »
Не удивлюсь, если чисто алгоритмически вполне можно определить эту безболезненность.
На этапе выполнения, а не компиляции
Что мешает на этапе компиляции?

Пользователь решил продолжить мысль 04 Июля 2015, 18:39:49:
Цитировать
time ./pypy_string_test_c
И тут стало понятно, что Вы - человек совсем без мозгов. Мерить производительность командной time?  :laugh:
Давайте я объясню Вам, какой результат Вы на самом деле получили) pypy был закеширован в оперативную память, а новоиспеченный бинарник - нет)
Во-первых, сколько тысяч раз подряд мне надо исполнить скомпилированный бинарник, чтобы он закэшировался и порвал интерпретатор pypy?
Во-вторых, пользователю плевать, что и где закэшировалось.

Пользователь решил продолжить мысль 04 Июля 2015, 18:45:04:
Ацетон,
Кроме того, тот же сишный код полученный из-под Cython оказался быстрее написанного человеком...

Пользователь решил продолжить мысль 04 Июля 2015, 19:05:05:
И изучение с++ - это отличный способ это сделать.
Высокая скорость исполнения кода, вполне может не сподвигнуть разработчика оптимизировать код.

Пользователь решил продолжить мысль 04 Июля 2015, 19:12:49:
Цитировать
Это не проблема учеников, это проблема недоучителей, которые часто сами ничего не знают.
Это лишь пример. Не нужно ждать, что тебя кто-то чему-то научит, нужно взять и выучить самому. И изучение с++ - это отличный способ это сделать.

Однако студентов и вообще новичков в изучении C++ нельзя винить, потому что их ошибки часто зарождаются в процессе освоения университетского курса программирования. Однажды, лет десять назад, мне довелось вести его у первокурсников. Я заглянул в учебники — и просто поразился: вместо понятных и простых в использовании конструкций C++ в книгах в начале рассматривалась куча разных неочевидных мелочей языка C, а инструменты С++ преподносились как нечто очень сложное. Это не отпугивало только тех, кто хотел серьезно заниматься программированием.

...

Мне тоже не нравится C++ таким, каким его представляют авторы тех учебников. В ответ я написал свою книгу для студентов и самоучек — «Programming: Principles and Practice using C++». Для ее изучения опыт программирования не обязателен, однако она вызвала интерес и среди опытных разработчиков.
« Последнее редактирование: 04 Июля 2015, 19:12:49 от Freezeman »

 

Страница сгенерирована за 0.023 секунд. Запросов: 22.