В безопасных языках просто намного легче искать и исправлять ошибки.
Я использую С++ для графических и игровых приложений — тут просто нет ни одной альтернативы. Но для приложений, в которых много логики и важна скорость разработки, есть более подходящие языки.
+1 приватные данные нужны только когда приходится работать с людьми, не понимающими, что делает этот код.
Приватные данные нужны тогда, когда один программист предоставляет другому свои интерфейсы. Первому вообще не зачем знать, как там внутри всё устроено, для него есть публичные методы, пусть их и использует.
В безопасных языках просто намного легче искать и исправлять ошибки.
Ну тут спорить не стану - просто практика использования «безопасных языков» слишком мала (замшелый сишник). Но, вообще говоря, о каких ошибках речь? Если о синтаксических, то для начинающих возможно и легче (я уже давно этот этап прошёл). Если о логических, то очень сильно сомневаюсь, что «легче».
Но для приложений, в которых много логики и важна скорость разработки, есть более подходящие языки.
Не троллинга ради, а из любопытства: Про питон я уже понял (вполне приемлемый вариант), а какие «более подходящие языки» ты применяешь для «приложений, в которых много логики и важна скорость разработки»?
Или уже есть нетривиальный софт написанный на питоне третьем?
Какая связь между степенью готовности языка и написанным для него ПО? С языком всё в порядке, я на нём пишу когда хватает портированных либ. Если нет то я беру py2k.
> Приватные данные нужны тогда, когда один программист предоставляет другому свои интерфейсы.
Ну вот в питоне это достигается путем наименования аттрибутов и методов, которые нежелательно использовать в чужом коде, с одного или двух подчеркиваний. Т.е., все чисто на договоренности. Но по своему опыту скажу, что в хорошей либе всегда понятно, где методы для внешнего вызова, а где - для внутреннего пользования.
> Какая связь между степенью готовности языка и написанным для него ПО?
Если никто не пишет на нем серьезного ПО, значит наверное не готов пока. Хотя, я искренне желаю чтоб это изменилось в ближайшее время, так как мне нравится вектор развития третьей ветки.
> С языком всё в порядке, я на нём пишу когда хватает портированных либ.
В том то и дело, что портированных либ катастрофически не хватает. И многие мейнтейнеры совершенно по этому поводу не чешутся, так как их питон2 устраивает всем.
Ты писал что это концепт, но не предоставил ни одного док-ва своего утверждения. Теперь ты говоришь что либ не хватает. Но это проблемы из разных плоскостей. И что делать в этой ситуации я написал.
Утечки памяти, стабильно обнаруживаемые в десятилетних проектах - далеко не мифы.
Речь не о том. Если неосилятор клепает проект, в котором течёт память, то это проблема не ЯП, а функциональности мозга того самого неосилятора. Если внимательно прочесть те пару десятков страниц в K&R, которые описывают работу с указателями и выделение/освобождение памяти, а потом применять прочитанное на практике, то я не вижу в этом ничего сложного.
Проблема не столько в языке, сколько в проектировании, неправильно подогнанном под язык (или наоборот).
Верно. Я про то же говорил. Есть задача - проектируем модель и способ решения - выбираем ЯП.
Язык - инструмент. Не может быть плохим/хорошим, может быть его использование таковым.
Опять верно. И опять - я про то же и говорю. Если кто-то из моих комментов понял, что я против питона и исключительно за C/C++, то он понял абсолютно неправильно.
А насчёт «ЯП не может быть плохим/хорошим» - есть одно исключение: басик - это плохой язык.
Работодатели не будут платить за портирование либ на питон 3.
Их проблемы. Работодатели вообще за много чего не платят, от чего сами и страдают. Легаси-код это вообще головная боль вне зависимости от ЯП и сферы деятельности. Т.е. код на py2 тоже устаревает и становится ненужным или сложно поддерживаемым.
> Т.е. код на py2 тоже устаревает и становится ненужным или сложно поддерживаемым.
Вот это - наглое вранье, python2 отлично поддерживается, и гвидо обещает что две ветки будут поддерживаться еще очень долго, и во вторую будут бекпортироваться все интересные фичи из третьего питона.
Верно. Я про то же говорил. Есть задача - проектируем модель и способ решения - выбираем ЯП.
А я не про то же.
Сейчас количество готового кода (библиотек/фреймворков) и фич типа C++0x на порядки больше, чем тогда, когда утверждение «выбирать язык под задачу» образовалось. Смысл выбирать язык под задачу исчез.
Сейчас количество готового кода (библиотек/фреймворков) и фич типа C++0x на порядки больше, чем тогда, когда утверждение «выбирать язык под задачу» образовалось. Смысл выбирать язык под задачу исчез.
И что ты предлагаешь?
Если смысл утверждения «выбирать язык под задачу» исчез, то как по-твоему следует решать задачу? Исключительно сборкой из готовых кубиков? Не спорю: и такой метод даёт требуемый результат. Вот только не всегда. А иногда не совсем такой, какой был нужен.
Если не поддерживать его, то да. Но ведь поддерживают!
Я не об этом. Ты писал о том что работодателю не интересно заниматься портированием кода. А я написал что работодателю вообще не интересно заниматься поддержкой того что есть. В большинстве случаев это делается «лишь бы хоть как-то работало». И ЯП тут совершенно не играет роли.
А те кто действительно поддерживают свои приложения уже портировали код на py3k. В остальных случаях просто никто не хочет заморачиваться или нет рук. Разве это поддержка?
В большинстве случаев начинаются сопли о том что «это не нужно, py2 идеален и так». А между тем разница между ветками существенная, это разница растёт с каждый день и она стоит портирования (моё имхо).
Погугли.
Не гуглится, даже pep нет. Это значит что на текущий момент никто даже не пытается этого делать.
Так всё-таки: как связать цитату Дийкстры с моей фразой о том, что «басик - плохой язык»? Басик - плох генетически, от самого корня. Кстати, тот же Дийкстра и о басике высказывался нелицеприятно, насчет безнадёжно испорченных мозгов студентов, его изучающих.
Если под «работает» понимать «имена искажаются», то да, работает. Если под «работает» понимать «доступ контролируется компилятором или рантаймом» - нет, не работает.
Для тех кому хочется больше welcome метаклассы и декораторы.
И чем они помогут? Функция dir перестанет работать?
В Питоне нет контроля доступа к полям и методам. Это общеизвестный и признанный (самим Гвидо) факт.