LINUX.ORG.RU

Ответ на: комментарий от yu-boot

динамической/утиной типизацией

С незапамятных времен в VB.NET и даже VBA есть тип Variant

https://www.infoq.com/news/2010/01/VB-History/

https://stackoverflow.com/questions/2889974/vb-net-equivalent-for-c-sharp-dynamic-with-option-strict-on

https://learn.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/early-late-binding/working-with-dynamic-objects

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

Про Variant я помню, как и про то, что по времена VB6 была куча рекомендаций ни в коем случае это не использовать для получения приемлемой скорости. Врут?

yu-boot ★★★★
()
Последнее исправление: yu-boot (всего исправлений: 1)
Ответ на: комментарий от quwy

C# это помесь ужа с ежом (питона с плюсами), некая попытка заменить яву. Как обычно такие решения вчистую проигрывают узкоспециализированным решениям в областях их специализации.

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

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

C# это помесь ужа с ежом (питона с плюсами)

Это или исключительно толсто или феноменально тупо.

evgeny_aa ★★☆
()
Ответ на: комментарий от yu-boot

Про Variant я помню, как и про то, что по времена VB6 была куча рекомендаций ни в коем случае это не использовать для получения приемлемой скорости. Врут?

В классическом VB(A) Variant отягощен грузом совместимости с COM и ActiveX объектами.

И где вообще динамическая типизация работает быстро?

В VB.NET появился в т.ч. и duck typing при включении опции Option Infer:

dim S = "ABC"

Тип переменной S будет String.

https://stackoverflow.com/questions/19433504/vb-net-variable-declaration-type-or-not-to-type

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

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

VB делался как раз для того же самого, а с переиспользованием либ через Python.NET, это еще проще.

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

Но VB.NET позволяет не ходить за подобным даже в C#, если конечно не нужна топовая производительность на уровне Rust.

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

Треды сегодня – единственное средство утилизации более 10-15% мощности процессора. Язык, который принципиально не позволяет использовать 85-90% вычислительных ресурсов дешевого домашнего компьютера, не имеет права существовать в широком продакшене. И только гигантская толпа скрипткодеров держит его на плаву.

Рукалицо. Python может использовать более 10-15% процессора запросто:

  1. Расширения типа numpy, pytorch, и так далее. Вообще, расширения в Python могут в многопоточность без GIL.
  2. Python поддерживает multiprocessing
  3. Python поддерживает OpenMP
  4. Если говорить про веб, то любой фреймворк на Python поднимается в стольких экземплярах, сколько нужно, чтобы полностью загрузить все процессоры и ядра. При этом комбинация gunicorn + uvicorn позволяет ещё и максимально загрузить каждое ядро по отдельности. Без каких-либо движений со стороны разработчика.
emorozov
()
Ответ на: комментарий от AntonI

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

Вот где-то тут и причина.

Есть проект. Пятеро жабистов могут выкатить нечто за полгода. Поэтому принимается решение сначала написать прототип. На питоне.

Через две недели джун под частичным руководством лида выкатывает прототип. Через месяц МВП приносит бабло в проде, а через полгода уже не получается придумать какие ещё свистоперделки в него воткнуть.

Никому и в голову не приходит переписывать ЭТО на настоящем компилируемом языке со статической типизацией, изкаробочной поддержкой многопроцессорности, серьёзным ООП по-взрослому и прочими ништяками.

Бросающий курить директор постукивает пустым мундштуком по зарплатной ведомости и хмурит филейную часть лица. Главный бухгалтер бросает испуганные взгляды на жабистов. Завистники распускают слухи, что херка залетела от джуна.

Вот и вся любовь…

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

VB делался как раз для того же самого

Но VB умер, а питон стал самым массовым ЯП. А ведь у многих бейсик был первым языком…

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

Но VB умер,

Это про VB.NET? Откуда такие выводы?

Немайкрософтовских клонов VB в 2023 году кстати тоже довольно много.

а питон стал самым массовым ЯП.

Потому что в него вложился Google, оставив его максимально open-source?

Если бы Балмер не устраивал всей этой Windows проприетарщины хотя бы для .NET, то возможно карты легли бы по другому?

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

Я (как и наверное все мое поколение) начинал с бейсика, потом плюсы а потом че то писал как каком то VB и это был ужОс - плац.танк.башня.люк.ручка.кнопка.нажать()

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

А на VB бросил тень микрософт конечно, который как анти-Мидас превращает в гавно все к чему прикоснется. Скайп какая была прекрасная штука пока его не купили…

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

Python может использовать более 10-15% процессора запросто

я просто оставлю это здесь:

$ top
...
... %CPU  ...  COMMAND                                         
... 2389  ...  run-magn2.py  

...
$ cat /proc/cpuinfo
...
processor	: 23
model name	: AMD Ryzen 9 3900X 12-Core Processor
...
AntonI ★★★★
()
Ответ на: комментарий от sanyo1234

Потому что в него вложился Google, оставив его максимально open-source?

Когда Google появился, Python был уже популярен (не у нас, а в мире, у нас его популярность где-то лет на 10 запоздала). К тому же, насколько я помню, Python никогда не был основным языком в Google. И Google никогда особо его и не промотировал. Более того, они создали и продвигают свой язык - Go - у которого общего с Python разве что GC.

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

Типа такого:


        End With
      End If
    End If
  End Select
End While
И это намного проще читается через любое количество десятков лет, чем подобное:

        }
      }
    }
  }
}

Приведенный вами код действительно плохо читаемый, но решается «проблема» просто:


    }                                                      // if  ( FlLink ) {

   break;

   default:
   break;

  }                                                        // switch ( TypeField ) {

  return  0;                                               // 

}                                                          // INT  AssingPodFieldObject(

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

Проблема при использовании комментариев только в том, что в таком случае IDE не проверяет, действительно ли закрывающая скобка с комментарием switch ( TypeField ) { соответствует блоку switch, а не какому-нибудь другому блоку (в лучшем случае программист должен проверять соответствие визуально с помощью редактора IDE, который помогает сворачиванием и подсветкой блоков).

Microsoft Visual Studio же для VB.NET сразу заметит такую пересортицу и несоответствие самостоятельно, о чем тут же сообщит.

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 2)
Ответ на: комментарий от yu-boot

Есть ли языки с динамической/утиной типизацией, где потоки (нормальные, а не green threads) вообще есть или даже сделаны хорошо?

ЛИСП

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

А разве нельзя создать несколько процессов и их как-то оркестрировать?

Можно, конечно. Но это, во-первых, гораздо сложнее, чем просто запустить функцию параллельным потоком в том же адресном пространстве. А во-вторых, процессы гораздо тяжелее потоков.

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

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

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

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

Питон - ЯП, пригодный для вкатышей. Не только лишь все могут сами писать многопоток на сишке.

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

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

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

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

@no-such-file 30.06.23 09:06:37 MSK

Каждая вторая проблема у начинающих это кривое выравнивание.

Где здесь про большой проект? С каких пор начинающие поддерживают большие проекты? Начинающие пишут хеллоуворлды, решают квадратные уравнения и у каждого второго проблемы с приведением аргументов командной строки к float (забывают). Но с выравниванием никаких проблем у начинающих не было и нет.

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

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

Шутка

Основная проблема лежит в плоскости «Тупой и ещё тупее».

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

за отступы.
*было?

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

Там все три пункта прекрасны. Переписать с баша на питон хуже, чем было, не проблема, но при чем тут питон? Переписывать скрипты построчного интерпретатора на другой, более совершенный интерпретатор, и жаловаться, что страдаешь от интерпретатора. А на баше не страдал или не знал, на что идет? В плюсцах ООП понятнее, чем в питоне? Муахаха 😄

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

Тема не про лабы. А о том, почему не любят питон. Потому что поддерживать и рефакторить большие проекты на нем – боль.

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

Как и на любом другом ЯП. Но выравнивание то тут причём?! Вы же кинулись отвечать на вопрос про выравнивание кода…

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

Выравнивание просто добавляет проблем, которых и так много.

И да, ещё читать дифы на ревью очень очень тоже удобно.

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

Если это такая аццкая проблема, что мешает команде работающей над большим проектом ввести для проекта открывающие/закрывающие скобки и препроцессор?! Десять строчек кода на там же питоне, Вы с товарищем по несчастью на пару тут комментов в дцать раз больше накатали.

Но нет, рыдать на лоре время есть, а решить главную проблему питона третьего тысячелетия времени нету:-)

Или это просто не является такой огромной проблемой.

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

Были Python 2 и 3. Python 2 окончательно умер три года назад. Перейти с 2 на 3 было элементарно просто, для этого были очень удобные инструменты и долгий и удобный график перехода.

Не было элементарно просто, потому что на одном Питоне ничего сложного не напишешь. Нужны фреймворки, библиотеки. И они не спешили переходить на новую версию, а некоторые не смогли совсем. Понятно, что мейнстрим типа Django или PyQt не сильно пострадал. Но, например, wxPython помер (есть какая-то альфа для тройки, но она вышла слишком поздно, когда уже все перешли на PyQt и tkinter). При том, что библиотека была популярная и более свободная, чем PyQt.

Так же не верно, что Python 2 помер, так как ещё много старого ПО, которое никто переписывать не будет, а пользу оно приносит.

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

Во-первых, у тебя в общем случае на любом языке имеется другой код обычно:

{ // или и_н_д_е_н_т, если код на питоне
a
b
} // или и_н_д_е_н_т, если код на питоне

или

{{// или и_н_д_е_н_т, если код на питоне
a
b
}} // или и_н_д_е_н_т, если код на питоне

и если ты эти строки кода вырезаешь и вставляешь как

a
b

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

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

новомодные **kwargs

Новомодными они были может в питон 1.4 или около того. Деда, таблетки не забывай пить.

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

Виноват, конечно, Питон. Давай так, чего в стандартной поставки Питона не оказалось, чтобы на нем можно было решить эти грандиозные задачи, с которой справился Паскаль? Какого-то модуля, сахара в языке, чего? Мне кажется, вывод тут только один - преподавателя Питона детям надо выпинывать на мороз с позором, и всё. Если бы я рассказал детям за Питон за неделю до экзамена, они бы всё решили, могу поспорить 😁

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

Но у тебя там жирнее в 2 раза обычного моего таба.

А пробелы одинаковые и в Вилларибо, и в Виллабаджо 🤣

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

Это не заслуга пыхи, как ЯП, а заслуга основной реализации виртуальной машины. В которую потом, благодаря этому факту, смог вложиться Фейспук. В питон гугель намного раньше хотел вложиться, но реализация нутрянки оказалась непригодна к форсированию 😢.

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

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

Да нет, на питоне, как и на любом гибком динамическом ЯП, можно писать, не задумываясь о паттернах. Паттерны нужны ЯП, где треугольные блоки кода надо плотно укладывать в прямоугольные формочки, и паттерны показывают схему, как это делать без лютой попаболи и даже вроде как с интересом и осмысленно, без «болгарки» и такой-то матери.

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

На самом деле, IDE должна

Ну так что конкретно должна сделать IDE в приведённом примере? Какой вариант ответа правильный?

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

Ты внимательно читал мой комментарий? Если да, то зачем задаешь этот вопрос?

если ты эти строки кода вырезаешь и вставляешь как

a
b

не заботясь о переносе скобок или индента, то ты ушлепок.

Поэтому правильный вариант ответа - ты ушлепок.

Virtuos86 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)