На чём удобнее писать большие проекты - C++ или Python?
Модератор: Модераторы разделов
-
- Сообщения: 1319
Re: На чём удобнее писать большие проекты - C++ или Python?
getthefacts → http://opennet.ru/opennews/art.shtml?num=32529
:wq
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: На чём удобнее писать большие проекты - C++ или Python?
Это экономический показатель, а не технический. Тонны дешевых некачественных товаров, созданных полурабским трудом китайских вчерашних крестьян приносят доход уже много лет, и эта индустрия развивается до сих пор.
Можете заглянуть в раздел «Поддержка форума» и почитать много «лестных» отзывов о «замечательном» продукте, на котором крутится этот форум. Причем, продукт развивается уже много лет и приносит доход.
Мои розовые очки
-
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: На чём удобнее писать большие проекты - C++ или Python?
watashiwa_daredeska писал(а): ↑09.01.2012 19:32Это экономический показатель, а не технический. Тонны дешевых некачественных товаров, созданных полурабским трудом китайских вчерашних крестьян приносят доход уже много лет, и эта индустрия развивается до сих пор.
Меня раскрыли - я китаец.
Я не скажу, что PHP лучший, но "неудобным" его не считаю. Вполне нормальный язык программирования. Если на нем дофига "недопрограммситов" чегото там накорябало - это не проблема языка. За проблемы с продуктом (с тем же форумом) надо программистов этот самый продукт разрабатывающих бить по рукам, а не на язык программирования хаять. Согласен php на тот проект выбирали не по какимто потолковым качествам куртости, правильности, лучшести языка, а по тому как конкретной команде было конкретное ТЗ реализовать.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
- Сообщения: 28
Re: На чём удобнее писать большие проекты - C++ или Python?
Ism писал(а): ↑07.01.2012 21:45Ничего не понял, какая разница, откуда юзать SQL? Во всех языках необходимые библиотеки есть.
Ну как сказать, можно вообще писать проект в блокноте и компилить в gcc , только на изменение интерфейса программы и поиск ошибки уйдет в 5 раз больше времени, что в условиях постоянной доработки и добавления, удаления функционала недопустимо.
Чукча писатель, а не читатель?
Брукс давно, в своей знаменитой книге, описал важность современных средств разработки.
Сейчас существует куча хороших IDE, для популярных ЯП.
-
- Сообщения: 28
Re: На чём удобнее писать большие проекты - C++ или Python?
С python/c api можно писать на C++ и Python, беря только то, что нужно.
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: На чём удобнее писать большие проекты - C++ или Python?
Слишком буквальное восприятие и неспособность понять смысл сказанного — плохой признак.
Проблема не в том, что куча недопрограммистов накорябала, а в том, что мало программистов пишет.
Мои розовые очки
-
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: На чём удобнее писать большие проекты - C++ или Python?
watashiwa_daredeska писал(а): ↑10.01.2012 09:25Слишком буквальное восприятие и неспособность понять смысл сказанного — плохой признак.
Как и восприятия за полный серьез любой фразы без смайлика
watashiwa_daredeska писал(а): ↑10.01.2012 09:25Проблема не в том, что куча недопрограммистов накорябала, а в том, что мало программистов пишет.
Да дело то не в много/мало. А в том, что если хоть одна команда во всем мире способна на php (как и на любом другом языке) поднять качественный "большой проект". Значит язык пригоден. В любом случае точно сравнить языки возможно только конкретный человек вникнув в оба языка. Если средство разработки выбирается на уровне руководителя проекта, то выбирается еще и по другим параметрам. В том числе и исходя из того какой язык уже знают программеры имеющиеся в наличии. Согласен. Если спец "знает и умеет" пару-тройку языков, то по идее написать еще на одном нет проблем была бы справка под рукой. Но все равно это дополнительное время...
Опять же что такое "большой проект"? Например (из ширпотреба) джумла? Это большой проект? Наверняка в нем есть проблемы, но исчезли бы эти проблемы если оная была бы написана на перле?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: На чём удобнее писать большие проекты - C++ или Python?
видимо, после прочтения какой-то книжки по tdd, у меня в голове сложилось (неверное?) буквальное прочтение термина — test-driven development, т.е., «сначала пишем тест, затем пишем код, который этим тестом и будет проверяться»…watashiwa_daredeska писал(а): ↑08.01.2012 14:59tdd многогранен Да, при собственно написании программа дизайнится так, чтобы можно было приблизиться юниттестами вплотную к взаимодействию с внешним миром. Само взаимодействие юниттестами, естественно, покрыть нельзя — его покрывают integration test'ами.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: На чём удобнее писать большие проекты - C++ или Python?
Не значит. Если команда спецов смогла склепать в гараже автомобиль при помощи молотка, зубила и какой-то матери, то это не значит, что молоток, зубило и какая-то матерь — подходящие инструменты для производства автомобилей.
Кроме того, «подходящесть» меняется со временем. Полвека назад кульман, ватман и готовальня были подходящими инструментами для проектирования сложных изделий, сейчас — нет. Возможно, лет 15 назад PHP и был более-менее оправданным выбором для создания крупных веб-проектов, но сейчас появились более подходящие инструменты, которые позволяют меньшими усилиями достигать более качественного результата.
Ага, а вкус еды — сугубо личное дело, поэтому в ресторан надо приходить со своими рецептами и своими продуктами, а то приготовят как для всех.
Это время может окупиться впоследствии. Как говорится: «лучше день потерять, а потом за пять минут долететь» :)
Мои розовые очки
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: На чём удобнее писать большие проекты - C++ или Python?
sash-kan
Юнит-тесты запускаются на машине разработчика, часто той же кнопкой что и компиляция проекта, иногда тест, не проходящий юнит-тестов, не пускают в vcs. Интеграционные тесты запускаются на отдельной машине (или отдельном наборе машин, где есть возможность обеспечить и взаимодействие по сети, и всё что надо), скажем, раз в сутки, или в неделю. Чтобы покрыть одну половинку сетевого приложения тестами, пишут mock-up второй половинки (заглушку, которая ничего не делает, только предоставляет тот же интерфейс что вторая половина приложения). Так проверяется, что одна половинка работает правильно с идеальным случаем второй половинки. А проверка работы обеих половинок вместе — это уже интеграционный тест.
Юнит-тесты запускаются на машине разработчика, часто той же кнопкой что и компиляция проекта, иногда тест, не проходящий юнит-тестов, не пускают в vcs. Интеграционные тесты запускаются на отдельной машине (или отдельном наборе машин, где есть возможность обеспечить и взаимодействие по сети, и всё что надо), скажем, раз в сутки, или в неделю. Чтобы покрыть одну половинку сетевого приложения тестами, пишут mock-up второй половинки (заглушку, которая ничего не делает, только предоставляет тот же интерфейс что вторая половина приложения). Так проверяется, что одна половинка работает правильно с идеальным случаем второй половинки. А проверка работы обеих половинок вместе — это уже интеграционный тест.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
- Сообщения: 476
- ОС: GNU/Linux
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: На чём удобнее писать большие проекты - C++ или Python?
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: На чём удобнее писать большие проекты - C++ или Python?
Не соглашусь. PHP очень популярен, а текущая ветка 5.3 весьма неплоха и довольно быстра. Поэтому чаще всего для крупных веб-проектов использование PHP даст быстрый качественный результат, но только в качестве одного из используемых языков. Например, на PHP нет движка полнотекстового поиска по БД подходящего для _крупного_ проекта. Впрочем, и на Python тоже.watashiwa_darede... писал(а): ↑10.01.2012 12:30Возможно, лет 15 назад PHP и был более-менее оправданным выбором для создания крупных веб-проектов, но сейчас появились более подходящие инструменты, которые позволяют меньшими усилиями достигать более качественного результата.
У всех языков есть свой минус:
PHP -- до сих пор ОО только на половину, а о функциональных штучках приходиться только мечтать.
Python -- GIL и tail-call оптимизация
Perl -- TMTOWTDI в результате чего каждый программист в команде должен знать _все_ возможные варианты! И батарейки в комплект не входят.
C++ -- хитровывернутое недоООП + сносящие мозг неподготовленому template
Java -- полярная лисица со связью с другими ЯП + весьма нетороплива. Слава богу тут барьер вхождения достаточно высок.
Pascal/Delphi -- для некрофилов.
И опять же повторю: серебрянной пули в программировании нет.
Большие проекты никогда не создаются за один шаг. Поэтому постарайтесь сделать сперва первый шаг, а потом думать о следующем. Преждевременная оптимизация -- это всегда плохо.
На том же C11 или C++11 до сих пор проблемы с комплексными числами. Поэтому научной среде просто неуда податься.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: На чём удобнее писать большие проекты - C++ или Python?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: На чём удобнее писать большие проекты - C++ или Python?
-
- Сообщения: 456
- ОС: openSUSE
Re: На чём удобнее писать большие проекты - C++ или Python?
Вообще-то в C они уже давно есть, да и собственноручная реализация большой сложности не представляет. В жизнеспобности Фортрана эта причина, если и играет роль, то очень небольшую.
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: На чём удобнее писать большие проекты - C++ или Python?
1. В PHP о массивах приходится только мечтать.
2. При всей якобы высокоуровневости, модульность на уровне ассемблера, как у C, даже еще хуже. Это если говорить про include() и require().
3. Глобальное пространство внешних модулей «прекрасно». Никаких тебе import/use и пр. Всё, что «подключено» к интерпретатору — уже в одной большой помойке в глобальном пространстве имен.
4. namespace'ы едва-едва прикрутили, через 15 лет. Вполне согласуется с (2) — по образу и подобию срисовано с низкоуровневого C++.
5. 1 + "1" == 2 — это неподражаемо.
Угу, в PHP нет проблемы с GIL, ибо threads вообще отсутствуют. В Perl потоки реализованы странным образом, на потоки не похожим, ну да ладно.
tail-call optimization отсутствует и в PHP, и в Perl (хотя, в Perl6 обещают), и в Java. В C++ лучше не полагаться на эту оптимизацию, если требуется переносимость, ибо фича нестандартная.
Так что, из минусов у Python по сравнению с PHP и Perl отступы, да и то — субъективно, ибо многим отступы нравятся, и возможно, GIL по сравнению с Perl.
Разработка приложений на PHP для меня — из разряда разработки приложений на bash.
Мои розовые очки
-
- Сообщения: 65
- ОС: Debian GNU/Linux amd64
Re: На чём удобнее писать большие проекты - C++ или Python?
Если хотите поднять очень большой, сложный проект и не плакать потом кровавыми слезами, когда придётся продукт модернизировать, то смело выбирайте Ada. Абсолютно серьёзно, на собственном опыте.
Кстати о Пых-Пыхе. Чтобы получался вменяемый код, в голове должен быть "цербер со стальной дубинкой", который время от времени будет лупить по всем выступающим частям тела (зачем, думаю пояснять не надо). Иначе проект превращается в абсолютно вырвиглазное нечто. А если еще и документации никакая, то становится очень весело.
Кстати о Пых-Пыхе. Чтобы получался вменяемый код, в голове должен быть "цербер со стальной дубинкой", который время от времени будет лупить по всем выступающим частям тела (зачем, думаю пояснять не надо). Иначе проект превращается в абсолютно вырвиглазное нечто. А если еще и документации никакая, то становится очень весело.
С уважением, Сергей.
-
- Сообщения: 476
- ОС: GNU/Linux
-
- Сообщения: 65
- ОС: Debian GNU/Linux amd64
Re: На чём удобнее писать большие проекты - C++ или Python?
Ada - язык для разработки больших систем с повышенными требованиями к надёжности. И либ написано на ней выше крыши, а уж насколько широко он использовался в DARPA и NASA... Есть даже RTEMS.
"Сложные проблемы требуют сложных решений." Ишбиа.
P.S. Правда в коммерческих проектах на Аде мне участвовать не довелось. Писал для себя, по направлению экспертных систем, параллельных вычислений.
С уважением, Сергей.
-
- Сообщения: 1261
- Статус: Никто, по сути быдло
Re: На чём удобнее писать большие проекты - C++ или Python?
Pascal/Delphi -- для некрофилов.
Ну это вы загнули, у него есть своя ниша.
Если так говорите, значит знаете аналогичную замену . Какую ?
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: На чём удобнее писать большие проекты - C++ или Python?
А что, JNI как-то принципиально сложнее SWIG или рукописного биндинга в Python/Perl?
Странно это слышать/видеть, когда Java перечислена в одной компании с PHP/Python/Perl.
Ну, разве что по сравнению с PHP :)
Мои розовые очки
-
- Сообщения: 456
- ОС: openSUSE
Re: На чём удобнее писать большие проекты - C++ или Python?
Библиотеки есть, да и обучить несложно. На самом деле главная проблема при переходе на Аду - научиться писать аккуратно (потому что иначе просто не получится - язык не даст). Но потом это быстро окупится.
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: На чём удобнее писать большие проекты - C++ или Python?
Не вижу никакой особой ниши у Pascal/Delphi. Императивный объектно-ориентированный язык со строгой типизацией. Заменяется C++ тем же. В основном на сегодня приложения на Delphi - те, которые были написаны в суровые 90-е и никто не хочет переписывать.
-
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: На чём удобнее писать большие проекты - C++ или Python?
На многих компиляторах весьма странно работает при больших/малых числах (у gcc с этим гораздо лучше), половина возможностей языка может дать непредсказуемый результат (те же макросы).А какие проблемы? Чем не подходит?
По-моему вы просто жутко наелись конфет…(с)1. В PHP о массивах приходится только мечтать.
Вы так говорите, как будто в этом есть что-то плохое. Да и высокоуровневость не значит обязательную поддержку модульности, ООП или ФП. Для тех целей в которых разрабатывался PHP, модульность банально не нужна.2. При всей якобы высокоуровневости, модульность на уровне ассемблера, как у C, даже еще хуже.
Сносит башню? Ну что ж, бывает Тогда вам ещё добавочка: в PHP на самом деле долгое время была есть только 1 переменная-массив $GLOBALS. Всё остальное -- её члены.3. Глобальное пространство внешних модулей «прекрасно».
Вот и я говорю: "на кой?". Но разработчики повелись на ОО моду и теперь пытаются к изначально процедурному языку прикрутить ООП.4. namespace'ы едва-едва прикрутили, через 15 лет.
Вас раздражает динамическая типизация? А утиная в Python -- нет? Крестик или трусы.5. 1 + "1" == 2 — это неподражаемо.
Здесь разговор о том, что PHP предпочитают запускать как модуль Апача, в то время как Python как CGI. Иначе нужно писать программу на Python сразу с поддержкой WSGI. На веб-хостинге это чувствуется очень сильно.watashiwa_daredeska писал(а): ↑10.01.2012 19:51Угу, в PHP нет проблемы с GIL, ибо threads вообще отсутствуют.
и во многих других языках, где ФП нативно не поддерживается. Но проблема в том, что в Python ФП играет важную роль.watashiwa_daredeska писал(а): ↑10.01.2012 19:51tail-call optimization отсутствует и в PHP, и в Perl (хотя, в Perl6 обещают), и в Java.
-
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: На чём удобнее писать большие проекты - C++ или Python?
JNI -- это сложность рукописного биндинга + подтекающая память SWIG + почему-то тормоза.watashiwa_darede... писал(а): ↑11.01.2012 01:19А что, JNI как-то принципиально сложнее SWIG или рукописного биндинга в Python/Perl?
По сравнению со свежими версиями PHP, Java как не странно медленнее. Но согласен, что Python самый тормозной из всей этой компании.watashiwa_darede... писал(а): ↑11.01.2012 01:19Странно это слышать/видеть, когда Java перечислена в одной компании с PHP/Python/Perl.
PHP:
Код: Выделить всё
Hello, world!
Python 2:
Код: Выделить всё
print "Hello, world!"
Perl:
Код: Выделить всё
print "Hello, world!\n";
C:
Код: Выделить всё
#include <stdio.h>
int main(void)
{
printf("Hello, world\n");
return 0;
}
C++:
Код: Выделить всё
#include <iostream>
int main()
{
std::cout << "Hello, world!" << std::endl;
return 0;
}
Java:
Код: Выделить всё
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
Даже для такой простой программы в Java надо объявлять класс. Вот такой тут порог вхождения.
О_О Поведайте нам про эту нишу!
Тот же С/С++ (в зависимости от версии) или тот же Fortran.
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: На чём удобнее писать большие проекты - C++ или Python?
В русском языке массивом принято обозначать википедия://индексный массив, а не википедия://ассоциативный массив.
Мои розовые очки
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: На чём удобнее писать большие проекты - C++ или Python?
При разработке крупных проектов — да, это «что-то плохое».
Об этом я и говорю. PHP не разрабатывался для создания больших приложений.
В целом, да, но для крупных проектов модульность must have. ООП, ФП или metaprogramming — по вкусу, но очень желательны, ибо позволяют повышать уровень абстракции и снижать трудозатраты.
Как представлю себе Python packages в одном пространстве имен, так да, сносит. Особенно классно читать чужой код: откуда взялась xyz(), и где искать ее определение и документацию — загадка велика есть. А уж как радостно будет, если попадутся две библиотеки с функцией xyz — вообще словами не передать.
Пространства имен, вообще-то, к ОО не имеют ровно никакого отношения.
В Python и PHP типизация, по большому счету, одинаковая. Вот только зачем по умолчанию разрешать такие странные конструкции? Хотя, так и быть, можно считать, что "1" в PHP — частный случай множественного наследования от numeric и string, хотя и очень кривой, ибо is_numeric() возвращает 1 для числовой строки, а is_int() — нет. В Java тоже есть подобная хрень, но там всё конвертируется в строку, типа форматированного вывода для бедных — это еще как-то можно понять и принять, и такой вариант был бы гораздо логичнее в PHP, предназначенном для работы, преимущественно, с текстовыми данными.
Мои розовые очки
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: На чём удобнее писать большие проекты - C++ или Python?
Отлично! Входной порог Java выше на две строки кода. Не смешно.
Можно где-нибудь более достоверную инфу увидеть? А то как-то у меня совсем другие данные.
Ну дык… У PHP практически нет вариантов. Для Python тоже создавали модули апача, только неудобно это. При больших масштабах Apache вырождается в примитивную форкалку, которая даже разделение прав по пользователям нормально не умеет, перед которой все равно стоит какой-нибудь фронтенд, вроде nginx. Тогда все равно откатываются на FastCGI.
Мои розовые очки
-
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: На чём удобнее писать большие проекты - C++ или Python?
Это нисколько не мешает использовать ассоциативный массив как индексный.watashiwa_darede... писал(а): ↑11.01.2012 12:24В русском языке массивом принято обозначать википедия://индексный массив, а не википедия://ассоциативный массив.
Та "модульность" которую вы хотите ни фига не must have. При желании тот же функционал можно реализовать десятками способов. В простейшем варианте префиксы. Но можно и экзотику типа обращения к функциям через переменные.watashiwa_darede... писал(а): ↑11.01.2012 13:35В целом, да, но для крупных проектов модульность must have.
Конечно, не передать. Ведь это значит, что функции названы через жопу.watashiwa_darede... писал(а): ↑11.01.2012 13:35А уж как радостно будет, если попадутся две библиотеки с функцией xyz — вообще словами не передать.
Особенно снижение трудозатрат видно, когда в типичном проекте на C++ на 1 реальный класс приходиться до 10 виртуальных.watashiwa_darede... писал(а): ↑11.01.2012 13:35ООП, ФП или metaprogramming — по вкусу, но очень желательны, ибо позволяют повышать уровень абстракции и снижать трудозатраты.
Ещё как имеет. Ни для процедурного, ни для функционального стиля они не имеют большого значения. А вот для ООП с его >9000 вариантами одной функции, но для разных классов...watashiwa_darede... писал(а): ↑11.01.2012 13:35Пространства имен, вообще-то, к ОО не имеют ровно никакого отношения.
Попробуйте одной переменной присвоить сперва целое, а потом строку. Чуствуюте разницу?watashiwa_darede... писал(а): ↑11.01.2012 13:35В Python и PHP типизация, по большому счету, одинаковая.
Ни фига не логично: PHP получает строку, сам превращает её в число, а потом обратно. В Java первую часть нужно сделать ручками.watashiwa_darede... писал(а): ↑11.01.2012 13:35такой вариант был бы гораздо логичнее в PHP, предназначенном для работы, преимущественно, с текстовыми данными.