LINUX.ORG.RU

Почему во многих Питон-проектах не используют async/await и ООП, как в Java?

 , , ,


2

1

Привет, всем. По работе смотрю новые питоновские проекты, и немного удивляет следующие детали:

  1. по сей день, пытаются все оформить сугубо через def() и форкать разные Py-скрипты через систему

  2. не смотря на наличие async/await в Python v3 - не используют и не пытаются

  3. если и объявят class , то он сугубо используется для DAO/DTO, ни каких сложных ОО-дизайнов не оформляется… type hints не испольуются, ABC-контракты не используются, GoF-паттерны тоже

  4. прикрываются якобы композицией, и что вообще ОО-дизайн - мертвый дизайн (у Golang лагеря насмотрелись, что ли?)

Говорю не про публичные проекты, которые в GitHub можно найти. А про многие, которые делает разработка в рос. компаниях. Картину наблюдаю на разных компаниях в течении последних двух лет.

Вот, я не пойму… Я что-то не понимаю или что? Вроде, появляются различные интересные фичи в Python3 , ряд вещей позволяет приблизится к написанию кода, как на Java.

Все-таки, Python не является Haskell, OCaml или каким-нибудь диалектом LISP. Это язык с элементами функциональщины, а не pure functional language, как Haskell. Так от чего не снабдить свой код asyncio, все граммотно оформить по ОО-дизайну с SOLID-принципами, четко разработь с event loop и прочим… Все какая-то портянка из 100500 глобальных def’ов вижу, в основном, в проектах. Да и вроде… Компании - солидные и платят этим Питонисам 250+ рублей в месяц. А стиль написания такой, за который могли бы уволить джуна в 2010ом, если речь шла про другой стэк (C#, Java).

Вопрос: от чего же в новых питоновских проектах на живой практике многие разработчики не пытаются применить фичи из последней версии языка, и приблизиться к дизайну/стилю кода, как на Java. И вообще, все сделать по канону чистенько, соблюдая SOLID. При наличии уже таких возможностей.

Это лень и нежелание просто? Или есть объективные причины забить болт на все это, и далее оформлять спагетти-код километровый?

P.S. не удтверждаю, что я - прав. Возможно, я совсем не прав. Я просто реально не понимаю, почему качество Питон-проектов, как было примерно таким 10 лет назад, то таким и осталось… Адепты на других языках, как-то более лучше развиваются в плане чистоты своих проектов. Опять сугубо моё ИМХО.

Ответ на: комментарий от untitl3d

и все были довольны

Нет, менеджмент был недоволен скоростью выката новых фич, и соотношением багов в релизе к количеству и зарплатам сотрудников.

LamerOk ★★★★★
()
Ответ на: комментарий от Djanik

Сам ищи.

Нетты. Без пруфов ты простой, а не Лев Толстой.

LamerOk ★★★★★
()
Последнее исправление: LamerOk (всего исправлений: 1)
Ответ на: комментарий от Legioner

К примеру у нас энтерпрайз, и от начала потока до нашего реального метода проходит 500 вызовов всяких фреймворков

Не догадываешься где проблема? Хотя о чём это я. Это давно уже не проблема, а норма, сам так делаю, но что-то в глубине души подсказывает, что это всё от неправильности чего-то в общей инфраструктуре и подходу к разработке в мире.

peregrine ★★★★★
()
Ответ на: комментарий от untitl3d

untitl3d (24.11.21 12:14:49)

Почему-то до появления явы и питона и даже ц++, все прикладные вещи писались на си и все были довольны и никто не кукарекал…

Это нелогичное высказывание, как минимум по тому, что: откуда тогда SmallTalk, LISP появились? Которые и юзали для прикладных задач, как раз.

LISP, вроде, в 1958 появился. A SmallTalk на базе которого и писали Design Patterns (GoF) книжку в первых версиях - в 1972.

Так что, сорри logic corruption у тебя.

untitl3d (24.11.21 12:14:49)

Ты в курсе хоть почему ява набрала популярность? Да потому что санки ее продавали всеми правдами и неправдами и таки продали.

Мне кажется, ты очень упростил. Она набрала популярность, т.к.:

  1. язык - простой объективно
  2. делали jvm кроссплатерменой изначально, куда сразу начали вливать деньги в отличие от др. языков
  3. не выеживались в сложности языка
  4. не надо в Java работать с памятью, далеко не все программисты горели желанием возиться с malloc()/free(), а хотели сосредоточиться на логике, абстагируясь от низкоуровневых функций и возложить их на JVM.
twinpeaks
() автор топика
Последнее исправление: twinpeaks (всего исправлений: 2)
Ответ на: комментарий от twinpeaks

Одна проблема - тот ООП который планировался в смоллтоке и тот который получился - разные ООП.

peregrine ★★★★★
()
Ответ на: комментарий от no-such-file

Ну не знаю. Гориллы, макаки, шимпанзе и бонобо очень хорошо то жопу покажут, то говном кинут, то яйцами трясти будут перед зрителями. У слонов конечно воняет несравненно, разве что у какого-то медведя может быть хуже, но у него говно убирают, т.к. он редко срёт, а вот у слона его всегда в избытке. Но братья наши меньшие, они как пародия на людей и даже мимика зачастую понятна. А змеями, жабами или пауками пугать в качестве троллинга, ну такое.

peregrine ★★★★★
()
Ответ на: комментарий от twinpeaks

Почему-то до появления явы и питона и даже ц++, все прикладные вещи писались на си и все были довольны и никто не кукарекал…

Это нелогичное высказывание, как минимум по тому, что: откуда тогда SmallTalk, LISP появились?

Ох уж эти дети индиго.

Не лишп со шмоллтолком, а фортран. Фортран был первым широко распространённым языком программирования. А потом алгол. Лишп (и тем более шмоллтолк) широкого распространения не получили.

LamerOk ★★★★★
()
Последнее исправление: LamerOk (всего исправлений: 1)
Ответ на: комментарий от twinpeaks

Таносу

Простите, я немного староват для такого, это что-то из Marvel в ярких трусах поверх трико или из DC в маске и плаще?

peregrine ★★★★★
()
Ответ на: комментарий от LamerOk

LamerOk ★★★★★ (24.11.21 13:06:08)

Не лишп со шмоллтолком, а фортран. Фортран был первым широко распространённым языком программирования. А потом алгол. Лишп (и тем более шмоллтолк) широкого распространения не получили.

Ну, а как это опровергает мою фразу? :) Допустим вместо Лиспа - вставим Фортран. Разве от этого суть фразы другого товарища меняется, который говорил что все прикладуху на Си писали?

Плюс, касаемо Лиспа и Фортрана. Фортран старше Лиспа всего на 1-ин год по выходу:

Fortran First appeared 1957; 64 years ago

LISP First appeared 1958; 63 years ago

twinpeaks
() автор топика
Последнее исправление: twinpeaks (всего исправлений: 3)
Ответ на: комментарий от LamerOk

Лишп (и тем более шмоллтолк) широкого распространения не получили.

опять-таки случай так называемого вранья: лисп в 1971-1991 годах входил в TOP-5 ЯП

anonymous
()
Ответ на: комментарий от vtVitus

сишачка

ахахаха, найс, ну, так им и надо, мало кто поднасрал индустрии так, как C (и прямые наследники + inspired by)

кончилось тем, что он стал немного никому не нужен со своими знаниями в его возрасте

я ж не дурачок-сишник, я подушечку собираю, благо язык чуть ли не лучше всех оплачивается (если верить SO)

Но жена у него более мудрый человек и не брезгливая

эммм, древнейшая профессия?

anonymous
()
Ответ на: комментарий от twinpeaks

Фортран старше Лиспа всего на 1-ин год по выходу:

Дело не в годе «выхода», учитывая, что «выход» в то время означал запуск в лучшем случае на трёх с половиной машинах в одной конторе, а чаще - так и вообще на полутора. Дело в широте использования. Фортран почти сразу разлетелся на разные архитектуры и уже в 66-ом вышел его стандарт.

LamerOk ★★★★★
()
Ответ на: комментарий от untitl3d

А си простой, но мощный инструмент

смотрим на объём исходников GCC/CLANG

@

ржём в голосину от простоты

что очень важно, не навязывает вообще никаких паттернов поведения, как хочешь так и пиши

а потом получаем неподдерживаемый write-only код, спасибо, но нет, кушайте сами

Обычно получается красиво. Тут цитата про опасную бритву и кровавую баню :)

отличное сравнение, а индустрии не надо «красиво», все вот эти художники-я-так-вижу от программирования давно уже должны уйти на покой (ну и вон, дядя выше привёл пример того, как это происходит), современное коммерческое программирование - оно не искусства ради.

anonymous
()
Ответ на: комментарий от twinpeaks

Боюсь я не слежу за этими вселенными с момента выхода человека паука 2002 года, а джокер для меня это тот джокер, который в фиолетовом пиджаке, хотя я понимаю что Хит Леджер гораздо лучше отыграл, но уже тогда мне это было сосем не интересно, а какие фильмы выходили после Тёмного рыцаря я вообще не в курсе, хотя вру, про Дедпула слышал, слишком уж школота младшего возраста с ним носилась, а я тогда как раз в маршрутке ездил в которой школотроны катались, только они со школы ездили, а я в больничку на прокалывание носа и откачивание гноя в связи с гайморитом... А сейчас все эти персонажи просачиваются в мою жизнь только с мемасиков в инете и иногда с аватарок юзеров и википедии по поиску по картинке.

peregrine ★★★★★
()
Ответ на: комментарий от twinpeaks

опять враньё, GoF - это про C++-like, у смолтока тупо не было кучи проблем, которые книженция пытается обойти/упорядочить.

тут, конечно, не про smalltalk, но просто для сравнения, что есть языки, в которых проблемы элементарно решаются в несколько строк без всяких талмудов

http://mishadoff.com/blog/clojure-design-patterns/

anonymous
()

Почему во многих Питон-проектах не используют async/await и ООП, как в Java?

Завидуют …

anonymous
()
Ответ на: комментарий от twinpeaks

Не знаю, что в Clojure. Я лично только с Haskell возился более-менее. Был у меня период, когда два месяца на нем писал.

ну вот, а я не два месяца, я на ФП языках только за деньги пишу 9й год, очень рекомендую посмотреть, что там

Но, не стал бы употреблять слово «сложнее», скорее «геморойнее»

я плохо улавливаю разницу

Или, как правильно с многопоточностью работать.

There is a common myth in software development that parallel programming is hard. This would come as a surprise to Alan Kay, who was able to teach an actor-model language to young children, with which they wrote working programs with more than 200 threads. It comes as a surprise to Erlang programmers, who commonly write programs with thousands of parallel components. It’s more accurate to say that parallel programming in a language with a C-like abstract machine is difficult, and given the prevalence of parallel hardware, from multicore CPUs to many-core GPUs, that’s just another way of saying that C doesn’t map to modern hardware very well.

anonymous
()
Ответ на: комментарий от anonymous

anonymous (24.11.21 13:29:57)

опять враньё, GoF - это про C++-like, у смолтока тупо не было кучи проблем, которые книженция пытается обойти/упорядочить.

Сфигали?

Надеюсь только не начнешь таких людей, как Кент Бек называть идиотами анонимно? :)

P.S. дяду Фаулера в догонку слать?

twinpeaks
() автор топика
Ответ на: комментарий от anonymous

anonymous (24.11.21 13:35:33)

я плохо улавливаю разницу

Не понял, что именно ты не улавливаешь. Что с многопоточностью легко работать? Ну так, а разве легко? Что ты мне цитату даешь?

  1. если разобрать и хорошо выучить что-то - то будет легко априори, хоть ядерную физику

  2. ты скинул, что как там люди юзают на высоком уровне… мне насколько не изменяет память, обычно понятие MT делят на:

  • примитивы, которые предоставляет сам ЯП и его платформа
  • примитивы самой OS

Вот, условно будет у тебя cpu throttling происходить при работе на Haskell или Erlang, и нужно будет копаться для разбора ситуации. Это разве будет просто? Ну, для опытного - просто, т.к. он через это прошел уже. Для неопытного, по-моему очевидно не просто.

twinpeaks
() автор топика
Ответ на: комментарий от twinpeaks

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

Это нелогичное высказывание, как минимум по тому, что: откуда тогда SmallTalk, LISP появились? Которые и юзали для прикладных задач, как раз.

Вот это только прокомментирую, нас все таки дети читают. Lisp есть и всегда был сугубо академическим языком, за пределы универов он не вылазил, а если вы лазил, то дох сразу же без кислорода.
А что такое Smalltalk? Вот именно, никто не знает. Оно даже до нормального академического не доросло ибо мертворожденное.

untitl3d
()
Последнее исправление: untitl3d (всего исправлений: 1)
Ответ на: комментарий от anonymous

эмм... писатель - графоман отморозок и судя по тексту очень далек от программирования

не надо такое читать и тем более распостранять и тем более на техническом ресурсе, фу таким быть

untitl3d
()
Ответ на: комментарий от untitl3d

Извини, но твои дискуссы абсолютно применимы к тебе же.

  • а ты не проталкиваешь свои идеи?
  • где есть устав, который описывает критерии «быссмысленности идей» и «реального» мира?
  • чем мой мир-то нереальный? вроде, отсылаюсь к реально сущесвтующим идеям, которые другие люди создали

untitl3d (24.11.21 14:04:32)

Lisp есть и всегда был сугубо академическим языком, за пределы универов он не вылазил, а если вы лазил, то дох сразу же без кислорода.

Шта? А что насчет, хотя бы:

  1. GNU Emacs
  2. сервис Grammarly https://www.grammarly.com/blog/engineering/running-lisp-in-production/
  3. Boeing 747 и 777 c Allegro NFS Server

untitl3d (24.11.21 14:04:32)

А что такое Smalltalk? Вот именно, никто не знает. Оно даже до нормального академического не доросло ибо мертворожденное.

«Да-да». https://360wiki.ru/wiki/Visual_Smalltalk_Enterprise читаемс, хочу только отметить, что никто не говорил, что у него уровень популярности сравним с С++. Но то, что на нем ничего не делали - голословно. Помимо всего, дядя Фаулер свои идеи для ОО-мира на нем обкатывал :D Надо же…

P.S. сорри, но я думаю это у тебя крайне большой субъективизм. Идет кидание словами без аппеляционной аргументации. Плюс еще, ярылки вышаются «где есть канон, а где нет» и навязывание мыслей про «свой» мир. Если он настолько свой, откуда я выше факты и ссылки беру?

twinpeaks
() автор топика
Последнее исправление: twinpeaks (всего исправлений: 1)

Ээээээээээ, всего лишь девять страниц нафлудили.
Мало!

PHP много ЛУЧШЕ Python!  
anonymous
()
Ответ на: комментарий от twinpeaks

А что насчет, хотя бы:
Running Lisp in Production

Ты сам не догадываешься, что статья уровня «мы съездили на нашем тарантасе на дачу» в 2К20, когда самому тарантасу уже больше полсотни лет, намекает на то, что поездка на дачу на этом тарантасе - экстравагантное событие аж достойное отдельной статьи? И, видимо, логично предположить, большую часть времени ездят не на тарантасе, а под ним в гараже?

LamerOk ★★★★★
()
Ответ на: комментарий от anonymous

php >= 7 да лучше, как язык для разработки бизнес-логики.

anonymous
()
Ответ на: комментарий от LamerOk

Я хочу подчеркнуть, что если Вас послушать, то создается впечатление, что я прямо так описал ЛИСП, якобы он чуть ли не заменой или конкурентом С++ был.

Да не был он, ежу - понятно. Но, тут товарищи пытаются активно навязать мысль, что мол писали прикладные задачи на Си.

Я понимаю, что в древние времена, это могло быть. Но в теже древние времена появились Фортраны, Лиспы и др.

Явна была видна тендеция, что нужен язык программирования для прикладных задач. И паттерны, GoF - это о прикладном.

По-моему, ежу понятно почему они родились так. Никто не называл LISP или SmallTalk - лидерами передовыми. Ну, не было этого банально… Ну, не было с моей стороны.

С моей стороны была описана логика, что явно дяди тренировались в то время на том, от чего родились паттерны.

От чего современный мир любит: clean arch, DDD/CQRS+ES и появились всякие Акки.

Ну правда, не вижу я ни одним местом, что я не так написал в отношении ЛИСПа. Лидером не назвал, юзали ли его вне универов? В то время юзали, вроде даже коммерческие реализации были отдельные.

Но, не называл я его лидером и заменой С++ , БЛЭТ !!!!11111

БЛЭТ!!!!!111 Питоноситы, вы людей до истерики доводите своим непризнанием ООП.

twinpeaks
() автор топика
Ответ на: комментарий от peregrine

Большой стектрейс это показатель хорошего разделения и переиспользования кода. Сложно считать это чем-то плохим. Ты же не предпочтёшь писать всё в main. А задача компиляторов и сред выполнения - обеспечить эффективное выполнение кода, не выкручивая программисту руки.

Legioner ★★★★★
()
Ответ на: комментарий от untitl3d

А вот не надо надмозгов звать код писать. Ява прекрасный язык, его проблема именно в надмозглых синьорах, гофах и прочего хлама. С си таже история. На нем можно писать очень красиво, а можно нечитабельными недебажныии макросами.

Чё-т не в тему по-моему ответ. Яву не видел почти, комментировать не могу. В Си ничего серьёзного не напишешь. Не говоря уже о стандартной фигне типа

#ifndef MYLIB_H_
#define MYLIB_H_ 1

// headers here

#endif // MYLIB_H_

Ну это примитивно. Просто – это одна инструкция.

Второй момент – это строгое движение сверху вниз. Что работу с типами и их древовидностью превращает в какую-то фигню. Примитивщина какая-то.

Третий момент из той же копилки, нет варианта нормально сослаться на саму себя в структуре. Если typedef, то это частичный typedef. Короче примитивщина, а не простота.

Ну и так далее. Список огромный. Это примитивность, которая затыкается мозгами разработчиков. Вместо того, чтобы машина работала, работает человек. Это и есть надмозглость или что похуже.

anonymous
()
Ответ на: комментарий от firkax

Критерии лучшести, пожалуйста. Или субъективщина.

Скорость работы (запуск и латенси), отсутствие багов, количество зависимостей, размер исходника и бинарника. Остальное и правда субъективно, но можешь что-нить добавить. По последнему пункту (размер) допускаю что на питоне получится лучше, но он один такой.

Это имеет отношение к бинарнику. А к исходникам никакого по сути. Тот же Rust рожает что-то похожее на вышеописанное. Хотя Rust и инопланетный, но всё же. И С++ тоже. Да и Depli/Pascal по большому счёту тоже.

Суть в том, что работа с исходниками Вами никак не затронута. Позиция пользователя почему-то «заценившего» Си.

anonymous
()
Ответ на: комментарий от Legioner

Я не про майн, а про то что дерево вызовов иногда очень глубокое. Это как бы и хорошо и плохо, особенно когда твой супер-пупер безопасный фреймворк А тянет ещё один фреймворк Б, который тянет ещё один фреймворк В, который тянет либу которую писал злой какер Вася и которую приняли без особых разбирательств авторы фреймворка В, потому что они его для игры делали, а не для атомной станции.

peregrine ★★★★★
()
Ответ на: комментарий от twinpeaks

Сфигали?

студали, GoF писалось для C++ (и, как следствие, всяких жав с шарпами), попытка GoF натянуть на остальные языки - это сова/глобус.

Понятно, что условные паттерны есть в любом языке/парадигме, но они РАЗНЫЕ.

anonymous
()
Ответ на: комментарий от twinpeaks

Не понял, что именно ты не улавливаешь.

разницу между «сложно» и «геморно», мне вот если «геморно» - это уже сложно, я это не люблю

Что с многопоточностью легко работать? Ну так, а разве легко?

в языках, которые для неё приспособлены - легко

ты скинул, что как там люди юзают на высоком уровне

так 99% времени и не нужно лезть в кишки (и забивать голову знаниями, которые могут даже не понадобиться), имхо - более, чем достаточно

anonymous
()
Ответ на: комментарий от untitl3d

едрить ты тупость несёшь. Я про то, чтобы парсить/компилировать «простой» C - нужны тыщи человеколет и гигабайты написанного кода.

anonymous
()
Ответ на: комментарий от anonymous

anonymous (24.11.21 15:15:20)

студали, GoF писалось для C++ (и, как следствие, всяких жав с шарпами), попытка GoF натянуть на остальные языки - это сова/глобус.

Что блэт издеваешься, что ли? На:

Design Patterns: Elements of Reusable Object-Oriented Software (1994) is a software engineering book describing software design patterns. The book was written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, with a foreword by Grady Booch. The book is divided into two parts, with the first two chapters exploring the capabilities and pitfalls of object-oriented programming, and the remaining chapters describing 23 classic software design patterns. The book includes examples in C++ and Smalltalk.

Подчеркну:

The book includes examples in C++ and Smalltalk.

Я даже спецом открыл книгу эту, цитирую:

Although design patterns describe object-oriented designs, they are based on practical solutions that have been implemented in mainstream object-oriented programming languages like Smalltalk and C++ rather than procedural languages (Pascal,C,Ada) or more dynamic object-oriented languages (CLOS, Dylan, Self). We chose Smalltalk and C++ for pragmatic reasons: Our day-to-day experience has been in these languages, and they are increasingly popular.

Если мы конкретно о GoF беседуем. На тебе цитату из книги авторов GoF, 4-ая страница глава #1. Студали ты все Smalltalk принижаешь? И выделяешь свой С++ ? Там дальше откровенно идет раздел после цитаты выше:

1.2 Design Patterns in Smalltalk MVC

The Model/View/Controller (MVC) triad of classes [KP88] is used to build user interfaces in Smalltalk-80. Looking at the design patterns inside MVC should help you see what we mean by the term «pattern.»

Сразу по Smalltalk первым идет, а не про С++. Вот тебе и «студали».

twinpeaks
() автор топика
Последнее исправление: twinpeaks (всего исправлений: 8)
Ответ на: комментарий от anonymous

ну, Clojure сейчас юзают в куче компаний, в т.ч. во всяких фаангах

Используют. Но там и скрипты на cmd.exe используют и макросы VBA используют. Так что надо выяснять, в каком именно режиме используют - как боевые сервера 24х7 или как скрипты, пускаемые кроном под присмотром админов в оффлайне.

LamerOk ★★★★★
()
Ответ на: комментарий от anonymous

Ну, pascal тоже хороший компилируемый языки, на нём я даже раньше много писал (для доса), но си просто более нативный сейчас для юниксов. C++ в целом тоже норм, но он добавляет некрасивый оверхед в получающийся ассемблерный код, мне не нравится. Rust не смотрел, он либо как первое либо как второе либо посередине, т.е. в целом тоже норм. Претензии были к питонам всяким.

Исходники затронуты так, что си достаточно удобен, чтобы сделать нужный бинарник. Сами по себе исходники никоим образом не самоценны, разумеется.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от twinpeaks

///Я понимаю, что в древние времена, это могло быть. Но в теже древние времена появились Фортраны, Лиспы и др.

///Явна была видна тендеция, что нужен язык программирования для прикладных задач.

И он появился: Си. Поскольку Фортран, Лисп, Кобол и даже не всуе упоминаемый Бэйсик были до Си. Применительно к скорости развития компьютерной индустрии – задолго до. Альтернативой Си выступал… Паскаль в исполнении фирмы Борланд.

Сила Си была в универсальности, поскольку Фортран и Кобол узкоспециализированные, Бэйсков был целый зоопарк, PL/1 так и не был полноценно реализован, поскольку пытался охватить вообще всё. Алгол не выстрелил, т.к. оказался сложным в реализации в то время и недоделанным. Ну а чтобы писать на Лиспе, надо сломать себе им мозг.

mister_VA ★★
()
Ответ на: комментарий от LamerOk

Так что надо выяснять, в каком именно режиме используют - как боевые сервера 24х7 или как скрипты, пускаемые кроном под присмотром админов в оффлайне.

ну во-первых, если оно позволяют проще/надёжнее выполнить задачу - какая разница?

во-вторых, а какие проблемы юзать кложу 24x7? Как минимум, из-за зафорcенной иммутабельности и STM она всяко надёжнее той же Java, имея (by design) все плюшки и экосистему оной.

а по списку компаний вотут можешь посмотреть

https://github.com/clojure/clojure-site/blob/master/content/community/companies.adoc

anonymous
()
Ответ на: комментарий от anonymous

Ты взял очень, а может быть и самый, сложный пример из всех возможных. Написание компилятора это, как известно, борьба с драконом. Посмотри вот ядра bsd систем или того же core kernel линукса, там увидишь как все красиво и лаконично. Ну или любой проект из 90ых на си, там тоже норм. Можно даже в coreutils заглянуть. Не очень красиво, но если вдуматься, понять и простить генерик-реализацию для всех платформ и юзкейсов, то тоже будет норм. Си простой (или примитивный как тут кто-то заявляет). Не надо на нем писать как на жабах и все будет норм ;-)

untitl3d
()
Последнее исправление: untitl3d (всего исправлений: 1)
Ответ на: комментарий от anonymous

ifndef

Не модно. Модно

#pragma once

работу с типами

Когда-то хватало struct. Теперь не хватает. Завезли ООП, теперь от ООП их воротит, завезли хацкель, но хацкель слишком сложный, его никто понять не может, завезли лямбды в java и c++, начали кричать что сложнаа, мутанты и ваще. А struct и ныне там...

На примитивщине не написали бы весь мир. А на си таки написан весь мир ;-) Остальное ради денег.

untitl3d
()
Ответ на: комментарий от mister_VA

Альтернативой Си выступал… Паскаль в исполнении фирмы Борланд.

не только от Борланда, но да. Причём как минимум для всякой прикладнухи - гораздо более лучшей альтернативой.

Компиляция в нативный легко переносимый p-code, строгая типизация, более читабельный синтаксис - и это одновременно с первыми версиями C, не сильно позже появилась нормальная модульность, которой в C нет и не будет, строки, итд итп! Про сравнения скорости компиляции и размера дистрибутива я вообще молчу.

anonymous
()
Ответ на: комментарий от untitl3d

Написание компилятора это, как известно, борьба с драконом.

да не, просто надо делать более простой язык с более однозначным синтаксисом и тогда будет гораздо меньше драконоборчества, сравни даже с тем же паскалем (про лиспы/форты молчу)

Посмотри вот ядра bsd систем или того же core kernel линукса, там увидишь как все красиво и лаконично.

меньше байт кода - не всегда равно лаконичности, и тем более, красоте (привет, APL), ну и, я продолжаю настаивать на том, что в коде главное - поддерживаемость.

anonymous
()

Питон - скриптовый язык, чтобы выполнять примитивные небольшие задачи. Для чего там применять какие-то дизайн паттерны и принципы? Там даже строгой типизации и сигнатур методов нет.

Ghostwolf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.